merge master into webdav-injection
This commit is contained in:
commit
3821a09689
|
@ -111,22 +111,32 @@ if ($maxUploadFileSize >= 0 and $totalSize > $maxUploadFileSize) {
|
|||
}
|
||||
|
||||
$result = array();
|
||||
$directory = '';
|
||||
if (strpos($dir, '..') === false) {
|
||||
$fileCount = count($files['name']);
|
||||
for ($i = 0; $i < $fileCount; $i++) {
|
||||
|
||||
// Get the files directory
|
||||
if(isset($_POST['file_directory']) === true) {
|
||||
$directory = '/'.$_POST['file_directory'];
|
||||
}
|
||||
|
||||
// $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
|
||||
if (isset($_POST['resolution']) && $_POST['resolution']==='autorename') {
|
||||
// append a number in brackets like 'filename (2).ext'
|
||||
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]);
|
||||
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir.$directory), $files['name'][$i]);
|
||||
} else {
|
||||
$target = \OC\Files\Filesystem::normalizePath(stripslashes($dir).'/'.$files['name'][$i]);
|
||||
$target = \OC\Files\Filesystem::normalizePath(stripslashes($dir.$directory).'/'.$files['name'][$i]);
|
||||
}
|
||||
|
||||
$directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
|
||||
if (isset($public_directory)) {
|
||||
// If we are uploading from the public app,
|
||||
// we want to send the relative path in the ajax request.
|
||||
$directory = $public_directory;
|
||||
|
||||
if(empty($directory) === true)
|
||||
{
|
||||
$directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
|
||||
if (isset($public_directory)) {
|
||||
// If we are uploading from the public app,
|
||||
// we want to send the relative path in the ajax request.
|
||||
$directory = $public_directory;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! \OC\Files\Filesystem::file_exists($target)
|
||||
|
@ -186,7 +196,6 @@ if (strpos($dir, '..') === false) {
|
|||
|
||||
if ($error === false) {
|
||||
OCP\JSON::encodedPrint($result);
|
||||
exit();
|
||||
} else {
|
||||
OCP\JSON::error(array(array('data' => array_merge(array('message' => $error, 'code' => $errorCode), $storageStats))));
|
||||
}
|
||||
|
|
|
@ -242,11 +242,19 @@ OC.Upload = {
|
|||
data.errorThrown = errorMessage;
|
||||
}
|
||||
|
||||
if (file.type === '' && file.size === 4096) {
|
||||
data.textStatus = 'dirorzero';
|
||||
data.errorThrown = t('files', 'Unable to upload {filename} as it is a directory or has 0 bytes',
|
||||
{filename: file.name}
|
||||
);
|
||||
// in case folder drag and drop is not supported file will point to a directory
|
||||
// http://stackoverflow.com/a/20448357
|
||||
if (!file.type && file.size%4096 === 0 && file.size <= 102400) {
|
||||
try {
|
||||
reader = new FileReader();
|
||||
reader.readAsBinaryString(f);
|
||||
} catch (NS_ERROR_FILE_ACCESS_DENIED) {
|
||||
//file is a directory
|
||||
data.textStatus = 'dirorzero';
|
||||
data.errorThrown = t('files', 'Unable to upload {filename} as it is a directory or has 0 bytes',
|
||||
{filename: file.name}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// add size
|
||||
|
@ -326,10 +334,15 @@ OC.Upload = {
|
|||
submit: function(e, data) {
|
||||
OC.Upload.rememberUpload(data);
|
||||
if ( ! data.formData ) {
|
||||
var fileDirectory = '';
|
||||
if(typeof data.files[0].relativePath !== 'undefined') {
|
||||
fileDirectory = data.files[0].relativePath;
|
||||
}
|
||||
// noone set update parameters, we set the minimum
|
||||
data.formData = {
|
||||
requesttoken: oc_requesttoken,
|
||||
dir: $('#dir').val()
|
||||
dir: $('#dir').val(),
|
||||
file_directory: fileDirectory
|
||||
};
|
||||
}
|
||||
},
|
||||
|
@ -683,3 +696,4 @@ $(document).ready(function() {
|
|||
OC.Upload.init();
|
||||
});
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
*/
|
||||
|
||||
/* global OC, t, n, FileList, FileActions, Files, BreadCrumb */
|
||||
/* global procesSelection, dragOptions */
|
||||
/* global procesSelection, dragOptions, folderDropOptions */
|
||||
window.FileList = {
|
||||
appName: t('files', 'Files'),
|
||||
isEmpty: true,
|
||||
|
@ -212,7 +212,7 @@ window.FileList = {
|
|||
linkUrl = Files.getDownloadUrl(name, FileList.getCurrentDirectory());
|
||||
}
|
||||
td.append('<input id="select-' + fileData.id + '" type="checkbox" /><label for="select-' + fileData.id + '"></label>');
|
||||
var link_elem = $('<a></a>').attr({
|
||||
var linkElem = $('<a></a>').attr({
|
||||
"class": "name",
|
||||
"href": linkUrl
|
||||
});
|
||||
|
@ -228,19 +228,19 @@ window.FileList = {
|
|||
basename = name;
|
||||
extension = false;
|
||||
}
|
||||
var name_span=$('<span></span>').addClass('nametext').text(basename);
|
||||
link_elem.append(name_span);
|
||||
var nameSpan=$('<span></span>').addClass('nametext').text(basename);
|
||||
linkElem.append(nameSpan);
|
||||
if (extension) {
|
||||
name_span.append($('<span></span>').addClass('extension').text(extension));
|
||||
nameSpan.append($('<span></span>').addClass('extension').text(extension));
|
||||
}
|
||||
// dirs can show the number of uploaded files
|
||||
if (type === 'dir') {
|
||||
link_elem.append($('<span></span>').attr({
|
||||
linkElem.append($('<span></span>').attr({
|
||||
'class': 'uploadtext',
|
||||
'currentUploads': 0
|
||||
}));
|
||||
}
|
||||
td.append(link_elem);
|
||||
td.append(linkElem);
|
||||
tr.append(td);
|
||||
|
||||
// size column
|
||||
|
@ -250,7 +250,7 @@ window.FileList = {
|
|||
} else {
|
||||
simpleSize = t('files', 'Pending');
|
||||
}
|
||||
var lastModifiedTime = Math.round(mtime / 1000);
|
||||
|
||||
td = $('<td></td>').attr({
|
||||
"class": "filesize",
|
||||
"style": 'color:rgb(' + sizeColor + ',' + sizeColor + ',' + sizeColor + ')'
|
||||
|
@ -437,8 +437,6 @@ window.FileList = {
|
|||
});
|
||||
},
|
||||
reloadCallback: function(result) {
|
||||
var $controls = $('#controls');
|
||||
|
||||
delete this._reloadCall;
|
||||
this.hideMask();
|
||||
|
||||
|
@ -810,10 +808,9 @@ window.FileList = {
|
|||
var info = t('files', '{dirs} and {files}', infoVars);
|
||||
|
||||
// don't show the filesize column, if filesize is NaN (e.g. in trashbin)
|
||||
if (isNaN(summary.totalSize)) {
|
||||
var fileSize = '';
|
||||
} else {
|
||||
var fileSize = '<td class="filesize">'+humanFileSize(summary.totalSize)+'</td>';
|
||||
var fileSize = '';
|
||||
if (!isNaN(summary.totalSize)) {
|
||||
fileSize = '<td class="filesize">'+humanFileSize(summary.totalSize)+'</td>';
|
||||
}
|
||||
|
||||
var $summary = $('<tr class="summary" data-file="undefined"><td><span class="info">'+info+'</span></td>'+fileSize+'<td></td></tr>');
|
||||
|
@ -899,7 +896,6 @@ window.FileList = {
|
|||
}
|
||||
},
|
||||
updateEmptyContent: function() {
|
||||
var $fileList = $('#fileList');
|
||||
var permissions = $('#permissions').val();
|
||||
var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
|
||||
$('#emptycontent').toggleClass('hidden', !isCreatable || !FileList.isEmpty);
|
||||
|
@ -937,13 +933,13 @@ window.FileList = {
|
|||
},
|
||||
scrollTo:function(file) {
|
||||
//scroll to and highlight preselected file
|
||||
var $scrolltorow = FileList.findFileEl(file);
|
||||
if ($scrolltorow.exists()) {
|
||||
$scrolltorow.addClass('searchresult');
|
||||
$(window).scrollTop($scrolltorow.position().top);
|
||||
var $scrollToRow = FileList.findFileEl(file);
|
||||
if ($scrollToRow.exists()) {
|
||||
$scrollToRow.addClass('searchresult');
|
||||
$(window).scrollTop($scrollToRow.position().top);
|
||||
//remove highlight when hovered over
|
||||
$scrolltorow.one('hover', function() {
|
||||
$scrolltorow.removeClass('searchresult');
|
||||
$scrollToRow.one('hover', function() {
|
||||
$scrollToRow.removeClass('searchresult');
|
||||
});
|
||||
}
|
||||
},
|
||||
|
@ -979,9 +975,9 @@ $(document).ready(function() {
|
|||
FileList.initialize();
|
||||
|
||||
// handle upload events
|
||||
var file_upload_start = $('#file_upload_start');
|
||||
var fileUploadStart = $('#file_upload_start');
|
||||
|
||||
file_upload_start.on('fileuploaddrop', function(e, data) {
|
||||
fileUploadStart.on('fileuploaddrop', function(e, data) {
|
||||
OC.Upload.log('filelist handle fileuploaddrop', e, data);
|
||||
|
||||
var dropTarget = $(e.originalEvent.target).closest('tr, .crumb');
|
||||
|
@ -1008,7 +1004,8 @@ $(document).ready(function() {
|
|||
data.formData = function(form) {
|
||||
return [
|
||||
{name: 'dir', value: dir},
|
||||
{name: 'requesttoken', value: oc_requesttoken}
|
||||
{name: 'requesttoken', value: oc_requesttoken},
|
||||
{name: 'file_directory', value: data.files[0].relativePath}
|
||||
];
|
||||
};
|
||||
} else {
|
||||
|
@ -1019,7 +1016,7 @@ $(document).ready(function() {
|
|||
}
|
||||
}
|
||||
});
|
||||
file_upload_start.on('fileuploadadd', function(e, data) {
|
||||
fileUploadStart.on('fileuploadadd', function(e, data) {
|
||||
OC.Upload.log('filelist handle fileuploadadd', e, data);
|
||||
|
||||
//finish delete if we are uploading a deleted file
|
||||
|
@ -1032,19 +1029,19 @@ $(document).ready(function() {
|
|||
// add to existing folder
|
||||
|
||||
// update upload counter ui
|
||||
var uploadtext = data.context.find('.uploadtext');
|
||||
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
|
||||
var uploadText = data.context.find('.uploadtext');
|
||||
var currentUploads = parseInt(uploadText.attr('currentUploads'), 10);
|
||||
currentUploads += 1;
|
||||
uploadtext.attr('currentUploads', currentUploads);
|
||||
uploadText.attr('currentUploads', currentUploads);
|
||||
|
||||
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
|
||||
if (currentUploads === 1) {
|
||||
var img = OC.imagePath('core', 'loading.gif');
|
||||
data.context.find('td.filename').attr('style','background-image:url('+img+')');
|
||||
uploadtext.text(translatedText);
|
||||
uploadtext.show();
|
||||
uploadText.text(translatedText);
|
||||
uploadText.show();
|
||||
} else {
|
||||
uploadtext.text(translatedText);
|
||||
uploadText.text(translatedText);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1053,7 +1050,7 @@ $(document).ready(function() {
|
|||
* when file upload done successfully add row to filelist
|
||||
* update counter when uploading to sub folder
|
||||
*/
|
||||
file_upload_start.on('fileuploaddone', function(e, data) {
|
||||
fileUploadStart.on('fileuploaddone', function(e, data) {
|
||||
OC.Upload.log('filelist handle fileuploaddone', e, data);
|
||||
|
||||
var response;
|
||||
|
@ -1067,38 +1064,69 @@ $(document).ready(function() {
|
|||
|
||||
if (typeof result[0] !== 'undefined' && result[0].status === 'success') {
|
||||
var file = result[0];
|
||||
var size = 0;
|
||||
|
||||
if (data.context && data.context.data('type') === 'dir') {
|
||||
|
||||
// update upload counter ui
|
||||
var uploadtext = data.context.find('.uploadtext');
|
||||
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
|
||||
var uploadText = data.context.find('.uploadtext');
|
||||
var currentUploads = parseInt(uploadText.attr('currentUploads'), 10);
|
||||
currentUploads -= 1;
|
||||
uploadtext.attr('currentUploads', currentUploads);
|
||||
uploadText.attr('currentUploads', currentUploads);
|
||||
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
|
||||
if (currentUploads === 0) {
|
||||
var img = OC.imagePath('core', 'filetypes/folder');
|
||||
data.context.find('td.filename').attr('style','background-image:url('+img+')');
|
||||
uploadtext.text(translatedText);
|
||||
uploadtext.hide();
|
||||
uploadText.text(translatedText);
|
||||
uploadText.hide();
|
||||
} else {
|
||||
uploadtext.text(translatedText);
|
||||
uploadText.text(translatedText);
|
||||
}
|
||||
|
||||
// update folder size
|
||||
var size = parseInt(data.context.data('size'));
|
||||
size += parseInt(file.size);
|
||||
size = parseInt(data.context.data('size'), 10);
|
||||
size += parseInt(file.size, 10);
|
||||
data.context.attr('data-size', size);
|
||||
data.context.find('td.filesize').text(humanFileSize(size));
|
||||
|
||||
} else {
|
||||
// only append new file if uploaded into the current folder
|
||||
if (file.directory !== FileList.getCurrentDirectory()) {
|
||||
if (file.directory !== '/' && file.directory !== FileList.getCurrentDirectory()) {
|
||||
|
||||
var fileDirectory = file.directory.replace('/','').replace(/\/$/, "").split('/');
|
||||
|
||||
if (fileDirectory.length === 1) {
|
||||
fileDirectory = fileDirectory[0];
|
||||
|
||||
// Get the directory
|
||||
var fd = FileList.findFileEl(fileDirectory);
|
||||
if (fd.length === 0) {
|
||||
var dir = {
|
||||
name: fileDirectory,
|
||||
type: 'dir',
|
||||
mimetype: 'httpd/unix-directory',
|
||||
permissions: file.permissions,
|
||||
size: 0,
|
||||
id: file.parentId
|
||||
};
|
||||
FileList.add(dir, {insert: true});
|
||||
}
|
||||
} else {
|
||||
fileDirectory = fileDirectory[0];
|
||||
}
|
||||
|
||||
fileDirectory = FileList.findFileEl(fileDirectory);
|
||||
|
||||
// update folder size
|
||||
size = parseInt(fileDirectory.attr('data-size'), 10);
|
||||
size += parseInt(file.size, 10);
|
||||
fileDirectory.attr('data-size', size);
|
||||
fileDirectory.find('td.filesize').text(humanFileSize(size));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// add as stand-alone row to filelist
|
||||
var size=t('files', 'Pending');
|
||||
size = t('files', 'Pending');
|
||||
if (data.files[0].size>=0) {
|
||||
size=data.files[0].size;
|
||||
}
|
||||
|
@ -1110,37 +1138,40 @@ $(document).ready(function() {
|
|||
}
|
||||
}
|
||||
});
|
||||
file_upload_start.on('fileuploadstop', function(e, data) {
|
||||
fileUploadStart.on('fileuploadstop', function(e, data) {
|
||||
OC.Upload.log('filelist handle fileuploadstop', e, data);
|
||||
|
||||
//if user pressed cancel hide upload chrome
|
||||
if (data.errorThrown === 'abort') {
|
||||
//cleanup uploading to a dir
|
||||
var uploadtext = $('tr .uploadtext');
|
||||
var uploadText = $('tr .uploadtext');
|
||||
var img = OC.imagePath('core', 'filetypes/folder');
|
||||
uploadtext.parents('td.filename').attr('style','background-image:url('+img+')');
|
||||
uploadtext.fadeOut();
|
||||
uploadtext.attr('currentUploads', 0);
|
||||
uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
|
||||
uploadText.fadeOut();
|
||||
uploadText.attr('currentUploads', 0);
|
||||
}
|
||||
});
|
||||
file_upload_start.on('fileuploadfail', function(e, data) {
|
||||
fileUploadStart.on('fileuploadfail', function(e, data) {
|
||||
OC.Upload.log('filelist handle fileuploadfail', e, data);
|
||||
|
||||
//if user pressed cancel hide upload chrome
|
||||
if (data.errorThrown === 'abort') {
|
||||
//cleanup uploading to a dir
|
||||
var uploadtext = $('tr .uploadtext');
|
||||
var uploadText = $('tr .uploadtext');
|
||||
var img = OC.imagePath('core', 'filetypes/folder');
|
||||
uploadtext.parents('td.filename').attr('style','background-image:url('+img+')');
|
||||
uploadtext.fadeOut();
|
||||
uploadtext.attr('currentUploads', 0);
|
||||
uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
|
||||
uploadText.fadeOut();
|
||||
uploadText.attr('currentUploads', 0);
|
||||
}
|
||||
});
|
||||
|
||||
$('#notification').hide();
|
||||
$('#notification:first-child').on('click', '.replace', function() {
|
||||
OC.Notification.hide(function() {
|
||||
FileList.replace($('#notification > span').attr('data-oldName'), $('#notification > span').attr('data-newName'), $('#notification > span').attr('data-isNewFile'));
|
||||
FileList.replace(
|
||||
$('#notification > span').attr('data-oldName'),
|
||||
$('#notification > span').attr('data-newName'),
|
||||
$('#notification > span').attr('data-isNewFile'));
|
||||
});
|
||||
});
|
||||
$('#notification:first-child').on('click', '.suggest', function() {
|
||||
|
@ -1170,8 +1201,7 @@ $(document).ready(function() {
|
|||
|
||||
function parseHashQuery() {
|
||||
var hash = window.location.hash,
|
||||
pos = hash.indexOf('?'),
|
||||
query;
|
||||
pos = hash.indexOf('?');
|
||||
if (pos >= 0) {
|
||||
return hash.substr(pos + 1);
|
||||
}
|
||||
|
@ -1180,8 +1210,7 @@ $(document).ready(function() {
|
|||
|
||||
function parseCurrentDirFromUrl() {
|
||||
var query = parseHashQuery(),
|
||||
params,
|
||||
dir = '/';
|
||||
params;
|
||||
// try and parse from URL hash first
|
||||
if (query) {
|
||||
params = OC.parseQueryString(decodeQuery(query));
|
||||
|
|
|
@ -135,7 +135,7 @@ var Files = {
|
|||
return;
|
||||
}
|
||||
if (initStatus === '1') { // encryption tried to init but failed
|
||||
OC.Notification.showHtml(t('files', 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'));
|
||||
OC.Notification.show(t('files', 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'));
|
||||
return;
|
||||
}
|
||||
if (encryptedFiles === '1') {
|
||||
|
|
|
@ -22,6 +22,7 @@ $TRANSLATIONS = array(
|
|||
"Upload" => "Xubir",
|
||||
"Save" => "Guardar",
|
||||
"New folder" => "Nueva carpeta",
|
||||
"Folder" => "Carpeta",
|
||||
"Cancel upload" => "Encaboxar xuba",
|
||||
"Download" => "Descargar",
|
||||
"Delete" => "Desaniciar"
|
||||
|
|
|
@ -69,7 +69,7 @@ $TRANSLATIONS = array(
|
|||
"Maximum upload size" => "Μέγιστο μέγεθος αποστολής",
|
||||
"max. possible: " => "μέγιστο δυνατό:",
|
||||
"Needed for multi-file and folder downloads." => "Απαραίτητο για κατέβασμα πολλαπλών αρχείων και φακέλων",
|
||||
"Enable ZIP-download" => "Ενεργοποίηση κατεβάσματος ZIP",
|
||||
"Enable ZIP-download" => "Επιτρέπεται η λήψη ZIP",
|
||||
"0 is unlimited" => "0 για απεριόριστο",
|
||||
"Maximum input size for ZIP files" => "Μέγιστο μέγεθος για αρχεία ZIP",
|
||||
"Save" => "Αποθήκευση",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Could not move %s - File with this name already exists" => "%s taşınamadı - Bu isimde dosya zaten var",
|
||||
"Could not move %s - File with this name already exists" => "%s taşınamadı. Bu isimde dosya zaten mevcut",
|
||||
"Could not move %s" => "%s taşınamadı",
|
||||
"File name cannot be empty." => "Dosya adı boş olamaz.",
|
||||
"\"%s\" is an invalid file name." => "'%s' geçersiz bir dosya adı.",
|
||||
|
|
|
@ -11,7 +11,7 @@ class Helper
|
|||
$l = new \OC_L10N('files');
|
||||
$maxUploadFilesize = \OCP\Util::maxUploadFilesize($dir, $storageInfo['free']);
|
||||
$maxHumanFilesize = \OCP\Util::humanFileSize($maxUploadFilesize);
|
||||
$maxHumanFilesize = $l->t('Upload') . ' max. ' . $maxHumanFilesize;
|
||||
$maxHumanFilesize = $l->t('Upload (max. %s)', array($maxHumanFilesize));
|
||||
|
||||
return array('uploadMaxFilesize' => $maxUploadFilesize,
|
||||
'maxHumanFilesize' => $maxHumanFilesize,
|
||||
|
@ -73,13 +73,14 @@ class Helper
|
|||
/**
|
||||
* Formats the file info to be returned as JSON to the client.
|
||||
*
|
||||
* @param \OCP\Files\FileInfo file info
|
||||
* @param \OCP\Files\FileInfo $i
|
||||
* @return array formatted file info
|
||||
*/
|
||||
public static function formatFileInfo($i) {
|
||||
$entry = array();
|
||||
|
||||
$entry['id'] = $i['fileid'];
|
||||
$entry['parentId'] = $i['parent'];
|
||||
$entry['date'] = \OCP\Util::formatDate($i['mtime']);
|
||||
$entry['mtime'] = $i['mtime'] * 1000;
|
||||
// only pick out the needed attributes
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
</div>
|
||||
<?php endif;?>
|
||||
<div id="upload" class="button"
|
||||
title="<?php p($l->t('Upload') . ' max. '.$_['uploadMaxHumanFilesize']) ?>">
|
||||
title="<?php p($l->t('Upload (max. %s)', array($_['uploadMaxHumanFilesize']))) ?>">
|
||||
<?php if($_['uploadMaxFilesize'] >= 0):?>
|
||||
<input type="hidden" id="max_upload" name="MAX_FILE_SIZE" value="<?php p($_['uploadMaxFilesize']) ?>">
|
||||
<?php endif;?>
|
||||
|
|
|
@ -6,12 +6,19 @@ $TRANSLATIONS = array(
|
|||
"Please provide a valid Dropbox app key and secret." => "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox",
|
||||
"Error configuring Google Drive storage" => "Error en configurar l'emmagatzemament Google Drive",
|
||||
"Saved" => "Desat",
|
||||
"<b>Note:</b> " => "<b>Nota:</b> ",
|
||||
" and " => "i",
|
||||
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
|
||||
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
|
||||
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
|
||||
"External Storage" => "Emmagatzemament extern",
|
||||
"Folder name" => "Nom de la carpeta",
|
||||
"External storage" => "Emmagatzemament extern",
|
||||
"Configuration" => "Configuració",
|
||||
"Options" => "Options",
|
||||
"Available for" => "Disponible per",
|
||||
"Add storage" => "Afegeix emmagatzemament",
|
||||
"No user or group" => "Sense usuaris o grups",
|
||||
"All Users" => "Tots els usuaris",
|
||||
"Groups" => "Grups",
|
||||
"Users" => "Usuaris",
|
||||
|
|
|
@ -6,12 +6,19 @@ $TRANSLATIONS = array(
|
|||
"Please provide a valid Dropbox app key and secret." => "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbox.",
|
||||
"Error configuring Google Drive storage" => "Chyba při nastavení úložiště Google Drive",
|
||||
"Saved" => "Uloženo",
|
||||
"<b>Note:</b> " => "<b>Poznámka:</b>",
|
||||
" and " => "a",
|
||||
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
|
||||
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
|
||||
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Poznámka:</b> \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.",
|
||||
"External Storage" => "Externí úložiště",
|
||||
"Folder name" => "Název složky",
|
||||
"External storage" => "Externí úložiště",
|
||||
"Configuration" => "Nastavení",
|
||||
"Options" => "Možnosti",
|
||||
"Available for" => "Dostupné pro",
|
||||
"Add storage" => "Přidat úložiště",
|
||||
"No user or group" => "Žádný uživatel nebo skupina.",
|
||||
"All Users" => "Všichni uživatelé",
|
||||
"Groups" => "Skupiny",
|
||||
"Users" => "Uživatelé",
|
||||
|
|
|
@ -6,6 +6,11 @@ $TRANSLATIONS = array(
|
|||
"Please provide a valid Dropbox app key and secret." => "Vpisati je treba veljaven ključ programa in kodo za Dropbox",
|
||||
"Error configuring Google Drive storage" => "Napaka nastavljanja shrambe Google Drive",
|
||||
"Saved" => "Shranjeno",
|
||||
"<b>Note:</b> " => "<b>Opomba:</b> ",
|
||||
" and " => "in",
|
||||
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Opomba:</b> Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
|
||||
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Opomba:</b> Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
|
||||
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Opomba:</b> Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
|
||||
"External Storage" => "Zunanja podatkovna shramba",
|
||||
"Folder name" => "Ime mape",
|
||||
"External storage" => "Zunanja shramba",
|
||||
|
|
|
@ -1,32 +1,3 @@
|
|||
body {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#header {
|
||||
background-color: #1d2d44;
|
||||
height:32px;
|
||||
left:0;
|
||||
line-height:32px;
|
||||
position:fixed;
|
||||
right:0;
|
||||
top:0;
|
||||
z-index:100;
|
||||
padding:7px;
|
||||
}
|
||||
|
||||
.header-right {
|
||||
padding: 0;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
#details {
|
||||
color:#fff;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
filter: alpha(opacity=50);
|
||||
opacity: .5;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#controls {
|
||||
left: 0;
|
||||
}
|
||||
|
@ -99,13 +70,26 @@ thead {
|
|||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
.directDownload,
|
||||
.directLink {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/* keep long file names in one line to not overflow download button on mobile */
|
||||
.directDownload #download {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 90%;
|
||||
display: inline-block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.directDownload .button img {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.directLink label {
|
||||
font-weight: normal;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
|
@ -115,4 +99,5 @@ thead {
|
|||
.directLink input {
|
||||
margin-left: 5px;
|
||||
width: 300px;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
|
|
@ -62,11 +62,17 @@ $(document).ready(function() {
|
|||
|
||||
var file_upload_start = $('#file_upload_start');
|
||||
file_upload_start.on('fileuploadadd', function(e, data) {
|
||||
var fileDirectory = '';
|
||||
if(typeof data.files[0].relativePath !== 'undefined') {
|
||||
fileDirectory = data.files[0].relativePath;
|
||||
}
|
||||
|
||||
// Add custom data to the upload handler
|
||||
data.formData = {
|
||||
requesttoken: $('#publicUploadRequestToken').val(),
|
||||
dirToken: $('#dirToken').val(),
|
||||
subdir: $('input#dir').val()
|
||||
subdir: $('input#dir').val(),
|
||||
file_directory: fileDirectory
|
||||
};
|
||||
});
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ $(document).ready(function() {
|
|||
|
||||
function removeCallback(result) {
|
||||
if (result.status !== 'success') {
|
||||
OC.dialogs.alert(result.data.message, t('core', 'Error'));
|
||||
OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
|
||||
}
|
||||
|
||||
var files = result.data.success;
|
||||
|
@ -59,7 +59,7 @@ $(document).ready(function() {
|
|||
},
|
||||
removeCallback
|
||||
);
|
||||
});
|
||||
}, t('files_trashbin', 'Restore'));
|
||||
};
|
||||
|
||||
FileActions.register('all', 'Delete', OC.PERMISSION_READ, function() {
|
||||
|
@ -121,7 +121,7 @@ $(document).ready(function() {
|
|||
function(result) {
|
||||
if (allFiles) {
|
||||
if (result.status !== 'success') {
|
||||
OC.dialogs.alert(result.data.message, t('core', 'Error'));
|
||||
OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
|
||||
}
|
||||
FileList.hideMask();
|
||||
// simply remove all files
|
||||
|
@ -170,7 +170,7 @@ $(document).ready(function() {
|
|||
function(result) {
|
||||
if (allFiles) {
|
||||
if (result.status !== 'success') {
|
||||
OC.dialogs.alert(result.data.message, t('core', 'Error'));
|
||||
OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
|
||||
}
|
||||
FileList.hideMask();
|
||||
// simply remove all files
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "تعذّر استرجاع %s ",
|
||||
"Deleted files" => "حذف الملفات",
|
||||
"Error" => "خطأ",
|
||||
"Deleted Files" => "الملفات المحذوفه",
|
||||
"restored" => "تمت الاستعادة",
|
||||
"Nothing in here. Your trash bin is empty!" => "لا يوجد شيء هنا. سلة المهملات خاليه.",
|
||||
"Name" => "اسم",
|
||||
"Restore" => "استعيد",
|
||||
"Deleted" => "تم الحذف",
|
||||
"Delete" => "إلغاء",
|
||||
"Deleted Files" => "الملفات المحذوفه"
|
||||
"Delete" => "إلغاء"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;";
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Couldn't delete %s permanently" => "Nun pudo desaniciase %s dafechu",
|
||||
"Couldn't restore %s" => "Nun pudo restaurase %s",
|
||||
"Error" => "Fallu",
|
||||
"Deleted Files" => "Ficheros desaniciaos",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nun hai un res equí. La papelera ta balera!",
|
||||
"Name" => "Nome",
|
||||
"Restore" => "Restaurar",
|
||||
"Deleted" => "Desaniciáu",
|
||||
"Delete" => "Desaniciar"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -3,11 +3,11 @@ $TRANSLATIONS = array(
|
|||
"Couldn't delete %s permanently" => "Невъзможно перманентното изтриване на %s",
|
||||
"Couldn't restore %s" => "Невъзможно възтановяване на %s",
|
||||
"Error" => "Грешка",
|
||||
"Deleted Files" => "Изтрити файлове",
|
||||
"Nothing in here. Your trash bin is empty!" => "Няма нищо. Кофата е празна!",
|
||||
"Name" => "Име",
|
||||
"Restore" => "Възтановяване",
|
||||
"Deleted" => "Изтрито",
|
||||
"Delete" => "Изтриване",
|
||||
"Deleted Files" => "Изтрити файлове"
|
||||
"Delete" => "Изтриване"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "No s'ha pogut restaurar %s",
|
||||
"Deleted files" => "Fitxers esborrats",
|
||||
"Error" => "Error",
|
||||
"Deleted Files" => "Fitxers eliminats",
|
||||
"restored" => "restaurat",
|
||||
"Nothing in here. Your trash bin is empty!" => "La paperera està buida!",
|
||||
"Name" => "Nom",
|
||||
"Restore" => "Recupera",
|
||||
"Deleted" => "Eliminat",
|
||||
"Delete" => "Esborra",
|
||||
"Deleted Files" => "Fitxers eliminats"
|
||||
"Delete" => "Esborra"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nelze obnovit %s",
|
||||
"Deleted files" => "Odstraněné soubory",
|
||||
"Error" => "Chyba",
|
||||
"Deleted Files" => "Smazané soubory",
|
||||
"restored" => "obnoveno",
|
||||
"Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.",
|
||||
"Name" => "Název",
|
||||
"Restore" => "Obnovit",
|
||||
"Deleted" => "Smazáno",
|
||||
"Delete" => "Smazat",
|
||||
"Deleted Files" => "Smazané soubory"
|
||||
"Delete" => "Smazat"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
|
||||
|
|
|
@ -4,11 +4,11 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Methwyd adfer %s",
|
||||
"Deleted files" => "Ffeiliau ddilewyd",
|
||||
"Error" => "Gwall",
|
||||
"Deleted Files" => "Ffeiliau Ddilewyd",
|
||||
"Nothing in here. Your trash bin is empty!" => "Does dim byd yma. Mae eich bin sbwriel yn wag!",
|
||||
"Name" => "Enw",
|
||||
"Restore" => "Adfer",
|
||||
"Deleted" => "Wedi dileu",
|
||||
"Delete" => "Dileu",
|
||||
"Deleted Files" => "Ffeiliau Ddilewyd"
|
||||
"Delete" => "Dileu"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Kunne ikke gendanne %s",
|
||||
"Deleted files" => "Slettede filer",
|
||||
"Error" => "Fejl",
|
||||
"Deleted Files" => "Slettede filer",
|
||||
"restored" => "Gendannet",
|
||||
"Nothing in here. Your trash bin is empty!" => "Intet at se her. Din papirkurv er tom!",
|
||||
"Name" => "Navn",
|
||||
"Restore" => "Gendan",
|
||||
"Deleted" => "Slettet",
|
||||
"Delete" => "Slet",
|
||||
"Deleted Files" => "Slettede filer"
|
||||
"Delete" => "Slet"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
|
||||
"Deleted files" => "Gelöschte Dateien",
|
||||
"Error" => "Fehler",
|
||||
"Deleted Files" => "Gelöschte Dateien",
|
||||
"restored" => "Wiederhergestellt",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!",
|
||||
"Name" => "Name",
|
||||
"Restore" => "Wiederherstellen",
|
||||
"Deleted" => "gelöscht",
|
||||
"Delete" => "Löschen",
|
||||
"Deleted Files" => "Gelöschte Dateien"
|
||||
"Delete" => "Löschen"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
|
||||
"Deleted files" => "Gelöschte Dateien",
|
||||
"Error" => "Fehler",
|
||||
"Deleted Files" => "Gelöschte Dateien",
|
||||
"restored" => "Wiederhergestellt",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
|
||||
"Name" => "Name",
|
||||
"Restore" => "Wiederherstellen",
|
||||
"Deleted" => "Gelöscht",
|
||||
"Delete" => "Löschen",
|
||||
"Deleted Files" => "Gelöschte Dateien"
|
||||
"Delete" => "Löschen"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
|
||||
"Deleted files" => "Gelöschte Dateien",
|
||||
"Error" => "Fehler",
|
||||
"Deleted Files" => "Gelöschte Dateien",
|
||||
"restored" => "Wiederhergestellt",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
|
||||
"Name" => "Name",
|
||||
"Restore" => "Wiederherstellen",
|
||||
"Deleted" => "Gelöscht",
|
||||
"Delete" => "Löschen",
|
||||
"Deleted Files" => "Gelöschte Dateien"
|
||||
"Delete" => "Löschen"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Αδυναμία επαναφοράς %s",
|
||||
"Deleted files" => "Διαγραμμένα αρχεία",
|
||||
"Error" => "Σφάλμα",
|
||||
"Deleted Files" => "Διαγραμμένα Αρχεία",
|
||||
"restored" => "επαναφέρθηκαν",
|
||||
"Nothing in here. Your trash bin is empty!" => "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!",
|
||||
"Name" => "Όνομα",
|
||||
"Restore" => "Επαναφορά",
|
||||
"Deleted" => "Διαγραμμένα",
|
||||
"Delete" => "Διαγραφή",
|
||||
"Deleted Files" => "Διαγραμμένα Αρχεία"
|
||||
"Delete" => "Διαγραφή"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Couldn't restore %s",
|
||||
"Deleted files" => "Deleted files",
|
||||
"Error" => "Error",
|
||||
"Deleted Files" => "Deleted Files",
|
||||
"restored" => "restored",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nothing in here. Your recycle bin is empty!",
|
||||
"Name" => "Name",
|
||||
"Restore" => "Restore",
|
||||
"Deleted" => "Deleted",
|
||||
"Delete" => "Delete",
|
||||
"Deleted Files" => "Deleted Files"
|
||||
"Delete" => "Delete"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Ne povis restaŭriĝi %s",
|
||||
"Deleted files" => "Forigitaj dosieroj",
|
||||
"Error" => "Eraro",
|
||||
"Deleted Files" => "Forigitaj dosieroj",
|
||||
"restored" => "restaŭrita",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nenio estas ĉi tie. Via rubujo malplenas!",
|
||||
"Name" => "Nomo",
|
||||
"Restore" => "Restaŭri",
|
||||
"Deleted" => "Forigita",
|
||||
"Delete" => "Forigi",
|
||||
"Deleted Files" => "Forigitaj dosieroj"
|
||||
"Delete" => "Forigi"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "No se puede restaurar %s",
|
||||
"Deleted files" => "Archivos eliminados",
|
||||
"Error" => "Error",
|
||||
"Deleted Files" => "Archivos Eliminados",
|
||||
"restored" => "recuperado",
|
||||
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
|
||||
"Name" => "Nombre",
|
||||
"Restore" => "Recuperar",
|
||||
"Deleted" => "Eliminado",
|
||||
"Delete" => "Eliminar",
|
||||
"Deleted Files" => "Archivos Eliminados"
|
||||
"Delete" => "Eliminar"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "No se pudo restaurar %s",
|
||||
"Deleted files" => "Archivos borrados",
|
||||
"Error" => "Error",
|
||||
"Deleted Files" => "Archivos eliminados",
|
||||
"restored" => "recuperado",
|
||||
"Nothing in here. Your trash bin is empty!" => "No hay nada acá. ¡La papelera está vacía!",
|
||||
"Name" => "Nombre",
|
||||
"Restore" => "Recuperar",
|
||||
"Deleted" => "Borrado",
|
||||
"Delete" => "Borrar",
|
||||
"Deleted Files" => "Archivos eliminados"
|
||||
"Delete" => "Borrar"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "No se puede restaurar %s",
|
||||
"Deleted files" => "Archivos eliminados",
|
||||
"Error" => "Error",
|
||||
"Deleted Files" => "Archivos Eliminados",
|
||||
"restored" => "recuperado",
|
||||
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
|
||||
"Name" => "Nombre",
|
||||
"Restore" => "Recuperar",
|
||||
"Deleted" => "Eliminado",
|
||||
"Delete" => "Eliminar",
|
||||
"Deleted Files" => "Archivos Eliminados"
|
||||
"Delete" => "Eliminar"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "%s ei saa taastada",
|
||||
"Deleted files" => "Kustutatud failid",
|
||||
"Error" => "Viga",
|
||||
"Deleted Files" => "Kustutatud failid",
|
||||
"restored" => "taastatud",
|
||||
"Nothing in here. Your trash bin is empty!" => "Siin pole midagi. Sinu prügikast on tühi!",
|
||||
"Name" => "Nimi",
|
||||
"Restore" => "Taasta",
|
||||
"Deleted" => "Kustutatud",
|
||||
"Delete" => "Kustuta",
|
||||
"Deleted Files" => "Kustutatud failid"
|
||||
"Delete" => "Kustuta"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Ezin izan da %s berreskuratu",
|
||||
"Deleted files" => "Ezabatutako fitxategiak",
|
||||
"Error" => "Errorea",
|
||||
"Deleted Files" => "Ezabatutako Fitxategiak",
|
||||
"restored" => "Berrezarrita",
|
||||
"Nothing in here. Your trash bin is empty!" => "Ez dago ezer ez. Zure zakarrontzia hutsik dago!",
|
||||
"Name" => "Izena",
|
||||
"Restore" => "Berrezarri",
|
||||
"Deleted" => "Ezabatuta",
|
||||
"Delete" => "Ezabatu",
|
||||
"Deleted Files" => "Ezabatutako Fitxategiak"
|
||||
"Delete" => "Ezabatu"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,11 +4,11 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "%s را نمی توان بازگرداند",
|
||||
"Deleted files" => "فایل های حذف شده",
|
||||
"Error" => "خطا",
|
||||
"Deleted Files" => "فایلهای حذف شده",
|
||||
"Nothing in here. Your trash bin is empty!" => "هیچ چیزی اینجا نیست. سطل زباله ی شما خالی است.",
|
||||
"Name" => "نام",
|
||||
"Restore" => "بازیابی",
|
||||
"Deleted" => "حذف شده",
|
||||
"Delete" => "حذف",
|
||||
"Deleted Files" => "فایلهای حذف شده"
|
||||
"Delete" => "حذف"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Kohteen %s palautus epäonnistui",
|
||||
"Deleted files" => "Poistetut tiedostot",
|
||||
"Error" => "Virhe",
|
||||
"Deleted Files" => "Poistetut tiedostot",
|
||||
"restored" => "palautettu",
|
||||
"Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.",
|
||||
"Name" => "Nimi",
|
||||
"Restore" => "Palauta",
|
||||
"Deleted" => "Poistettu",
|
||||
"Delete" => "Poista",
|
||||
"Deleted Files" => "Poistetut tiedostot"
|
||||
"Delete" => "Poista"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Impossible de restaurer %s",
|
||||
"Deleted files" => "Fichiers supprimés",
|
||||
"Error" => "Erreur",
|
||||
"Deleted Files" => "Fichiers effacés",
|
||||
"restored" => "restauré",
|
||||
"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !",
|
||||
"Name" => "Nom",
|
||||
"Restore" => "Restaurer",
|
||||
"Deleted" => "Effacé",
|
||||
"Delete" => "Supprimer",
|
||||
"Deleted Files" => "Fichiers effacés"
|
||||
"Delete" => "Supprimer"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Non foi posíbel restaurar %s",
|
||||
"Deleted files" => "Ficheiros eliminados",
|
||||
"Error" => "Erro",
|
||||
"Deleted Files" => "Ficheiros eliminados",
|
||||
"restored" => "restaurado",
|
||||
"Nothing in here. Your trash bin is empty!" => "Aquí non hai nada. O cesto do lixo está baleiro!",
|
||||
"Name" => "Nome",
|
||||
"Restore" => "Restablecer",
|
||||
"Deleted" => "Eliminado",
|
||||
"Delete" => "Eliminar",
|
||||
"Deleted Files" => "Ficheiros eliminados"
|
||||
"Delete" => "Eliminar"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "לא ניתן לשחזר את %s",
|
||||
"Deleted files" => "קבצים שנמחקו",
|
||||
"Error" => "שגיאה",
|
||||
"Deleted Files" => "קבצים שנמחקו",
|
||||
"restored" => "שוחזר",
|
||||
"Nothing in here. Your trash bin is empty!" => "אין כאן שום דבר. סל המיחזור שלך ריק!",
|
||||
"Name" => "שם",
|
||||
"Restore" => "שחזור",
|
||||
"Deleted" => "נמחק",
|
||||
"Delete" => "מחיקה",
|
||||
"Deleted Files" => "קבצים שנמחקו"
|
||||
"Delete" => "מחיקה"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nem sikerült %s visszaállítása",
|
||||
"Deleted files" => "Törölt fájlok",
|
||||
"Error" => "Hiba",
|
||||
"Deleted Files" => "Törölt fájlok",
|
||||
"restored" => "visszaállítva",
|
||||
"Nothing in here. Your trash bin is empty!" => "Itt nincs semmi. Az Ön szemetes mappája üres!",
|
||||
"Name" => "Név",
|
||||
"Restore" => "Visszaállítás",
|
||||
"Deleted" => "Törölve",
|
||||
"Delete" => "Törlés",
|
||||
"Deleted Files" => "Törölt fájlok"
|
||||
"Delete" => "Törlés"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,11 +4,11 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Tidak dapat memulihkan %s",
|
||||
"Deleted files" => "Berkas yang dihapus",
|
||||
"Error" => "Galat",
|
||||
"Deleted Files" => "Berkas yang Dihapus",
|
||||
"Nothing in here. Your trash bin is empty!" => "Tempat sampah anda kosong!",
|
||||
"Name" => "Nama",
|
||||
"Restore" => "Pulihkan",
|
||||
"Deleted" => "Dihapus",
|
||||
"Delete" => "Hapus",
|
||||
"Deleted Files" => "Berkas yang Dihapus"
|
||||
"Delete" => "Hapus"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Impossibile ripristinare %s",
|
||||
"Deleted files" => "File eliminati",
|
||||
"Error" => "Errore",
|
||||
"Deleted Files" => "File eliminati",
|
||||
"restored" => "ripristinati",
|
||||
"Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.",
|
||||
"Name" => "Nome",
|
||||
"Restore" => "Ripristina",
|
||||
"Deleted" => "Eliminati",
|
||||
"Delete" => "Elimina",
|
||||
"Deleted Files" => "File eliminati"
|
||||
"Delete" => "Elimina"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "%s を復元できませんでした",
|
||||
"Deleted files" => "ゴミ箱",
|
||||
"Error" => "エラー",
|
||||
"Deleted Files" => "ゴミ箱",
|
||||
"restored" => "復元済",
|
||||
"Nothing in here. Your trash bin is empty!" => "ここには何もありません。ゴミ箱は空です!",
|
||||
"Name" => "名前",
|
||||
"Restore" => "復元",
|
||||
"Deleted" => "削除済み",
|
||||
"Delete" => "削除",
|
||||
"Deleted Files" => "ゴミ箱"
|
||||
"Delete" => "削除"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,11 +4,11 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "%s–ის აღდგენა ვერ მოხერხდა",
|
||||
"Deleted files" => "წაშლილი ფაილები",
|
||||
"Error" => "შეცდომა",
|
||||
"Deleted Files" => "წაშლილი ფაილები",
|
||||
"Nothing in here. Your trash bin is empty!" => "აქ არაფერი არ არის. სანაგვე ყუთი ცარიელია!",
|
||||
"Name" => "სახელი",
|
||||
"Restore" => "აღდგენა",
|
||||
"Deleted" => "წაშლილი",
|
||||
"Delete" => "წაშლა",
|
||||
"Deleted Files" => "წაშლილი ფაილები"
|
||||
"Delete" => "წაშლა"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "%s을(를) 복원할 수 없습니다",
|
||||
"Deleted files" => "삭제된 파일",
|
||||
"Error" => "오류",
|
||||
"Deleted Files" => "삭제된 파일",
|
||||
"restored" => "복원됨",
|
||||
"Nothing in here. Your trash bin is empty!" => "휴지통이 비어 있습니다!",
|
||||
"Name" => "이름",
|
||||
"Restore" => "복원",
|
||||
"Deleted" => "삭제됨",
|
||||
"Delete" => "삭제",
|
||||
"Deleted Files" => "삭제된 파일"
|
||||
"Delete" => "삭제"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nepavyko atkurti %s",
|
||||
"Deleted files" => "Ištrinti failai",
|
||||
"Error" => "Klaida",
|
||||
"Deleted Files" => "Ištrinti failai",
|
||||
"restored" => "atstatyta",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nieko nėra. Jūsų šiukšliadėžė tuščia!",
|
||||
"Name" => "Pavadinimas",
|
||||
"Restore" => "Atstatyti",
|
||||
"Deleted" => "Ištrinti",
|
||||
"Delete" => "Ištrinti",
|
||||
"Deleted Files" => "Ištrinti failai"
|
||||
"Delete" => "Ištrinti"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nevarēja atjaunot %s",
|
||||
"Deleted files" => "Dzēstās datnes",
|
||||
"Error" => "Kļūda",
|
||||
"Deleted Files" => "Dzēstās datnes",
|
||||
"restored" => "atjaunots",
|
||||
"Nothing in here. Your trash bin is empty!" => "Šeit nekā nav. Jūsu miskaste ir tukša!",
|
||||
"Name" => "Nosaukums",
|
||||
"Restore" => "Atjaunot",
|
||||
"Deleted" => "Dzēsts",
|
||||
"Delete" => "Dzēst",
|
||||
"Deleted Files" => "Dzēstās datnes"
|
||||
"Delete" => "Dzēst"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Не можеше да се поврати %s",
|
||||
"Deleted files" => "Избришани датотеки",
|
||||
"Error" => "Грешка",
|
||||
"Deleted Files" => "Избришани датотеки",
|
||||
"restored" => "повратени",
|
||||
"Nothing in here. Your trash bin is empty!" => "Тука нема ништо. Вашата корпа за отпадоци е празна!",
|
||||
"Name" => "Име",
|
||||
"Restore" => "Поврати",
|
||||
"Deleted" => "Избришан",
|
||||
"Delete" => "Избриши",
|
||||
"Deleted Files" => "Избришани датотеки"
|
||||
"Delete" => "Избриши"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;";
|
||||
|
|
|
@ -3,12 +3,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't delete %s permanently" => "Tidak dapat menghapuskan %s secara kekal",
|
||||
"Couldn't restore %s" => "Tidak dapat memulihkan %s",
|
||||
"Error" => "Ralat",
|
||||
"Deleted Files" => "Fail Dihapus",
|
||||
"restored" => "dipulihkan",
|
||||
"Nothing in here. Your trash bin is empty!" => "Tiada apa disini. Tong sampah anda kosong!",
|
||||
"Name" => "Nama",
|
||||
"Restore" => "Pulihkan",
|
||||
"Deleted" => "Dihapuskan",
|
||||
"Delete" => "Padam",
|
||||
"Deleted Files" => "Fail Dihapus"
|
||||
"Delete" => "Padam"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Kunne ikke gjenopprette %s",
|
||||
"Deleted files" => "Slettede filer",
|
||||
"Error" => "Feil",
|
||||
"Deleted Files" => "Slettede filer",
|
||||
"restored" => "gjenopprettet",
|
||||
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Søppelkassen din er tom!",
|
||||
"Name" => "Navn",
|
||||
"Restore" => "Gjenopprett",
|
||||
"Deleted" => "Slettet",
|
||||
"Delete" => "Slett",
|
||||
"Deleted Files" => "Slettede filer"
|
||||
"Delete" => "Slett"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Kon %s niet herstellen",
|
||||
"Deleted files" => "Verwijderde bestanden",
|
||||
"Error" => "Fout",
|
||||
"Deleted Files" => "Verwijderde bestanden",
|
||||
"restored" => "hersteld",
|
||||
"Nothing in here. Your trash bin is empty!" => "Niets te vinden. Uw prullenbak is leeg!",
|
||||
"Name" => "Naam",
|
||||
"Restore" => "Herstellen",
|
||||
"Deleted" => "Verwijderd",
|
||||
"Delete" => "Verwijder",
|
||||
"Deleted Files" => "Verwijderde bestanden"
|
||||
"Delete" => "Verwijder"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Klarte ikkje gjenoppretta %s",
|
||||
"Deleted files" => "Sletta filer",
|
||||
"Error" => "Feil",
|
||||
"Deleted Files" => "Sletta filer",
|
||||
"restored" => "gjenoppretta",
|
||||
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Papirkorga di er tom!",
|
||||
"Name" => "Namn",
|
||||
"Restore" => "Gjenopprett",
|
||||
"Deleted" => "Sletta",
|
||||
"Delete" => "Slett",
|
||||
"Deleted Files" => "Sletta filer"
|
||||
"Delete" => "Slett"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nie można przywrócić %s",
|
||||
"Deleted files" => "Pliki usunięte",
|
||||
"Error" => "Błąd",
|
||||
"Deleted Files" => "Usunięte pliki",
|
||||
"restored" => "przywrócony",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nic tu nie ma. Twój kosz jest pusty!",
|
||||
"Name" => "Nazwa",
|
||||
"Restore" => "Przywróć",
|
||||
"Deleted" => "Usunięte",
|
||||
"Delete" => "Usuń",
|
||||
"Deleted Files" => "Usunięte pliki"
|
||||
"Delete" => "Usuń"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Não foi possível restaurar %s",
|
||||
"Deleted files" => "Arquivos apagados",
|
||||
"Error" => "Erro",
|
||||
"Deleted Files" => "Arquivos Apagados",
|
||||
"restored" => "restaurado",
|
||||
"Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!",
|
||||
"Name" => "Nome",
|
||||
"Restore" => "Restaurar",
|
||||
"Deleted" => "Excluído",
|
||||
"Delete" => "Excluir",
|
||||
"Deleted Files" => "Arquivos Apagados"
|
||||
"Delete" => "Excluir"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Não foi possível restaurar %s",
|
||||
"Deleted files" => "Ficheiros eliminados",
|
||||
"Error" => "Erro",
|
||||
"Deleted Files" => "Ficheiros Apagados",
|
||||
"restored" => "Restaurado",
|
||||
"Nothing in here. Your trash bin is empty!" => "Não hà ficheiros. O lixo está vazio!",
|
||||
"Name" => "Nome",
|
||||
"Restore" => "Restaurar",
|
||||
"Deleted" => "Apagado",
|
||||
"Delete" => "Eliminar",
|
||||
"Deleted Files" => "Ficheiros Apagados"
|
||||
"Delete" => "Eliminar"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "%s не может быть восстановлен",
|
||||
"Deleted files" => "Удалённые файлы",
|
||||
"Error" => "Ошибка",
|
||||
"Deleted Files" => "Удаленные файлы",
|
||||
"restored" => "восстановлен",
|
||||
"Nothing in here. Your trash bin is empty!" => "Здесь ничего нет. Ваша корзина пуста!",
|
||||
"Name" => "Имя",
|
||||
"Restore" => "Восстановить",
|
||||
"Deleted" => "Удалён",
|
||||
"Delete" => "Удалить",
|
||||
"Deleted Files" => "Удаленные файлы"
|
||||
"Delete" => "Удалить"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nemožno obnoviť %s",
|
||||
"Deleted files" => "Zmazané súbory",
|
||||
"Error" => "Chyba",
|
||||
"Deleted Files" => "Zmazané súbory",
|
||||
"restored" => "obnovené",
|
||||
"Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!",
|
||||
"Name" => "Názov",
|
||||
"Restore" => "Obnoviť",
|
||||
"Deleted" => "Zmazané",
|
||||
"Delete" => "Zmazať",
|
||||
"Deleted Files" => "Zmazané súbory"
|
||||
"Delete" => "Zmazať"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Ni mogoče obnoviti %s",
|
||||
"Deleted files" => "Izbrisane datoteke",
|
||||
"Error" => "Napaka",
|
||||
"Deleted Files" => "Izbrisane datoteke",
|
||||
"restored" => "obnovljeno",
|
||||
"Nothing in here. Your trash bin is empty!" => "Mapa smeti je prazna.",
|
||||
"Name" => "Ime",
|
||||
"Restore" => "Obnovi",
|
||||
"Deleted" => "Izbrisano",
|
||||
"Delete" => "Izbriši",
|
||||
"Deleted Files" => "Izbrisane datoteke"
|
||||
"Delete" => "Izbriši"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Nuk munda ta rivendos %s",
|
||||
"Deleted files" => "Skedarë të fshirë ",
|
||||
"Error" => "Veprim i gabuar",
|
||||
"Deleted Files" => "Skedarë të eliminuar",
|
||||
"restored" => "rivendosur",
|
||||
"Nothing in here. Your trash bin is empty!" => "Këtu nuk ka asgjë. Koshi juaj është bosh!",
|
||||
"Name" => "Emri",
|
||||
"Restore" => "Rivendos",
|
||||
"Deleted" => "Eliminuar",
|
||||
"Delete" => "Elimino",
|
||||
"Deleted Files" => "Skedarë të eliminuar"
|
||||
"Delete" => "Elimino"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Kunde inte återställa %s",
|
||||
"Deleted files" => "Raderade filer",
|
||||
"Error" => "Fel",
|
||||
"Deleted Files" => "Raderade filer",
|
||||
"restored" => "återställd",
|
||||
"Nothing in here. Your trash bin is empty!" => "Ingenting här. Din papperskorg är tom!",
|
||||
"Name" => "Namn",
|
||||
"Restore" => "Återskapa",
|
||||
"Deleted" => "Raderad",
|
||||
"Delete" => "Radera",
|
||||
"Deleted Files" => "Raderade filer"
|
||||
"Delete" => "Radera"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Error" => "ข้อผิดพลาด",
|
||||
"Deleted Files" => "ไฟล์ที่ลบทิ้ง",
|
||||
"Nothing in here. Your trash bin is empty!" => "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่",
|
||||
"Name" => "ชื่อ",
|
||||
"Restore" => "คืนค่า",
|
||||
"Deleted" => "ลบแล้ว",
|
||||
"Delete" => "ลบ",
|
||||
"Deleted Files" => "ไฟล์ที่ลบทิ้ง"
|
||||
"Delete" => "ลบ"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Неможливо відновити %s",
|
||||
"Deleted files" => "Видалено файлів",
|
||||
"Error" => "Помилка",
|
||||
"Deleted Files" => "Видалено Файлів",
|
||||
"restored" => "відновлено",
|
||||
"Nothing in here. Your trash bin is empty!" => "Нічого немає. Ваший кошик для сміття пустий!",
|
||||
"Name" => "Ім'я",
|
||||
"Restore" => "Відновити",
|
||||
"Deleted" => "Видалено",
|
||||
"Delete" => "Видалити",
|
||||
"Deleted Files" => "Видалено Файлів"
|
||||
"Delete" => "Видалити"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "Không thể khôi phục %s",
|
||||
"Deleted files" => "File đã bị xóa",
|
||||
"Error" => "Lỗi",
|
||||
"Deleted Files" => "File đã xóa",
|
||||
"restored" => "khôi phục",
|
||||
"Nothing in here. Your trash bin is empty!" => "Không có gì ở đây. Thùng rác của bạn rỗng!",
|
||||
"Name" => "Tên",
|
||||
"Restore" => "Khôi phục",
|
||||
"Deleted" => "Đã xóa",
|
||||
"Delete" => "Xóa",
|
||||
"Deleted Files" => "File đã xóa"
|
||||
"Delete" => "Xóa"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "无法恢复%s",
|
||||
"Deleted files" => "已删除文件",
|
||||
"Error" => "错误",
|
||||
"Deleted Files" => "已删除文件",
|
||||
"restored" => "已恢复",
|
||||
"Nothing in here. Your trash bin is empty!" => "这里没有东西. 你的回收站是空的!",
|
||||
"Name" => "名称",
|
||||
"Restore" => "恢复",
|
||||
"Deleted" => "已删除",
|
||||
"Delete" => "删除",
|
||||
"Deleted Files" => "已删除文件"
|
||||
"Delete" => "删除"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -4,12 +4,12 @@ $TRANSLATIONS = array(
|
|||
"Couldn't restore %s" => "無法還原 %s",
|
||||
"Deleted files" => "回收桶",
|
||||
"Error" => "錯誤",
|
||||
"Deleted Files" => "已刪除的檔案",
|
||||
"restored" => "已還原",
|
||||
"Nothing in here. Your trash bin is empty!" => "您的回收桶是空的!",
|
||||
"Name" => "名稱",
|
||||
"Restore" => "還原",
|
||||
"Deleted" => "已刪除",
|
||||
"Delete" => "刪除",
|
||||
"Deleted Files" => "已刪除的檔案"
|
||||
"Delete" => "刪除"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=1; plural=0;";
|
||||
|
|
|
@ -824,13 +824,15 @@ class Trashbin {
|
|||
$matches = glob($escapedVersionsName . '*');
|
||||
}
|
||||
|
||||
foreach ($matches as $ma) {
|
||||
if ($timestamp) {
|
||||
$parts = explode('.v', substr($ma, 0, $offset));
|
||||
$versions[] = (end($parts));
|
||||
} else {
|
||||
$parts = explode('.v', $ma);
|
||||
$versions[] = (end($parts));
|
||||
if (is_array($matches)) {
|
||||
foreach ($matches as $ma) {
|
||||
if ($timestamp) {
|
||||
$parts = explode('.v', substr($ma, 0, $offset));
|
||||
$versions[] = (end($parts));
|
||||
} else {
|
||||
$parts = explode('.v', $ma);
|
||||
$versions[] = (end($parts));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $versions;
|
||||
|
@ -921,13 +923,11 @@ class Trashbin {
|
|||
public static function isEmpty($user) {
|
||||
|
||||
$view = new \OC\Files\View('/' . $user . '/files_trashbin');
|
||||
$dh = $view->opendir('/files');
|
||||
if (!$dh) {
|
||||
return false;
|
||||
}
|
||||
while ($file = readdir($dh)) {
|
||||
if ($file !== '.' and $file !== '..') {
|
||||
return false;
|
||||
if ($view->is_dir('/files') && $dh = $view->opendir('/files')) {
|
||||
while ($file = readdir($dh)) {
|
||||
if ($file !== '.' and $file !== '..') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Could not revert: %s" => "Nun pudo revertise: %s",
|
||||
"Versions" => "Versiones",
|
||||
"Failed to revert {file} to revision {timestamp}." => "Fallu al revertir {file} a la revisión {timestamp}.",
|
||||
"More versions..." => "Más versiones...",
|
||||
"No other versions available" => "Nun hai otres versiones disponibles",
|
||||
"Restore" => "Restaurar"
|
||||
|
|
|
@ -88,6 +88,10 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
|
|||
return $isInGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $dnGroup
|
||||
* @param array|null &$seen
|
||||
*/
|
||||
private function _groupMembers($dnGroup, &$seen = null) {
|
||||
if ($seen === null) {
|
||||
$seen = array();
|
||||
|
@ -163,6 +167,10 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
|
|||
return $groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $dn
|
||||
* @param array|null &$seen
|
||||
*/
|
||||
private function getGroupsByMember($dn, &$seen = null) {
|
||||
if ($seen === null) {
|
||||
$seen = array();
|
||||
|
@ -454,6 +462,9 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
|
|||
return $allGroups;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $group
|
||||
*/
|
||||
public function groupMatchesFilter($group) {
|
||||
return (strripos($group, $this->groupSearch) !== false);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,41 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"The configuration is invalid. Please have a look at the logs for further details." => "La configuración nun ye válida. Por favor, écha-y un güeyu a los rexistros pa más detalles.",
|
||||
"No action specified" => "Nun s'especificó l'aición",
|
||||
"No configuration specified" => "Nun s'especificó la configuración",
|
||||
"No data specified" => "Nun s'especificaron los datos",
|
||||
" Could not set configuration %s" => "Nun pudo afitase la configuración %s",
|
||||
"Deletion failed" => "Falló'l borráu",
|
||||
"Keep settings?" => "¿Caltener los axustes?",
|
||||
"Cannot add server configuration" => "Nun pue amestase la configuración del sirvidor",
|
||||
"Success" => "Con ésitu",
|
||||
"Error" => "Fallu",
|
||||
"_%s group found_::_%s groups found_" => array("",""),
|
||||
"_%s user found_::_%s users found_" => array("",""),
|
||||
"Configuration incorrect" => "Configuración incorreuta",
|
||||
"Configuration incomplete" => "Configuración incompleta",
|
||||
"Select groups" => "Esbillar grupos",
|
||||
"Select attributes" => "Esbillar atributos",
|
||||
"_%s group found_::_%s groups found_" => array("%s grupu alcontráu","%s grupos alcontraos"),
|
||||
"_%s user found_::_%s users found_" => array("%s usuariu alcontráu","%s usuarios alcontraos"),
|
||||
"Could not find the desired feature" => "Nun pudo alcontrase la carauterística deseyada",
|
||||
"Save" => "Guardar",
|
||||
"groups found" => "grupos alcontraos",
|
||||
"Users login with this attribute:" => "Aniciu de sesión d'usuarios con esti atributu:",
|
||||
"LDAP Username:" => "Nome d'usuariu LDAP",
|
||||
"Other Attributes:" => "Otros atributos:",
|
||||
"Add Server Configuration" => "Amestar configuración del sirvidor",
|
||||
"Host" => "Equipu",
|
||||
"Port" => "Puertu",
|
||||
"Password" => "Contraseña",
|
||||
"Continue" => "Continuar"
|
||||
"For anonymous access, leave DN and Password empty." => "Pa un accesu anónimu, dexar el DN y la contraseña baleros.",
|
||||
"users found" => "usuarios alcontraos",
|
||||
"Continue" => "Continuar",
|
||||
"Connection Settings" => "Axustes de conexón",
|
||||
"Configuration Active" => "Configuración activa",
|
||||
"When unchecked, this configuration will be skipped." => "Cuando nun tea conseñáu, saltaráse esta configuración.",
|
||||
"Disable Main Server" => "Deshabilitar sirvidor principal",
|
||||
"Turn off SSL certificate validation." => "Apagar la validación del certificáu SSL.",
|
||||
"Directory Settings" => "Axustes del direutoriu",
|
||||
"in bytes" => "en bytes",
|
||||
"Internal Username" => "Nome d'usuariu internu"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -70,6 +70,7 @@ $TRANSLATIONS = array(
|
|||
"Backup (Replica) Port" => "Port de la còpia de seguretat (rèplica)",
|
||||
"Disable Main Server" => "Desactiva el servidor principal",
|
||||
"Only connect to the replica server." => "Connecta només al servidor rèplica.",
|
||||
"Case insensitive LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
|
||||
"Turn off SSL certificate validation." => "Desactiva la validació de certificat SSL.",
|
||||
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No es recomana, useu-ho només com a prova! Importeu el certificat SSL del servidor LDAP al servidor %s només si la connexió funciona amb aquesta opció.",
|
||||
"Cache Time-To-Live" => "Memòria de cau Time-To-Live",
|
||||
|
@ -89,6 +90,8 @@ $TRANSLATIONS = array(
|
|||
"Group-Member association" => "Associació membres-grup",
|
||||
"Nested Groups" => "Grups imbricats",
|
||||
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Quan està activat, els grups que contenen grups estan permesos. (Només funciona si l'atribut del grup membre conté DNs.)",
|
||||
"Paging chunksize" => "Mida de la pàgina",
|
||||
"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "Mida usada per cerques LDAP paginades que podrien retornar respostes de volcat com enumeració d'usuari o grup. (Establint-ho a 0 desactiva les cerques LDAP paginades en aquestes situacions.)",
|
||||
"Special Attributes" => "Atributs especials",
|
||||
"Quota Field" => "Camp de quota",
|
||||
"Quota Default" => "Quota per defecte",
|
||||
|
|
|
@ -659,7 +659,7 @@ class Access extends LDAPUtility {
|
|||
* @param string $filter
|
||||
*/
|
||||
public function countUsers($filter, $attr = array('dn'), $limit = null, $offset = null) {
|
||||
return $this->count($filter, $this->connection->ldapBaseGroups, $attr, $limit, $offset);
|
||||
return $this->count($filter, $this->connection->ldapBaseUsers, $attr, $limit, $offset);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -775,22 +775,47 @@ class Access extends LDAPUtility {
|
|||
*/
|
||||
private function count($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
|
||||
\OCP\Util::writeLog('user_ldap', 'Count filter: '.print_r($filter, true), \OCP\Util::DEBUG);
|
||||
$search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
|
||||
if($search === false) {
|
||||
return false;
|
||||
}
|
||||
list($sr, $pagedSearchOK) = $search;
|
||||
$cr = $this->connection->getConnectionResource();
|
||||
$counter = 0;
|
||||
foreach($sr as $key => $res) {
|
||||
$count = $this->ldap->countEntries($cr, $res);
|
||||
if($count !== false) {
|
||||
$counter += $count;
|
||||
}
|
||||
|
||||
if(is_null($limit)) {
|
||||
$limit = $this->connection->ldapPagingSize;
|
||||
}
|
||||
|
||||
$this->processPagedSearchStatus($sr, $filter, $base, $counter, $limit,
|
||||
$counter = 0;
|
||||
$count = null;
|
||||
$cr = $this->connection->getConnectionResource();
|
||||
|
||||
do {
|
||||
$continue = false;
|
||||
$search = $this->executeSearch($filter, $base, $attr,
|
||||
$limit, $offset);
|
||||
if($search === false) {
|
||||
return $counter > 0 ? $counter : false;
|
||||
}
|
||||
list($sr, $pagedSearchOK) = $search;
|
||||
|
||||
$count = $this->countEntriesInSearchResults($sr, $limit, $continue);
|
||||
$counter += $count;
|
||||
|
||||
$this->processPagedSearchStatus($sr, $filter, $base, $count, $limit,
|
||||
$offset, $pagedSearchOK, $skipHandling);
|
||||
$offset += $limit;
|
||||
} while($continue);
|
||||
|
||||
return $counter;
|
||||
}
|
||||
|
||||
private function countEntriesInSearchResults($searchResults, $limit,
|
||||
&$hasHitLimit) {
|
||||
$cr = $this->connection->getConnectionResource();
|
||||
$count = 0;
|
||||
|
||||
foreach($searchResults as $res) {
|
||||
$count = intval($this->ldap->countEntries($cr, $res));
|
||||
$counter += $count;
|
||||
if($count === $limit) {
|
||||
$hasHitLimit = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $counter;
|
||||
}
|
||||
|
@ -891,7 +916,7 @@ class Access extends LDAPUtility {
|
|||
//we slice the findings, when
|
||||
//a) paged search insuccessful, though attempted
|
||||
//b) no paged search, but limit set
|
||||
if((!$this->pagedSearchedSuccessful
|
||||
if((!$this->getPagedSearchResultState()
|
||||
&& $pagedSearchOK)
|
||||
|| (
|
||||
!$pagedSearchOK
|
||||
|
@ -923,8 +948,8 @@ class Access extends LDAPUtility {
|
|||
|
||||
/**
|
||||
* @brief escapes (user provided) parts for LDAP filter
|
||||
* @param String $input, the provided value
|
||||
* @returns the escaped string
|
||||
* @param string $input, the provided value
|
||||
* @return the escaped string
|
||||
*/
|
||||
public function escapeFilterPart($input) {
|
||||
$search = array('*', '\\', '(', ')');
|
||||
|
@ -1184,7 +1209,7 @@ class Access extends LDAPUtility {
|
|||
}
|
||||
$offset -= $limit;
|
||||
//we work with cache here
|
||||
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' . $limit . '-' . $offset;
|
||||
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' . intval($limit) . '-' . intval($offset);
|
||||
$cookie = '';
|
||||
if(isset($this->cookies[$cachekey])) {
|
||||
$cookie = $this->cookies[$cachekey];
|
||||
|
@ -1206,7 +1231,7 @@ class Access extends LDAPUtility {
|
|||
*/
|
||||
private function setPagedResultCookie($base, $filter, $limit, $offset, $cookie) {
|
||||
if(!empty($cookie)) {
|
||||
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' .$limit . '-' . $offset;
|
||||
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' .intval($limit) . '-' . intval($offset);
|
||||
$this->cookies[$cachekey] = $cookie;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -134,6 +134,9 @@ class Connection extends LDAPUtility {
|
|||
return $this->ldapConnectionRes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $key
|
||||
*/
|
||||
private function getCacheKey($key) {
|
||||
$prefix = 'LDAP-'.$this->configID.'-'.$this->configPrefix.'-';
|
||||
if(is_null($key)) {
|
||||
|
|
|
@ -80,6 +80,9 @@ abstract class Proxy {
|
|||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $key
|
||||
*/
|
||||
private function getCacheKey($key) {
|
||||
$prefix = 'LDAP-Proxy-';
|
||||
if(is_null($key)) {
|
||||
|
|
|
@ -485,7 +485,7 @@ class Wizard extends LDAPUtility {
|
|||
/**
|
||||
* @brief sets the found value for the configuration key in the WizardResult
|
||||
* as well as in the Configuration instance
|
||||
* @param $key the configuration key
|
||||
* @param string $key the configuration key
|
||||
* @param $value the (detected) value
|
||||
* @return null
|
||||
*
|
||||
|
@ -1000,7 +1000,7 @@ class Wizard extends LDAPUtility {
|
|||
/**
|
||||
* @brief appends a list of values fr
|
||||
* @param $result resource, the return value from ldap_get_attributes
|
||||
* @param $attribute string, the attribute values to look for
|
||||
* @param string $attribute the attribute values to look for
|
||||
* @param &$known array, new values will be appended here
|
||||
* @return int, state on of the class constants LRESULT_PROCESSED_OK,
|
||||
* LRESULT_PROCESSED_INVALID or LRESULT_PROCESSED_SKIP
|
||||
|
|
|
@ -36,6 +36,10 @@ class WizardResult {
|
|||
$this->markedChange = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param array|string $values
|
||||
*/
|
||||
public function addOptions($key, $values) {
|
||||
if(!is_array($values)) {
|
||||
$values = array($values);
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<p><label for="ldap_attributes_for_group_search"><?php p($l->t('Group Search Attributes'));?></label><textarea id="ldap_attributes_for_group_search" name="ldap_attributes_for_group_search" placeholder="<?php p($l->t('Optional; one attribute per line'));?>" data-default="<?php p($_['ldap_attributes_for_group_search_default']); ?>" title="<?php p($l->t('Group Search Attributes'));?>"></textarea></p>
|
||||
<p><label for="ldap_group_member_assoc_attribute"><?php p($l->t('Group-Member association'));?></label><select id="ldap_group_member_assoc_attribute" name="ldap_group_member_assoc_attribute" data-default="<?php p($_['ldap_group_member_assoc_attribute_default']); ?>" ><option value="uniqueMember"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] === 'uniqueMember')) p(' selected'); ?>>uniqueMember</option><option value="memberUid"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] === 'memberUid')) p(' selected'); ?>>memberUid</option><option value="member"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] === 'member')) p(' selected'); ?>>member (AD)</option></select></p>
|
||||
<p><label for="ldap_nested_groups"><?php p($l->t('Nested Groups'));?></label><input type="checkbox" id="ldap_nested_groups" name="ldap_nested_groups" value="1" data-default="<?php p($_['ldap_nested_groups_default']); ?>" title="<?php p($l->t('When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)'));?>" /></p>
|
||||
<p><label for="ldap_paging_size"><?php p($l->t('Paging chunksize'));?></label><input type="number" id="ldap_paging_size" name="ldap_paging_size" title="<?php p($l->t('Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)'));?>" data-default="<?php p($_['ldap_paging_size']); ?>" /></p>
|
||||
<p><label for="ldap_paging_size"><?php p($l->t('Paging chunksize'));?></label><input type="number" id="ldap_paging_size" name="ldap_paging_size" title="<?php p($l->t('Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)'));?>" data-default="<?php p($_['ldap_paging_size_default']); ?>" /></p>
|
||||
</div>
|
||||
<h3><?php p($l->t('Special Attributes'));?></h3>
|
||||
<div>
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
background-position: right 26px;
|
||||
padding-right: 16px !important;
|
||||
}
|
||||
/* do not show menu toggle on public share links as there is no menu */
|
||||
#body-public #owncloud.menutoggle {
|
||||
background-image: none;
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
|
||||
/* compress search box on mobile, expand when focused */
|
||||
.searchbox input[type="search"] {
|
||||
|
@ -103,4 +108,12 @@
|
|||
}
|
||||
|
||||
|
||||
/* fix error display on smaller screens */
|
||||
.error-wide {
|
||||
width: 100%;
|
||||
margin-left: 0 !important;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,13 +12,30 @@ table, td, th { vertical-align:middle; }
|
|||
a { border:0; color:#000; text-decoration:none;}
|
||||
a, a *, input, input *, select, .button span, label { cursor:pointer; }
|
||||
ul { list-style:none; }
|
||||
body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif; color:#000; }
|
||||
|
||||
|
||||
body {
|
||||
background: #fefefe;
|
||||
font: normal .8em/1.6em "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif;
|
||||
color: #000;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
|
||||
/* HEADERS */
|
||||
#body-user #header, #body-settings #header {
|
||||
position:fixed; top:0; left:0; right:0; z-index:100; height:45px; line-height:2.5em;
|
||||
background:#1d2d44 url('../img/noise.png') repeat;
|
||||
#body-user #header,
|
||||
#body-settings #header,
|
||||
#body-public #header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 100;
|
||||
height: 45px;
|
||||
line-height: 2.5em;
|
||||
background: #1d2d44 url('../img/noise.png') repeat;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
#body-login {
|
||||
|
@ -33,9 +50,34 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
|
|||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d44',GradientType=0 ); /* IE6-9 */
|
||||
}
|
||||
|
||||
#owncloud { position:absolute; top:0; left:0; padding:6px; padding-bottom:0; }
|
||||
.header-right { float:right; vertical-align:middle; padding:0.5em; }
|
||||
.header-right > * { vertical-align:middle; }
|
||||
#owncloud {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 6px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
/* info part on the right, used e.g. for info on who shared something */
|
||||
.header-right {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
padding-right: 10px;
|
||||
color: #fff;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
filter: alpha(opacity=50);
|
||||
opacity: .5;
|
||||
height: 100%;
|
||||
max-width: 40%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.header-right #details {
|
||||
display: inline-block;
|
||||
margin-top: 6px;
|
||||
width: 100%;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Profile picture in header */
|
||||
#header .avatardiv {
|
||||
|
@ -406,14 +448,29 @@ input[type="submit"].enabled {
|
|||
}
|
||||
|
||||
/* Icons for username and password fields to better recognize them */
|
||||
#adminlogin, #adminpass, #user, #password { width:11.7em!important; padding-left:1.8em; }
|
||||
#adminlogin+label+img, #adminpass-icon, #user+label+img, #password-icon {
|
||||
position:absolute; left:1.25em; top:1.65em;
|
||||
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3;
|
||||
#adminlogin,
|
||||
#adminpass,
|
||||
input[name='adminpass-clone'],
|
||||
#user,
|
||||
#password,
|
||||
input[name='password-clone'] {
|
||||
width: 223px !important;
|
||||
padding-left: 36px !important;
|
||||
}
|
||||
#adminlogin+label+img,
|
||||
#adminpass-icon,
|
||||
#user+label+img,
|
||||
#password-icon {
|
||||
position: absolute;
|
||||
left: 1.25em;
|
||||
top: 1.65em;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
|
||||
filter: alpha(opacity=30);
|
||||
opacity: .3;
|
||||
}
|
||||
#adminpass-icon, #password-icon {
|
||||
top: 1.1em;
|
||||
}
|
||||
#adminpass-icon, #password-icon { top:1.1em; }
|
||||
input[name="password-clone"] { padding-left:1.8em; width:11.7em !important; }
|
||||
input[name="adminpass-clone"] { padding-left:1.8em; width:11.7em !important; }
|
||||
|
||||
/* General new input field look */
|
||||
#body-login input[type="text"],
|
||||
|
@ -452,15 +509,22 @@ input[name="adminpass-clone"] { padding-left:1.8em; width:11.7em !important; }
|
|||
p.infield { position:relative; }
|
||||
label.infield { cursor:text !important; top:1.05em; left:.85em; }
|
||||
#body-login form label.infield { /* labels are ellipsized when too long, keep them short */
|
||||
position:absolute; width:90%; padding-left:1.4em;
|
||||
font-size:19px; color:#aaa;
|
||||
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
|
||||
position: absolute;
|
||||
width: 82%;
|
||||
margin-left: 26px;
|
||||
font-size: 19px;
|
||||
color: #aaa;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
#body-login #databaseField .infield {
|
||||
margin-left: 0;
|
||||
}
|
||||
#body-login #databaseField .infield { padding-left:0; }
|
||||
#body-login form input[type="checkbox"]+label {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
font-size: 1em;
|
||||
font-size: 13px;
|
||||
padding: 14px;
|
||||
padding-left: 28px;
|
||||
margin-left: -28px;
|
||||
|
@ -586,8 +650,8 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
|
|||
}
|
||||
|
||||
.error-wide {
|
||||
width: 800px;
|
||||
margin-left: -250px;
|
||||
width: 700px;
|
||||
margin-left: -200px !important;
|
||||
}
|
||||
|
||||
/* Fixes for log in page, TODO should be removed some time */
|
||||
|
@ -614,11 +678,13 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
|
|||
|
||||
/* Log in and install button */
|
||||
#body-login input {
|
||||
font-size: 1.5em;
|
||||
font-size: 20px;
|
||||
margin: 5px;
|
||||
padding: 12px 10px 8px;
|
||||
}
|
||||
#body-login input[type="text"],
|
||||
#body-login input[type="password"] {
|
||||
width: 13em;
|
||||
width: 249px;
|
||||
}
|
||||
#body-login input.login {
|
||||
width: auto;
|
||||
|
@ -628,7 +694,7 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
|
|||
padding: 10px 20px; /* larger log in and installation buttons */
|
||||
}
|
||||
#remember_login {
|
||||
margin: 18px 5px 0 18px;
|
||||
margin: 24px 5px 0 16px !important;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,16 +20,16 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events)
|
||||
* Wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events)
|
||||
* includes a fallback for older browsers and IE
|
||||
*
|
||||
* use server side events with causion, to many open requests can hang the server
|
||||
* Use server side events with caution, too many open requests can hang the server
|
||||
*/
|
||||
|
||||
/**
|
||||
* create a new event source
|
||||
* @param string src
|
||||
* @param object data to be send as GET
|
||||
* Create a new event source
|
||||
* @param {string} src
|
||||
* @param {object} [data] to be send as GET
|
||||
*/
|
||||
OC.EventSource=function(src,data){
|
||||
var dataStr='';
|
||||
|
@ -74,12 +74,12 @@ OC.EventSource=function(src,data){
|
|||
this.close();
|
||||
}
|
||||
}.bind(this));
|
||||
}
|
||||
};
|
||||
OC.EventSource.fallBackSources=[];
|
||||
OC.EventSource.iframeCount=0;//number of fallback iframes
|
||||
OC.EventSource.fallBackCallBack=function(id,type,data){
|
||||
OC.EventSource.fallBackSources[id].fallBackCallBack(type,data);
|
||||
}
|
||||
};
|
||||
OC.EventSource.prototype={
|
||||
typelessListeners:[],
|
||||
iframe:null,
|
||||
|
@ -127,4 +127,4 @@ OC.EventSource.prototype={
|
|||
this.source.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
374
core/js/js.js
374
core/js/js.js
|
@ -84,11 +84,11 @@ function initL10N(app) {
|
|||
}
|
||||
/**
|
||||
* translate a string
|
||||
* @param app the id of the app for which to translate the string
|
||||
* @param text the string to translate
|
||||
* @param vars (optional) FIXME
|
||||
* @param count (optional) number to replace %n with
|
||||
* @return string
|
||||
* @param {string} app the id of the app for which to translate the string
|
||||
* @param {string} text the string to translate
|
||||
* @param [vars] FIXME
|
||||
* @param {number} [count] number to replace %n with
|
||||
* @return {string}
|
||||
*/
|
||||
function t(app, text, vars, count){
|
||||
initL10N(app);
|
||||
|
@ -119,12 +119,12 @@ t.plural_function = {};
|
|||
|
||||
/**
|
||||
* translate a string
|
||||
* @param app the id of the app for which to translate the string
|
||||
* @param text_singular the string to translate for exactly one object
|
||||
* @param text_plural the string to translate for n objects
|
||||
* @param count number to determine whether to use singular or plural
|
||||
* @param vars (optional) FIXME
|
||||
* @return string
|
||||
* @param {string} app the id of the app for which to translate the string
|
||||
* @param {string} text_singular the string to translate for exactly one object
|
||||
* @param {string} text_plural the string to translate for n objects
|
||||
* @param {number} count number to determine whether to use singular or plural
|
||||
* @param [vars] FIXME
|
||||
* @return {string} Translated string
|
||||
*/
|
||||
function n(app, text_singular, text_plural, count, vars) {
|
||||
initL10N(app);
|
||||
|
@ -146,9 +146,9 @@ function n(app, text_singular, text_plural, count, vars) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sanitizes a HTML string
|
||||
* @param s string
|
||||
* @return Sanitized string
|
||||
* Sanitizes a HTML string by replacing all potential dangerous characters with HTML entities
|
||||
* @param {string} s String to sanitize
|
||||
* @return {string} Sanitized string
|
||||
*/
|
||||
function escapeHTML(s) {
|
||||
return s.toString().split('&').join('&').split('<').join('<').split('"').join('"');
|
||||
|
@ -156,9 +156,9 @@ function escapeHTML(s) {
|
|||
|
||||
/**
|
||||
* Get the path to download a file
|
||||
* @param file The filename
|
||||
* @param dir The directory the file is in - e.g. $('#dir').val()
|
||||
* @return string
|
||||
* @param {string} file The filename
|
||||
* @param {string} dir The directory the file is in - e.g. $('#dir').val()
|
||||
* @return {string} Path to download the file
|
||||
* @deprecated use Files.getDownloadURL() instead
|
||||
*/
|
||||
function fileDownloadPath(dir, file) {
|
||||
|
@ -176,32 +176,40 @@ var OC={
|
|||
appswebroots:(typeof oc_appswebroots !== 'undefined') ? oc_appswebroots:false,
|
||||
currentUser:(typeof oc_current_user!=='undefined')?oc_current_user:false,
|
||||
coreApps:['', 'admin','log','search','settings','core','3rdparty'],
|
||||
|
||||
/**
|
||||
* get an absolute url to a file in an appen
|
||||
* @param app the id of the app the file belongs to
|
||||
* @param file the file path relative to the app folder
|
||||
* @return string
|
||||
* Get an absolute url to a file in an app
|
||||
* @param {string} app the id of the app the file belongs to
|
||||
* @param {string} file the file path relative to the app folder
|
||||
* @return {string} Absolute URL to a file
|
||||
*/
|
||||
linkTo:function(app,file){
|
||||
return OC.filePath(app,'',file);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates an url for remote use
|
||||
* @param string $service id
|
||||
* @return string the url
|
||||
*
|
||||
* Returns a url to the given service.
|
||||
* Creates a relative url for remote use
|
||||
* @param {string} service id
|
||||
* @return {string} the url
|
||||
*/
|
||||
linkToRemoteBase:function(service) {
|
||||
return OC.webroot + '/remote.php/' + service;
|
||||
},
|
||||
|
||||
/**
|
||||
* @brief Creates an absolute url for remote use
|
||||
* @param {string} service id
|
||||
* @return {string} the url
|
||||
*/
|
||||
linkToRemote:function(service) {
|
||||
return window.location.protocol + '//' + window.location.host + OC.linkToRemoteBase(service);
|
||||
},
|
||||
|
||||
/**
|
||||
* Generates the absolute url for the given relative url, which can contain parameters.
|
||||
*
|
||||
* @returns {string}
|
||||
* @param {string} url
|
||||
* @param params
|
||||
* @return {string} Absolute URL for the given relative URL
|
||||
*/
|
||||
generateUrl: function(url, params) {
|
||||
var _build = function (text, vars) {
|
||||
|
@ -220,22 +228,11 @@ var OC={
|
|||
},
|
||||
|
||||
/**
|
||||
* @brief Creates an absolute url for remote use
|
||||
* @param string $service id
|
||||
* @param bool $add_slash
|
||||
* @return string the url
|
||||
*
|
||||
* Returns a absolute url to the given service.
|
||||
*/
|
||||
linkToRemote:function(service) {
|
||||
return window.location.protocol + '//' + window.location.host + OC.linkToRemoteBase(service);
|
||||
},
|
||||
/**
|
||||
* get the absolute url for a file in an app
|
||||
* @param app the id of the app
|
||||
* @param type the type of the file to link to (e.g. css,img,ajax.template)
|
||||
* @param file the filename
|
||||
* @return string
|
||||
* Get the absolute url for a file in an app
|
||||
* @param {string} app the id of the app
|
||||
* @param {string} type the type of the file to link to (e.g. css,img,ajax.template)
|
||||
* @param {string} file the filename
|
||||
* @return {string} Absolute URL for a file in an app
|
||||
*/
|
||||
filePath:function(app,type,file){
|
||||
var isCore=OC.coreApps.indexOf(app)!==-1,
|
||||
|
@ -279,19 +276,22 @@ var OC={
|
|||
}
|
||||
return link;
|
||||
},
|
||||
|
||||
/**
|
||||
* Redirect to the target URL, can also be used for downloads.
|
||||
* @param {string} targetURL URL to redirect to
|
||||
*/
|
||||
redirect: function(targetUrl) {
|
||||
window.location = targetUrl;
|
||||
redirect: function(targetURL) {
|
||||
window.location = targetURL;
|
||||
},
|
||||
|
||||
/**
|
||||
* get the absolute path to an image file
|
||||
* @param app the app id to which the image belongs
|
||||
* @param file the name of the image file
|
||||
* @return string
|
||||
*
|
||||
* if no extension is given for the image, it will automatically decide between .png and .svg based on what the browser supports
|
||||
* if no extension is given for the image, it will automatically decide
|
||||
* between .png and .svg based on what the browser supports
|
||||
* @param {string} app the app id to which the image belongs
|
||||
* @param {string} file the name of the image file
|
||||
* @return {string}
|
||||
*/
|
||||
imagePath:function(app,file){
|
||||
if(file.indexOf('.')==-1){//if no extension is given, use png or svg depending on browser support
|
||||
|
@ -299,13 +299,13 @@ var OC={
|
|||
}
|
||||
return OC.filePath(app,'img',file);
|
||||
},
|
||||
|
||||
/**
|
||||
* load a script for the server and load it
|
||||
* @param app the app id to which the script belongs
|
||||
* @param script the filename of the script
|
||||
* @param ready event handeler to be called when the script is loaded
|
||||
*
|
||||
* if the script is already loaded, the event handeler will be called directly
|
||||
* Load a script for the server and load it. If the script is already loaded,
|
||||
* the event handler will be called directly
|
||||
* @param {string} app the app id to which the script belongs
|
||||
* @param {string} script the filename of the script
|
||||
* @param ready event handler to be called when the script is loaded
|
||||
*/
|
||||
addScript:function(app,script,ready){
|
||||
var deferred, path=OC.filePath(app,'js',script+'.js');
|
||||
|
@ -324,9 +324,9 @@ var OC={
|
|||
return OC.addScript.loaded[path];
|
||||
},
|
||||
/**
|
||||
* load a css file and load it
|
||||
* @param app the app id to which the css style belongs
|
||||
* @param style the filename of the css file
|
||||
* Loads a CSS file
|
||||
* @param {string} app the app id to which the css style belongs
|
||||
* @param {string} style the filename of the css file
|
||||
*/
|
||||
addStyle:function(app,style){
|
||||
var path=OC.filePath(app,'css',style+'.css');
|
||||
|
@ -340,15 +340,24 @@ var OC={
|
|||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @todo Write the documentation
|
||||
*/
|
||||
basename: function(path) {
|
||||
return path.replace(/\\/g,'/').replace( /.*\//, '' );
|
||||
},
|
||||
|
||||
/**
|
||||
* @todo Write the documentation
|
||||
*/
|
||||
dirname: function(path) {
|
||||
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
|
||||
},
|
||||
|
||||
/**
|
||||
* do a search query and display the results
|
||||
* @param query the search query
|
||||
* Do a search query and display the results
|
||||
* @param {string} query the search query
|
||||
*/
|
||||
search:function(query){
|
||||
if(query){
|
||||
|
@ -365,9 +374,10 @@ var OC={
|
|||
var date = new Date(1000*mtime);
|
||||
return date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes();
|
||||
},
|
||||
|
||||
/**
|
||||
* Parses a URL query string into a JS map
|
||||
* @param queryString query string in the format param1=1234¶m2=abcde¶m3=xyz
|
||||
* @param {string} queryString query string in the format param1=1234¶m2=abcde¶m3=xyz
|
||||
* @return map containing key/values matching the URL parameters
|
||||
*/
|
||||
parseQueryString:function(queryString){
|
||||
|
@ -387,7 +397,7 @@ var OC={
|
|||
parts = queryString.replace(/\+/g, '%20').split('&');
|
||||
for (var i = 0; i < parts.length; i++){
|
||||
// split on first equal sign
|
||||
var part = parts[i]
|
||||
var part = parts[i];
|
||||
pos = part.indexOf('=');
|
||||
if (pos >= 0) {
|
||||
components = [
|
||||
|
@ -421,7 +431,7 @@ var OC={
|
|||
/**
|
||||
* Builds a URL query from a JS map.
|
||||
* @param params parameter map
|
||||
* @return string containing a URL query (without question) mark
|
||||
* @return {string} String containing a URL query (without question) mark
|
||||
*/
|
||||
buildQueryString: function(params) {
|
||||
var s = '';
|
||||
|
@ -447,11 +457,11 @@ var OC={
|
|||
|
||||
/**
|
||||
* Opens a popup with the setting for an app.
|
||||
* @param appid String. The ID of the app e.g. 'calendar', 'contacts' or 'files'.
|
||||
* @param loadJS boolean or String. If true 'js/settings.js' is loaded. If it's a string
|
||||
* @param {string} appid The ID of the app e.g. 'calendar', 'contacts' or 'files'.
|
||||
* @param {boolean|string} loadJS If true 'js/settings.js' is loaded. If it's a string
|
||||
* it will attempt to load a script by that name in the 'js' directory.
|
||||
* @param cache boolean. If true the javascript file won't be forced refreshed. Defaults to true.
|
||||
* @param scriptName String. The name of the PHP file to load. Defaults to 'settings.php' in
|
||||
* @param {boolean} [cache] If true the javascript file won't be forced refreshed. Defaults to true.
|
||||
* @param {string} [scriptName] The name of the PHP file to load. Defaults to 'settings.php' in
|
||||
* the root of the app directory hierarchy.
|
||||
*/
|
||||
appSettings:function(args) {
|
||||
|
@ -505,7 +515,10 @@ var OC={
|
|||
}
|
||||
},
|
||||
|
||||
// for menu toggling
|
||||
/**
|
||||
* For menu toggling
|
||||
* @todo Write documentation
|
||||
*/
|
||||
registerMenu: function($toggle, $menuEl) {
|
||||
$menuEl.addClass('menu');
|
||||
$toggle.addClass('menutoggle');
|
||||
|
@ -528,6 +541,9 @@ var OC={
|
|||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
unregisterMenu: function($toggle, $menuEl) {
|
||||
// close menu if opened
|
||||
if ($menuEl.is(OC._currentMenu)) {
|
||||
|
@ -544,6 +560,7 @@ var OC={
|
|||
*
|
||||
* This is makes it possible for unit tests to
|
||||
* stub matchMedia (which doesn't work in PhantomJS)
|
||||
* @todo Write documentation
|
||||
*/
|
||||
_matchMedia: function(media) {
|
||||
if (window.matchMedia) {
|
||||
|
@ -552,6 +569,7 @@ var OC={
|
|||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
OC.search.customResults={};
|
||||
OC.search.currentResult=-1;
|
||||
OC.search.lastQuery='';
|
||||
|
@ -559,13 +577,32 @@ OC.search.lastResults={};
|
|||
OC.addStyle.loaded=[];
|
||||
OC.addScript.loaded=[];
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
OC.msg={
|
||||
/**
|
||||
* @param selector
|
||||
* @todo Write documentation
|
||||
*/
|
||||
startSaving:function(selector){
|
||||
OC.msg.startAction(selector, t('core', 'Saving...'));
|
||||
},
|
||||
|
||||
/**
|
||||
* @param selector
|
||||
* @param data
|
||||
* @todo Write documentation
|
||||
*/
|
||||
finishedSaving:function(selector, data){
|
||||
OC.msg.finishedAction(selector, data);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param selector
|
||||
* @param {string} message Message to display
|
||||
* @todo WRite documentation
|
||||
*/
|
||||
startAction:function(selector, message){
|
||||
$(selector)
|
||||
.html( message )
|
||||
|
@ -574,6 +611,12 @@ OC.msg={
|
|||
.stop(true, true)
|
||||
.show();
|
||||
},
|
||||
|
||||
/**
|
||||
* @param selector
|
||||
* @param data
|
||||
* @todo Write documentation
|
||||
*/
|
||||
finishedAction:function(selector, data){
|
||||
if( data.status === "success" ){
|
||||
$(selector).html( data.data.message )
|
||||
|
@ -587,12 +630,26 @@ OC.msg={
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
OC.Notification={
|
||||
queuedNotifications: [],
|
||||
getDefaultNotificationFunction: null,
|
||||
|
||||
/**
|
||||
* @param callback
|
||||
* @todo Write documentation
|
||||
*/
|
||||
setDefault: function(callback) {
|
||||
OC.Notification.getDefaultNotificationFunction = callback;
|
||||
},
|
||||
|
||||
/**
|
||||
* Hides a notification
|
||||
* @param callback
|
||||
* @todo Write documentation
|
||||
*/
|
||||
hide: function(callback) {
|
||||
$('#notification').fadeOut('400', function(){
|
||||
if (OC.Notification.isHidden()) {
|
||||
|
@ -610,34 +667,62 @@ OC.Notification={
|
|||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Shows a notification as HTML without being sanitized before.
|
||||
* If you pass unsanitized user input this may lead to a XSS vulnerability.
|
||||
* Consider using show() instead of showHTML()
|
||||
* @param {string} html Message to display
|
||||
*/
|
||||
showHtml: function(html) {
|
||||
if(($('#notification').filter('span.undo').length == 1) || OC.Notification.isHidden()){
|
||||
$('#notification').html(html);
|
||||
$('#notification').fadeIn().css("display","inline");
|
||||
var notification = $('#notification');
|
||||
if((notification.filter('span.undo').length == 1) || OC.Notification.isHidden()){
|
||||
notification.html(html);
|
||||
notification.fadeIn().css("display","inline");
|
||||
}else{
|
||||
OC.Notification.queuedNotifications.push(html);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Shows a sanitized notification
|
||||
* @param {string} text Message to display
|
||||
*/
|
||||
show: function(text) {
|
||||
if(($('#notification').filter('span.undo').length == 1) || OC.Notification.isHidden()){
|
||||
$('#notification').text(text);
|
||||
$('#notification').fadeIn().css("display","inline");
|
||||
var notification = $('#notification');
|
||||
if((notification.filter('span.undo').length == 1) || OC.Notification.isHidden()){
|
||||
notification.text(text);
|
||||
notification.fadeIn().css("display","inline");
|
||||
}else{
|
||||
OC.Notification.queuedNotifications.push($('<div/>').text(text).html());
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns whether a notification is hidden.
|
||||
* @return {boolean}
|
||||
*/
|
||||
isHidden: function() {
|
||||
return ($("#notification").text() === '');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
OC.Breadcrumb={
|
||||
container:null,
|
||||
show:function(dir, leafname, leaflink){
|
||||
/**
|
||||
* @todo Write documentation
|
||||
* @param dir
|
||||
* @param leafName
|
||||
* @param leafLink
|
||||
*/
|
||||
show:function(dir, leafName, leafLink){
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
}
|
||||
this._show(this.container, dir, leafname, leaflink);
|
||||
this._show(this.container, dir, leafName, leafLink);
|
||||
},
|
||||
_show:function(container, dir, leafname, leaflink){
|
||||
var self = this;
|
||||
|
@ -678,6 +763,12 @@ OC.Breadcrumb={
|
|||
this._push(container, leafname, leaflink);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
* @param {string} name
|
||||
* @param {string} link
|
||||
*/
|
||||
push:function(name, link){
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
|
@ -702,6 +793,10 @@ OC.Breadcrumb={
|
|||
}
|
||||
return crumb;
|
||||
},
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
pop:function(){
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
|
@ -709,6 +804,10 @@ OC.Breadcrumb={
|
|||
this.container.find('div.crumb').last().remove();
|
||||
this.container.find('div.crumb').last().addClass('last');
|
||||
},
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
clear:function(){
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
|
@ -721,21 +820,47 @@ OC.Breadcrumb={
|
|||
};
|
||||
|
||||
if(typeof localStorage !=='undefined' && localStorage !== null){
|
||||
//user and instance aware localstorage
|
||||
/**
|
||||
* User and instance aware localstorage
|
||||
*/
|
||||
OC.localStorage={
|
||||
namespace:'oc_'+OC.currentUser+'_'+OC.webroot+'_',
|
||||
|
||||
/**
|
||||
* Whether the storage contains items
|
||||
* @param {string} name
|
||||
* @return {boolean}
|
||||
*/
|
||||
hasItem:function(name){
|
||||
return OC.localStorage.getItem(name)!==null;
|
||||
},
|
||||
|
||||
/**
|
||||
* Add an item to the storage
|
||||
* @param {string} name
|
||||
* @param {string} item
|
||||
*/
|
||||
setItem:function(name,item){
|
||||
return localStorage.setItem(OC.localStorage.namespace+name,JSON.stringify(item));
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes an item from the storage
|
||||
* @param {string} name
|
||||
* @param {string} item
|
||||
*/
|
||||
removeItem:function(name,item){
|
||||
return localStorage.removeItem(OC.localStorage.namespace+name);
|
||||
},
|
||||
|
||||
/**
|
||||
* Get an item from the storage
|
||||
* @param {string} name
|
||||
* @return {null|string}
|
||||
*/
|
||||
getItem:function(name){
|
||||
var item = localStorage.getItem(OC.localStorage.namespace+name);
|
||||
if(item===null) {
|
||||
if(item === null) {
|
||||
return null;
|
||||
} else if (typeof JSON === 'undefined') {
|
||||
//fallback to jquery for IE6/7/8
|
||||
|
@ -762,6 +887,7 @@ if(typeof localStorage !=='undefined' && localStorage !== null){
|
|||
|
||||
/**
|
||||
* check if the browser support svg images
|
||||
* @return {boolean}
|
||||
*/
|
||||
function SVGSupport() {
|
||||
return SVGSupport.checkMimeType.correct && !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
|
||||
|
@ -793,15 +919,18 @@ SVGSupport.checkMimeType=function(){
|
|||
};
|
||||
SVGSupport.checkMimeType.correct=true;
|
||||
|
||||
// replace all svg images with png for browser compatibility
|
||||
// @deprecated use OC.Util.replaceSVG instead
|
||||
/**
|
||||
* Replace all svg images with png for browser compatibility
|
||||
* @param $el
|
||||
* @deprecated use OC.Util.replaceSVG instead
|
||||
*/
|
||||
function replaceSVG($el){
|
||||
return OC.Util.replaceSVG($el);
|
||||
}
|
||||
|
||||
/**
|
||||
* prototypal inharitence functions
|
||||
*
|
||||
* prototypical inheritance functions
|
||||
* @todo Write documentation
|
||||
* usage:
|
||||
* MySubObject=object(MyObject)
|
||||
*/
|
||||
|
@ -813,6 +942,7 @@ function object(o) {
|
|||
|
||||
/**
|
||||
* Fills height of window. (more precise than height: 100%;)
|
||||
* @param selector
|
||||
*/
|
||||
function fillHeight(selector) {
|
||||
if (selector.length === 0) {
|
||||
|
@ -828,6 +958,7 @@ function fillHeight(selector) {
|
|||
|
||||
/**
|
||||
* Fills height and width of window. (more precise than height: 100%; or width: 100%;)
|
||||
* @param selector
|
||||
*/
|
||||
function fillWindow(selector) {
|
||||
if (selector.length === 0) {
|
||||
|
@ -1055,6 +1186,11 @@ $.fn.filterAttr = function(attr_name, attr_value) {
|
|||
return this.filter(function() { return $(this).attr(attr_name) === attr_value; });
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns a human readable file size
|
||||
* @param {number} size Size in bytes
|
||||
* @return {string}
|
||||
*/
|
||||
function humanFileSize(size) {
|
||||
var humanList = ['B', 'kB', 'MB', 'GB', 'TB'];
|
||||
// Calculate Log with base 1024: size = 1024 ** order
|
||||
|
@ -1072,6 +1208,11 @@ function humanFileSize(size) {
|
|||
return relativeSize + ' ' + readableFormat;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format an UNIX timestamp to a human understandable format
|
||||
* @param {number} date UNIX timestamp
|
||||
* @return {string} Human readable format
|
||||
*/
|
||||
function formatDate(date){
|
||||
if(typeof date=='number'){
|
||||
date=new Date(date);
|
||||
|
@ -1079,7 +1220,13 @@ function formatDate(date){
|
|||
return $.datepicker.formatDate(datepickerFormatDate, date)+' '+date.getHours()+':'+((date.getMinutes()<10)?'0':'')+date.getMinutes();
|
||||
}
|
||||
|
||||
// taken from http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery
|
||||
//
|
||||
/**
|
||||
* Get the value of a URL parameter
|
||||
* @link http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery
|
||||
* @param {string} name URL parameter
|
||||
* @return {string}
|
||||
*/
|
||||
function getURLParameter(name) {
|
||||
return decodeURI(
|
||||
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]
|
||||
|
@ -1087,33 +1234,34 @@ function getURLParameter(name) {
|
|||
}
|
||||
|
||||
/**
|
||||
* takes an absolute timestamp and return a string with a human-friendly relative date
|
||||
* @param int a Unix timestamp
|
||||
* Takes an absolute timestamp and return a string with a human-friendly relative date
|
||||
* @param {number} timestamp A Unix timestamp
|
||||
*/
|
||||
function relative_modified_date(timestamp) {
|
||||
var timediff = Math.round((new Date()).getTime() / 1000) - timestamp;
|
||||
var diffminutes = Math.round(timediff/60);
|
||||
var diffhours = Math.round(diffminutes/60);
|
||||
var diffdays = Math.round(diffhours/24);
|
||||
var diffmonths = Math.round(diffdays/31);
|
||||
if(timediff < 60) { return t('core','seconds ago'); }
|
||||
else if(timediff < 3600) { return n('core','%n minute ago', '%n minutes ago', diffminutes); }
|
||||
else if(timediff < 86400) { return n('core', '%n hour ago', '%n hours ago', diffhours); }
|
||||
else if(timediff < 86400) { return t('core','today'); }
|
||||
else if(timediff < 172800) { return t('core','yesterday'); }
|
||||
else if(timediff < 2678400) { return n('core', '%n day ago', '%n days ago', diffdays); }
|
||||
else if(timediff < 5184000) { return t('core','last month'); }
|
||||
else if(timediff < 31556926) { return n('core', '%n month ago', '%n months ago', diffmonths); }
|
||||
//else if(timediff < 31556926) { return t('core','months ago'); }
|
||||
else if(timediff < 63113852) { return t('core','last year'); }
|
||||
var timeDiff = Math.round((new Date()).getTime() / 1000) - timestamp;
|
||||
var diffMinutes = Math.round(timeDiff/60);
|
||||
var diffHours = Math.round(diffMinutes/60);
|
||||
var diffDays = Math.round(diffHours/24);
|
||||
var diffMonths = Math.round(diffDays/31);
|
||||
if(timeDiff < 60) { return t('core','seconds ago'); }
|
||||
else if(timeDiff < 3600) { return n('core','%n minute ago', '%n minutes ago', diffMinutes); }
|
||||
else if(timeDiff < 86400) { return n('core', '%n hour ago', '%n hours ago', diffHours); }
|
||||
else if(timeDiff < 86400) { return t('core','today'); }
|
||||
else if(timeDiff < 172800) { return t('core','yesterday'); }
|
||||
else if(timeDiff < 2678400) { return n('core', '%n day ago', '%n days ago', diffDays); }
|
||||
else if(timeDiff < 5184000) { return t('core','last month'); }
|
||||
else if(timeDiff < 31556926) { return n('core', '%n month ago', '%n months ago', diffMonths); }
|
||||
else if(timeDiff < 63113852) { return t('core','last year'); }
|
||||
else { return t('core','years ago'); }
|
||||
}
|
||||
|
||||
/**
|
||||
* @todo Write documentation
|
||||
*/
|
||||
OC.Util = {
|
||||
/**
|
||||
* Returns whether the browser supports SVG
|
||||
*
|
||||
* @return true if the browser supports SVG, false otherwise
|
||||
* @return {boolean} true if the browser supports SVG, false otherwise
|
||||
*/
|
||||
// TODO: replace with original function
|
||||
hasSVGSupport: SVGSupport,
|
||||
|
@ -1121,10 +1269,8 @@ OC.Util = {
|
|||
* If SVG is not supported, replaces the given icon's extension
|
||||
* from ".svg" to ".png".
|
||||
* If SVG is supported, return the image path as is.
|
||||
*
|
||||
* @param file image path with svg extension
|
||||
* @return fixed image path with png extension if SVG is not
|
||||
* supported
|
||||
* @param {string} file image path with svg extension
|
||||
* @return {string} fixed image path with png extension if SVG is not supported
|
||||
*/
|
||||
replaceSVGIcon: function(file) {
|
||||
if (!OC.Util.hasSVGSupport()) {
|
||||
|
@ -1176,8 +1322,9 @@ OC.Util = {
|
|||
};
|
||||
|
||||
/**
|
||||
* get a variable by name
|
||||
* @param string name
|
||||
* Get a variable by name
|
||||
* @param {string} name
|
||||
* @return {*}
|
||||
*/
|
||||
OC.get=function(name) {
|
||||
var namespaces = name.split(".");
|
||||
|
@ -1194,9 +1341,9 @@ OC.get=function(name) {
|
|||
};
|
||||
|
||||
/**
|
||||
* set a variable by name
|
||||
* @param string name
|
||||
* @param mixed value
|
||||
* Set a variable by name
|
||||
* @param {string} name
|
||||
* @param {*} value
|
||||
*/
|
||||
OC.set=function(name, value) {
|
||||
var namespaces = name.split(".");
|
||||
|
@ -1252,4 +1399,3 @@ jQuery.fn.selectRange = function(start, end) {
|
|||
jQuery.fn.exists = function(){
|
||||
return this.length > 0;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
$(document).on('ajaxSend',function(elm, xhr, s) {
|
||||
$(document).on('ajaxSend',function(elm, xhr) {
|
||||
xhr.setRequestHeader('requesttoken', oc_requesttoken);
|
||||
});
|
||||
|
||||
});
|
|
@ -331,25 +331,27 @@ OC.Share={
|
|||
.append( insert )
|
||||
.appendTo( ul );
|
||||
};
|
||||
$('#email').autocomplete({
|
||||
minLength: 1,
|
||||
source: function (search, response) {
|
||||
$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWithEmail', search: search.term }, function(result) {
|
||||
if (result.status == 'success' && result.data.length > 0) {
|
||||
response(result.data);
|
||||
}
|
||||
});
|
||||
},
|
||||
select: function( event, item ) {
|
||||
$('#email').val(item.item.email);
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.data("ui-autocomplete")._renderItem = function( ul, item ) {
|
||||
return $( "<li>" )
|
||||
.append( "<a>" + item.displayname + "<br>" + item.email + "</a>" )
|
||||
.appendTo( ul );
|
||||
};
|
||||
if (link) {
|
||||
$('#email').autocomplete({
|
||||
minLength: 1,
|
||||
source: function (search, response) {
|
||||
$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWithEmail', search: search.term }, function(result) {
|
||||
if (result.status == 'success' && result.data.length > 0) {
|
||||
response(result.data);
|
||||
}
|
||||
});
|
||||
},
|
||||
select: function( event, item ) {
|
||||
$('#email').val(item.item.email);
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.data("ui-autocomplete")._renderItem = function( ul, item ) {
|
||||
return $( "<li>" )
|
||||
.append( "<a>" + item.displayname + "<br>" + item.email + "</a>" )
|
||||
.appendTo( ul );
|
||||
};
|
||||
}
|
||||
|
||||
} else {
|
||||
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Resharing is not allowed')+'" style="width:90%;" disabled="disabled"/>';
|
||||
|
@ -500,15 +502,16 @@ OC.Share={
|
|||
$('#emailPrivateLink #email').hide();
|
||||
$('#emailPrivateLink #emailButton').hide();
|
||||
$('#allowPublicUploadWrapper').hide();
|
||||
$('#expirationDate').hide();
|
||||
},
|
||||
dirname:function(path) {
|
||||
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
|
||||
},
|
||||
showExpirationDate:function(date) {
|
||||
$('#expirationCheckbox').attr('checked', true);
|
||||
$('#expirationDate').before('<br />');
|
||||
$('#expirationDate').val(date);
|
||||
$('#expirationDate').show();
|
||||
$('#expirationDate').show('blind');
|
||||
$('#expirationDate').css('display','block');
|
||||
$('#expirationDate').datepicker({
|
||||
dateFormat : 'dd-mm-yy'
|
||||
});
|
||||
|
@ -578,7 +581,7 @@ $(document).ready(function() {
|
|||
OC.Share.itemShares[shareType].splice(index, 1);
|
||||
OC.Share.updateIcon(itemType, itemSource);
|
||||
if (typeof OC.Share.statuses[itemSource] === 'undefined') {
|
||||
$('#expiration').hide();
|
||||
$('#expiration').hide('blind');
|
||||
}
|
||||
});
|
||||
return false;
|
||||
|
@ -638,7 +641,7 @@ $(document).ready(function() {
|
|||
OC.Share.itemShares[OC.Share.SHARE_TYPE_LINK] = false;
|
||||
OC.Share.updateIcon(itemType, itemSource);
|
||||
if (typeof OC.Share.statuses[itemSource] === 'undefined') {
|
||||
$('#expiration').hide();
|
||||
$('#expiration').hide('blind');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -730,7 +733,7 @@ $(document).ready(function() {
|
|||
if (!result || result.status !== 'success') {
|
||||
OC.dialogs.alert(t('core', 'Error unsetting expiration date'), t('core', 'Error'));
|
||||
}
|
||||
$('#expirationDate').hide();
|
||||
$('#expirationDate').hide('blind');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
@ -59,7 +59,8 @@ OC.Tags= {
|
|||
});
|
||||
},
|
||||
/**
|
||||
* @param string type
|
||||
* @param {string} type
|
||||
* @param {string} tag
|
||||
* @return jQuery.Promise which resolves with an array of ids
|
||||
*/
|
||||
getIdsForTag:function(type, tag) {
|
||||
|
@ -80,8 +81,8 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param string type
|
||||
* @return jQuery.Promise which resolves with an array of ids
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise which resolves with an array of ids
|
||||
*/
|
||||
getFavorites:function(type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -101,8 +102,8 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param string type
|
||||
* @return jQuery.Promise which resolves with an array of id/name objects
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise which resolves with an array of id/name objects
|
||||
*/
|
||||
getTags:function(type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -122,9 +123,10 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param int id
|
||||
* @param string type
|
||||
* @return jQuery.Promise
|
||||
* @param {number} id
|
||||
* @param {string} tag
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise
|
||||
*/
|
||||
tagAs:function(id, tag, type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -146,9 +148,10 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param int id
|
||||
* @param string type
|
||||
* @return jQuery.Promise
|
||||
* @param {number} id
|
||||
* @param {string} tag
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise
|
||||
*/
|
||||
unTag:function(id, tag, type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -170,9 +173,9 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param int id
|
||||
* @param string type
|
||||
* @return jQuery.Promise
|
||||
* @param {number} id
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise
|
||||
*/
|
||||
addToFavorites:function(id, type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -194,9 +197,9 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param int id
|
||||
* @param string type
|
||||
* @return jQuery.Promise
|
||||
* @param {number} id
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise
|
||||
*/
|
||||
removeFromFavorites:function(id, type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -218,9 +221,9 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param string tag
|
||||
* @param string type
|
||||
* @return jQuery.Promise which resolves with an object with the name and the new id
|
||||
* @param {string} tag
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise which resolves with an object with the name and the new id
|
||||
*/
|
||||
addTag:function(tag, type) {
|
||||
if(!type && !this.type) {
|
||||
|
@ -245,9 +248,9 @@ OC.Tags= {
|
|||
return defer.promise();
|
||||
},
|
||||
/**
|
||||
* @param array tags
|
||||
* @param string type
|
||||
* @return jQuery.Promise
|
||||
* @param {array} tags
|
||||
* @param {string} type
|
||||
* @return {*} jQuery.Promise
|
||||
*/
|
||||
deleteTags:function(tags, type) {
|
||||
if(!type && !this.type) {
|
||||
|
|
|
@ -1,12 +1,55 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Sunday" => "Sondag",
|
||||
"Monday" => "Mandag",
|
||||
"Tuesday" => "Dinsdag",
|
||||
"Wednesday" => "Woensdag",
|
||||
"Thursday" => "Donderdag",
|
||||
"Friday" => "Vrydag",
|
||||
"Saturday" => "Saterdag",
|
||||
"January" => "Januarie",
|
||||
"February" => "Februarie",
|
||||
"March" => "Maart",
|
||||
"April" => "April",
|
||||
"May" => "Mei",
|
||||
"June" => "Junie",
|
||||
"July" => "Julie",
|
||||
"August" => "Augustus",
|
||||
"September" => "September",
|
||||
"October" => "Oktober",
|
||||
"November" => "November",
|
||||
"December" => "Desember",
|
||||
"Settings" => "Instellings",
|
||||
"_%n minute ago_::_%n minutes ago_" => array("",""),
|
||||
"seconds ago" => "sekondes gelede",
|
||||
"_%n minute ago_::_%n minutes ago_" => array("%n minute gelede","%n minute gelede"),
|
||||
"_%n hour ago_::_%n hours ago_" => array("",""),
|
||||
"today" => "vandag",
|
||||
"yesterday" => "gister",
|
||||
"_%n day ago_::_%n days ago_" => array("",""),
|
||||
"last month" => "verlede maand",
|
||||
"_%n month ago_::_%n months ago_" => array("",""),
|
||||
"months ago" => "maande gelede",
|
||||
"last year" => "verlede jaar",
|
||||
"years ago" => "jare gelede",
|
||||
"Choose" => "Kies",
|
||||
"Yes" => "Ja",
|
||||
"No" => "Nee",
|
||||
"_{count} file conflict_::_{count} file conflicts_" => array("",""),
|
||||
"Very weak password" => "Baie swak wagwoord",
|
||||
"Weak password" => "Swak wagwoord",
|
||||
"Good password" => "Goeie wagwoord",
|
||||
"Strong password" => "Sterk wagwoord",
|
||||
"Shared" => "Gedeel",
|
||||
"Share" => "Deel",
|
||||
"Error" => "Fout",
|
||||
"Shared with you and the group {group} by {owner}" => "Met jou en die groep {group} gedeel deur {owner}",
|
||||
"Shared with you by {owner}" => "Met jou gedeel deur {owner}",
|
||||
"Password" => "Wagwoord",
|
||||
"Email link to person" => "E-pos aan persoon",
|
||||
"Send" => "Stuur",
|
||||
"can edit" => "kan wysig",
|
||||
"Sending ..." => "Stuur ...",
|
||||
"Email sent" => "E-pos gestuur",
|
||||
"Use the following link to reset your password: {link}" => "Gebruik die volgende skakel om jou wagwoord te herstel: {link}",
|
||||
"You will receive a link to reset your password via Email." => "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel.",
|
||||
"Username" => "Gebruikersnaam",
|
||||
|
@ -28,7 +71,7 @@ $TRANSLATIONS = array(
|
|||
"Database name" => "Databasis naam",
|
||||
"Finish setup" => "Maak opstelling klaar",
|
||||
"Log out" => "Teken uit",
|
||||
"Lost your password?" => "Jou wagwoord verloor?",
|
||||
"Lost your password?" => "Wagwoord verloor?",
|
||||
"remember" => "onthou",
|
||||
"Log in" => "Teken aan"
|
||||
);
|
||||
|
|
|
@ -22,6 +22,7 @@ $TRANSLATIONS = array(
|
|||
"November" => "Payares",
|
||||
"December" => "Avientu",
|
||||
"Settings" => "Axustes",
|
||||
"Saving..." => "Guardando...",
|
||||
"seconds ago" => "fai segundos",
|
||||
"_%n minute ago_::_%n minutes ago_" => array("fai %n minutu","fai %n minutos"),
|
||||
"_%n hour ago_::_%n hours ago_" => array("fai %n hora","fai %n hores"),
|
||||
|
@ -57,6 +58,7 @@ $TRANSLATIONS = array(
|
|||
"share" => "compartir",
|
||||
"Password protected" => "Contraseña protexida",
|
||||
"Email sent" => "Corréu unviáu",
|
||||
"Warning" => "Avisu",
|
||||
"Delete" => "Desaniciar",
|
||||
"Add" => "Amestar",
|
||||
"Edit tags" => "Editar etiquetes",
|
||||
|
|
|
@ -51,6 +51,7 @@ $TRANSLATIONS = array(
|
|||
"_{count} file conflict_::_{count} file conflicts_" => array("{count} conflicte de fitxer","{count} conflictes de fitxer"),
|
||||
"One file conflict" => "Un fitxer en conflicte",
|
||||
"New Files" => "Fitxers nous",
|
||||
"Already existing files" => "Fitxers que ja existeixen",
|
||||
"Which files do you want to keep?" => "Quin fitxer voleu conservar?",
|
||||
"If you select both versions, the copied file will have a number added to its name." => "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.",
|
||||
"Cancel" => "Cancel·la",
|
||||
|
|
|
@ -51,6 +51,7 @@ $TRANSLATIONS = array(
|
|||
"_{count} file conflict_::_{count} file conflicts_" => array("{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"),
|
||||
"One file conflict" => "Jeden konflikt souboru",
|
||||
"New Files" => "Nové soubory",
|
||||
"Already existing files" => "Soubory již existují",
|
||||
"Which files do you want to keep?" => "Které soubory chcete ponechat?",
|
||||
"If you select both versions, the copied file will have a number added to its name." => "Pokud zvolíte obě verze, zkopírovaný soubor bude mít název doplněný o číslo.",
|
||||
"Cancel" => "Zrušit",
|
||||
|
|
|
@ -75,7 +75,7 @@ $TRANSLATIONS = array(
|
|||
"Share link" => "Διαμοιρασμός συνδέσμου",
|
||||
"Password protect" => "Προστασία συνθηματικού",
|
||||
"Password" => "Συνθηματικό",
|
||||
"Allow Public Upload" => "Να επιτρέπεται η Δημόσια Αποστολή",
|
||||
"Allow Public Upload" => "Επιτρέπεται η Δημόσια Αποστολή",
|
||||
"Email link to person" => "Αποστολή συνδέσμου με email ",
|
||||
"Send" => "Αποστολή",
|
||||
"Set expiration date" => "Ορισμός ημ. λήξης",
|
||||
|
@ -85,7 +85,7 @@ $TRANSLATIONS = array(
|
|||
"group" => "ομάδα",
|
||||
"Resharing is not allowed" => "Ξαναμοιρασμός δεν επιτρέπεται",
|
||||
"Shared in {item} with {user}" => "Διαμοιρασμός του {item} με τον {user}",
|
||||
"Unshare" => "Σταμάτημα διαμοιρασμού",
|
||||
"Unshare" => "Διακοπή διαμοιρασμού",
|
||||
"notify by email" => "ειδοποίηση με email",
|
||||
"can edit" => "δυνατότητα αλλαγής",
|
||||
"access control" => "έλεγχος πρόσβασης",
|
||||
|
@ -128,7 +128,7 @@ $TRANSLATIONS = array(
|
|||
"Personal" => "Προσωπικά",
|
||||
"Users" => "Χρήστες",
|
||||
"Apps" => "Εφαρμογές",
|
||||
"Admin" => "Διαχειριστής",
|
||||
"Admin" => "Διαχείριση",
|
||||
"Help" => "Βοήθεια",
|
||||
"Error loading tags" => "Σφάλμα φόρτωσης ετικετών",
|
||||
"Tag already exists" => "Υπάρχει ήδη η ετικέτα",
|
||||
|
|
|
@ -36,7 +36,7 @@ $TRANSLATIONS = array(
|
|||
"_%n hour ago_::_%n hours ago_" => array("hai %n hora","hai %n horas"),
|
||||
"today" => "hoxe",
|
||||
"yesterday" => "onte",
|
||||
"_%n day ago_::_%n days ago_" => array("hai %n día","hai %n días"),
|
||||
"_%n day ago_::_%n days ago_" => array("hai %n día","vai %n días"),
|
||||
"last month" => "último mes",
|
||||
"_%n month ago_::_%n months ago_" => array("hai %n mes","hai %n meses"),
|
||||
"months ago" => "meses atrás",
|
||||
|
|
|
@ -51,6 +51,7 @@ $TRANSLATIONS = array(
|
|||
"_{count} file conflict_::_{count} file conflicts_" => array("{count} spor datotek","{count} spora datotek","{count} spori datotek","{count} sporov datotek"),
|
||||
"One file conflict" => "En spor datotek",
|
||||
"New Files" => "Nove datoteke",
|
||||
"Already existing files" => "Obstoječe datoteke",
|
||||
"Which files do you want to keep?" => "Katare datoteke želite ohraniti?",
|
||||
"If you select both versions, the copied file will have a number added to its name." => "Če izberete obe različici, bo kopirani datoteki k imenu dodana številka.",
|
||||
"Cancel" => "Prekliči",
|
||||
|
|
|
@ -39,9 +39,9 @@ $TRANSLATIONS = array(
|
|||
"_%n day ago_::_%n days ago_" => array("%n gün önce","%n gün önce"),
|
||||
"last month" => "geçen ay",
|
||||
"_%n month ago_::_%n months ago_" => array("%n ay önce","%n ay önce"),
|
||||
"months ago" => "ay önce",
|
||||
"months ago" => "aylar önce",
|
||||
"last year" => "geçen yıl",
|
||||
"years ago" => "yıl önce",
|
||||
"years ago" => "yıllar önce",
|
||||
"Choose" => "Seç",
|
||||
"Error loading file picker template: {error}" => "Dosya seçici şablonu yüklenirken hata: {error}",
|
||||
"Yes" => "Evet",
|
||||
|
@ -69,19 +69,19 @@ $TRANSLATIONS = array(
|
|||
"Error" => "Hata",
|
||||
"Error while sharing" => "Paylaşım sırasında hata",
|
||||
"Error while unsharing" => "Paylaşım iptal edilirken hata",
|
||||
"Error while changing permissions" => "İzinleri değiştirirken hata oluştu",
|
||||
"Error while changing permissions" => "İzinleri değiştirirken hata",
|
||||
"Shared with you and the group {group} by {owner}" => "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
|
||||
"Shared with you by {owner}" => "{owner} tarafından sizinle paylaşıldı",
|
||||
"Share with user or group …" => "Kullanıcı veya grup ile paylaş..",
|
||||
"Share with user or group …" => "Kullanıcı veya grup ile paylaş...",
|
||||
"Share link" => "Paylaşma bağlantısı",
|
||||
"Password protect" => "Parola koruması",
|
||||
"Password" => "Parola",
|
||||
"Allow Public Upload" => "Genel Gönderime İzin Ver",
|
||||
"Allow Public Upload" => "Herkes Tarafından Gönderime İzin Ver",
|
||||
"Email link to person" => "Bağlantıyı e-posta ile gönder",
|
||||
"Send" => "Gönder",
|
||||
"Set expiration date" => "Son kullanma tarihini ayarla",
|
||||
"Expiration date" => "Son kullanım tarihi",
|
||||
"Share via email:" => "E-posta ile paylaş",
|
||||
"Share via email:" => "E-posta ile paylaş:",
|
||||
"No people found" => "Kişi bulunamadı",
|
||||
"group" => "grup",
|
||||
"Resharing is not allowed" => "Tekrar paylaşmaya izin verilmiyor",
|
||||
|
@ -95,8 +95,8 @@ $TRANSLATIONS = array(
|
|||
"delete" => "sil",
|
||||
"share" => "paylaş",
|
||||
"Password protected" => "Parola korumalı",
|
||||
"Error unsetting expiration date" => "Geçerlilik tarihi tanımlama kaldırma hatası",
|
||||
"Error setting expiration date" => "Geçerlilik tarihi tanımlama hatası",
|
||||
"Error unsetting expiration date" => "Son kullanma tarihi kaldırma hatası",
|
||||
"Error setting expiration date" => "Son kullanma tarihi ayarlama hatası",
|
||||
"Sending ..." => "Gönderiliyor...",
|
||||
"Email sent" => "E-posta gönderildi",
|
||||
"Warning" => "Uyarı",
|
||||
|
@ -108,23 +108,23 @@ $TRANSLATIONS = array(
|
|||
"Error loading dialog template: {error}" => "İletişim şablonu yüklenirken hata: {error}",
|
||||
"No tags selected for deletion." => "Silmek için bir etiket seçilmedi.",
|
||||
"Please reload the page." => "Lütfen sayfayı yeniden yükleyin.",
|
||||
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "Güncelleme başarılı olmadı. Lütfen bu hatayı bildirin <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>.",
|
||||
"The update was successful. Redirecting you to ownCloud now." => "Güncelleme başarılı. ownCloud'a yönlendiriliyor.",
|
||||
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "Güncelleme başarısız oldu. Lütfen bu hatayı <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud topluluğu</a>na bildirin.",
|
||||
"The update was successful. Redirecting you to ownCloud now." => "Güncelleme başarılı. Şimdi ownCloud'a yönlendiriliyorsunuz.",
|
||||
"%s password reset" => "%s parola sıfırlama",
|
||||
"A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yönetinizle iletişime geçin.",
|
||||
"A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yöneticinizle iletişime geçin.",
|
||||
"Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}",
|
||||
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz.",
|
||||
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br>Eğer yine bulamazsanız sistem yöneticinize danışın.",
|
||||
"Request failed!<br>Did you make sure your email/username was right?" => "İstek başarısız!<br>E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?",
|
||||
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.",
|
||||
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için e-posta ile bir bağlantı alacaksınız.",
|
||||
"Username" => "Kullanıcı Adı",
|
||||
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Dosyalarınız şifrelenmiş. Eğer kurtarma anahtarını etkinleştirmediyseniz parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak. Eğer ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile irtibata geçiniz. Gerçekten devam etmek istiyor musunuz?",
|
||||
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Dosyalarınız şifrelenmiş. Eğer kurtarma anahtarını etkinleştirmediyseniz parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak. Eğer ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin. Gerçekten devam etmek istiyor musunuz?",
|
||||
"Yes, I really want to reset my password now" => "Evet, gerçekten parolamı şimdi sıfırlamak istiyorum",
|
||||
"Reset" => "Sıfırla",
|
||||
"Your password was reset" => "Parolanız sıfırlandı",
|
||||
"To login page" => "Giriş sayfasına git",
|
||||
"New password" => "Yeni parola",
|
||||
"Reset password" => "Parolayı sıfırla",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X desteklenmemediğinden %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X desteklenmiyor ve %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!",
|
||||
"For the best results, please consider using a GNU/Linux server instead." => "En iyi sonuçlar için GNU/Linux sunucusu kullanın.",
|
||||
"Personal" => "Kişisel",
|
||||
"Users" => "Kullanıcılar",
|
||||
|
@ -135,25 +135,25 @@ $TRANSLATIONS = array(
|
|||
"Tag already exists" => "Etiket zaten mevcut",
|
||||
"Error deleting tag(s)" => "Etiket(ler) silinirken hata",
|
||||
"Error tagging" => "Etiketleme hatası",
|
||||
"Error untagging" => "Etiket kaldırılırken hata",
|
||||
"Error untagging" => "Etiket kaldırma hatası",
|
||||
"Error favoriting" => "Beğenilirken hata",
|
||||
"Error unfavoriting" => "Beğeniden kaldırılırken hata",
|
||||
"Access forbidden" => "Erişim yasaklı",
|
||||
"Access forbidden" => "Erişim yasak",
|
||||
"Cloud not found" => "Bulut bulunamadı",
|
||||
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Merhaba,\n\nSadece %s sizinle %s paylaşımını yaptığını bildiriyoruz.\nBuradan bakabilirsiniz: %s\n\n",
|
||||
"The share will expire on %s." => "Bu paylaşım %s tarihinde sona erecek.",
|
||||
"Cheers!" => "Şerefe!",
|
||||
"Cheers!" => "Hoşça kalın!",
|
||||
"Security Warning" => "Güvenlik Uyarısı",
|
||||
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "PHP sürümünüz NULL Byte saldırısına açık (CVE-2006-7243)",
|
||||
"Please update your PHP installation to use %s securely." => "%s güvenli olarak kullanmak için, lütfen PHP kurulumunuzu güncelleyin.",
|
||||
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Güvenli rastgele sayı üreticisi bulunamadı. Lütfen PHP OpenSSL eklentisini etkinleştirin.",
|
||||
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Güvenli rastgele sayı üreticisi olmadan saldırganlar parola sıfırlama simgelerini tahmin edip hesabınızı ele geçirebilir.",
|
||||
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için internet'ten erişime açık.",
|
||||
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.",
|
||||
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen <a href=\"%s\" target=\"_blank\">belgelendirme sayfasını</a> ziyaret edin.",
|
||||
"Create an <strong>admin account</strong>" => "Bir <strong>yönetici hesabı</strong> oluşturun",
|
||||
"Storage & database" => "Depolama ve veritabanı",
|
||||
"Data folder" => "Veri klasörü",
|
||||
"Configure the database" => "Veritabanını ayarla",
|
||||
"Configure the database" => "Veritabanını yapılandır",
|
||||
"will be used" => "kullanılacak",
|
||||
"Database user" => "Veritabanı kullanıcı adı",
|
||||
"Database password" => "Veritabanı parolası",
|
||||
|
@ -163,23 +163,23 @@ $TRANSLATIONS = array(
|
|||
"Finish setup" => "Kurulumu tamamla",
|
||||
"Finishing …" => "Tamamlanıyor ...",
|
||||
"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Uygulama, doğru çalışabilmesi için JavaScript'in etkinleştirilmesini gerektiriyor. Lütfen <a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScript'i etkinleştirin</a> ve bu arayüzü yeniden yükleyin.",
|
||||
"%s is available. Get more information on how to update." => "%s mevcut. Güncelleştirme hakkında daha fazla bilgi alın.",
|
||||
"%s is available. Get more information on how to update." => "%s mevcut. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.",
|
||||
"Log out" => "Çıkış yap",
|
||||
"Automatic logon rejected!" => "Otomatik oturum açma reddedildi!",
|
||||
"If you did not change your password recently, your account may be compromised!" => "Yakın zamanda parolanızı değiştirmediyseniz hesabınız tehlikede olabilir!",
|
||||
"Please change your password to secure your account again." => "Hesabınızı tekrar güvene almak için lütfen parolanızı değiştirin.",
|
||||
"Server side authentication failed!" => "Sunucu taraflı yetkilendirme başarısız!",
|
||||
"Please contact your administrator." => "Lütfen sistem yöneticisi ile iletişime geçin.",
|
||||
"Please contact your administrator." => "Lütfen sistem yöneticiniz ile iletişime geçin.",
|
||||
"Lost your password?" => "Parolanızı mı unuttunuz?",
|
||||
"remember" => "hatırla",
|
||||
"Log in" => "Giriş yap",
|
||||
"Alternative Logins" => "Alternatif Girişler",
|
||||
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Merhaba, <br><br> %s sizinle <strong>%s</strong> paylaşımında bulundu.<br><a href=\"%s\">Paylaşımı gör!</a><br><br>",
|
||||
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı gör!</a><br><br>",
|
||||
"This ownCloud instance is currently in single user mode." => "Bu ownCloud örneği şu anda tek kullanıcı kipinde.",
|
||||
"This means only administrators can use the instance." => "Bu, örneği sadece yöneticiler kullanabilir demektir.",
|
||||
"Contact your system administrator if this message persists or appeared unexpectedly." => "Eğer bu ileti görünmeye devam ederse veya beklenmedik şekilde ortaya çıkmışsa sistem yöneticinizle iletişime geçin.",
|
||||
"Thank you for your patience." => "Sabrınız için teşekkür ederiz.",
|
||||
"Updating ownCloud to version %s, this may take a while." => "Owncloud %s sürümüne güncelleniyor. Biraz zaman alabilir.",
|
||||
"Updating ownCloud to version %s, this may take a while." => "ownCloud %s sürümüne güncelleniyor. Biraz zaman alabilir.",
|
||||
"This ownCloud instance is currently being updated, which may take a while." => "Bu ownCloud örneği şu anda güncelleniyor, bu biraz zaman alabilir.",
|
||||
"Please reload this page after a short time to continue using ownCloud." => "ownCloud kullanmaya devam etmek için kısa bir süre sonra lütfen sayfayı yenileyin."
|
||||
);
|
||||
|
|
|
@ -122,7 +122,7 @@ class Controller {
|
|||
// Protect data directory here, so we can test if the protection is working
|
||||
\OC_Setup::protectDataDirectory();
|
||||
try {
|
||||
$htaccessWorking = \OC_Util::isHtAccessWorking();
|
||||
$htaccessWorking = \OC_Util::isHtaccessWorking();
|
||||
} catch (\OC\HintException $e) {
|
||||
$errors[] = array(
|
||||
'error' => $e->getMessage(),
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
?>
|
||||
<?php endforeach; ?>
|
||||
</head>
|
||||
|
||||
<?php flush(); ?>
|
||||
<body id="body-public">
|
||||
<?php print_unescaped($_['content']); ?>
|
||||
</body>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
?>
|
||||
<?php endforeach; ?>
|
||||
</head>
|
||||
|
||||
<?php flush(); ?>
|
||||
<body id="body-login">
|
||||
<div class="wrapper"><!-- for sticky footer -->
|
||||
<header><div id="header">
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
?>
|
||||
<?php endforeach; ?>
|
||||
</head>
|
||||
|
||||
<?php flush(); ?>
|
||||
<body id="<?php p($_['bodyid']);?>">
|
||||
<noscript><div id="nojavascript"><div><?php print_unescaped($l->t('This application requires JavaScript to be enabled for correct operation. Please <a href="http://enable-javascript.com/" target="_blank">enable JavaScript</a> and re-load this interface.')); ?></div></div></noscript>
|
||||
<div id="notification-container">
|
||||
|
|
|
@ -3,13 +3,14 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# kalliet <kst@fam-tank.net>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2014-04-08 01:56-0400\n"
|
||||
"PO-Revision-Date: 2014-04-08 05:56+0000\n"
|
||||
"Last-Translator: I Robot\n"
|
||||
"POT-Creation-Date: 2014-04-17 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-16 19:39+0000\n"
|
||||
"Last-Translator: kalliet <kst@fam-tank.net>\n"
|
||||
"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -60,79 +61,79 @@ msgstr ""
|
|||
|
||||
#: js/config.php:36
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
msgstr "Sondag"
|
||||
|
||||
#: js/config.php:37
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
msgstr "Mandag"
|
||||
|
||||
#: js/config.php:38
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
msgstr "Dinsdag"
|
||||
|
||||
#: js/config.php:39
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
msgstr "Woensdag"
|
||||
|
||||
#: js/config.php:40
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
msgstr "Donderdag"
|
||||
|
||||
#: js/config.php:41
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
msgstr "Vrydag"
|
||||
|
||||
#: js/config.php:42
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
msgstr "Saterdag"
|
||||
|
||||
#: js/config.php:47
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
msgstr "Januarie"
|
||||
|
||||
#: js/config.php:48
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
msgstr "Februarie"
|
||||
|
||||
#: js/config.php:49
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
msgstr "Maart"
|
||||
|
||||
#: js/config.php:50
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
msgstr "April"
|
||||
|
||||
#: js/config.php:51
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
msgstr "Mei"
|
||||
|
||||
#: js/config.php:52
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
msgstr "Junie"
|
||||
|
||||
#: js/config.php:53
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
msgstr "Julie"
|
||||
|
||||
#: js/config.php:54
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
msgstr "Augustus"
|
||||
|
||||
#: js/config.php:55
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
msgstr "September"
|
||||
|
||||
#: js/config.php:56
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
msgstr "Oktober"
|
||||
|
||||
#: js/config.php:57
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
msgstr "November"
|
||||
|
||||
#: js/config.php:58
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
msgstr "Desember"
|
||||
|
||||
#: js/js.js:479
|
||||
msgid "Settings"
|
||||
|
@ -142,137 +143,137 @@ msgstr "Instellings"
|
|||
msgid "Saving..."
|
||||
msgstr ""
|
||||
|
||||
#: js/js.js:1124
|
||||
#: js/js.js:1099
|
||||
msgid "seconds ago"
|
||||
msgstr ""
|
||||
msgstr "sekondes gelede"
|
||||
|
||||
#: js/js.js:1125
|
||||
#: js/js.js:1100
|
||||
msgid "%n minute ago"
|
||||
msgid_plural "%n minutes ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "%n minute gelede"
|
||||
msgstr[1] "%n minute gelede"
|
||||
|
||||
#: js/js.js:1126
|
||||
#: js/js.js:1101
|
||||
msgid "%n hour ago"
|
||||
msgid_plural "%n hours ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: js/js.js:1127
|
||||
#: js/js.js:1102
|
||||
msgid "today"
|
||||
msgstr ""
|
||||
msgstr "vandag"
|
||||
|
||||
#: js/js.js:1128
|
||||
#: js/js.js:1103
|
||||
msgid "yesterday"
|
||||
msgstr ""
|
||||
msgstr "gister"
|
||||
|
||||
#: js/js.js:1129
|
||||
#: js/js.js:1104
|
||||
msgid "%n day ago"
|
||||
msgid_plural "%n days ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: js/js.js:1130
|
||||
#: js/js.js:1105
|
||||
msgid "last month"
|
||||
msgstr ""
|
||||
msgstr "verlede maand"
|
||||
|
||||
#: js/js.js:1131
|
||||
#: js/js.js:1106
|
||||
msgid "%n month ago"
|
||||
msgid_plural "%n months ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: js/js.js:1132
|
||||
#: js/js.js:1107
|
||||
msgid "months ago"
|
||||
msgstr ""
|
||||
msgstr "maande gelede"
|
||||
|
||||
#: js/js.js:1133
|
||||
#: js/js.js:1108
|
||||
msgid "last year"
|
||||
msgstr ""
|
||||
msgstr "verlede jaar"
|
||||
|
||||
#: js/js.js:1134
|
||||
#: js/js.js:1109
|
||||
msgid "years ago"
|
||||
msgstr ""
|
||||
msgstr "jare gelede"
|
||||
|
||||
#: js/oc-dialogs.js:123
|
||||
#: js/oc-dialogs.js:125
|
||||
msgid "Choose"
|
||||
msgstr ""
|
||||
msgstr "Kies"
|
||||
|
||||
#: js/oc-dialogs.js:146
|
||||
#: js/oc-dialogs.js:151
|
||||
msgid "Error loading file picker template: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:172
|
||||
#: js/oc-dialogs.js:177
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
msgstr "Ja"
|
||||
|
||||
#: js/oc-dialogs.js:182
|
||||
#: js/oc-dialogs.js:187
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
msgstr "Nee"
|
||||
|
||||
#: js/oc-dialogs.js:199
|
||||
#: js/oc-dialogs.js:204
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:219
|
||||
#: js/oc-dialogs.js:224
|
||||
msgid "Error loading message template: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:347
|
||||
#: js/oc-dialogs.js:352
|
||||
msgid "{count} file conflict"
|
||||
msgid_plural "{count} file conflicts"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: js/oc-dialogs.js:361
|
||||
#: js/oc-dialogs.js:366
|
||||
msgid "One file conflict"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:367
|
||||
#: js/oc-dialogs.js:372
|
||||
msgid "New Files"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:368
|
||||
#: js/oc-dialogs.js:373
|
||||
msgid "Already existing files"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:370
|
||||
#: js/oc-dialogs.js:375
|
||||
msgid "Which files do you want to keep?"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:371
|
||||
#: js/oc-dialogs.js:376
|
||||
msgid ""
|
||||
"If you select both versions, the copied file will have a number added to its"
|
||||
" name."
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:379
|
||||
#: js/oc-dialogs.js:384
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:389
|
||||
#: js/oc-dialogs.js:394
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
|
||||
#: js/oc-dialogs.js:441 js/oc-dialogs.js:454
|
||||
msgid "(all selected)"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:439 js/oc-dialogs.js:452
|
||||
#: js/oc-dialogs.js:444 js/oc-dialogs.js:458
|
||||
msgid "({count} selected)"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:460
|
||||
#: js/oc-dialogs.js:466
|
||||
msgid "Error loading file exists template"
|
||||
msgstr ""
|
||||
|
||||
#: js/setup.js:84
|
||||
msgid "Very weak password"
|
||||
msgstr ""
|
||||
msgstr "Baie swak wagwoord"
|
||||
|
||||
#: js/setup.js:85
|
||||
msgid "Weak password"
|
||||
msgstr ""
|
||||
msgstr "Swak wagwoord"
|
||||
|
||||
#: js/setup.js:86
|
||||
msgid "So-so password"
|
||||
|
@ -280,26 +281,26 @@ msgstr ""
|
|||
|
||||
#: js/setup.js:87
|
||||
msgid "Good password"
|
||||
msgstr ""
|
||||
msgstr "Goeie wagwoord"
|
||||
|
||||
#: js/setup.js:88
|
||||
msgid "Strong password"
|
||||
msgstr ""
|
||||
msgstr "Sterk wagwoord"
|
||||
|
||||
#: js/share.js:51 js/share.js:66 js/share.js:106
|
||||
msgid "Shared"
|
||||
msgstr ""
|
||||
msgstr "Gedeel"
|
||||
|
||||
#: js/share.js:109
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
msgstr "Deel"
|
||||
|
||||
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:711
|
||||
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:732
|
||||
#: templates/installation.php:10
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
msgstr "Fout"
|
||||
|
||||
#: js/share.js:160 js/share.js:767
|
||||
#: js/share.js:160 js/share.js:788
|
||||
msgid "Error while sharing"
|
||||
msgstr ""
|
||||
|
||||
|
@ -313,11 +314,11 @@ msgstr ""
|
|||
|
||||
#: js/share.js:188
|
||||
msgid "Shared with you and the group {group} by {owner}"
|
||||
msgstr ""
|
||||
msgstr "Met jou en die groep {group} gedeel deur {owner}"
|
||||
|
||||
#: js/share.js:190
|
||||
msgid "Shared with you by {owner}"
|
||||
msgstr ""
|
||||
msgstr "Met jou gedeel deur {owner}"
|
||||
|
||||
#: js/share.js:214
|
||||
msgid "Share with user or group …"
|
||||
|
@ -341,11 +342,11 @@ msgstr ""
|
|||
|
||||
#: js/share.js:234
|
||||
msgid "Email link to person"
|
||||
msgstr ""
|
||||
msgstr "E-pos aan persoon"
|
||||
|
||||
#: js/share.js:235
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
msgstr "Stuur"
|
||||
|
||||
#: js/share.js:240
|
||||
msgid "Set expiration date"
|
||||
|
@ -363,71 +364,71 @@ msgstr ""
|
|||
msgid "No people found"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:324 js/share.js:363
|
||||
#: js/share.js:324 js/share.js:383
|
||||
msgid "group"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:335
|
||||
#: js/share.js:355
|
||||
msgid "Resharing is not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:379
|
||||
#: js/share.js:399
|
||||
msgid "Shared in {item} with {user}"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:401
|
||||
#: js/share.js:421
|
||||
msgid "Unshare"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:409
|
||||
#: js/share.js:429
|
||||
msgid "notify by email"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:412
|
||||
#: js/share.js:432
|
||||
msgid "can edit"
|
||||
msgstr ""
|
||||
msgstr "kan wysig"
|
||||
|
||||
#: js/share.js:414
|
||||
#: js/share.js:434
|
||||
msgid "access control"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:417
|
||||
#: js/share.js:437
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:420
|
||||
#: js/share.js:440
|
||||
msgid "update"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:423
|
||||
#: js/share.js:443
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:426
|
||||
#: js/share.js:446
|
||||
msgid "share"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:698
|
||||
#: js/share.js:719
|
||||
msgid "Password protected"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:711
|
||||
#: js/share.js:732
|
||||
msgid "Error unsetting expiration date"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:729
|
||||
#: js/share.js:750
|
||||
msgid "Error setting expiration date"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:754
|
||||
#: js/share.js:775
|
||||
msgid "Sending ..."
|
||||
msgstr ""
|
||||
msgstr "Stuur ..."
|
||||
|
||||
#: js/share.js:765
|
||||
#: js/share.js:786
|
||||
msgid "Email sent"
|
||||
msgstr ""
|
||||
msgstr "E-pos gestuur"
|
||||
|
||||
#: js/share.js:789
|
||||
#: js/share.js:810
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
|
@ -755,7 +756,7 @@ msgstr ""
|
|||
|
||||
#: templates/login.php:46
|
||||
msgid "Lost your password?"
|
||||
msgstr "Jou wagwoord verloor?"
|
||||
msgstr "Wagwoord verloor?"
|
||||
|
||||
#: templates/login.php:51
|
||||
msgid "remember"
|
||||
|
|
|
@ -9,8 +9,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2014-04-08 01:56-0400\n"
|
||||
"PO-Revision-Date: 2014-04-08 05:56+0000\n"
|
||||
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-16 05:40+0000\n"
|
||||
"Last-Translator: I Robot\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -144,11 +144,11 @@ msgstr "إعدادات"
|
|||
msgid "Saving..."
|
||||
msgstr "جاري الحفظ..."
|
||||
|
||||
#: js/js.js:1124
|
||||
#: js/js.js:1099
|
||||
msgid "seconds ago"
|
||||
msgstr "منذ ثواني"
|
||||
|
||||
#: js/js.js:1125
|
||||
#: js/js.js:1100
|
||||
msgid "%n minute ago"
|
||||
msgid_plural "%n minutes ago"
|
||||
msgstr[0] ""
|
||||
|
@ -158,7 +158,7 @@ msgstr[3] ""
|
|||
msgstr[4] ""
|
||||
msgstr[5] ""
|
||||
|
||||
#: js/js.js:1126
|
||||
#: js/js.js:1101
|
||||
msgid "%n hour ago"
|
||||
msgid_plural "%n hours ago"
|
||||
msgstr[0] ""
|
||||
|
@ -168,15 +168,15 @@ msgstr[3] ""
|
|||
msgstr[4] ""
|
||||
msgstr[5] ""
|
||||
|
||||
#: js/js.js:1127
|
||||
#: js/js.js:1102
|
||||
msgid "today"
|
||||
msgstr "اليوم"
|
||||
|
||||
#: js/js.js:1128
|
||||
#: js/js.js:1103
|
||||
msgid "yesterday"
|
||||
msgstr "يوم أمس"
|
||||
|
||||
#: js/js.js:1129
|
||||
#: js/js.js:1104
|
||||
msgid "%n day ago"
|
||||
msgid_plural "%n days ago"
|
||||
msgstr[0] ""
|
||||
|
@ -186,11 +186,11 @@ msgstr[3] ""
|
|||
msgstr[4] ""
|
||||
msgstr[5] ""
|
||||
|
||||
#: js/js.js:1130
|
||||
#: js/js.js:1105
|
||||
msgid "last month"
|
||||
msgstr "الشهر الماضي"
|
||||
|
||||
#: js/js.js:1131
|
||||
#: js/js.js:1106
|
||||
msgid "%n month ago"
|
||||
msgid_plural "%n months ago"
|
||||
msgstr[0] ""
|
||||
|
@ -200,43 +200,43 @@ msgstr[3] ""
|
|||
msgstr[4] ""
|
||||
msgstr[5] ""
|
||||
|
||||
#: js/js.js:1132
|
||||
#: js/js.js:1107
|
||||
msgid "months ago"
|
||||
msgstr "شهر مضى"
|
||||
|
||||
#: js/js.js:1133
|
||||
#: js/js.js:1108
|
||||
msgid "last year"
|
||||
msgstr "السنةالماضية"
|
||||
|
||||
#: js/js.js:1134
|
||||
#: js/js.js:1109
|
||||
msgid "years ago"
|
||||
msgstr "سنة مضت"
|
||||
|
||||
#: js/oc-dialogs.js:123
|
||||
#: js/oc-dialogs.js:125
|
||||
msgid "Choose"
|
||||
msgstr "اختيار"
|
||||
|
||||
#: js/oc-dialogs.js:146
|
||||
#: js/oc-dialogs.js:151
|
||||
msgid "Error loading file picker template: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:172
|
||||
#: js/oc-dialogs.js:177
|
||||
msgid "Yes"
|
||||
msgstr "نعم"
|
||||
|
||||
#: js/oc-dialogs.js:182
|
||||
#: js/oc-dialogs.js:187
|
||||
msgid "No"
|
||||
msgstr "لا"
|
||||
|
||||
#: js/oc-dialogs.js:199
|
||||
#: js/oc-dialogs.js:204
|
||||
msgid "Ok"
|
||||
msgstr "موافق"
|
||||
|
||||
#: js/oc-dialogs.js:219
|
||||
#: js/oc-dialogs.js:224
|
||||
msgid "Error loading message template: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:347
|
||||
#: js/oc-dialogs.js:352
|
||||
msgid "{count} file conflict"
|
||||
msgid_plural "{count} file conflicts"
|
||||
msgstr[0] ""
|
||||
|
@ -246,45 +246,45 @@ msgstr[3] ""
|
|||
msgstr[4] ""
|
||||
msgstr[5] ""
|
||||
|
||||
#: js/oc-dialogs.js:361
|
||||
#: js/oc-dialogs.js:366
|
||||
msgid "One file conflict"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:367
|
||||
#: js/oc-dialogs.js:372
|
||||
msgid "New Files"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:368
|
||||
#: js/oc-dialogs.js:373
|
||||
msgid "Already existing files"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:370
|
||||
#: js/oc-dialogs.js:375
|
||||
msgid "Which files do you want to keep?"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:371
|
||||
#: js/oc-dialogs.js:376
|
||||
msgid ""
|
||||
"If you select both versions, the copied file will have a number added to its"
|
||||
" name."
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:379
|
||||
#: js/oc-dialogs.js:384
|
||||
msgid "Cancel"
|
||||
msgstr "الغاء"
|
||||
|
||||
#: js/oc-dialogs.js:389
|
||||
#: js/oc-dialogs.js:394
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
|
||||
#: js/oc-dialogs.js:441 js/oc-dialogs.js:454
|
||||
msgid "(all selected)"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:439 js/oc-dialogs.js:452
|
||||
#: js/oc-dialogs.js:444 js/oc-dialogs.js:458
|
||||
msgid "({count} selected)"
|
||||
msgstr ""
|
||||
|
||||
#: js/oc-dialogs.js:460
|
||||
#: js/oc-dialogs.js:466
|
||||
msgid "Error loading file exists template"
|
||||
msgstr ""
|
||||
|
||||
|
@ -316,12 +316,12 @@ msgstr "مشارك"
|
|||
msgid "Share"
|
||||
msgstr "شارك"
|
||||
|
||||
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:711
|
||||
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:731
|
||||
#: templates/installation.php:10
|
||||
msgid "Error"
|
||||
msgstr "خطأ"
|
||||
|
||||
#: js/share.js:160 js/share.js:767
|
||||
#: js/share.js:160 js/share.js:787
|
||||
msgid "Error while sharing"
|
||||
msgstr "حصل خطأ عند عملية المشاركة"
|
||||
|
||||
|
@ -385,71 +385,71 @@ msgstr "مشاركة عبر البريد الإلكتروني:"
|
|||
msgid "No people found"
|
||||
msgstr "لم يتم العثور على أي شخص"
|
||||
|
||||
#: js/share.js:324 js/share.js:363
|
||||
#: js/share.js:324 js/share.js:383
|
||||
msgid "group"
|
||||
msgstr "مجموعة"
|
||||
|
||||
#: js/share.js:335
|
||||
#: js/share.js:355
|
||||
msgid "Resharing is not allowed"
|
||||
msgstr "لا يسمح بعملية إعادة المشاركة"
|
||||
|
||||
#: js/share.js:379
|
||||
#: js/share.js:399
|
||||
msgid "Shared in {item} with {user}"
|
||||
msgstr "شورك في {item} مع {user}"
|
||||
|
||||
#: js/share.js:401
|
||||
#: js/share.js:421
|
||||
msgid "Unshare"
|
||||
msgstr "إلغاء مشاركة"
|
||||
|
||||
#: js/share.js:409
|
||||
#: js/share.js:429
|
||||
msgid "notify by email"
|
||||
msgstr ""
|
||||
|
||||
#: js/share.js:412
|
||||
#: js/share.js:432
|
||||
msgid "can edit"
|
||||
msgstr "التحرير مسموح"
|
||||
|
||||
#: js/share.js:414
|
||||
#: js/share.js:434
|
||||
msgid "access control"
|
||||
msgstr "ضبط الوصول"
|
||||
|
||||
#: js/share.js:417
|
||||
#: js/share.js:437
|
||||
msgid "create"
|
||||
msgstr "إنشاء"
|
||||
|
||||
#: js/share.js:420
|
||||
#: js/share.js:440
|
||||
msgid "update"
|
||||
msgstr "تحديث"
|
||||
|
||||
#: js/share.js:423
|
||||
#: js/share.js:443
|
||||
msgid "delete"
|
||||
msgstr "حذف"
|
||||
|
||||
#: js/share.js:426
|
||||
#: js/share.js:446
|
||||
msgid "share"
|
||||
msgstr "مشاركة"
|
||||
|
||||
#: js/share.js:698
|
||||
#: js/share.js:718
|
||||
msgid "Password protected"
|
||||
msgstr "محمي بكلمة السر"
|
||||
|
||||
#: js/share.js:711
|
||||
#: js/share.js:731
|
||||
msgid "Error unsetting expiration date"
|
||||
msgstr "حصل خطأ عند عملية إزالة تاريخ إنتهاء الصلاحية"
|
||||
|
||||
#: js/share.js:729
|
||||
#: js/share.js:749
|
||||
msgid "Error setting expiration date"
|
||||
msgstr "حصل خطأ عند عملية تعيين تاريخ إنتهاء الصلاحية"
|
||||
|
||||
#: js/share.js:754
|
||||
#: js/share.js:774
|
||||
msgid "Sending ..."
|
||||
msgstr "جاري الارسال ..."
|
||||
|
||||
#: js/share.js:765
|
||||
#: js/share.js:785
|
||||
msgid "Email sent"
|
||||
msgstr "تم ارسال البريد الالكتروني"
|
||||
|
||||
#: js/share.js:789
|
||||
#: js/share.js:809
|
||||
msgid "Warning"
|
||||
msgstr "تحذير"
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2014-04-04 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-04 05:56+0000\n"
|
||||
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-16 05:40+0000\n"
|
||||
"Last-Translator: I Robot\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -44,7 +44,7 @@ msgid ""
|
|||
"allowed."
|
||||
msgstr "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها"
|
||||
|
||||
#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:145
|
||||
#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:155
|
||||
#: lib/app.php:65
|
||||
msgid "The target folder has been moved or deleted."
|
||||
msgstr ""
|
||||
|
@ -129,15 +129,15 @@ msgstr "خطأ في الكتابة على القرص الصلب"
|
|||
msgid "Not enough storage available"
|
||||
msgstr "لا يوجد مساحة تخزينية كافية"
|
||||
|
||||
#: ajax/upload.php:159
|
||||
#: ajax/upload.php:169
|
||||
msgid "Upload failed. Could not find uploaded file"
|
||||
msgstr "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله."
|
||||
|
||||
#: ajax/upload.php:169
|
||||
#: ajax/upload.php:179
|
||||
msgid "Upload failed. Could not get file info."
|
||||
msgstr "فشلت عملية الرفع. تعذر الحصول على معلومات الملف."
|
||||
|
||||
#: ajax/upload.php:184
|
||||
#: ajax/upload.php:194
|
||||
msgid "Invalid directory."
|
||||
msgstr "مسار غير صحيح."
|
||||
|
||||
|
@ -145,53 +145,53 @@ msgstr "مسار غير صحيح."
|
|||
msgid "Files"
|
||||
msgstr "الملفات"
|
||||
|
||||
#: js/file-upload.js:247
|
||||
#: js/file-upload.js:254
|
||||
msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
|
||||
msgstr "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت"
|
||||
|
||||
#: js/file-upload.js:258
|
||||
#: js/file-upload.js:266
|
||||
msgid "Total file size {size1} exceeds upload limit {size2}"
|
||||
msgstr ""
|
||||
|
||||
#: js/file-upload.js:268
|
||||
#: js/file-upload.js:276
|
||||
msgid ""
|
||||
"Not enough free space, you are uploading {size1} but only {size2} is left"
|
||||
msgstr ""
|
||||
|
||||
#: js/file-upload.js:340
|
||||
#: js/file-upload.js:353
|
||||
msgid "Upload cancelled."
|
||||
msgstr "تم إلغاء عملية رفع الملفات ."
|
||||
|
||||
#: js/file-upload.js:385
|
||||
#: js/file-upload.js:398
|
||||
msgid "Could not get result from server."
|
||||
msgstr "تعذر الحصول على نتيجة من الخادم"
|
||||
|
||||
#: js/file-upload.js:477
|
||||
#: js/file-upload.js:490
|
||||
msgid ""
|
||||
"File upload is in progress. Leaving the page now will cancel the upload."
|
||||
msgstr "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات."
|
||||
|
||||
#: js/file-upload.js:542
|
||||
#: js/file-upload.js:555
|
||||
msgid "URL cannot be empty"
|
||||
msgstr ""
|
||||
|
||||
#: js/file-upload.js:546
|
||||
#: js/file-upload.js:559
|
||||
msgid "In the home folder 'Shared' is a reserved filename"
|
||||
msgstr ""
|
||||
|
||||
#: js/file-upload.js:548 js/filelist.js:603
|
||||
#: js/file-upload.js:561 js/filelist.js:585
|
||||
msgid "{new_name} already exists"
|
||||
msgstr "{new_name} موجود مسبقا"
|
||||
|
||||
#: js/file-upload.js:600
|
||||
#: js/file-upload.js:613
|
||||
msgid "Could not create file"
|
||||
msgstr ""
|
||||
|
||||
#: js/file-upload.js:613
|
||||
#: js/file-upload.js:626
|
||||
msgid "Could not create folder"
|
||||
msgstr ""
|
||||
|
||||
#: js/file-upload.js:653
|
||||
#: js/file-upload.js:666
|
||||
msgid "Error fetching URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -215,19 +215,19 @@ msgstr "حدث خطأ أثناء نقل الملف"
|
|||
msgid "Error"
|
||||
msgstr "خطأ"
|
||||
|
||||
#: js/filelist.js:267 js/filelist.js:1113
|
||||
#: js/filelist.js:251 js/filelist.js:1129
|
||||
msgid "Pending"
|
||||
msgstr "قيد الانتظار"
|
||||
|
||||
#: js/filelist.js:630
|
||||
#: js/filelist.js:612
|
||||
msgid "Could not rename file"
|
||||
msgstr ""
|
||||
|
||||
#: js/filelist.js:789
|
||||
#: js/filelist.js:775
|
||||
msgid "Error deleting file."
|
||||
msgstr ""
|
||||
|
||||
#: js/filelist.js:814 js/filelist.js:891 js/files.js:589
|
||||
#: js/filelist.js:800 js/filelist.js:876 js/files.js:589
|
||||
msgid "%n folder"
|
||||
msgid_plural "%n folders"
|
||||
msgstr[0] "لا يوجد مجلدات %n"
|
||||
|
@ -237,7 +237,7 @@ msgstr[3] "عدد قليل من مجلدات %n"
|
|||
msgstr[4] "عدد كبير من مجلدات %n"
|
||||
msgstr[5] "مجلدات %n"
|
||||
|
||||
#: js/filelist.js:815 js/filelist.js:892 js/files.js:595
|
||||
#: js/filelist.js:801 js/filelist.js:877 js/files.js:595
|
||||
msgid "%n file"
|
||||
msgid_plural "%n files"
|
||||
msgstr[0] "لا يوجد ملفات %n"
|
||||
|
@ -247,11 +247,11 @@ msgstr[3] "قليل من ملفات %n"
|
|||
msgstr[4] "الكثير من ملفات %n"
|
||||
msgstr[5] " ملفات %n"
|
||||
|
||||
#: js/filelist.js:822
|
||||
#: js/filelist.js:808
|
||||
msgid "{dirs} and {files}"
|
||||
msgstr "{dirs} و {files}"
|
||||
|
||||
#: js/filelist.js:1052 js/filelist.js:1090
|
||||
#: js/filelist.js:1037 js/filelist.js:1076
|
||||
msgid "Uploading %n file"
|
||||
msgid_plural "Uploading %n files"
|
||||
msgstr[0] "لا يوجد ملفات %n لتحميلها"
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-03-26 06:10+0000\n"
|
||||
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-16 05:41+0000\n"
|
||||
"Last-Translator: Abderraouf Mehdi Bouhali <armbouhali@gmail.com>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -28,38 +28,38 @@ msgstr "تعذّر حذف%s بشكل دائم"
|
|||
msgid "Couldn't restore %s"
|
||||
msgstr "تعذّر استرجاع %s "
|
||||
|
||||
#: js/filelist.js:23
|
||||
#: js/filelist.js:3
|
||||
msgid "Deleted files"
|
||||
msgstr "حذف الملفات"
|
||||
|
||||
#: js/trash.js:16 js/trash.js:103 js/trash.js:152
|
||||
#: js/trash.js:33 js/trash.js:124 js/trash.js:173
|
||||
msgid "Error"
|
||||
msgstr "خطأ"
|
||||
|
||||
#: js/trash.js:264
|
||||
msgid "Deleted Files"
|
||||
msgstr "الملفات المحذوفه"
|
||||
|
||||
#: lib/trashbin.php:859 lib/trashbin.php:861
|
||||
msgid "restored"
|
||||
msgstr "تمت الاستعادة"
|
||||
|
||||
#: templates/index.php:7
|
||||
#: templates/index.php:6
|
||||
msgid "Nothing in here. Your trash bin is empty!"
|
||||
msgstr "لا يوجد شيء هنا. سلة المهملات خاليه."
|
||||
|
||||
#: templates/index.php:20
|
||||
#: templates/index.php:19
|
||||
msgid "Name"
|
||||
msgstr "اسم"
|
||||
|
||||
#: templates/index.php:23 templates/index.php:25
|
||||
#: templates/index.php:22 templates/index.php:24
|
||||
msgid "Restore"
|
||||
msgstr "استعيد"
|
||||
|
||||
#: templates/index.php:31
|
||||
#: templates/index.php:30
|
||||
msgid "Deleted"
|
||||
msgstr "تم الحذف"
|
||||
|
||||
#: templates/index.php:34 templates/index.php:35
|
||||
#: templates/index.php:33 templates/index.php:34
|
||||
msgid "Delete"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#: templates/part.breadcrumb.php:8
|
||||
msgid "Deleted Files"
|
||||
msgstr "الملفات المحذوفه"
|
||||
|
|
|
@ -10,8 +10,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2014-04-12 01:54-0400\n"
|
||||
"PO-Revision-Date: 2014-04-12 05:54+0000\n"
|
||||
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-16 05:40+0000\n"
|
||||
"Last-Translator: I Robot\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2014-04-12 01:54-0400\n"
|
||||
"PO-Revision-Date: 2014-04-12 05:55+0000\n"
|
||||
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
|
||||
"PO-Revision-Date: 2014-04-16 05:41+0000\n"
|
||||
"Last-Translator: I Robot\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue