Merge branch 'master' into type-hinting-sharing

Conflicts:
	apps/files_sharing/lib/share/file.php
	apps/files_sharing/tests/api.php
	lib/private/share/share.php
This commit is contained in:
Bart Visscher 2014-04-28 17:59:41 +02:00
commit 66b1ad0a9b
1045 changed files with 51313 additions and 20083 deletions

View File

@ -8,7 +8,9 @@ filter:
- 'lib/l10n/*'
- 'core/js/tests/lib/*.js'
- 'core/js/tests/specs/*.js'
- 'core/js/jquery-1.10.0.js'
- 'core/js/jquery-1.10.0.min.js'
- 'core/js/jquery-migrate-1.2.1.js'
- 'core/js/jquery-migrate-1.2.1.min.js'
- 'core/js/jquery-showpassword.js'
- 'core/js/jquery-tipsy.js'

View File

@ -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))));
}

View File

@ -28,11 +28,8 @@ $authBackend = new OC_Connector_Sabre_Auth();
$lockBackend = new OC_Connector_Sabre_Locks();
$requestBackend = new OC_Connector_Sabre_Request();
// Create ownCloud Dir
$rootDir = new OC_Connector_Sabre_Directory('');
$objectTree = new \OC\Connector\Sabre\ObjectTree($rootDir);
// Fire up server
$objectTree = new \OC\Connector\Sabre\ObjectTree();
$server = new OC_Connector_Sabre_Server($objectTree);
$server->httpRequest = $requestBackend;
$server->setBaseUri($baseuri);
@ -43,10 +40,21 @@ $server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend, $defaults->getName())
$server->addPlugin(new Sabre_DAV_Locks_Plugin($lockBackend));
$server->addPlugin(new Sabre_DAV_Browser_Plugin(false));
$server->addPlugin(new OC_Connector_Sabre_FilesPlugin());
$server->addPlugin(new OC_Connector_Sabre_AbortedUploadDetectionPlugin());
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin());
$server->addPlugin(new OC_Connector_Sabre_MaintenancePlugin());
$server->addPlugin(new OC_Connector_Sabre_ExceptionLoggerPlugin('webdav'));
// wait with registering these until auth is handled and the filesystem is setup
$server->subscribeEvent('beforeMethod', function () use ($server, $objectTree) {
$view = \OC\Files\Filesystem::getView();
$rootInfo = $view->getFileInfo('');
// Create ownCloud Dir
$rootDir = new OC_Connector_Sabre_Directory($view, $rootInfo);
$objectTree->init($rootDir, $view);
$server->addPlugin(new OC_Connector_Sabre_AbortedUploadDetectionPlugin($view));
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin($view));
}, 30); // priority 30: after auth (10) and acl(20), before lock(50) and handling the request
// And off we go!
$server->exec();

View File

@ -51,7 +51,7 @@
margin: 5px;
padding-left: 42px;
padding-bottom: 2px;
background-position: initial;
background-position: left center;
cursor: pointer;
}
#new > ul > li > p {

View File

@ -235,18 +235,26 @@ OC.Upload = {
var file = data.files[0];
try {
// FIXME: not so elegant... need to refactor that method to return a value
Files.isFileNameValid(file.name, FileList.getCurrentDirectory());
Files.isFileNameValid(file.name);
}
catch (errorMessage) {
data.textStatus = 'invalidcharacters';
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
};
}
},
@ -542,8 +555,6 @@ OC.Upload = {
throw t('files', 'URL cannot be empty');
} else if (type !== 'web' && !Files.isFileNameValid(filename)) {
// Files.isFileNameValid(filename) throws an exception itself
} else if (FileList.getCurrentDirectory() === '/' && filename.toLowerCase() === 'shared') {
throw t('files', 'In the home folder \'Shared\' is a reserved filename');
} else if (FileList.inList(filename)) {
throw t('files', '{new_name} already exists', {new_name: filename});
} else {
@ -683,3 +694,4 @@ $(document).ready(function() {
OC.Upload.init();
});

View File

@ -118,10 +118,6 @@ var FileActions = {
};
var addAction = function (name, action, displayName) {
// NOTE: Temporary fix to prevent rename action in root of Shared directory
if (name === 'Rename' && $('#dir').val() === '/Shared') {
return true;
}
if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') {
@ -160,7 +156,7 @@ var FileActions = {
addAction(name, ah, displayName);
}
});
if(actions.Share && !($('#dir').val() === '/' && file === 'Shared')){
if(actions.Share){
displayName = t('files', 'Share');
addAction('Share', actions.Share, displayName);
}
@ -223,7 +219,7 @@ $(document).ready(function () {
$('#fileList tr').each(function () {
FileActions.display($(this).children('td.filename'));
});
$('#fileList').trigger(jQuery.Event("fileActionsReady"));
});

View File

@ -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,
@ -178,6 +178,13 @@ window.FileList = {
if (type === 'dir') {
mime = mime || 'httpd/unix-directory';
}
// user should always be able to rename a share mount point
var allowRename = 0;
if (fileData.isShareMountPoint) {
allowRename = OC.PERMISSION_UPDATE;
}
//containing tr
var tr = $('<tr></tr>').attr({
"data-id" : fileData.id,
@ -187,7 +194,7 @@ window.FileList = {
"data-mime": mime,
"data-mtime": mtime,
"data-etag": fileData.etag,
"data-permissions": fileData.permissions || this.getDirectoryPermissions()
"data-permissions": fileData.permissions | allowRename || this.getDirectoryPermissions()
});
if (type === 'dir') {
@ -212,7 +219,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 +235,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 +257,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 + ')'
@ -283,6 +290,10 @@ window.FileList = {
mime = fileData.mimetype,
permissions = parseInt(fileData.permissions, 10) || 0;
if (fileData.isShareMountPoint) {
permissions = permissions | OC.PERMISSION_UPDATE;
}
if (type === 'dir') {
mime = mime || 'httpd/unix-directory';
}
@ -437,8 +448,6 @@ window.FileList = {
});
},
reloadCallback: function(result) {
var $controls = $('#controls');
delete this._reloadCall;
this.hideMask();
@ -574,7 +583,8 @@ window.FileList = {
input.focus();
//preselect input
var len = input.val().lastIndexOf('.');
if (len === -1) {
if ( len === -1 ||
tr.data('type') === 'dir' ) {
len = input.val().length;
}
input.selectRange(0, len);
@ -582,7 +592,7 @@ window.FileList = {
var filename = input.val();
if (filename !== oldname) {
// Files.isFileNameValid(filename) throws an exception itself
Files.isFileNameValid(filename, FileList.getCurrentDirectory());
Files.isFileNameValid(filename);
if (FileList.inList(filename)) {
throw t('files', '{new_name} already exists', {new_name: filename});
}
@ -810,10 +820,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 +908,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 +945,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 +987,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 +1016,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 +1028,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 +1041,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 +1062,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 +1076,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 +1150,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 +1213,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 +1222,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));

View File

@ -87,11 +87,9 @@ var Files = {
* Throws a string exception with an error message if
* the file name is not valid
*/
isFileNameValid: function (name, root) {
isFileNameValid: function (name) {
var trimmedName = name.trim();
if (trimmedName === '.'
|| trimmedName === '..'
|| (root === '/' && trimmedName.toLowerCase() === 'shared'))
if (trimmedName === '.' || trimmedName === '..')
{
throw t('files', '"{name}" is an invalid file name.', {name: name});
} else if (trimmedName.length === 0) {
@ -135,7 +133,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') {

View File

@ -44,7 +44,6 @@ $TRANSLATIONS = array(
"Size" => "حجم",
"Modified" => "معدل",
"%s could not be renamed" => "%s لا يمكن إعادة تسميته. ",
"Upload" => "رفع",
"File handling" => "التعامل مع الملف",
"Maximum upload size" => "الحد الأقصى لحجم الملفات التي يمكن رفعها",
"max. possible: " => "الحد الأقصى المسموح به",

View File

@ -19,9 +19,9 @@ $TRANSLATIONS = array(
"_Uploading %n file_::_Uploading %n files_" => array("",""),
"Name" => "Nome",
"Size" => "Tamañu",
"Upload" => "Xubir",
"Save" => "Guardar",
"New folder" => "Nueva carpeta",
"Folder" => "Carpeta",
"Cancel upload" => "Encaboxar xuba",
"Download" => "Descargar",
"Delete" => "Desaniciar"

View File

@ -20,7 +20,6 @@ $TRANSLATIONS = array(
"Name" => "Име",
"Size" => "Размер",
"Modified" => "Променено",
"Upload" => "Качване",
"Maximum upload size" => "Максимален размер за качване",
"0 is unlimited" => "Ползвайте 0 за без ограничения",
"Save" => "Запис",

View File

@ -27,7 +27,6 @@ $TRANSLATIONS = array(
"Name" => "রাম",
"Size" => "আকার",
"Modified" => "পরিবর্তিত",
"Upload" => "আপলোড",
"File handling" => "ফাইল হ্যার্ডলিং",
"Maximum upload size" => "আপলোডের সর্বোচ্চ আকার",
"max. possible: " => "অনুমোদিত সর্বোচ্চ আকার",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "No hi ha resposta del servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.",
"URL cannot be empty" => "L'URL no pot ser buit",
"In the home folder 'Shared' is a reserved filename" => "A la carpeta inici 'Compartit' és un nom de fitxer reservat",
"{new_name} already exists" => "{new_name} ja existeix",
"Could not create file" => "No s'ha pogut crear el fitxer",
"Could not create folder" => "No s'ha pogut crear la carpeta",
@ -62,9 +61,7 @@ $TRANSLATIONS = array(
"Name" => "Nom",
"Size" => "Mida",
"Modified" => "Modificat",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nom de carpeta no vàlid. L'ús de 'Shared' és reservat",
"%s could not be renamed" => "%s no es pot canviar el nom",
"Upload" => "Puja",
"File handling" => "Gestió de fitxers",
"Maximum upload size" => "Mida màxima de pujada",
"max. possible: " => "màxim possible:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Nepodařilo se získat výsledek ze serveru.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Probíhá odesílání souboru. Opuštění stránky způsobí zrušení nahrávání.",
"URL cannot be empty" => "URL nemůže zůstat prázdná",
"In the home folder 'Shared' is a reserved filename" => "V osobní složce je název 'Shared' rezervovaný",
"{new_name} already exists" => "{new_name} již existuje",
"Could not create file" => "Nepodařilo se vytvořit soubor",
"Could not create folder" => "Nepodařilo se vytvořit složku",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Název",
"Size" => "Velikost",
"Modified" => "Upraveno",
"Invalid folder name. Usage of 'Shared' is reserved." => "Neplatný název složky. Použití 'Shared' je rezervováno.",
"%s could not be renamed" => "%s nemůže být přejmenován",
"Upload" => "Odeslat",
"Upload (max. %s)" => "Nahrát (max. %s)",
"File handling" => "Zacházení se soubory",
"Maximum upload size" => "Maximální velikost pro odesílání",
"max. possible: " => "největší možná: ",

View File

@ -32,7 +32,6 @@ $TRANSLATIONS = array(
"Name" => "Enw",
"Size" => "Maint",
"Modified" => "Addaswyd",
"Upload" => "Llwytho i fyny",
"File handling" => "Trafod ffeiliau",
"Maximum upload size" => "Maint mwyaf llwytho i fyny",
"max. possible: " => "mwyaf. posib:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Kunne ikke hente resultat fra server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.",
"URL cannot be empty" => "URL kan ikke være tom",
"In the home folder 'Shared' is a reserved filename" => "Navnet 'Shared' er reserveret i hjemmemappen.",
"{new_name} already exists" => "{new_name} eksisterer allerede",
"Could not create file" => "Kunne ikke oprette fil",
"Could not create folder" => "Kunne ikke oprette mappe",
@ -62,9 +61,7 @@ $TRANSLATIONS = array(
"Name" => "Navn",
"Size" => "Størrelse",
"Modified" => "Ændret",
"Invalid folder name. Usage of 'Shared' is reserved." => "Ugyldig mappenavn. 'Shared' er reserveret.",
"%s could not be renamed" => "%s kunne ikke omdøbes",
"Upload" => "Upload",
"File handling" => "Filhåndtering",
"Maximum upload size" => "Maksimal upload-størrelse",
"max. possible: " => "max. mulige: ",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Ergebnis konnte nicht vom Server abgerufen werden.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.",
"URL cannot be empty" => "Die URL darf nicht leer sein",
"In the home folder 'Shared' is a reserved filename" => "Das Benutzerverzeichnis 'Shared' ist ein reservierter Dateiname",
"{new_name} already exists" => "{new_name} existiert bereits",
"Could not create file" => "Die Datei konnte nicht erstellt werden",
"Could not create folder" => "Der Ordner konnte nicht erstellt werden",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Name",
"Size" => "Größe",
"Modified" => "Geändert",
"Invalid folder name. Usage of 'Shared' is reserved." => "Ungültiger Verzeichnisname. Die Nutzung von 'Shared' ist reserviert.",
"%s could not be renamed" => "%s konnte nicht umbenannt werden",
"Upload" => "Hochladen",
"Upload (max. %s)" => "Hochladen (max. %s)",
"File handling" => "Dateibehandlung",
"Maximum upload size" => "Maximale Upload-Größe",
"max. possible: " => "maximal möglich:",

View File

@ -36,7 +36,6 @@ $TRANSLATIONS = array(
"Size" => "Grösse",
"Modified" => "Geändert",
"%s could not be renamed" => "%s konnte nicht umbenannt werden",
"Upload" => "Hochladen",
"File handling" => "Dateibehandlung",
"Maximum upload size" => "Maximale Upload-Grösse",
"max. possible: " => "maximal möglich:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Ergebnis konnte nicht vom Server abgerufen werden.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.",
"URL cannot be empty" => "Die URL darf nicht leer sein",
"In the home folder 'Shared' is a reserved filename" => "Das Benutzerverzeichnis 'Shared' ist ein reservierter Dateiname",
"{new_name} already exists" => "{new_name} existiert bereits",
"Could not create file" => "Die Datei konnte nicht erstellt werden",
"Could not create folder" => "Der Ordner konnte nicht erstellt werden",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Name",
"Size" => "Größe",
"Modified" => "Geändert",
"Invalid folder name. Usage of 'Shared' is reserved." => "Ungültiger Verzeichnisname. Die Nutzung von 'Shared' ist reserviert.",
"%s could not be renamed" => "%s konnte nicht umbenannt werden",
"Upload" => "Hochladen",
"Upload (max. %s)" => "Hochladen (max. %s)",
"File handling" => "Dateibehandlung",
"Maximum upload size" => "Maximale Upload-Größe",
"max. possible: " => "maximal möglich:",
@ -76,7 +74,7 @@ $TRANSLATIONS = array(
"New" => "Neu",
"New text file" => "Neue Textdatei",
"Text file" => "Textdatei",
"New folder" => "Neues Ordner",
"New folder" => "Neuer Ordner",
"Folder" => "Ordner",
"From link" => "Von einem Link",
"Deleted files" => "Gelöschte Dateien",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Αδυναμία λήψης αποτελέσματος από το διακομιστή.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.",
"URL cannot be empty" => "Η URL δεν πρέπει να είναι κενή",
"In the home folder 'Shared' is a reserved filename" => "Στον αρχικό φάκελο το όνομα 'Shared' διατηρείται από το σύστημα",
"{new_name} already exists" => "{new_name} υπάρχει ήδη",
"Could not create file" => "Αδυναμία δημιουργίας αρχείου",
"Could not create folder" => "Αδυναμία δημιουργίας φακέλου",
@ -62,14 +61,12 @@ $TRANSLATIONS = array(
"Name" => "Όνομα",
"Size" => "Μέγεθος",
"Modified" => "Τροποποιήθηκε",
"Invalid folder name. Usage of 'Shared' is reserved." => "Άκυρο όνομα φακέλου. Η χρήση του 'Shared' διατηρείται από το σύστημα.",
"%s could not be renamed" => "Αδυναμία μετονομασίας του %s",
"Upload" => "Μεταφόρτωση",
"File handling" => "Διαχείριση αρχείων",
"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" => "Αποθήκευση",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Could not get result from server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "File upload is in progress. Leaving the page now will cancel the upload.",
"URL cannot be empty" => "URL cannot be empty",
"In the home folder 'Shared' is a reserved filename" => "In the home folder 'Shared' is a reserved file name",
"{new_name} already exists" => "{new_name} already exists",
"Could not create file" => "Could not create file",
"Could not create folder" => "Could not create folder",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Name",
"Size" => "Size",
"Modified" => "Modified",
"Invalid folder name. Usage of 'Shared' is reserved." => "Invalid folder name. Usage of 'Shared' is reserved.",
"%s could not be renamed" => "%s could not be renamed",
"Upload" => "Upload",
"Upload (max. %s)" => "Upload (max. %s)",
"File handling" => "File handling",
"Maximum upload size" => "Maximum upload size",
"max. possible: " => "max. possible: ",
@ -88,6 +86,6 @@ $TRANSLATIONS = array(
"Upload too large" => "Upload too large",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "The files you are trying to upload exceed the maximum size for file uploads on this server.",
"Files are being scanned, please wait." => "Files are being scanned, please wait.",
"Current scanning" => "Current scanning"
"Current scanning" => "Currently scanning"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -50,7 +50,6 @@ $TRANSLATIONS = array(
"Size" => "Grando",
"Modified" => "Modifita",
"%s could not be renamed" => "%s ne povis alinomiĝi",
"Upload" => "Alŝuti",
"File handling" => "Dosieradministro",
"Maximum upload size" => "Maksimuma alŝutogrando",
"max. possible: " => "maks. ebla: ",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "No se pudo obtener respuesta del servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.",
"URL cannot be empty" => "La dirección URL no puede estar vacía",
"In the home folder 'Shared' is a reserved filename" => "En la carpeta home, no se puede usar 'Shared'",
"{new_name} already exists" => "{new_name} ya existe",
"Could not create file" => "No se pudo crear el archivo",
"Could not create folder" => "No se pudo crear la carpeta",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nombre",
"Size" => "Tamaño",
"Modified" => "Modificado",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nombre de carpeta inválido. El uso de \"Shared\" esta reservado.",
"%s could not be renamed" => "%s no pudo ser renombrado",
"Upload" => "Subir",
"Upload (max. %s)" => "Subida (máx. %s)",
"File handling" => "Administración de archivos",
"Maximum upload size" => "Tamaño máximo de subida",
"max. possible: " => "máx. posible:",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "No se pudo obtener resultados del servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.",
"URL cannot be empty" => "La URL no puede estar vacía",
"In the home folder 'Shared' is a reserved filename" => "En el directorio inicial 'Shared' es un nombre de archivo reservado",
"{new_name} already exists" => "{new_name} ya existe",
"Could not create file" => "No se pudo crear el archivo",
"Could not create folder" => "No se pudo crear el directorio",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Nombre",
"Size" => "Tamaño",
"Modified" => "Modificado",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nombre de directorio inválido. 'Shared' está reservado.",
"%s could not be renamed" => "No se pudo renombrar %s",
"Upload" => "Subir",
"File handling" => "Tratamiento de archivos",
"Maximum upload size" => "Tamaño máximo de subida",
"max. possible: " => "máx. posible:",

View File

@ -2,11 +2,12 @@
$TRANSLATIONS = array(
"Files" => "Archivos",
"Share" => "Compartir",
"Rename" => "Renombrar",
"Error" => "Error",
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
"Upload" => "Subir",
"New folder" => "Nuevo directorio",
"Download" => "Descargar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -0,0 +1,7 @@
<?php
$TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "No se pudo obtener respuesta del servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.",
"URL cannot be empty" => "La dirección URL no puede estar vacía",
"In the home folder 'Shared' is a reserved filename" => "En la carpeta de inicio, 'Shared' es un nombre reservado",
"{new_name} already exists" => "{new_name} ya existe",
"Could not create file" => "No se pudo crear el archivo",
"Could not create folder" => "No se pudo crear la carpeta",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Nombre",
"Size" => "Tamaño",
"Modified" => "Modificado",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nombre de carpeta inválido. El uso de \"Shared\" esta reservado.",
"%s could not be renamed" => "%s no pudo ser renombrado",
"Upload" => "Subir",
"File handling" => "Administración de archivos",
"Maximum upload size" => "Tamaño máximo de subida",
"max. possible: " => "máx. posible:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Serverist ei saadud tulemusi",
"File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.",
"URL cannot be empty" => "URL ei saa olla tühi",
"In the home folder 'Shared' is a reserved filename" => "Kodukataloogis 'Shared' on reserveeritud failinimi",
"{new_name} already exists" => "{new_name} on juba olemas",
"Could not create file" => "Ei suuda luua faili",
"Could not create folder" => "Ei suuda luua kataloogi",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nimi",
"Size" => "Suurus",
"Modified" => "Muudetud",
"Invalid folder name. Usage of 'Shared' is reserved." => "Vigane kausta nimi. Nime 'Shared' kasutamine on reserveeritud.",
"%s could not be renamed" => "%s ümbernimetamine ebaõnnestus",
"Upload" => "Lae üles",
"Upload (max. %s)" => "Üleslaadimine (max. %s)",
"File handling" => "Failide käsitlemine",
"Maximum upload size" => "Maksimaalne üleslaadimise suurus",
"max. possible: " => "maks. võimalik: ",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Ezin da zerbitzaritik emaitzik lortu",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.",
"URL cannot be empty" => "URLa ezin da hutsik egon",
"In the home folder 'Shared' is a reserved filename" => "Etxeko (home) karpetan 'Shared' erreserbatutako fitxategi izena da",
"{new_name} already exists" => "{new_name} dagoeneko existitzen da",
"Could not create file" => "Ezin izan da fitxategia sortu",
"Could not create folder" => "Ezin izan da karpeta sortu",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Izena",
"Size" => "Tamaina",
"Modified" => "Aldatuta",
"Invalid folder name. Usage of 'Shared' is reserved." => "Baliogabeako karpeta izena. 'Shared' izena erreserbatuta dago.",
"%s could not be renamed" => "%s ezin da berrizendatu",
"Upload" => "Igo",
"File handling" => "Fitxategien kudeaketa",
"Maximum upload size" => "Igo daitekeen gehienezko tamaina",
"max. possible: " => "max, posiblea:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Size" => "اندازه",
"Modified" => "تاریخ",
"%s could not be renamed" => "%s نمیتواند تغییر نام دهد.",
"Upload" => "بارگزاری",
"File handling" => "اداره پرونده ها",
"Maximum upload size" => "حداکثر اندازه بارگزاری",
"max. possible: " => "حداکثرمقدارممکن:",

View File

@ -53,14 +53,15 @@ $TRANSLATIONS = array(
"\"{name}\" is an invalid file name." => "\"{name}\" on virheellinen tiedostonimi.",
"Your storage is full, files can not be updated or synced anymore!" => "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!",
"Your storage is almost full ({usedSpacePercent}%)" => "Tallennustila on melkein loppu ({usedSpacePercent}%)",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.",
"Your download is being prepared. This might take some time if the files are big." => "Lataustasi valmistellaan. Tämä saattaa kestää hetken, jos tiedostot ovat suuria kooltaan.",
"Name" => "Nimi",
"Size" => "Koko",
"Modified" => "Muokattu",
"Invalid folder name. Usage of 'Shared' is reserved." => "Virheellinen kansion nimi. 'Shared':n käyttö on varattu.",
"%s could not be renamed" => "kohteen %s nimeäminen uudelleen epäonnistui",
"Upload" => "Lähetä",
"Upload (max. %s)" => "Lähetys (enintään %s)",
"File handling" => "Tiedostonhallinta",
"Maximum upload size" => "Lähetettävän tiedoston suurin sallittu koko",
"max. possible: " => "suurin mahdollinen:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Ne peut recevoir les résultats du serveur.",
"File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.",
"URL cannot be empty" => "L'URL ne peut pas être vide",
"In the home folder 'Shared' is a reserved filename" => "Dans le dossier home, 'Partagé' est un nom de fichier réservé",
"{new_name} already exists" => "{new_name} existe déjà",
"Could not create file" => "Impossible de créer le fichier",
"Could not create folder" => "Impossible de créer le dossier",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nom",
"Size" => "Taille",
"Modified" => "Modifié",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée.",
"%s could not be renamed" => "%s ne peut être renommé",
"Upload" => "Envoyer",
"Upload (max. %s)" => "Envoi (max. %s)",
"File handling" => "Gestion des fichiers",
"Maximum upload size" => "Taille max. d'envoi",
"max. possible: " => "Max. possible :",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Non foi posíbel obter o resultado do servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío.",
"URL cannot be empty" => "O URL non pode quedar en branco.",
"In the home folder 'Shared' is a reserved filename" => "«Shared» dentro do cartafol persoal é un nome reservado",
"{new_name} already exists" => "Xa existe un {new_name}",
"Could not create file" => "Non foi posíbel crear o ficheiro",
"Could not create folder" => "Non foi posíbel crear o cartafol",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nome",
"Size" => "Tamaño",
"Modified" => "Modificado",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nome de cartafol non válido. O uso de «Shared» está reservado.",
"%s could not be renamed" => "%s non pode cambiar de nome",
"Upload" => "Enviar",
"Upload (max. %s)" => "Envío (máx. %s)",
"File handling" => "Manexo de ficheiro",
"Maximum upload size" => "Tamaño máximo do envío",
"max. possible: " => "máx. posíbel: ",

View File

@ -32,7 +32,6 @@ $TRANSLATIONS = array(
"Name" => "שם",
"Size" => "גודל",
"Modified" => "זמן שינוי",
"Upload" => "העלאה",
"File handling" => "טיפול בקבצים",
"Maximum upload size" => "גודל העלאה מקסימלי",
"max. possible: " => "המרבי האפשרי: ",

View File

@ -5,7 +5,6 @@ $TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
"Upload" => "अपलोड ",
"Save" => "सहेजें"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -19,7 +19,6 @@ $TRANSLATIONS = array(
"Name" => "Ime",
"Size" => "Veličina",
"Modified" => "Zadnja promjena",
"Upload" => "Učitaj",
"File handling" => "datoteka za rukovanje",
"Maximum upload size" => "Maksimalna veličina prijenosa",
"max. possible: " => "maksimalna moguća: ",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "A kiszolgálótól nem kapható meg az eredmény.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.",
"URL cannot be empty" => "Az URL-cím nem maradhat kitöltetlenül",
"In the home folder 'Shared' is a reserved filename" => "A kiindulási mappában a 'Shared' egy belső használatra fenntartott név",
"{new_name} already exists" => "{new_name} már létezik",
"Could not create file" => "Az állomány nem hozható létre",
"Could not create folder" => "A mappa nem hozható létre",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Név",
"Size" => "Méret",
"Modified" => "Módosítva",
"Invalid folder name. Usage of 'Shared' is reserved." => "Érvénytelen mappanév. A 'Shared' a rendszer számára fenntartott elnevezés.",
"%s could not be renamed" => "%s átnevezése nem sikerült",
"Upload" => "Feltöltés",
"File handling" => "Fájlkezelés",
"Maximum upload size" => "Maximális feltölthető fájlméret",
"max. possible: " => "max. lehetséges: ",

View File

@ -12,11 +12,11 @@ $TRANSLATIONS = array(
"Name" => "Nomine",
"Size" => "Dimension",
"Modified" => "Modificate",
"Upload" => "Incargar",
"Maximum upload size" => "Dimension maxime de incargamento",
"Save" => "Salveguardar",
"New" => "Nove",
"Text file" => "File de texto",
"New folder" => "Nove dossier",
"Folder" => "Dossier",
"Nothing in here. Upload something!" => "Nihil hic. Incarga alcun cosa!",
"Download" => "Discargar",

View File

@ -30,7 +30,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Tidak mendapatkan hasil dari server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses.",
"URL cannot be empty" => "URL tidak boleh kosong",
"In the home folder 'Shared' is a reserved filename" => "Pada folder home, 'Shared' adalah nama berkas yang sudah digunakan",
"{new_name} already exists" => "{new_name} sudah ada",
"Could not create file" => "Tidak dapat membuat berkas",
"Could not create folder" => "Tidak dapat membuat folder",
@ -55,9 +54,7 @@ $TRANSLATIONS = array(
"Name" => "Nama",
"Size" => "Ukuran",
"Modified" => "Dimodifikasi",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nama folder tidak sah. Menggunakan 'Shared' sudah digunakan.",
"%s could not be renamed" => "%s tidak dapat diubah nama",
"Upload" => "Unggah",
"File handling" => "Penanganan berkas",
"Maximum upload size" => "Ukuran pengunggahan maksimum",
"max. possible: " => "Kemungkinan maks.:",

View File

@ -27,7 +27,6 @@ $TRANSLATIONS = array(
"Name" => "Nafn",
"Size" => "Stærð",
"Modified" => "Breytt",
"Upload" => "Senda inn",
"File handling" => "Meðhöndlun skrár",
"Maximum upload size" => "Hámarks stærð innsendingar",
"max. possible: " => "hámark mögulegt: ",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Impossibile ottenere il risultato dal server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.",
"URL cannot be empty" => "L'URL non può essere vuoto.",
"In the home folder 'Shared' is a reserved filename" => "Nella cartella home 'Shared' è un nome riservato",
"{new_name} already exists" => "{new_name} esiste già",
"Could not create file" => "Impossibile creare il file",
"Could not create folder" => "Impossibile creare la cartella",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nome",
"Size" => "Dimensione",
"Modified" => "Modificato",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nome della cartella non valido. L'uso di 'Shared' è riservato.",
"%s could not be renamed" => "%s non può essere rinominato",
"Upload" => "Carica",
"Upload (max. %s)" => "Carica (massimo %s)",
"File handling" => "Gestione file",
"Maximum upload size" => "Dimensione massima upload",
"max. possible: " => "numero mass.: ",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "サーバーから結果を取得できませんでした。",
"File upload is in progress. Leaving the page now will cancel the upload." => "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
"URL cannot be empty" => "URL は空にできません",
"In the home folder 'Shared' is a reserved filename" => "ホームフォルダーでは、'Shared' はシステムが使用する予約済みのファイル名です",
"{new_name} already exists" => "{new_name} はすでに存在します",
"Could not create file" => "ファイルを作成できませんでした",
"Could not create folder" => "フォルダーを作成できませんでした",
@ -62,9 +61,7 @@ $TRANSLATIONS = array(
"Name" => "名前",
"Size" => "サイズ",
"Modified" => "更新日時",
"Invalid folder name. Usage of 'Shared' is reserved." => "無効なフォルダー名。「Shared」の利用は予約されています。",
"%s could not be renamed" => "%sの名前を変更できませんでした",
"Upload" => "アップロード",
"File handling" => "ファイル操作",
"Maximum upload size" => "最大アップロードサイズ",
"max. possible: " => "最大容量: ",

View File

@ -32,7 +32,6 @@ $TRANSLATIONS = array(
"Name" => "სახელი",
"Size" => "ზომა",
"Modified" => "შეცვლილია",
"Upload" => "ატვირთვა",
"File handling" => "ფაილის დამუშავება",
"Maximum upload size" => "მაქსიმუმ ატვირთის ზომა",
"max. possible: " => "მაქს. შესაძლებელი:",

View File

@ -8,7 +8,6 @@ $TRANSLATIONS = array(
"_Uploading %n file_::_Uploading %n files_" => array(""),
"Name" => "ឈ្មោះ",
"Size" => "ទំហំ",
"Upload" => "ផ្ទុក​ឡើង",
"Save" => "រក្សាទុក",
"New folder" => "ថត​ថ្មី",
"Folder" => "ថត",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "서버에서 결과를 가져올 수 없습니다.",
"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.",
"URL cannot be empty" => "URL이 비어있을 수 없음",
"In the home folder 'Shared' is a reserved filename" => "'공유됨'은 홈 폴더의 예약된 파일 이름임",
"{new_name} already exists" => "{new_name}이(가) 이미 존재함",
"Could not create file" => "파일을 만들 수 없음",
"Could not create folder" => "폴더를 만들 수 없음",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "이름",
"Size" => "크기",
"Modified" => "수정됨",
"Invalid folder name. Usage of 'Shared' is reserved." => "폴더 이름이 잘못되었습니다. '공유됨'은 예약된 폴더 이름입니다.",
"%s could not be renamed" => "%s의 이름을 변경할 수 없습니다",
"Upload" => "업로드",
"File handling" => "파일 처리",
"Maximum upload size" => "최대 업로드 크기",
"max. possible: " => "최대 가능:",

View File

@ -7,7 +7,6 @@ $TRANSLATIONS = array(
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
"Name" => "ناو",
"Upload" => "بارکردن",
"Save" => "پاشکه‌وتکردن",
"Folder" => "بوخچه",
"Download" => "داگرتن"

View File

@ -18,7 +18,6 @@ $TRANSLATIONS = array(
"Name" => "Numm",
"Size" => "Gréisst",
"Modified" => "Geännert",
"Upload" => "Eroplueden",
"File handling" => "Fichier handling",
"Maximum upload size" => "Maximum Upload Gréisst ",
"max. possible: " => "max. méiglech:",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Nepavyko gauti rezultato iš serverio.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.",
"URL cannot be empty" => "URL negali būti tuščias.",
"In the home folder 'Shared' is a reserved filename" => "Pradiniame aplanke failo pavadinimas „Shared“ yra rezervuotas",
"{new_name} already exists" => "{new_name} jau egzistuoja",
"Could not create file" => "Neįmanoma sukurti failo",
"Could not create folder" => "Neįmanoma sukurti aplanko",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Pavadinimas",
"Size" => "Dydis",
"Modified" => "Pakeista",
"Invalid folder name. Usage of 'Shared' is reserved." => "Netinkamas aplanko pavadinimas. „Shared“ pavadinimas yra rezervuotas.",
"%s could not be renamed" => "%s negali būti pervadintas",
"Upload" => "Įkelti",
"File handling" => "Failų tvarkymas",
"Maximum upload size" => "Maksimalus įkeliamo failo dydis",
"max. possible: " => "maks. galima:",

View File

@ -36,7 +36,6 @@ $TRANSLATIONS = array(
"Size" => "Izmērs",
"Modified" => "Mainīts",
"%s could not be renamed" => "%s nevar tikt pārsaukts",
"Upload" => "Augšupielādēt",
"File handling" => "Datņu pārvaldība",
"Maximum upload size" => "Maksimālais datņu augšupielādes apjoms",
"max. possible: " => "maksimālais iespējamais:",

View File

@ -27,7 +27,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Не можам да добијам резултат од серверот.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.",
"URL cannot be empty" => "URL-то не може да биде празно",
"In the home folder 'Shared' is a reserved filename" => "Во домашната папка, 'Shared' е резервирано има на датотека/папка",
"{new_name} already exists" => "{new_name} веќе постои",
"Could not create file" => "Не множам да креирам датотека",
"Could not create folder" => "Не можам да креирам папка",
@ -49,7 +48,6 @@ $TRANSLATIONS = array(
"Size" => "Големина",
"Modified" => "Променето",
"%s could not be renamed" => "%s не може да биде преименуван",
"Upload" => "Подигни",
"File handling" => "Ракување со датотеки",
"Maximum upload size" => "Максимална големина за подигање",
"max. possible: " => "макс. можно:",

View File

@ -19,7 +19,6 @@ $TRANSLATIONS = array(
"Name" => "Nama",
"Size" => "Saiz",
"Modified" => "Dimodifikasi",
"Upload" => "Muat naik",
"File handling" => "Pengendalian fail",
"Maximum upload size" => "Saiz maksimum muat naik",
"max. possible: " => "maksimum:",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Fikk ikke resultat fra serveren.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.",
"URL cannot be empty" => "URL kan ikke være tom",
"In the home folder 'Shared' is a reserved filename" => "I hjemmemappen er 'Shared' et reservert filnavn",
"{new_name} already exists" => "{new_name} finnes allerede",
"Could not create file" => "Klarte ikke å opprette fil",
"Could not create folder" => "Klarte ikke å opprette mappe",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Navn",
"Size" => "Størrelse",
"Modified" => "Endret",
"Invalid folder name. Usage of 'Shared' is reserved." => "Ulovlig mappenavn. Bruken av 'Shared' er reservert.",
"%s could not be renamed" => "Kunne ikke gi nytt navn til %s",
"Upload" => "Last opp",
"File handling" => "Filhåndtering",
"Maximum upload size" => "Maksimum opplastingsstørrelse",
"max. possible: " => "max. mulige:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Kon het resultaat van de server niet terugkrijgen.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.",
"URL cannot be empty" => "URL mag niet leeg zijn",
"In the home folder 'Shared' is a reserved filename" => "in de home map 'Shared' is een gereserveerde bestandsnaam",
"{new_name} already exists" => "{new_name} bestaat al",
"Could not create file" => "Kon bestand niet creëren",
"Could not create folder" => "Kon niet creëren map",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Naam",
"Size" => "Grootte",
"Modified" => "Aangepast",
"Invalid folder name. Usage of 'Shared' is reserved." => "Ongeldige mapnaam. Gebruik van 'Shared' is gereserveerd.",
"%s could not be renamed" => "%s kon niet worden hernoemd",
"Upload" => "Uploaden",
"Upload (max. %s)" => "Upload (max. %s)",
"File handling" => "Bestand",
"Maximum upload size" => "Maximale bestandsgrootte voor uploads",
"max. possible: " => "max. mogelijk: ",

View File

@ -42,7 +42,6 @@ $TRANSLATIONS = array(
"Size" => "Storleik",
"Modified" => "Endra",
"%s could not be renamed" => "Klarte ikkje å omdøypa på %s",
"Upload" => "Last opp",
"File handling" => "Filhandtering",
"Maximum upload size" => "Maksimal opplastingsstorleik",
"max. possible: " => "maks. moglege:",

View File

@ -19,7 +19,6 @@ $TRANSLATIONS = array(
"Name" => "Nom",
"Size" => "Talha",
"Modified" => "Modificat",
"Upload" => "Amontcarga",
"File handling" => "Manejament de fichièr",
"Maximum upload size" => "Talha maximum d'amontcargament",
"max. possible: " => "max. possible: ",

View File

@ -0,0 +1,7 @@
<?php
$TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -7,7 +7,6 @@ $TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
"Upload" => "ਅੱਪਲੋਡ",
"Cancel upload" => "ਅੱਪਲੋਡ ਰੱਦ ਕਰੋ",
"Download" => "ਡਾਊਨਲੋਡ",
"Delete" => "ਹਟਾਓ"

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Nie można uzyskać wyniku z serwera.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.",
"URL cannot be empty" => "URL nie może być pusty",
"In the home folder 'Shared' is a reserved filename" => "W katalogu domowym \"Shared\" jest zarezerwowana nazwa pliku",
"{new_name} already exists" => "{new_name} już istnieje",
"Could not create file" => "Nie można utworzyć pliku",
"Could not create folder" => "Nie można utworzyć folderu",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nazwa",
"Size" => "Rozmiar",
"Modified" => "Modyfikacja",
"Invalid folder name. Usage of 'Shared' is reserved." => "Niepoprawna nazwa folderu. Wykorzystanie \"Shared\" jest zarezerwowane.",
"%s could not be renamed" => "%s nie można zmienić nazwy",
"Upload" => "Wyślij",
"Upload (max. %s)" => "Wysyłka (max. %s)",
"File handling" => "Zarządzanie plikami",
"Maximum upload size" => "Maksymalny rozmiar wysyłanego pliku",
"max. possible: " => "maks. możliwy:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Não foi possível obter o resultado do servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Upload em andamento. Sair da página agora resultará no cancelamento do envio.",
"URL cannot be empty" => "URL não pode estar vazia",
"In the home folder 'Shared' is a reserved filename" => "Na pasta home 'Shared- Compartilhada' é um nome reservado",
"{new_name} already exists" => "{new_name} já existe",
"Could not create file" => "Não foi possível criar o arquivo",
"Could not create folder" => "Não foi possível criar a pasta",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Nome",
"Size" => "Tamanho",
"Modified" => "Modificado",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nome da pasta inválido. Uso de 'Shared' é reservado.",
"%s could not be renamed" => "%s não pode ser renomeado",
"Upload" => "Upload",
"Upload (max. %s)" => "Envio (max. %s)",
"File handling" => "Tratamento de Arquivo",
"Maximum upload size" => "Tamanho máximo para carregar",
"max. possible: " => "max. possível:",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Não foi possível obter o resultado do servidor.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora.",
"URL cannot be empty" => "URL não pode estar vazio",
"In the home folder 'Shared' is a reserved filename" => "Na pasta pessoal \"Partilhado\" é um nome de ficheiro reservado",
"{new_name} already exists" => "O nome {new_name} já existe",
"Could not create file" => "Não pôde criar ficheiro",
"Could not create folder" => "Não pôde criar pasta",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "Nome",
"Size" => "Tamanho",
"Modified" => "Modificado",
"Invalid folder name. Usage of 'Shared' is reserved." => "Nome de pasta inválido. Utilização de \"Partilhado\" está reservada.",
"%s could not be renamed" => "%s não pode ser renomeada",
"Upload" => "Carregar",
"File handling" => "Manuseamento de ficheiros",
"Maximum upload size" => "Tamanho máximo de envio",
"max. possible: " => "max. possivel: ",

View File

@ -3,7 +3,10 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "%s nu se poate muta - Fișierul cu acest nume există deja ",
"Could not move %s" => "Nu se poate muta %s",
"File name cannot be empty." => "Numele fișierului nu poate rămâne gol.",
"\"%s\" is an invalid file name." => "\"%s\" este un nume de fișier nevalid",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume nevalide, '\\', '/', '<', '>', ':', '\"', '|', '?' și '*' nu sunt permise.",
"The target folder has been moved or deleted." => "Dosarul țintă a fost mutat sau șters.",
"Not a valid source" => "Sursă nevalidă",
"Error while downloading %s to %s" => "Eroare la descarcarea %s in %s",
"Error when creating the file" => "Eroare la crearea fisierului",
"Folder name cannot be empty." => "Numele folderului nu poate fi liber.",
@ -24,6 +27,8 @@ $TRANSLATIONS = array(
"Invalid directory." => "Dosar nevalid.",
"Files" => "Fișiere",
"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți",
"Total file size {size1} exceeds upload limit {size2}" => "Mărimea fișierului este {size1} ce depășește limita de incarcare de {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" => "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas",
"Upload cancelled." => "Încărcare anulată.",
"Could not get result from server." => "Nu se poate obține rezultatul de la server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.",
@ -31,6 +36,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} există deja",
"Could not create file" => "Nu s-a putut crea fisierul",
"Could not create folder" => "Nu s-a putut crea folderul",
"Error fetching URL" => "Eroare încarcare URL",
"Share" => "Partajează",
"Delete permanently" => "Șterge permanent",
"Rename" => "Redenumește",
@ -38,10 +44,12 @@ $TRANSLATIONS = array(
"Error" => "Eroare",
"Pending" => "În așteptare",
"Could not rename file" => "Nu s-a putut redenumi fisierul",
"Error deleting file." => "Eroare la ștergerea fisierului.",
"_%n folder_::_%n folders_" => array("%n director","%n directoare","%n directoare"),
"_%n file_::_%n files_" => array("%n fișier","%n fișiere","%n fișiere"),
"{dirs} and {files}" => "{dirs} și {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."),
"\"{name}\" is an invalid file name." => "\"{name}\" este un nume de fișier nevalid.",
"Your storage is full, files can not be updated or synced anymore!" => "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!",
"Your storage is almost full ({usedSpacePercent}%)" => "Spațiul de stocare este aproape plin ({usedSpacePercent}%)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele",
@ -50,7 +58,7 @@ $TRANSLATIONS = array(
"Size" => "Mărime",
"Modified" => "Modificat",
"%s could not be renamed" => "%s nu a putut fi redenumit",
"Upload" => "Încărcă",
"Upload (max. %s)" => "Încarcă (max. %s)",
"File handling" => "Manipulare fișiere",
"Maximum upload size" => "Dimensiune maximă admisă la încărcare",
"max. possible: " => "max. posibil:",
@ -60,7 +68,9 @@ $TRANSLATIONS = array(
"Maximum input size for ZIP files" => "Dimensiunea maximă de intrare pentru fișierele ZIP",
"Save" => "Salvează",
"New" => "Nou",
"New text file" => "Un nou fișier text",
"Text file" => "Fișier text",
"New folder" => "Un nou dosar",
"Folder" => "Dosar",
"From link" => "De la adresa",
"Deleted files" => "Fișiere șterse",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Не удалось получить ответ от сервера.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.",
"URL cannot be empty" => "Ссылка не может быть пустой.",
"In the home folder 'Shared' is a reserved filename" => "'Shared' - это зарезервированное имя файла в домашнем каталоге",
"{new_name} already exists" => "{new_name} уже существует",
"Could not create file" => "Не удалось создать файл",
"Could not create folder" => "Не удалось создать каталог",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Имя",
"Size" => "Размер",
"Modified" => "Дата изменения",
"Invalid folder name. Usage of 'Shared' is reserved." => "Неправильное имя каталога. Имя 'Shared' зарезервировано.",
"%s could not be renamed" => "%s не может быть переименован",
"Upload" => "Загрузка",
"Upload (max. %s)" => "Загружено (max. %s)",
"File handling" => "Управление файлами",
"Maximum upload size" => "Максимальный размер загружаемого файла",
"max. possible: " => "макс. возможно: ",

View File

@ -19,7 +19,6 @@ $TRANSLATIONS = array(
"Name" => "නම",
"Size" => "ප්‍රමාණය",
"Modified" => "වෙනස් කළ",
"Upload" => "උඩුගත කරන්න",
"File handling" => "ගොනු පරිහරණය",
"Maximum upload size" => "උඩුගත කිරීමක උපරිම ප්‍රමාණය",
"max. possible: " => "හැකි උපරිමය:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Nepodarilo sa dostať výsledky zo servera.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.",
"URL cannot be empty" => "URL nemôže byť prázdna",
"In the home folder 'Shared' is a reserved filename" => "V domovskom priečinku je názov \"Shared\" vyhradený názov súboru",
"{new_name} already exists" => "{new_name} už existuje",
"Could not create file" => "Nemožno vytvoriť súbor",
"Could not create folder" => "Nemožno vytvoriť priečinok",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Názov",
"Size" => "Veľkosť",
"Modified" => "Upravené",
"Invalid folder name. Usage of 'Shared' is reserved." => "Názov priečinka je chybný. Použitie názvu 'Shared' nie je povolené.",
"%s could not be renamed" => "%s nemohol byť premenovaný",
"Upload" => "Odoslať",
"Upload (max. %s)" => "Nahrať (max. %s)",
"File handling" => "Nastavenie správania sa k súborom",
"Maximum upload size" => "Maximálna veľkosť odosielaného súboru",
"max. possible: " => "najväčšie možné:",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Ni mogoče pridobiti podatkov s strežnika.",
"File upload is in progress. Leaving the page now will cancel the upload." => "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.",
"URL cannot be empty" => "Polje naslova URL ne sme biti prazno",
"In the home folder 'Shared' is a reserved filename" => "V domači mapi ni dovoljeno ustvariti mape z imenom 'Souporabe', saj je ime zadržano za javno mapo.",
"{new_name} already exists" => "{new_name} že obstaja",
"Could not create file" => "Ni mogoče ustvariti datoteke",
"Could not create folder" => "Ni mogoče ustvariti mape",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Ime",
"Size" => "Velikost",
"Modified" => "Spremenjeno",
"Invalid folder name. Usage of 'Shared' is reserved." => "Neveljavno ime mape. Ime 'Souporaba' je zadržana za javno mapo.",
"%s could not be renamed" => "%s ni mogoče preimenovati",
"Upload" => "Pošlji",
"Upload (max. %s)" => "Pošiljanje (omejitev %s)",
"File handling" => "Upravljanje z datotekami",
"Maximum upload size" => "Največja velikost za pošiljanja",
"max. possible: " => "največ mogoče:",

View File

@ -40,7 +40,6 @@ $TRANSLATIONS = array(
"Size" => "Madhësia",
"Modified" => "Ndryshuar",
"%s could not be renamed" => "Nuk është i mundur riemërtimi i %s",
"Upload" => "Ngarko",
"File handling" => "Trajtimi i Skedarëve",
"Maximum upload size" => "Madhësia maksimale e nagarkimit",
"max. possible: " => "maks i mundshëm",

View File

@ -32,7 +32,6 @@ $TRANSLATIONS = array(
"Name" => "Име",
"Size" => "Величина",
"Modified" => "Измењено",
"Upload" => "Отпреми",
"File handling" => "Управљање датотекама",
"Maximum upload size" => "Највећа величина датотеке",
"max. possible: " => "највећа величина:",

View File

@ -15,7 +15,6 @@ $TRANSLATIONS = array(
"Name" => "Ime",
"Size" => "Veličina",
"Modified" => "Zadnja izmena",
"Upload" => "Pošalji",
"Maximum upload size" => "Maksimalna veličina pošiljke",
"Save" => "Snimi",
"Nothing in here. Upload something!" => "Ovde nema ničeg. Pošaljite nešto!",

View File

@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Gick inte att hämta resultat från server.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.",
"URL cannot be empty" => "URL kan ej vara tomt",
"In the home folder 'Shared' is a reserved filename" => "I hemma katalogen 'Delat' är ett reserverat filnamn",
"{new_name} already exists" => "{new_name} finns redan",
"Could not create file" => "Kunde ej skapa fil",
"Could not create folder" => "Kunde ej skapa katalog",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "Namn",
"Size" => "Storlek",
"Modified" => "Ändrad",
"Invalid folder name. Usage of 'Shared' is reserved." => "Ogiltigt mappnamn. Användande av 'Shared' är reserverat av ownCloud",
"%s could not be renamed" => "%s kunde inte namnändras",
"Upload" => "Ladda upp",
"Upload (max. %s)" => "Ladda upp (max. %s)",
"File handling" => "Filhantering",
"Maximum upload size" => "Maximal storlek att ladda upp",
"max. possible: " => "max. möjligt:",

View File

@ -22,7 +22,6 @@ $TRANSLATIONS = array(
"Name" => "பெயர்",
"Size" => "அளவு",
"Modified" => "மாற்றப்பட்டது",
"Upload" => "பதிவேற்றுக",
"File handling" => "கோப்பு கையாளுதல்",
"Maximum upload size" => "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ",
"max. possible: " => "ஆகக் கூடியது:",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Name" => "ชื่อ",
"Size" => "ขนาด",
"Modified" => "แก้ไขแล้ว",
"Upload" => "อัพโหลด",
"File handling" => "การจัดกาไฟล์",
"Maximum upload size" => "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
"max. possible: " => "จำนวนสูงสุดที่สามารถทำได้: ",

View File

@ -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ı.",
@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "Sunucudan sonuç alınamadı.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur.",
"URL cannot be empty" => "URL boş olamaz",
"In the home folder 'Shared' is a reserved filename" => "Ev klasöründeki 'Paylaşılan', ayrılmış bir dosya adıdır",
"{new_name} already exists" => "{new_name} zaten mevcut",
"Could not create file" => "Dosya oluşturulamadı",
"Could not create folder" => "Klasör oluşturulamadı",
@ -62,9 +61,8 @@ $TRANSLATIONS = array(
"Name" => "İsim",
"Size" => "Boyut",
"Modified" => "Değiştirilme",
"Invalid folder name. Usage of 'Shared' is reserved." => "Geçersiz klasör adı. 'Shared' ismi ayrılmıştır.",
"%s could not be renamed" => "%s yeniden adlandırılamadı",
"Upload" => "Yükle",
"Upload (max. %s)" => "Yükle (azami: %s)",
"File handling" => "Dosya işlemleri",
"Maximum upload size" => "Maksimum yükleme boyutu",
"max. possible: " => "mümkün olan en fazla: ",

View File

@ -21,7 +21,6 @@ $TRANSLATIONS = array(
"Name" => "ئاتى",
"Size" => "چوڭلۇقى",
"Modified" => "ئۆزگەرتكەن",
"Upload" => "يۈكلە",
"Save" => "ساقلا",
"New" => "يېڭى",
"Text file" => "تېكىست ھۆججەت",

View File

@ -40,7 +40,6 @@ $TRANSLATIONS = array(
"Size" => "Розмір",
"Modified" => "Змінено",
"%s could not be renamed" => "%s не може бути перейменований",
"Upload" => "Вивантажити",
"File handling" => "Робота з файлами",
"Maximum upload size" => "Максимальний розмір відвантажень",
"max. possible: " => "макс.можливе:",

View File

@ -55,7 +55,6 @@ $TRANSLATIONS = array(
"Size" => "Kích cỡ",
"Modified" => "Thay đổi",
"%s could not be renamed" => "%s không thể đổi tên",
"Upload" => "Tải lên",
"File handling" => "Xử lý tập tin",
"Maximum upload size" => "Kích thước tối đa ",
"max. possible: " => "tối đa cho phép:",

View File

@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "不能从服务器得到结果",
"File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传中。现在离开此页会导致上传动作被取消。",
"URL cannot be empty" => "URL不能为空",
"In the home folder 'Shared' is a reserved filename" => "主目录里 'Shared' 是系统预留目录名",
"{new_name} already exists" => "{new_name} 已存在",
"Could not create file" => "不能创建文件",
"Could not create folder" => "不能创建文件夹",
@ -57,9 +56,7 @@ $TRANSLATIONS = array(
"Name" => "名称",
"Size" => "大小",
"Modified" => "修改日期",
"Invalid folder name. Usage of 'Shared' is reserved." => "无效的文件夹名。”Shared“ 是 Owncloud 预留的文件夹",
"%s could not be renamed" => "%s 不能被重命名",
"Upload" => "上传",
"File handling" => "文件处理",
"Maximum upload size" => "最大上传大小",
"max. possible: " => "最大允许: ",

View File

@ -7,8 +7,9 @@ $TRANSLATIONS = array(
"_%n file_::_%n files_" => array(""),
"_Uploading %n file_::_Uploading %n files_" => array(""),
"Name" => "名稱",
"Upload" => "上傳",
"Size" => "大小",
"Save" => "儲存",
"New folder" => "新文件夾",
"Download" => "下載",
"Delete" => "刪除"
);

View File

@ -30,7 +30,6 @@ $TRANSLATIONS = array(
"Could not get result from server." => "無法從伺服器取回結果",
"File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中,離開此頁面將會取消上傳。",
"URL cannot be empty" => "URL 不能留空",
"In the home folder 'Shared' is a reserved filename" => "在家目錄中不能使用「共享」作為檔名",
"{new_name} already exists" => "{new_name} 已經存在",
"Could not create file" => "無法建立檔案",
"Could not create folder" => "無法建立資料夾",
@ -55,7 +54,6 @@ $TRANSLATIONS = array(
"Size" => "大小",
"Modified" => "修改時間",
"%s could not be renamed" => "無法重新命名 %s",
"Upload" => "上傳",
"File handling" => "檔案處理",
"Maximum upload size" => "上傳限制",
"max. possible: " => "最大允許:",

View File

@ -54,13 +54,8 @@ class App {
'data' => NULL
);
// rename to "/Shared" is denied
if( $dir === '/' and $newname === 'Shared' ) {
$result['data'] = array(
'message' => $this->l10n->t("Invalid folder name. Usage of 'Shared' is reserved.")
);
// rename to non-existing folder is denied
} else if (!$this->view->file_exists($dir)) {
if (!$this->view->file_exists($dir)) {
$result['data'] = array('message' => (string)$this->l10n->t(
'The target folder has been moved or deleted.',
array($dir)),
@ -68,7 +63,7 @@ class App {
);
// rename to existing file is denied
} else if ($this->view->file_exists($dir . '/' . $newname)) {
$result['data'] = array(
'message' => $this->l10n->t(
"The name %s is already used in the folder %s. Please choose a different name.",
@ -77,8 +72,6 @@ class App {
} else if (
// rename to "." is denied
$newname !== '.' and
// rename of "/Shared" is denied
!($dir === '/' and $oldname === 'Shared') and
// THEN try to rename
$this->view->rename($dir . '/' . $oldname, $dir . '/' . $newname)
) {

View File

@ -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,
@ -37,8 +37,7 @@ class Helper
$sid = explode(':', $sid);
if ($sid[0] === 'shared') {
$icon = \OC_Helper::mimetypeIcon('dir-shared');
}
if ($sid[0] !== 'local' and $sid[0] !== 'home') {
} elseif ($sid[0] !== 'local' and $sid[0] !== 'home') {
$icon = \OC_Helper::mimetypeIcon('dir-external');
}
}
@ -73,13 +72,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
@ -96,6 +96,9 @@ class Helper
if (isset($i['displayname_owner'])) {
$entry['shareOwner'] = $i['displayname_owner'];
}
if (isset($i['is_share_mount_point'])) {
$entry['isShareMountPoint'] = $i['is_share_mount_point'];
}
return $entry;
}

View File

@ -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;?>

View File

@ -55,88 +55,6 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
\OC\Files\Filesystem::tearDown();
}
/**
* @brief test rename of file/folder named "Shared"
*/
function testRenameSharedFolder() {
$dir = '/';
$oldname = 'Shared';
$newname = 'new_name';
$this->viewMock->expects($this->at(0))
->method('file_exists')
->with('/')
->will($this->returnValue(true));
$result = $this->files->rename($dir, $oldname, $newname);
$expected = array(
'success' => false,
'data' => array('message' => '%s could not be renamed')
);
$this->assertEquals($expected, $result);
}
/**
* @brief test rename of file/folder named "Shared"
*/
function testRenameSharedFolderInSubdirectory() {
$dir = '/test';
$oldname = 'Shared';
$newname = 'new_name';
$this->viewMock->expects($this->at(0))
->method('file_exists')
->with('/test')
->will($this->returnValue(true));
$this->viewMock->expects($this->any())
->method('getFileInfo')
->will($this->returnValue(new \OC\Files\FileInfo(
'/test',
null,
'/test',
array(
'fileid' => 123,
'type' => 'dir',
'mimetype' => 'httpd/unix-directory',
'mtime' => 0,
'permissions' => 31,
'size' => 18,
'etag' => 'abcdef',
'directory' => '/',
'name' => 'new_name',
))));
$result = $this->files->rename($dir, $oldname, $newname);
$this->assertTrue($result['success']);
$this->assertEquals(123, $result['data']['id']);
$this->assertEquals('new_name', $result['data']['name']);
$this->assertEquals(18, $result['data']['size']);
$this->assertEquals('httpd/unix-directory', $result['data']['mimetype']);
$icon = \OC_Helper::mimetypeIcon('dir');
$icon = substr($icon, 0, -3) . 'svg';
$this->assertEquals($icon, $result['data']['icon']);
}
/**
* @brief test rename of file/folder to "Shared"
*/
function testRenameFolderToShared() {
$dir = '/';
$oldname = 'oldname';
$newname = 'Shared';
$result = $this->files->rename($dir, $oldname, $newname);
$expected = array(
'success' => false,
'data' => array('message' => "Invalid folder name. Usage of 'Shared' is reserved.")
);
$this->assertEquals($expected, $result);
}
/**
* @brief test rename of file/folder
*/

View File

@ -48,41 +48,6 @@ describe('Files tests', function() {
expect(error).toEqual(false);
}
});
it('Validates correct file names do not create Shared folder in root', function() {
// create shared file in subfolder
var error = false;
try {
expect(Files.isFileNameValid('shared', '/foo')).toEqual(true);
expect(Files.isFileNameValid('Shared', '/foo')).toEqual(true);
}
catch (e) {
error = e;
}
expect(error).toEqual(false);
// create shared file in root
var threwException = false;
try {
Files.isFileNameValid('Shared', '/');
console.error('Invalid file name not detected');
}
catch (e) {
threwException = true;
}
expect(threwException).toEqual(true);
// create shared file in root
var threwException = false;
try {
Files.isFileNameValid('shared', '/');
console.error('Invalid file name not detected');
}
catch (e) {
threwException = true;
}
expect(threwException).toEqual(true);
});
it('Detects invalid file names', function() {
var fileNames = [
'',

View File

@ -302,25 +302,6 @@ class Hooks {
*/
public static function postShared($params) {
// NOTE: $params has keys:
// [itemType] => file
// itemSource -> int, filecache file ID
// [parent] =>
// [itemTarget] => /13
// shareWith -> string, uid of user being shared to
// fileTarget -> path of file being shared
// uidOwner -> owner of the original file being shared
// [shareType] => 0
// [shareWith] => test1
// [uidOwner] => admin
// [permissions] => 17
// [fileSource] => 13
// [fileTarget] => /test8
// [id] => 10
// [token] =>
// [run] => whether emitting script should continue to run
// TODO: Should other kinds of item be encrypted too?
if (\OCP\App::isEnabled('files_encryption') === false) {
return true;
}
@ -331,71 +312,22 @@ class Hooks {
$session = new \OCA\Encryption\Session($view);
$userId = \OCP\User::getUser();
$util = new Util($view, $userId);
$path = $util->fileIdToPath($params['itemSource']);
$share = $util->getParentFromShare($params['id']);
//if parent is set, then this is a re-share action
if ($share['parent'] !== null) {
// get the parent from current share
$parent = $util->getShareParent($params['parent']);
// if parent has the same type than the child it is a 1:1 share
if ($parent['item_type'] === $params['itemType']) {
// prefix path with Shared
$path = '/Shared' . $parent['file_target'];
} else {
// NOTE: parent is folder but shared was a file!
// we try to rebuild the missing path
// some examples we face here
// user1 share folder1 with user2 folder1 has
// the following structure
// /folder1/subfolder1/subsubfolder1/somefile.txt
// user2 re-share subfolder2 with user3
// user3 re-share somefile.txt user4
// so our path should be
// /Shared/subfolder1/subsubfolder1/somefile.txt
// while user3 is sharing
if ($params['itemType'] === 'file') {
// get target path
$targetPath = $util->fileIdToPath($params['fileSource']);
$targetPathSplit = array_reverse(explode('/', $targetPath));
// init values
$path = '';
$sharedPart = ltrim($parent['file_target'], '/');
// rebuild path
foreach ($targetPathSplit as $pathPart) {
if ($pathPart !== $sharedPart) {
$path = '/' . $pathPart . $path;
} else {
break;
}
}
// prefix path with Shared
$path = '/Shared' . $parent['file_target'] . $path;
} else {
// prefix path with Shared
$path = '/Shared' . $parent['file_target'] . $params['fileTarget'];
}
}
}
$path = \OC\Files\Filesystem::getPath($params['fileSource']);
$sharingEnabled = \OCP\Share::isEnabled();
// get the path including mount point only if not a shared folder
if (strncmp($path, '/Shared', strlen('/Shared') !== 0)) {
// get path including the the storage mount point
$path = $util->getPathWithMountPoint($params['itemSource']);
list($storage, ) = \OC\Files\Filesystem::resolvePath('/' . $userId . '/files' . $path);
if (!($storage instanceof \OC\Files\Storage\Local)) {
$mountPoint = 'files' . $storage->getMountPoint();
} else {
$mountPoint = '';
}
// if a folder was shared, get a list of all (sub-)folders
if ($params['itemType'] === 'folder') {
$allFiles = $util->getAllFiles($path);
$allFiles = $util->getAllFiles($path, $mountPoint);
} else {
$allFiles = array($path);
}
@ -412,13 +344,6 @@ class Hooks {
*/
public static function postUnshare($params) {
// NOTE: $params has keys:
// [itemType] => file
// [itemSource] => 13
// [shareType] => 0
// [shareWith] => test1
// [itemParent] =>
if (\OCP\App::isEnabled('files_encryption') === false) {
return true;
}
@ -428,34 +353,7 @@ class Hooks {
$view = new \OC_FilesystemView('/');
$userId = \OCP\User::getUser();
$util = new Util($view, $userId);
$path = $util->fileIdToPath($params['itemSource']);
// check if this is a re-share
if ($params['itemParent']) {
// get the parent from current share
$parent = $util->getShareParent($params['itemParent']);
// get target path
$targetPath = $util->fileIdToPath($params['itemSource']);
$targetPathSplit = array_reverse(explode('/', $targetPath));
// init values
$path = '';
$sharedPart = ltrim($parent['file_target'], '/');
// rebuild path
foreach ($targetPathSplit as $pathPart) {
if ($pathPart !== $sharedPart) {
$path = '/' . $pathPart . $path;
} else {
break;
}
}
// prefix path with Shared
$path = '/Shared' . $parent['file_target'] . $path;
}
$path = \OC\Files\Filesystem::getPath($params['fileSource']);
// for group shares get a list of the group members
if ($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) {
@ -469,14 +367,17 @@ class Hooks {
}
// get the path including mount point only if not a shared folder
if (strncmp($path, '/Shared', strlen('/Shared') !== 0)) {
// get path including the the storage mount point
$path = $util->getPathWithMountPoint($params['itemSource']);
list($storage, ) = \OC\Files\Filesystem::resolvePath('/' . $userId . '/files' . $path);
if (!($storage instanceof \OC\Files\Storage\Local)) {
$mountPoint = 'files' . $storage->getMountPoint();
} else {
$mountPoint = '';
}
// if we unshare a folder we need a list of all (sub-)files
if ($params['itemType'] === 'folder') {
$allFiles = $util->getAllFiles($path);
$allFiles = $util->getAllFiles($path, $mountPoint);
} else {
$allFiles = array($path);
}
@ -510,6 +411,8 @@ class Hooks {
// otherwise we perform a stream copy, so we get a new set of keys
$mp1 = $view->getMountPoint('/' . $user . '/files/' . $params['oldpath']);
$mp2 = $view->getMountPoint('/' . $user . '/files/' . $params['newpath']);
list($storage1, ) = Filesystem::resolvePath($params['oldpath']);
if ($mp1 === $mp2) {
self::$renamedFiles[$params['oldpath']] = array(
'uid' => $ownerOld,

View File

@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o una versión más reciente esté instalado y que OpenSSL junto con la extensión PHP esté habilitado y configurado apropiadamente. Por ahora, la aplicación de encriptación ha sido deshabilitada.",
"Following users are not set up for encryption:" => "Los siguientes usuarios no fueron configurados para encriptar:",
"Initial encryption started... This can take some time. Please wait." => "Encriptación inicial comenzada... Esto puede durar un tiempo. Por favor espere.",
"Initial encryption running... Please try again later." => "Encriptación inicial corriendo... Por favor intente mas tarde. ",
"Go directly to your " => "Ve directamente a tu",
"personal settings" => "Configuración personal",
"Encryption" => "Encriptación",

View File

@ -7,8 +7,11 @@ $TRANSLATIONS = array(
"Password successfully changed." => "Password alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." => "Não foi possivel alterar a password. Possivelmente a password antiga não está correcta.",
"Could not update the private key password. Maybe the old password was not correct." => "Não foi possível alterar a chave. Possivelmente a password antiga não está correcta.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Não foi possível desencriptar este ficheiro, possivelmente é um ficheiro partilhado. Peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.",
"Unknown error please check your system settings or contact your administrator" => "Erro desconhecido. Verifique por favor as definições do sistema ou contacte o seu administrador",
"Missing requirements." => "Faltam alguns requisitos.",
"Following users are not set up for encryption:" => "Os utilizadores seguintes não estão marcados para cifragem:",
"Go directly to your " => "Ir directamente para o seu",
"personal settings" => "configurações personalizadas ",
"Encryption" => "Encriptação",
"Enable recovery key (allow to recover users files in case of password loss):" => "Active a chave de recuperação (permite recuperar os ficheiros no caso de perda da password):",

View File

@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Prosím uistite sa, že PHP verzie 5.3.3 alebo novšej je nainštalované a tiež, že OpenSSL knižnica spolu z PHP rozšírením je povolená a konfigurovaná správne. Nateraz bola aplikácia šifrovania zablokovaná.",
"Following users are not set up for encryption:" => "Nasledujúci používatelia nie sú nastavení pre šifrovanie:",
"Initial encryption started... This can take some time. Please wait." => "Počiatočné šifrovanie započalo ... To môže nejakú dobu trvať. Čakajte prosím.",
"Initial encryption running... Please try again later." => "Počiatočné šifrovanie beží... Skúste to neskôr znovu.",
"Go directly to your " => "Choďte priamo do vášho",
"personal settings" => "osobné nastavenia",
"Encryption" => "Šifrovanie",

View File

@ -15,6 +15,8 @@ $TRANSLATIONS = array(
"Missing requirements." => "遺失必要條件。",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "請確認已安裝 PHP 5.3.3 或是更新的版本以及 OpenSSL 也一併安裝在 PHP extension 裡面並啟用及設置完成。現在,加密功能是停用的。",
"Following users are not set up for encryption:" => "以下的使用者無法設定加密:",
"Initial encryption started... This can take some time. Please wait." => "加密初始已啟用...這個需要一些時間。請稍等。",
"Initial encryption running... Please try again later." => "加密初始執行中...請晚點再試。",
"Go directly to your " => "直接到您的",
"personal settings" => "個人設定",
"Encryption" => "加密",

View File

@ -969,33 +969,6 @@ class Util {
}
/**
* @brief get path of a file.
* @param int $fileId id of the file
* @return string path of the file
*/
public static function fileIdToPath($fileId) {
$sql = 'SELECT `path` FROM `*PREFIX*filecache` WHERE `fileid` = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($fileId));
$path = false;
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
$row = $result->fetchRow();
if ($row) {
$path = substr($row['path'], strlen('files'));
}
}
return $path;
}
/**
* @brief Filter an array of UIDs to return only ones ready for sharing
* @param array $unfilteredUsers users to be checked for sharing readiness
@ -1398,7 +1371,7 @@ class Util {
* @param string $dir relative to the users files folder
* @return array with list of files relative to the users files folder
*/
public function getAllFiles($dir) {
public function getAllFiles($dir, $mountPoint = '') {
$result = array();
$dirList = array($dir);
@ -1408,11 +1381,13 @@ class Util {
$this->userFilesDir . '/' . $dir));
foreach ($content as $c) {
$usersPath = isset($c['usersPath']) ? $c['usersPath'] : $c['path'];
// getDirectoryContent() returns the paths relative to the mount points, so we need
// to re-construct the complete path
$path = ($mountPoint !== '') ? $mountPoint . '/' . $c['path'] : $c['path'];
if ($c['type'] === 'dir') {
$dirList[] = substr($usersPath, strlen("files"));
$dirList[] = substr($path, strlen("files"));
} else {
$result[] = substr($usersPath, strlen("files"));
$result[] = substr($path, strlen("files"));
}
}
@ -1421,54 +1396,6 @@ class Util {
return $result;
}
/**
* @brief get shares parent.
* @param int $id of the current share
* @return array of the parent
*/
public static function getShareParent($id) {
$sql = 'SELECT `file_target`, `item_type` FROM `*PREFIX*share` WHERE `id` = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($id));
$row = array();
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
$row = $result->fetchRow();
}
return $row;
}
/**
* @brief get shares parent.
* @param int $id of the current share
* @return array of the parent
*/
public static function getParentFromShare($id) {
$sql = 'SELECT `parent` FROM `*PREFIX*share` WHERE `id` = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($id));
$row = array();
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
} else {
$row = $result->fetchRow();
}
return $row;
}
/**
* @brief get owner of the shared files.
* @param $id
@ -1710,23 +1637,6 @@ class Util {
$this->recoverAllFiles('/', $privateKey);
}
/**
* Get the path including the storage mount point
* @param int $id
* @return string the path including the mount point like AmazonS3/folder/file.txt
*/
public function getPathWithMountPoint($id) {
list($storage, $internalPath) = \OC\Files\Cache\Cache::getById($id);
$mount = \OC\Files\Filesystem::getMountByStorageId($storage);
$mountPoint = $mount[0]->getMountPoint();
$path = \OC\Files\Filesystem::normalizePath($mountPoint . '/' . $internalPath);
// reformat the path to be relative e.g. /user/files/folder becomes /folder/
$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
return $relativePath;
}
/**
* @brief check if the file is stored on a system wide mount point
* @param $path relative to /data/user with leading '/'

View File

@ -219,18 +219,20 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase {
\Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
\OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2);
// user2 has a local file with the same name
// user2 update the shared file
$this->user2View->file_put_contents($this->filename, $this->data);
// check if all keys are generated
$this->assertTrue($this->rootView->file_exists(
// keys should be stored at user1s dir, not in user2s
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/share-keys/'
. $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keyfiles/' . $this->filename . '.key'));
// delete the Shared file from user1 in data/user2/files/Shared
$this->user2View->unlink('/Shared/' . $this->filename);
$result = $this->user2View->unlink($this->filename);
$this->assertTrue($result);
// now keys from user1s home should be gone
$this->assertFalse($this->rootView->file_exists(
@ -242,26 +244,12 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase {
$this->assertFalse($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->filename . '.key'));
// but user2 keys should still exist
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/share-keys/'
. $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey'));
$this->assertTrue($this->rootView->file_exists(
self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keyfiles/' . $this->filename . '.key'));
// cleanup
$this->user2View->unlink($this->filename);
\Test_Encryption_Util::logoutHelper();
\Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
\OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1);
// unshare the file
\OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_HOOKS_USER2);
$this->user1View->unlink($this->filename);
if ($stateFilesTrashbin) {
OC_App::enable('files_trashbin');
}

View File

@ -175,7 +175,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@ -213,14 +213,14 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
function testReShareFile($withTeardown = true) {
$this->testShareFile(false);
// login as user1
// login as user2
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
// get the file info
$fileInfo = $this->view->getFileInfo(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// share the file with user2
// share the file with user3
\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, OCP\PERMISSION_ALL);
// login as admin
@ -236,7 +236,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/Shared/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename);
// check if data is the same as previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@ -333,7 +333,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared' . $this->folder1
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/' . $this->filename);
// check if data is the same
@ -376,7 +376,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
function testReShareFolder($withTeardown = true) {
$fileInfoFolder1 = $this->testShareFolder(false);
// login as user1
// login as user2
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
// disable encryption proxy to prevent recursive calls
@ -385,7 +385,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get the file info from previous created folder
$fileInfoSubFolder = $this->view->getFileInfo(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared' . $this->folder1
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1
. $this->subfolder);
// check if we have a valid file info
@ -394,24 +394,24 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// re-enable the file proxy
\OC_FileProxy::$enabled = $proxyStatus;
// share the file with user2
// share the file with user3
\OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, OCP\PERMISSION_ALL);
// login as admin
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
// check if share key for user2 exists
// check if share key for user3 exists
$this->assertTrue($this->view->file_exists(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' . $this->folder1
. $this->subfolder . $this->subsubfolder . '/'
. $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'));
// login as user2
// login as user3
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3);
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/Shared' . $this->subfolder
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder
. $this->subsubfolder . '/' . $this->filename);
// check if data is the same
@ -419,7 +419,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get the file info
$fileInfo = $this->view->getFileInfo(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/Shared' . $this->subfolder
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder
. $this->subsubfolder . '/' . $this->filename);
// check if we have fileInfos
@ -442,7 +442,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '/files/Shared/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '/files/' . $this->filename);
// check if data is the same
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@ -624,7 +624,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/Shared/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
@ -676,6 +676,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// enable recovery for admin
$this->assertTrue($util->setRecoveryForUser(1));
$util->addRecoveryKeys();
// create folder structure
$this->view->mkdir('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1);
@ -981,7 +982,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// share the file
\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL);
// check if share key for user2exists
// check if share key for user2 exists
$this->assertTrue($this->view->file_exists(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/'
. $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey'));
@ -990,31 +991,29 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// login as user2
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2);
$this->assertTrue($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename));
$this->assertTrue($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename));
// get file contents
$retrievedCryptedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedCryptedFile);
// move the file out of the shared folder
$this->view->rename('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename,
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
// move the file to a subfolder
$this->view->rename('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename,
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename);
// check if we can read the moved file
$retrievedRenamedFile = $this->view->file_get_contents(
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename);
// check if data is the same as we previously written
$this->assertEquals($this->dataShort, $retrievedRenamedFile);
// the owners file should be deleted
$this->assertFalse($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename));
// cleanup
$this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename);
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
$this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename);
}
}

View File

@ -510,7 +510,11 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
*/
public static function loginHelper($user, $create = false, $password = false) {
if ($create) {
\OC_User::createUser($user, $user);
try {
\OC_User::createUser($user, $user);
} catch(\Exception $e) { // catch username is already being used from previous aborted runs
}
}
if ($password === false) {
@ -520,8 +524,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
\OC_Util::tearDownFS();
\OC_User::setUserId('');
\OC\Files\Filesystem::tearDown();
\OC_Util::setupFS($user);
\OC_User::setUserId($user);
\OC_Util::setupFS($user);
$params['uid'] = $user;
$params['password'] = $password;

View File

@ -33,6 +33,7 @@ use OCA\Encryption;
/**
* Class Test_Encryption_Webdav
*
* @brief this class provide basic webdav tests for PUT,GET and DELETE
*/
class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
@ -48,6 +49,8 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
public $dataShort;
public $stateFilesTrashbin;
private static $storage;
public static function setUpBeforeClass() {
// reset backend
\OC_User::clearBackends();
@ -65,6 +68,8 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
// create test user
\Test_Encryption_Util::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1, true);
self::$storage = new \OC\Files\Storage\Temporary(array());
}
function setUp() {
@ -96,8 +101,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
// reset app files_trashbin
if ($this->stateFilesTrashbin) {
OC_App::enable('files_trashbin');
}
else {
} else {
OC_App::disable('files_trashbin');
}
}
@ -153,7 +157,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
$this->assertTrue(Encryption\Crypt::isCatfileContent($encryptedContent));
// get decrypted file contents
$decrypt = file_get_contents('crypt:///' . $this->userId . '/files'. $filename);
$decrypt = file_get_contents('crypt:///' . $this->userId . '/files' . $filename);
// check if file content match with the written content
$this->assertEquals($this->dataShort, $decrypt);
@ -225,7 +229,12 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
$requestBackend = new OC_Connector_Sabre_Request();
// Create ownCloud Dir
$publicDir = new OC_Connector_Sabre_Directory('');
$root = '/' . $this->userId . '/files';
\OC\Files\Filesystem::mount(self::$storage, array(), $root);
$view = new \OC\Files\View($root);
$publicDir = new OC_Connector_Sabre_Directory($view, $view->getFileInfo(''));
$objectTree = new \OC\Connector\Sabre\ObjectTree();
$objectTree->init($publicDir, $view);
// Fire up server
$server = new Sabre_DAV_Server($publicDir);
@ -236,8 +245,9 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
$server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend, 'ownCloud'));
$server->addPlugin(new Sabre_DAV_Locks_Plugin($lockBackend));
$server->addPlugin(new Sabre_DAV_Browser_Plugin(false)); // Show something in the Browser, but no upload
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin());
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin($view));
$server->addPlugin(new OC_Connector_Sabre_MaintenancePlugin());
$server->debugExceptions = true;
// And off we go!
if ($body) {

View File

@ -6,7 +6,7 @@ td.status > span {
}
td.mountPoint, td.backend { width:160px; }
td.remove>img { visibility:hidden; padding-top:13px; }
td.remove>img { visibility:hidden; padding-top:7px; }
tr:hover>td.remove>img { visibility:visible; cursor:pointer; }
#addMountPoint>td { border:none; }
#addMountPoint>td.applicable { visibility:hidden; }
@ -15,3 +15,8 @@ tr:hover>td.remove>img { visibility:visible; cursor:pointer; }
#externalStorage label > input[type="checkbox"] {
margin-right: 3px;
}
#externalStorage td.applicable div.chzn-container {
position: relative;
top: 3px;
}

View File

@ -1,6 +1,7 @@
<?php
$TRANSLATIONS = array(
"Folder name" => "Nome de la carpeta",
"Configuration" => "Configuración",
"Options" => "Opciones",
"Groups" => "Grupos",
"Users" => "Usuarios",

View File

@ -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",

View File

@ -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é",

View File

@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"Grant access" => "Permitir acceso",
"Please provide a valid Dropbox app key and secret." => "Por favor, proporcioná un secreto y una contraseña válida para la aplicación Dropbox.",
"Error configuring Google Drive storage" => "Error al configurar el almacenamiento de Google Drive",
"Saved" => "Guardado",
"External Storage" => "Almacenamiento externo",
"Folder name" => "Nombre de la carpeta",
"External storage" => "Almacenamiento externo",

View File

@ -0,0 +1,5 @@
<?php
$TRANSLATIONS = array(
"Folder name" => "Nombre del directorio"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Palun sisesta korrektne Dropboxi rakenduse võti ja salasõna.",
"Error configuring Google Drive storage" => "Viga Google Drive'i salvestusruumi seadistamisel",
"Saved" => "Salvestatud",
"<b>Note:</b> " => "<b>Märkus:</b>",
" and " => "ja",
"<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>Märkus:</b> cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.",
"<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>Märkus:</b> FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Märkus:</b> \"%s\" pole paigaldatud. Hoidla %s ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata vajalik tugi.",
"External Storage" => "Väline salvestuskoht",
"Folder name" => "Kausta nimi",
"External storage" => "Väline andmehoidla",

Some files were not shown because too many files have changed in this diff Show More