diff options
353 files changed, 6256 insertions, 7309 deletions
diff --git a/.gitignore b/.gitignore index e61ec6f0359..b24edc91282 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,11 @@ nbproject # Node Modules /build/node_modules/ +# nodejs +/build/lib/ +/npm-debug.log + + # Tests - auto-generated files /data-autotest /tests/coverage* diff --git a/.gitmodules b/.gitmodules index b9c1a3702cf..bc2beee81ad 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "3rdparty"] path = 3rdparty - url = git://github.com/owncloud/3rdparty.git + url = https://github.com/owncloud/3rdparty.git diff --git a/apps/files/ajax/download.php b/apps/files/ajax/download.php index 1f7e42e0d3e..4b4a7f8948d 100644 --- a/apps/files/ajax/download.php +++ b/apps/files/ajax/download.php @@ -21,12 +21,6 @@ * */ -// only need filesystem apps -$RUNTIME_APPTYPES=array('filesystem'); - -// Init owncloud - - // Check if we are a user OCP\User::checkLoggedIn(); \OC::$session->close(); diff --git a/apps/files/ajax/getstoragestats.php b/apps/files/ajax/getstoragestats.php index 17415b6933f..dd8af39bada 100644 --- a/apps/files/ajax/getstoragestats.php +++ b/apps/files/ajax/getstoragestats.php @@ -1,8 +1,5 @@ <?php -// only need filesystem apps -$RUNTIME_APPTYPES = array('filesystem'); - $dir = '/'; if (isset($_GET['dir'])) { diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php index 667209599a0..3bb35579d5f 100644 --- a/apps/files/ajax/list.php +++ b/apps/files/ajax/list.php @@ -1,11 +1,5 @@ <?php -// only need filesystem apps -$RUNTIME_APPTYPES=array('filesystem'); - -// Init owncloud - - OCP\JSON::checkLoggedIn(); \OC::$session->close(); diff --git a/apps/files/ajax/rawlist.php b/apps/files/ajax/rawlist.php index 6c2569e2ebb..f18bbffb74a 100644 --- a/apps/files/ajax/rawlist.php +++ b/apps/files/ajax/rawlist.php @@ -1,8 +1,5 @@ <?php -// only need filesystem apps -$RUNTIME_APPTYPES = array('filesystem'); - OCP\JSON::checkLoggedIn(); \OC::$session->close(); diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php index 826f72fb0e6..a8acfdb6e6e 100644 --- a/apps/files/appinfo/remote.php +++ b/apps/files/appinfo/remote.php @@ -22,12 +22,6 @@ * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ -// load needed apps -$RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging'); - -OC_App::loadApps($RUNTIME_APPTYPES); - -OC_Util::obEnd(); // Backends $authBackend = new OC_Connector_Sabre_Auth(); diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php index f334f29a939..25ab70af362 100644 --- a/apps/files/command/scan.php +++ b/apps/files/command/scan.php @@ -58,7 +58,6 @@ class Scan extends Command { protected function execute(InputInterface $input, OutputInterface $output) { if ($input->getOption('all')) { - \OC_App::loadApps('authentication'); $users = $this->userManager->search(''); } else { $users = $input->getArgument('user_id'); diff --git a/apps/files/css/files.css b/apps/files/css/files.css index af863aca33e..1bac5d2b7db 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -77,10 +77,10 @@ } /* make sure there's enough room for the file actions */ #body-user #filestable { - min-width: 750px; + min-width: 688px; /* 768 (mobile break) - 80 (nav width) */ } #body-user #controls { - min-width: 600px; + min-width: 688px; /* 768 (mobile break) - 80 (nav width) */ } #filestable tbody tr { background-color:#fff; height:40px; } diff --git a/apps/files/css/mobile.css b/apps/files/css/mobile.css new file mode 100644 index 00000000000..3ad7d634838 --- /dev/null +++ b/apps/files/css/mobile.css @@ -0,0 +1,68 @@ +@media only screen and (max-width: 768px) { + +/* don’t require a minimum width for files table */ +#body-user #filestable { + min-width: initial !important; +} + +/* do not show Deleted Files on mobile, not optimized yet and button too long */ +#controls #trash { + display: none; +} + +/* hide size and date columns */ +table th#headerSize, +table td.filesize, +table th#headerDate, +table td.date { + display: none; +} + +/* remove shift for multiselect bar to account for missing navigation */ +table.multiselect thead { + padding-left: 0; +} + +/* restrict length of displayed filename to prevent overflow */ +table td.filename .nametext { + max-width: 75% !important; +} + +/* always show actions on mobile, not only on hover */ +#fileList a.action { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)" !important; + filter: alpha(opacity=20) !important; + opacity: .2 !important; + display: inline !important; +} +/* do not show Rename or Versions on mobile */ +#fileList .action.action-rename, +#fileList .action.action-versions { + display: none !important; +} +/* some padding for better clickability */ +#fileList a.action img { + padding: 0 6px 0 12px; +} +/* hide text of the actions on mobile */ +#fileList a.action span { + display: none; +} + +/* ellipsis on file names */ +.nametext { + width: 60%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +/* proper notification area for multi line messages */ +#notification-container { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} +} diff --git a/apps/files/index.php b/apps/files/index.php index c66cd40fb56..4d765b69e41 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -27,6 +27,7 @@ OCP\User::checkLoggedIn(); // Load the files we need OCP\Util::addStyle('files', 'files'); OCP\Util::addStyle('files', 'upload'); +OCP\Util::addStyle('files', 'mobile'); OCP\Util::addscript('files', 'file-upload'); OCP\Util::addscript('files', 'jquery.iframe-transport'); OCP\Util::addscript('files', 'jquery.fileupload'); @@ -39,7 +40,7 @@ $dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : ''; $dir = \OC\Files\Filesystem::normalizePath($dir); $dirInfo = \OC\Files\Filesystem::getFileInfo($dir); // Redirect if directory does not exist -if (!$dirInfo->getType() === 'dir') { +if (!$dirInfo || !$dirInfo->getType() === 'dir') { header('Location: ' . OCP\Util::getScriptName() . ''); exit(); } diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 9a69d7b3688..a7d1fa9d8a2 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -15,21 +15,33 @@ var FileActions = { defaults: {}, icons: {}, currentFile: null, - register: function (mime, name, permissions, icon, action) { + register: function (mime, name, permissions, icon, action, displayName) { if (!FileActions.actions[mime]) { FileActions.actions[mime] = {}; } if (!FileActions.actions[mime][name]) { FileActions.actions[mime][name] = {}; } + if (!displayName) { + displayName = t('files', name); + } FileActions.actions[mime][name]['action'] = action; FileActions.actions[mime][name]['permissions'] = permissions; + FileActions.actions[mime][name]['displayName'] = displayName; FileActions.icons[name] = icon; }, setDefault: function (mime, name) { FileActions.defaults[mime] = name; }, get: function (mime, type, permissions) { + var actions = this.getActions(mime, type, permissions); + var filteredActions = {}; + $.each(actions, function (name, action) { + filteredActions[name] = action.action; + }); + return filteredActions; + }, + getActions: function (mime, type, permissions) { var actions = {}; if (FileActions.actions.all) { actions = $.extend(actions, FileActions.actions.all); @@ -51,7 +63,7 @@ var FileActions = { var filteredActions = {}; $.each(actions, function (name, action) { if (action.permissions & permissions) { - filteredActions[name] = action.action; + filteredActions[name] = action; } }); return filteredActions; @@ -82,7 +94,7 @@ var FileActions = { */ display: function (parent, triggerEvent) { FileActions.currentFile = parent; - var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); + var actions = FileActions.getActions(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); var file = FileActions.getCurrentFile(); var nameLinks; if (FileList.findFileEl(file).data('renaming')) { @@ -105,15 +117,16 @@ var FileActions = { event.data.actionFunc(file); }; - var addAction = function (name, action) { + 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') { + var img = FileActions.icons[name], - actionText = t('files', name), + actionText = displayName, actionContainer = 'a.name>span.fileactions'; if (name === 'Rename') { @@ -125,7 +138,7 @@ var FileActions = { if (img.call) { img = img(file); } - var html = '<a href="#" class="action" data-action="' + name + '">'; + var html = '<a href="#" class="action action-' + name.toLowerCase() + '" data-action="' + name + '">'; if (img) { html += '<img class ="svg" src="' + img + '" />'; } @@ -133,8 +146,7 @@ var FileActions = { var element = $(html); element.data('action', name); - //alert(element); - element.on('click', {a: null, elem: parent, actionFunc: actions[name]}, actionHandler); + element.on('click', {a: null, elem: parent, actionFunc: actions[name].action}, actionHandler); parent.find(actionContainer).append(element); } @@ -142,12 +154,15 @@ var FileActions = { $.each(actions, function (name, action) { if (name !== 'Share') { - addAction(name, action); + displayName = action.displayName; + ah = action.action; + + addAction(name, ah, displayName); } }); if(actions.Share && !($('#dir').val() === '/' && file === 'Shared')){ - // t('files', 'Share') - addAction('Share', actions.Share); + displayName = t('files', 'Share'); + addAction('Share', actions.Share, displayName); } // remove the existing delete action diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 503bf681139..cda4e823a73 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -71,7 +71,7 @@ window.FileList={ }); // filename td td = $('<td></td>').attr({ - "class": "filename", + "class": "filename svg", "style": 'background-image:url('+iconurl+'); background-size: 32px;' }); var rand = Math.random().toString(16).slice(2); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 1186a72a44f..1137364db4a 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -196,11 +196,14 @@ var Files = { if (width !== Files.lastWidth) { if ((width < Files.lastWidth || firstRun) && width < Files.breadcrumbsWidth) { if (Files.hiddenBreadcrumbs === 0) { - Files.breadcrumbsWidth -= $(Files.breadcrumbs[1]).get(0).offsetWidth; - $(Files.breadcrumbs[1]).find('a').hide(); - $(Files.breadcrumbs[1]).append('<span>...</span>'); - Files.breadcrumbsWidth += $(Files.breadcrumbs[1]).get(0).offsetWidth; - Files.hiddenBreadcrumbs = 2; + bc = $(Files.breadcrumbs[1]).get(0); + if (typeof bc != 'undefined') { + Files.breadcrumbsWidth -= bc.offsetWidth; + $(Files.breadcrumbs[1]).find('a').hide(); + $(Files.breadcrumbs[1]).append('<span>...</span>'); + Files.breadcrumbsWidth += bc.offsetWidth; + Files.hiddenBreadcrumbs = 2; + } } var i = Files.hiddenBreadcrumbs; while (width < Files.breadcrumbsWidth && i > 1 && i < Files.breadcrumbs.length - 1) { diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index 9144cf3ea10..c71aa9a35ab 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "File name cannot be empty." => "Το όνομα αρχείου δεν μπορεί να είναι κενό.", "\"%s\" is an invalid file name." => "Το \"%s\" είναι ένα μη έγκυρο όνομα αρχείου.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Μη έγκυρο όνομα, '\\', '/', '<', '>', ':', '\"', '|', '?' και '*' δεν επιτρέπονται.", +"The target folder has been moved or deleted." => "Ο φάκελος προορισμού έχει μετακινηθεί ή διαγραφεί.", "The name %s is already used in the folder %s. Please choose a different name." => "Το όνομα %s χρησιμοποιείτε ήδη στον φάκελο %s. Παρακαλώ επιλέξτε ένα άλλο όνομα.", "Not a valid source" => "Μη έγκυρη πηγή", "Server is not allowed to open URLs, please check the server configuration" => "Ο διακομιστής δεν επιτρέπεται να ανοίγει URL, παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή", @@ -28,6 +29,8 @@ $TRANSLATIONS = array( "Invalid directory." => "Μη έγκυρος φάκελος.", "Files" => "Αρχεία", "Unable to upload {filename} as it is a directory or has 0 bytes" => "Αδυναμία φόρτωσης {filename} καθώς είναι κατάλογος αρχείων ή έχει 0 bytes", +"Total file size {size1} exceeds upload limit {size2}" => "Το συνολικό μέγεθος αρχείου {size1} υπερβαίνει το όριο μεταφόρτωσης {size2}", +"Not enough free space, you are uploading {size1} but only {size2} is left" => "Δεν υπάρχει αρκετός ελεύθερος χώρος, μεταφορτώνετε μέγεθος {size1} αλλά υπάρχει χώρος μόνο {size2}", "Upload cancelled." => "Η αποστολή ακυρώθηκε.", "Could not get result from server." => "Αδυναμία λήψης αποτελέσματος από το διακομιστή.", "File upload is in progress. Leaving the page now will cancel the upload." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", diff --git a/apps/files/l10n/pl_PL.php b/apps/files/l10n/pl_PL.php deleted file mode 100644 index b67f67b972e..00000000000 --- a/apps/files/l10n/pl_PL.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Save" => "Zapisz" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index 2c0335f3cc3..ac958e5dfd3 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -3,7 +3,9 @@ $TRANSLATIONS = array( "Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует", "Could not move %s" => "Невозможно переместить %s", "File name cannot be empty." => "Имя файла не может быть пустым.", +"\"%s\" is an invalid file name." => "\"%s\" это не правильное имя файла.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя: символы '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.", +"The target folder has been moved or deleted." => "Целевой каталог был перемещен или удален.", "The name %s is already used in the folder %s. Please choose a different name." => "Имя %s уже используется для каталога %s. Пожалуйста, выберите другое имя.", "Not a valid source" => "Неправильный источник", "Server is not allowed to open URLs, please check the server configuration" => "Сервер не позволяет открывать URL-адреса, пожалуйста, проверьте настройки сервера", @@ -27,6 +29,8 @@ $TRANSLATIONS = array( "Invalid directory." => "Неверный каталог.", "Files" => "Файлы", "Unable to upload {filename} as it is a directory or has 0 bytes" => "Невозможно загрузить {filename}, так как это либо каталог, либо файл нулевого размера", +"Total file size {size1} exceeds upload limit {size2}" => "Полный размер файла {size1} превышает лимит по загрузке {size2}", +"Not enough free space, you are uploading {size1} but only {size2} is left" => "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}", "Upload cancelled." => "Загрузка отменена.", "Could not get result from server." => "Не удалось получить ответ от сервера.", "File upload is in progress. Leaving the page now will cancel the upload." => "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.", @@ -48,6 +52,7 @@ $TRANSLATIONS = array( "_%n file_::_%n files_" => array("%n файл","%n файла","%n файлов"), "{dirs} and {files}" => "{dirs} и {files}", "_Uploading %n file_::_Uploading %n files_" => array("Закачка %n файла","Закачка %n файлов","Закачка %n файлов"), +"\"{name}\" is an invalid file name." => "\"{name}\" это не правильное имя файла.", "Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.", "Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", diff --git a/apps/files/templates/admin.php b/apps/files/templates/admin.php index a5afd55fbc3..5f7d3261d6c 100644 --- a/apps/files/templates/admin.php +++ b/apps/files/templates/admin.php @@ -1,28 +1,26 @@ <?php OCP\Util::addscript('files', 'admin'); ?> -<form name="filesForm" action='#' method='post'> - <fieldset class="personalblock"> - <h2><?php p($l->t('File handling')); ?></h2> - <?php if($_['uploadChangable']):?> - <label for="maxUploadSize"><?php p($l->t( 'Maximum upload size' )); ?> </label> - <input type="text" name='maxUploadSize' id="maxUploadSize" value='<?php p($_['uploadMaxFilesize']) ?>'/> - <?php if($_['displayMaxPossibleUploadSize']):?> - (<?php p($l->t('max. possible: ')); p($_['maxPossibleUploadSize']) ?>) - <?php endif;?> - <br/> +<form name="filesForm" class="section" action="#" method="post"> + <h2><?php p($l->t('File handling')); ?></h2> + <?php if($_['uploadChangable']):?> + <label for="maxUploadSize"><?php p($l->t( 'Maximum upload size' )); ?> </label> + <input type="text" name='maxUploadSize' id="maxUploadSize" value='<?php p($_['uploadMaxFilesize']) ?>'/> + <?php if($_['displayMaxPossibleUploadSize']):?> + (<?php p($l->t('max. possible: ')); p($_['maxPossibleUploadSize']) ?>) <?php endif;?> - <input type="checkbox" name="allowZipDownload" id="allowZipDownload" value="1" - title="<?php p($l->t( 'Needed for multi-file and folder downloads.' )); ?>" - <?php if ($_['allowZipDownload']): ?> checked="checked"<?php endif; ?> /> - <label for="allowZipDownload"><?php p($l->t( 'Enable ZIP-download' )); ?></label><br/> + <br/> + <?php endif;?> + <input type="checkbox" name="allowZipDownload" id="allowZipDownload" value="1" + title="<?php p($l->t( 'Needed for multi-file and folder downloads.' )); ?>" + <?php if ($_['allowZipDownload']): ?> checked="checked"<?php endif; ?> /> + <label for="allowZipDownload"><?php p($l->t( 'Enable ZIP-download' )); ?></label><br/> - <input type="text" name="maxZipInputSize" id="maxZipInputSize" style="width:180px;" value='<?php p($_['maxZipInputSize']) ?>' - title="<?php p($l->t( '0 is unlimited' )); ?>" - <?php if (!$_['allowZipDownload']): ?> disabled="disabled"<?php endif; ?> /><br /> - <em><?php p($l->t( 'Maximum input size for ZIP files' )); ?> </em><br /> + <input type="text" name="maxZipInputSize" id="maxZipInputSize" style="width:180px;" value='<?php p($_['maxZipInputSize']) ?>' + title="<?php p($l->t( '0 is unlimited' )); ?>" + <?php if (!$_['allowZipDownload']): ?> disabled="disabled"<?php endif; ?> /><br /> + <em><?php p($l->t( 'Maximum input size for ZIP files' )); ?> </em><br /> - <input type="hidden" value="<?php p($_['requesttoken']); ?>" name="requesttoken" /> - <input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings" - value="<?php p($l->t( 'Save' )); ?>"/> - </fieldset> + <input type="hidden" value="<?php p($_['requesttoken']); ?>" name="requesttoken" /> + <input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings" + value="<?php p($l->t( 'Save' )); ?>"/> </form> diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 5b0bad7f341..34acd9c4f51 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -5,15 +5,15 @@ <div id="new" class="button"> <a><?php p($l->t('New'));?></a> <ul> - <li class="icon-filetype-text" + <li class="icon-filetype-text svg" data-type="file" data-newname="<?php p($l->t('New text file')) ?>.txt"> <p><?php p($l->t('Text file'));?></p> </li> - <li class="icon-filetype-folder" + <li class="icon-filetype-folder svg" data-type="folder" data-newname="<?php p($l->t('New folder')) ?>"> <p><?php p($l->t('Folder'));?></p> </li> - <li class="icon-link" data-type="web"> + <li class="icon-link svg" data-type="web"> <p><?php p($l->t('From link'));?></p> </li> </ul> diff --git a/apps/files/templates/part.breadcrumb.php b/apps/files/templates/part.breadcrumb.php index 2a0df622767..69b4cbca10d 100644 --- a/apps/files/templates/part.breadcrumb.php +++ b/apps/files/templates/part.breadcrumb.php @@ -1,4 +1,4 @@ -<div class="crumb <?php if(!count($_["breadcrumb"])) p('last');?>" data-dir=''> +<div class="crumb svg <?php if(!count($_["breadcrumb"])) p('last');?>" data-dir=''> <a href="<?php print_unescaped($_['baseURL']); ?>"> <?php if(isset($_['rootBreadCrumb'])): echo $_['rootBreadCrumb']; diff --git a/apps/files_encryption/appinfo/info.xml b/apps/files_encryption/appinfo/info.xml index ab47de828b9..15a09a29f51 100644 --- a/apps/files_encryption/appinfo/info.xml +++ b/apps/files_encryption/appinfo/info.xml @@ -2,7 +2,7 @@ <info> <id>files_encryption</id> <name>Encryption</name> - <description>The ownCloud files encryption system provides server side-encryption. After the app was enabled you need to re-login to initialize your encryption keys. Please note that server side encryption requires that the ownCloud server admin can be trusted. The main purpose of this app is the encryption of files that are stored on externally mounted storages.</description> + <description>The ownCloud files encryption system provides server side-encryption. After the app is enabled you need to re-login to initialize your encryption keys. Please note that server side encryption requires that the ownCloud server admin can be trusted. The main purpose of this app is the encryption of files that are stored on externally mounted storages.</description> <licence>AGPL</licence> <author>Sam Tuke, Bjoern Schiessle, Florin Peter</author> <require>4</require> diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php index ad8617bc6d2..972d7d7138c 100644 --- a/apps/files_encryption/l10n/el.php +++ b/apps/files_encryption/l10n/el.php @@ -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." => "Παρακαλώ επιβεβαιώστε ότι η 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" => "Κρυπτογράφηση", diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php index bce245ce680..ba984868932 100644 --- a/apps/files_encryption/l10n/ru.php +++ b/apps/files_encryption/l10n/ru.php @@ -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." => "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.", "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" => "Шифрование", diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index bae1fded53d..8fd51178285 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -3,9 +3,10 @@ /** * ownCloud * - * @author Sam Tuke, Robin Appelman - * @copyright 2012 Sam Tuke samtuke@owncloud.com, Robin Appelman - * icewind1991@gmail.com + * @author Bjoern Schiessle, Sam Tuke, Robin Appelman + * @copyright 2012 Sam Tuke <samtuke@owncloud.com> + * 2012 Robin Appelman <icewind1991@gmail.com> + * 2014 Bjoern Schiessle <schiessle@owncloud.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -36,37 +37,40 @@ namespace OCA\Encryption; */ class Proxy extends \OC_FileProxy { - private static $blackList = null; //mimetypes blacklisted from encryption private static $unencryptedSizes = array(); // remember unencrypted size private static $fopenMode = array(); // remember the fopen mode + private static $enableEncryption = false; // Enable encryption for the given path /** * Check if a file requires encryption * @param string $path + * @param string $mode type of access * @return bool * - * Tests if server side encryption is enabled, and file is allowed by blacklists + * Tests if server side encryption is enabled, and if we should call the + * crypt stream wrapper for the given file */ - private static function shouldEncrypt($path) { + private static function shouldEncrypt($path, $mode = 'w') { $userId = Helper::getUser($path); - if (\OCP\App::isEnabled('files_encryption') === false || Crypt::mode() !== 'server' || - strpos($path, '/' . $userId . '/files') !== 0) { + // don't call the crypt stream wrapper, if... + if ( + \OCP\App::isEnabled('files_encryption') === false // encryption is disabled + || Crypt::mode() !== 'server' // we are not in server-side-encryption mode + || strpos($path, '/' . $userId . '/files') !== 0 // path is not in files/ + || substr($path, 0, 8) === 'crypt://' // we are already in crypt mode + ) { return false; } - if (is_null(self::$blackList)) { - self::$blackList = explode(',', \OCP\Config::getAppValue('files_encryption', 'type_blacklist', '')); - } - - if (Crypt::isCatfileContent($path)) { - return true; - } - - $extension = substr($path, strrpos($path, '.') + 1); + $view = new \OC_FilesystemView(''); + $util = new Util($view, $userId); - if (array_search($extension, self::$blackList) === false) { + // for write operation we always encrypt the files, for read operations + // we check if the existing file is encrypted or not decide if it needs to + // decrypt it. + if (($mode !== 'r' && $mode !== 'rb') || $util->isEncryptedPath($path)) { return true; } @@ -128,6 +132,8 @@ class Proxy extends \OC_FileProxy { // re-enable proxy - our work is done \OC_FileProxy::$enabled = $proxyStatus; + } else { + return false; } } } @@ -220,7 +226,10 @@ class Proxy extends \OC_FileProxy { * @param string $mode type of access */ public function preFopen($path, $mode) { + self::$fopenMode[$path] = $mode; + self::$enableEncryption = self::shouldEncrypt($path, $mode); + } @@ -233,26 +242,14 @@ class Proxy extends \OC_FileProxy { $path = \OC\Files\Filesystem::normalizePath($path); - if (!$result) { + if (!$result || self::$enableEncryption === false) { return $result; } - // split the path parts - $pathParts = explode('/', $path); - - // don't try to encrypt/decrypt cache chunks or files in the trash bin - if (isset($pathParts[2]) && ($pathParts[2] === 'cache' || $pathParts[2] === 'files_trashbin')) { - return $result; - } - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - // if we remember the mode from the pre proxy we re-use it - // oterwise we fall back to stream_get_meta_data() + // otherwise we fall back to stream_get_meta_data() if (isset(self::$fopenMode[$path])) { $mode = self::$fopenMode[$path]; unset(self::$fopenMode[$path]); @@ -261,35 +258,12 @@ class Proxy extends \OC_FileProxy { $mode = $meta['mode']; } - $view = new \OC_FilesystemView(''); - - $userId = Helper::getUser($path); - $util = new Util($view, $userId); + // Close the original encrypted file + fclose($result); - // If file is already encrypted, decrypt using crypto protocol - if ( - Crypt::mode() === 'server' - && $util->isEncryptedPath($path) - ) { - - // Close the original encrypted file - fclose($result); - - // Open the file using the crypto stream wrapper - // protocol and let it do the decryption work instead - $result = fopen('crypt://' . $path, $mode); - - } elseif ( - self::shouldEncrypt($path) - and $mode !== 'r' - and $mode !== 'rb' - - ) { - $result = fopen('crypt://' . $path, $mode); - } - - // Re-enable the proxy - \OC_FileProxy::$enabled = $proxyStatus; + // Open the file using the crypto stream wrapper + // protocol and let it do the decryption work instead + $result = fopen('crypt://' . $path, $mode); return $result; diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 58ac03373a7..1a163db887c 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -568,21 +568,25 @@ class Stream { // part file. $path = Helper::stripPartialFileExtension($this->rawPath); - // get file info - $fileInfo = $this->rootView->getFileInfo($path); - if ($fileInfo) { - // set encryption data - $fileInfo['encrypted'] = true; - $fileInfo['size'] = $this->size; - $fileInfo['unencrypted_size'] = $this->unencryptedSize; - - // set fileinfo - $this->rootView->putFileInfo($path, $fileInfo); - } + $fileInfo = array( + 'encrypted' => true, + 'size' => $this->size, + 'unencrypted_size' => $this->unencryptedSize, + ); + + // set fileinfo + $this->rootView->putFileInfo($path, $fileInfo); } - return fclose($this->handle); + $result = fclose($this->handle); + + if ($result === false) { + \OCP\Util::writeLog('Encryption library', 'Could not close stream, file could be corrupted', \OCP\Util::FATAL); + } + + return $result; + } } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 3db5a423478..c3058aefa6f 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -432,25 +432,28 @@ class Util { $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - // we only need 24 byte from the last chunk $data = ''; - $handle = $this->view->fopen($path, 'r'); - if (is_resource($handle)) { - // suppress fseek warining, we handle the case that fseek doesn't - // work in the else branch - if (@fseek($handle, -24, SEEK_END) === 0) { - $data = fgets($handle); - } else { - // if fseek failed on the storage we create a local copy from the file - // and read this one - fclose($handle); - $localFile = $this->view->getLocalFile($path); - $handle = fopen($localFile, 'r'); - if (is_resource($handle) && fseek($handle, -24, SEEK_END) === 0) { + + // we only need 24 byte from the last chunk + if ($this->view->file_exists($path)) { + $handle = $this->view->fopen($path, 'r'); + if (is_resource($handle)) { + // suppress fseek warining, we handle the case that fseek doesn't + // work in the else branch + if (@fseek($handle, -24, SEEK_END) === 0) { $data = fgets($handle); + } else { + // if fseek failed on the storage we create a local copy from the file + // and read this one + fclose($handle); + $localFile = $this->view->getLocalFile($path); + $handle = fopen($localFile, 'r'); + if (is_resource($handle) && fseek($handle, -24, SEEK_END) === 0) { + $data = fgets($handle); + } } + fclose($handle); } - fclose($handle); } // re-enable proxy diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php index 231a68b6a58..cf676c445ce 100644 --- a/apps/files_encryption/templates/settings-admin.php +++ b/apps/files_encryption/templates/settings-admin.php @@ -1,63 +1,60 @@ -<form id="encryption"> - <fieldset class="personalblock"> +<form id="encryption" class="section"> + <h2><?php p($l->t('Encryption')); ?></h2> - <h2><?php p($l->t('Encryption')); ?></h2> + <p> + <?php p($l->t("Enable recovery key (allow to recover users files in case of password loss):")); ?> + <br/> + <br/> + <input type="password" name="encryptionRecoveryPassword" id="encryptionRecoveryPassword"/> + <label for="recoveryPassword"><?php p($l->t("Recovery key password")); ?></label> + <br/> + <input type="password" name="encryptionRecoveryPassword" id="repeatEncryptionRecoveryPassword"/> + <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat Recovery key password")); ?></label> + <br/> + <input + type='radio' + name='adminEnableRecovery' + value='1' + <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : 'disabled'); ?> /> + <?php p($l->t("Enabled")); ?> + <br/> - <p> - <?php p($l->t("Enable recovery key (allow to recover users files in case of password loss):")); ?> - <br/> - <br/> - <input type="password" name="encryptionRecoveryPassword" id="encryptionRecoveryPassword"/> - <label for="recoveryPassword"><?php p($l->t("Recovery key password")); ?></label> - <br/> - <input type="password" name="encryptionRecoveryPassword" id="repeatEncryptionRecoveryPassword"/> - <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat Recovery key password")); ?></label> - <br/> - <input - type='radio' - name='adminEnableRecovery' - value='1' - <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : 'disabled'); ?> /> - <?php p($l->t("Enabled")); ?> - <br/> + <input + type='radio' + name='adminEnableRecovery' + value='0' + <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : 'disabled'); ?> /> + <?php p($l->t("Disabled")); ?> + </p> + <br/><br/> - <input - type='radio' - name='adminEnableRecovery' - value='0' - <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : 'disabled'); ?> /> - <?php p($l->t("Disabled")); ?> - </p> + <p name="changeRecoveryPasswordBlock" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>> + <strong><?php p($l->t("Change recovery key password:")); ?></strong> <br/><br/> - - <p name="changeRecoveryPasswordBlock" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>> - <strong><?php p($l->t("Change recovery key password:")); ?></strong> - <br/><br/> - <input - type="password" - name="changeRecoveryPassword" - id="oldEncryptionRecoveryPassword" - <label for="oldEncryptionRecoveryPassword"><?php p($l->t("Old Recovery key password")); ?></label> - <br/> - <br/> - <input - type="password" - name="changeRecoveryPassword" - id="newEncryptionRecoveryPassword" - <label for="newEncryptionRecoveryPassword"><?php p($l->t("New Recovery key password")); ?></label> - <br/> - <input - type="password" - name="changeRecoveryPassword" - id="repeatedNewEncryptionRecoveryPassword" - <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat New Recovery key password")); ?></label> - <br/> - <button - type="button" - name="submitChangeRecoveryKey" - disabled><?php p($l->t("Change Password")); ?> - </button> - <span class="msg"></span> - </p> - </fieldset> + <input + type="password" + name="changeRecoveryPassword" + id="oldEncryptionRecoveryPassword" + <label for="oldEncryptionRecoveryPassword"><?php p($l->t("Old Recovery key password")); ?></label> + <br/> + <br/> + <input + type="password" + name="changeRecoveryPassword" + id="newEncryptionRecoveryPassword" + <label for="newEncryptionRecoveryPassword"><?php p($l->t("New Recovery key password")); ?></label> + <br/> + <input + type="password" + name="changeRecoveryPassword" + id="repeatedNewEncryptionRecoveryPassword" + <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat New Recovery key password")); ?></label> + <br/> + <button + type="button" + name="submitChangeRecoveryKey" + disabled><?php p($l->t("Change Password")); ?> + </button> + <span class="msg"></span> + </p> </form> diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php index 1b4239d82cd..8139ece1950 100644 --- a/apps/files_encryption/templates/settings-personal.php +++ b/apps/files_encryption/templates/settings-personal.php @@ -1,66 +1,63 @@ -<form id="encryption">
- <fieldset class="personalblock">
- <h2><?php p( $l->t( 'Encryption' ) ); ?></h2>
+<form id="encryption" class="section">
+ <h2><?php p( $l->t( 'Encryption' ) ); ?></h2>
- <?php if ( $_["initialized"] === '1' ): ?>
- <p>
- <a name="changePKPasswd" />
- <label for="changePrivateKeyPasswd">
- <?php p( $l->t( "Your private key password no longer match your log-in password:" ) ); ?>
- </label>
- <br />
- <em><?php p( $l->t( "Set your old private key password to your current log-in password." ) ); ?>
- <?php if ( $_["recoveryEnabledForUser"] ):
- p( $l->t( " If you don't remember your old password you can ask your administrator to recover your files." ) );
- endif; ?>
- </em>
- <br />
- <input
- type="password"
- name="changePrivateKeyPassword"
- id="oldPrivateKeyPassword" />
- <label for="oldPrivateKeyPassword"><?php p($l->t( "Old log-in password" )); ?></label>
- <br />
- <input
- type="password"
- name="changePrivateKeyPassword"
- id="newPrivateKeyPassword" />
- <label for="newRecoveryPassword"><?php p($l->t( "Current log-in password" )); ?></label>
- <br />
- <button
- type="button"
- name="submitChangePrivateKeyPassword"
- disabled><?php p($l->t( "Update Private Key Password" )); ?>
- </button>
- <span class="msg"></span>
- </p>
- <?php endif; ?>
-
- <?php if ( $_["recoveryEnabled"] && $_["privateKeySet"] ): ?>
+ <?php if ( $_["initialized"] === '1' ): ?>
+ <p>
+ <a name="changePKPasswd" />
+ <label for="changePrivateKeyPasswd">
+ <?php p( $l->t( "Your private key password no longer match your log-in password:" ) ); ?>
+ </label>
+ <br />
+ <em><?php p( $l->t( "Set your old private key password to your current log-in password." ) ); ?>
+ <?php if ( $_["recoveryEnabledForUser"] ):
+ p( $l->t( " If you don't remember your old password you can ask your administrator to recover your files." ) );
+ endif; ?>
+ </em>
+ <br />
+ <input
+ type="password"
+ name="changePrivateKeyPassword"
+ id="oldPrivateKeyPassword" />
+ <label for="oldPrivateKeyPassword"><?php p($l->t( "Old log-in password" )); ?></label>
+ <br />
+ <input
+ type="password"
+ name="changePrivateKeyPassword"
+ id="newPrivateKeyPassword" />
+ <label for="newRecoveryPassword"><?php p($l->t( "Current log-in password" )); ?></label>
<br />
- <p>
- <label for="userEnableRecovery"><?php p( $l->t( "Enable password recovery:" ) ); ?></label>
- <br />
- <em><?php p( $l->t( "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" ) ); ?></em>
- <br />
- <input
- type='radio'
- name='userEnableRecovery'
- value='1'
- <?php echo ( $_["recoveryEnabledForUser"] == 1 ? 'checked="checked"' : '' ); ?> />
- <?php p( $l->t( "Enabled" ) ); ?>
- <br />
+ <button
+ type="button"
+ name="submitChangePrivateKeyPassword"
+ disabled><?php p($l->t( "Update Private Key Password" )); ?>
+ </button>
+ <span class="msg"></span>
+ </p>
+ <?php endif; ?>
- <input
- type='radio'
- name='userEnableRecovery'
- value='0'
- <?php echo ( $_["recoveryEnabledForUser"] == 0 ? 'checked="checked"' : '' ); ?> />
- <?php p( $l->t( "Disabled" ) ); ?>
- <div id="recoveryEnabledSuccess"><?php p( $l->t( 'File recovery settings updated' ) ); ?></div>
- <div id="recoveryEnabledError"><?php p( $l->t( 'Could not update file recovery' ) ); ?></div>
- </p>
- <?php endif; ?>
+ <?php if ( $_["recoveryEnabled"] && $_["privateKeySet"] ): ?>
+ <br />
+ <p>
+ <label for="userEnableRecovery"><?php p( $l->t( "Enable password recovery:" ) ); ?></label>
+ <br />
+ <em><?php p( $l->t( "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" ) ); ?></em>
+ <br />
+ <input
+ type='radio'
+ name='userEnableRecovery'
+ value='1'
+ <?php echo ( $_["recoveryEnabledForUser"] == 1 ? 'checked="checked"' : '' ); ?> />
+ <?php p( $l->t( "Enabled" ) ); ?>
+ <br />
- </fieldset>
+ <input
+ type='radio'
+ name='userEnableRecovery'
+ value='0'
+ <?php echo ( $_["recoveryEnabledForUser"] == 0 ? 'checked="checked"' : '' ); ?> />
+ <?php p( $l->t( "Disabled" ) ); ?>
+ <div id="recoveryEnabledSuccess"><?php p( $l->t( 'File recovery settings updated' ) ); ?></div>
+ <div id="recoveryEnabledError"><?php p( $l->t( 'Could not update file recovery' ) ); ?></div>
+ </p>
+ <?php endif; ?>
</form>
diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index be56968ac09..1f57d7cb635 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -100,11 +100,11 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->filename = 'share-tmp.test'; - // we don't want to tests with app files_trashbin enabled - \OC_App::disable('files_trashbin'); - // remember files_trashbin state $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin'); + + // we don't want to tests with app files_trashbin enabled + \OC_App::disable('files_trashbin'); } function tearDown() { diff --git a/apps/files_external/3rdparty/smb4php/smb.php b/apps/files_external/3rdparty/smb4php/smb.php index 656930514f0..e325506fa14 100644 --- a/apps/files_external/3rdparty/smb4php/smb.php +++ b/apps/files_external/3rdparty/smb4php/smb.php @@ -8,6 +8,8 @@ # Homepage: http://www.phpclasses.org/smb4php # # Copyright (c) 2007 Victor M. Varela <vmvarela@gmail.com> +# Copyright (c) 2012 Frank Karlitschek <frank@owncloud.org> +# Copyright (c) 2014 Robin McCorkell <rmccorkell@karoshi.org.uk> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -19,8 +21,6 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # -# Addition 17/12/2012 Frank Karlitschek (frank@owncloud.org) -# Addition 17/03/2014 Robin McCorkell (rmccorkell@karoshi.org.uk) # On the official website http://www.phpclasses.org/smb4php the # license is listed as LGPL so we assume that this is # dual-licensed GPL/LGPL @@ -44,6 +44,42 @@ $GLOBALS['__smb_cache'] = array ('stat' => array (), 'dir' => array ()); class smb { + private static $regexp = array ( + '^added interface ip=(.*) bcast=(.*) nmask=(.*)$' => 'skip', + 'Anonymous login successful' => 'skip', + '^Domain=\[(.*)\] OS=\[(.*)\] Server=\[(.*)\]$' => 'skip', + '^\tSharename[ ]+Type[ ]+Comment$' => 'shares', + '^\t---------[ ]+----[ ]+-------$' => 'skip', + '^\tServer [ ]+Comment$' => 'servers', + '^\t---------[ ]+-------$' => 'skip', + '^\tWorkgroup[ ]+Master$' => 'workg', + '^\t(.*)[ ]+(Disk|IPC)[ ]+IPC.*$' => 'skip', + '^\tIPC\\\$(.*)[ ]+IPC' => 'skip', + '^\t(.*)[ ]+(Disk)[ ]+(.*)$' => 'share', + '^\t(.*)[ ]+(Printer)[ ]+(.*)$' => 'skip', + '([0-9]+) blocks of size ([0-9]+)\. ([0-9]+) blocks available' => 'skip', + 'Got a positive name query response from ' => 'skip', + '^(session setup failed): (.*)$' => 'error', + '^(.*): ERRSRV - ERRbadpw' => 'error', + '^Error returning browse list: (.*)$' => 'error', + '^tree connect failed: (.*)$' => 'error', + '^(Connection to .* failed)(.*)$' => 'error-connect', + '^NT_STATUS_(.*) ' => 'error', + '^NT_STATUS_(.*)\$' => 'error', + 'ERRDOS - ERRbadpath \((.*).\)' => 'error', + 'cd (.*): (.*)$' => 'error', + '^cd (.*): NT_STATUS_(.*)' => 'error', + '^\t(.*)$' => 'srvorwg', + '^([0-9]+)[ ]+([0-9]+)[ ]+(.*)$' => 'skip', + '^Job ([0-9]+) cancelled' => 'skip', + '^[ ]+(.*)[ ]+([0-9]+)[ ]+(Mon|Tue|Wed|Thu|Fri|Sat|Sun)[ ](Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[ ]+([0-9]+)[ ]+([0-9]{2}:[0-9]{2}:[0-9]{2})[ ]([0-9]{4})$' => 'files', + '^message start: ERRSRV - (ERRmsgoff)' => 'error' + ); + + function getRegexp() { + return self::$regexp; + } + function parse_url ($url) { $pu = parse_url (trim($url)); foreach (array ('domain', 'user', 'pass', 'host', 'port', 'path') as $i) { @@ -75,46 +111,16 @@ class smb { } - function execute ($command, $purl) { + function execute ($command, $purl, $regexp = NULL) { return smb::client ('-d 0 ' . escapeshellarg ('//' . $purl['host'] . '/' . $purl['share']) - . ' -c ' . escapeshellarg ($command), $purl + . ' -c ' . escapeshellarg ($command), $purl, $regexp ); } - function client ($params, $purl) { - - static $regexp = array ( - '^added interface ip=(.*) bcast=(.*) nmask=(.*)$' => 'skip', - 'Anonymous login successful' => 'skip', - '^Domain=\[(.*)\] OS=\[(.*)\] Server=\[(.*)\]$' => 'skip', - '^\tSharename[ ]+Type[ ]+Comment$' => 'shares', - '^\t---------[ ]+----[ ]+-------$' => 'skip', - '^\tServer [ ]+Comment$' => 'servers', - '^\t---------[ ]+-------$' => 'skip', - '^\tWorkgroup[ ]+Master$' => 'workg', - '^\t(.*)[ ]+(Disk|IPC)[ ]+IPC.*$' => 'skip', - '^\tIPC\\\$(.*)[ ]+IPC' => 'skip', - '^\t(.*)[ ]+(Disk)[ ]+(.*)$' => 'share', - '^\t(.*)[ ]+(Printer)[ ]+(.*)$' => 'skip', - '([0-9]+) blocks of size ([0-9]+)\. ([0-9]+) blocks available' => 'skip', - 'Got a positive name query response from ' => 'skip', - '^(session setup failed): (.*)$' => 'error', - '^(.*): ERRSRV - ERRbadpw' => 'error', - '^Error returning browse list: (.*)$' => 'error', - '^tree connect failed: (.*)$' => 'error', - '^(Connection to .* failed)(.*)$' => 'error-connect', - '^NT_STATUS_(.*) ' => 'error', - '^NT_STATUS_(.*)\$' => 'error', - 'ERRDOS - ERRbadpath \((.*).\)' => 'error', - 'cd (.*): (.*)$' => 'error', - '^cd (.*): NT_STATUS_(.*)' => 'error', - '^\t(.*)$' => 'srvorwg', - '^([0-9]+)[ ]+([0-9]+)[ ]+(.*)$' => 'skip', - '^Job ([0-9]+) cancelled' => 'skip', - '^[ ]+(.*)[ ]+([0-9]+)[ ]+(Mon|Tue|Wed|Thu|Fri|Sat|Sun)[ ](Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[ ]+([0-9]+)[ ]+([0-9]{2}:[0-9]{2}:[0-9]{2})[ ]([0-9]{4})$' => 'files', - '^message start: ERRSRV - (ERRmsgoff)' => 'error' - ); + function client ($params, $purl, $regexp = NULL) { + + if ($regexp === NULL) $regexp = smb::$regexp; if (SMB4PHP_AUTHMODE == 'env') { putenv("USER={$purl['user']}%{$purl['pass']}"); diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index 0e83660f845..aeb7a2cb23a 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -1,6 +1,7 @@ <?php /** * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com> + * Copyright (c) 2014 Robin McCorkell <rmccorkell@karoshi.org.uk> * This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. @@ -13,6 +14,7 @@ OC::$CLASSPATH['OC\Files\Storage\OwnCloud'] = 'files_external/lib/owncloud.php'; OC::$CLASSPATH['OC\Files\Storage\Google'] = 'files_external/lib/google.php'; OC::$CLASSPATH['OC\Files\Storage\Swift'] = 'files_external/lib/swift.php'; OC::$CLASSPATH['OC\Files\Storage\SMB'] = 'files_external/lib/smb.php'; +OC::$CLASSPATH['OC\Files\Storage\SMB_OC'] = 'files_external/lib/smb_oc.php'; OC::$CLASSPATH['OC\Files\Storage\AmazonS3'] = 'files_external/lib/amazons3.php'; OC::$CLASSPATH['OC\Files\Storage\Dropbox'] = 'files_external/lib/dropbox.php'; OC::$CLASSPATH['OC\Files\Storage\SFTP'] = 'files_external/lib/sftp.php'; @@ -27,4 +29,5 @@ if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') == ' // connecting hooks OCP\Util::connectHook('OC_Filesystem', 'post_initMountPoints', '\OC_Mount_Config', 'initMountPointsHook'); OCP\Util::connectHook('OC_User', 'post_login', 'OC\Files\Storage\iRODS', 'login'); +OCP\Util::connectHook('OC_User', 'post_login', 'OC\Files\Storage\SMB_OC', 'login'); diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index cd2a3103eb7..00793a614c2 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -181,16 +181,21 @@ $(document).ready(function() { $.each(configurations, function(backend, parameters) { if (backend == backendClass) { $.each(parameters['configuration'], function(parameter, placeholder) { - if (placeholder.indexOf('*') != -1) { - td.append('<input type="password" data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />'); - } else if (placeholder.indexOf('!') != -1) { + var is_optional = false; + if (placeholder.indexOf('&') === 0) { + is_optional = true; + placeholder = placeholder.substring(1); + } + if (placeholder.indexOf('*') === 0) { + var class_string = is_optional ? ' class="optional"' : ''; + td.append('<input type="password"' + class_string + ' data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />'); + } else if (placeholder.indexOf('!') === 0) { td.append('<label><input type="checkbox" data-parameter="'+parameter+'" />'+placeholder.substring(1)+'</label>'); - } else if (placeholder.indexOf('&') != -1) { - td.append('<input type="text" class="optional" data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />'); - } else if (placeholder.indexOf('#') != -1) { + } else if (placeholder.indexOf('#') === 0) { td.append('<input type="hidden" data-parameter="'+parameter+'" />'); } else { - td.append('<input type="text" data-parameter="'+parameter+'" placeholder="'+placeholder+'" />'); + var class_string = is_optional ? ' class="optional"' : ''; + td.append('<input type="text"' + class_string + ' data-parameter="'+parameter+'" placeholder="'+placeholder+'" />'); } }); if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length == 1) { diff --git a/apps/files_external/l10n/el.php b/apps/files_external/l10n/el.php index 4dcd93d7ac8..15f2b3b15ec 100644 --- a/apps/files_external/l10n/el.php +++ b/apps/files_external/l10n/el.php @@ -22,6 +22,7 @@ $TRANSLATIONS = array( "Users" => "Χρήστες", "Delete" => "Διαγραφή", "Enable User External Storage" => "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη", +"Allow users to mount the following external storage" => "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης", "SSL root certificates" => "Πιστοποιητικά SSL root", "Import Root Certificate" => "Εισαγωγή Πιστοποιητικού Root" ); diff --git a/apps/files_external/l10n/ru.php b/apps/files_external/l10n/ru.php index 66d6f9fa6b8..8ed437839cd 100644 --- a/apps/files_external/l10n/ru.php +++ b/apps/files_external/l10n/ru.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Grant access" => "Предоставление доступа", "Please provide a valid Dropbox app key and secret." => "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.", "Error configuring Google Drive storage" => "Ошибка при настройке хранилища Google Drive", +"Saved" => "Сохранено", "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его.", "<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить.", "<b>Warning:</b> The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> Поддержка Curl в PHP не включена или не установлена. Подключение ownCloud / WebDAV или GoogleDrive невозможно. Попросите вашего системного администратора установить его.", @@ -21,6 +22,7 @@ $TRANSLATIONS = array( "Users" => "Пользователи", "Delete" => "Удалить", "Enable User External Storage" => "Включить пользовательские внешние носители", +"Allow users to mount the following external storage" => "Разрешить пользователям монтировать следующую внешнюю систему хранения данных", "SSL root certificates" => "Корневые сертификаты SSL", "Import Root Certificate" => "Импортировать корневые сертификаты" ); diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php index aa288982576..245bcc62aaa 100644 --- a/apps/files_external/l10n/sk_SK.php +++ b/apps/files_external/l10n/sk_SK.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Grant access" => "Povoliť prístup", "Please provide a valid Dropbox app key and secret." => "Zadajte platný kľúč aplikácie a heslo Dropbox", "Error configuring Google Drive storage" => "Chyba pri konfigurácii úložiska Google drive", +"Saved" => "Uložené", "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Upozornenie:</b> \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje.", "<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Upozornenie:</b> Podpora FTP v PHP nie je povolená alebo nainštalovaná. Nie je možné pripojenie oddielov FTP. Požiadajte administrátora systému, nech ho nainštaluje.", "<b>Warning:</b> The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "<b>Varovanie:</b> nie je nainštalovaná, alebo povolená, podpora Curl v PHP. Nie je možné pripojenie oddielov ownCloud, WebDAV, či GoogleDrive. Prosím požiadajte svojho administrátora systému, nech ju nainštaluje.", diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index ffbab7bca80..472c3963d51 100755 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -5,6 +5,7 @@ * @author Michael Gapczynski * @copyright 2012 Michael Gapczynski mtgap@owncloud.com * @copyright 2014 Vincent Petry <pvince81@owncloud.com> +* @copyright 2014 Robin McCorkell <rmccorkell@karoshi.org.uk> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -122,11 +123,18 @@ class OC_Mount_Config { 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')); + $backends['\OC\Files\Storage\SMB_OC'] = array( + 'backend' => 'SMB / CIFS using OC login', + 'configuration' => array( + 'host' => 'URL', + 'username_as_share' => '!Username as share', + 'share' => '&Share', + 'root' => '&Root')); } } if(OC_Mount_Config::checkcurl()){ - $backends['\OC\Files\Storage\DAV']=array( + $backends['\OC\Files\Storage\DAV']=array( 'backend' => 'WebDAV', 'configuration' => array( 'host' => 'URL', @@ -134,7 +142,7 @@ class OC_Mount_Config { 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure https://')); - $backends['\OC\Files\Storage\OwnCloud']=array( + $backends['\OC\Files\Storage\OwnCloud']=array( 'backend' => 'ownCloud', 'configuration' => array( 'host' => 'URL', @@ -185,7 +193,7 @@ class OC_Mount_Config { * @return array of mount point string as key, mountpoint config as value */ public static function getAbsoluteMountPoints($user) { - $mountPoints = array(); + $mountPoints = array(); $datadir = \OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data"); $mount_file = \OC_Config::getValue("mount_file", $datadir . "/mount.json"); @@ -304,18 +312,23 @@ class OC_Mount_Config { $mount['options'] = self::decryptPasswords($mount['options']); // Remove '/$user/files/' from mount point $mountPoint = substr($mountPoint, 13); - // Merge the mount point into the current mount points - if (isset($system[$mountPoint]) && $system[$mountPoint]['configuration'] == $mount['options']) { - $system[$mountPoint]['applicable']['groups'] - = array_merge($system[$mountPoint]['applicable']['groups'], array($group)); + + $config = array( + 'class' => $mount['class'], + 'mountpoint' => $mountPoint, + 'backend' => $backends[$mount['class']]['backend'], + 'options' => $mount['options'], + 'applicable' => array('groups' => array($group), 'users' => array()), + 'status' => self::getBackendStatus($mount['class'], $mount['options'], false) + ); + $hash = self::makeConfigHash($config); + // If an existing config exists (with same class, mountpoint and options) + if (isset($system[$hash])) { + // add the groups into that config + $system[$hash]['applicable']['groups'] + = array_merge($system[$hash]['applicable']['groups'], array($group)); } else { - $system[$mountPoint] = array( - 'class' => $mount['class'], - 'backend' => $backends[$mount['class']]['backend'], - 'configuration' => $mount['options'], - 'applicable' => array('groups' => array($group), 'users' => array()), - 'status' => self::getBackendStatus($mount['class'], $mount['options']) - ); + $system[$hash] = $config; } } } @@ -330,23 +343,27 @@ class OC_Mount_Config { $mount['options'] = self::decryptPasswords($mount['options']); // Remove '/$user/files/' from mount point $mountPoint = substr($mountPoint, 13); - // Merge the mount point into the current mount points - if (isset($system[$mountPoint]) && $system[$mountPoint]['configuration'] == $mount['options']) { - $system[$mountPoint]['applicable']['users'] - = array_merge($system[$mountPoint]['applicable']['users'], array($user)); + $config = array( + 'class' => $mount['class'], + 'mountpoint' => $mountPoint, + 'backend' => $backends[$mount['class']]['backend'], + 'options' => $mount['options'], + 'applicable' => array('groups' => array(), 'users' => array($user)), + 'status' => self::getBackendStatus($mount['class'], $mount['options'], false) + ); + $hash = self::makeConfigHash($config); + // If an existing config exists (with same class, mountpoint and options) + if (isset($system[$hash])) { + // add the users into that config + $system[$hash]['applicable']['users'] + = array_merge($system[$hash]['applicable']['users'], array($user)); } else { - $system[$mountPoint] = array( - 'class' => $mount['class'], - 'backend' => $backends[$mount['class']]['backend'], - 'configuration' => $mount['options'], - 'applicable' => array('groups' => array(), 'users' => array($user)), - 'status' => self::getBackendStatus($mount['class'], $mount['options']) - ); + $system[$hash] = $config; } } } } - return $system; + return array_values($system); } /** @@ -366,12 +383,13 @@ class OC_Mount_Config { $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15); } $mount['options'] = self::decryptPasswords($mount['options']); - // Remove '/uid/files/' from mount point - $personal[substr($mountPoint, strlen($uid) + 8)] = array( + $personal[] = array( 'class' => $mount['class'], + // Remove '/uid/files/' from mount point + 'mountpoint' => substr($mountPoint, strlen($uid) + 8), 'backend' => $backends[$mount['class']]['backend'], - 'configuration' => $mount['options'], - 'status' => self::getBackendStatus($mount['class'], $mount['options']) + 'options' => $mount['options'], + 'status' => self::getBackendStatus($mount['class'], $mount['options'], true) ); } } @@ -384,7 +402,7 @@ class OC_Mount_Config { * @param array $options backend configuration options * @return bool true if the connection succeeded, false otherwise */ - private static function getBackendStatus($class, $options) { + private static function getBackendStatus($class, $options, $isPersonal) { if (self::$skipTest) { return true; } @@ -394,7 +412,7 @@ class OC_Mount_Config { if (class_exists($class)) { try { $storage = new $class($options); - return $storage->test(); + return $storage->test($isPersonal); } catch (Exception $exception) { \OCP\Util::logException('files_external', $exception); return false; @@ -461,7 +479,7 @@ class OC_Mount_Config { $mountPoints[$mountType] = $mount; } self::writeData($isPersonal, $mountPoints); - return self::getBackendStatus($class, $classOptions); + return self::getBackendStatus($class, $classOptions, $isPersonal); } /** @@ -538,7 +556,12 @@ class OC_Mount_Config { $datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/'); $file = \OC_Config::getValue('mount_file', $datadir . '/mount.json'); } - $content = json_encode($data); + $options = 0; + if (defined('JSON_PRETTY_PRINT')) { + // only for PHP >= 5.4 + $options = JSON_PRETTY_PRINT; + } + $content = json_encode($data, $options); @file_put_contents($file, $content); @chmod($file, 0640); } @@ -707,4 +730,20 @@ class OC_Mount_Config { $cipher->setKey(\OCP\Config::getSystemValue('passwordsalt')); return $cipher; } + + /** + * Computes a hash based on the given configuration. + * This is mostly used to find out whether configurations + * are the same. + */ + private static function makeConfigHash($config) { + $data = json_encode( + array( + 'c' => $config['class'], + 'm' => $config['mountpoint'], + 'o' => $config['options'] + ) + ); + return hash('md5', $data); + } } diff --git a/apps/files_external/lib/smb_oc.php b/apps/files_external/lib/smb_oc.php new file mode 100644 index 00000000000..0c79c06c5df --- /dev/null +++ b/apps/files_external/lib/smb_oc.php @@ -0,0 +1,93 @@ +<?php +/** + * Copyright (c) 2014 Robin McCorkell <rmccorkell@karoshi.org.uk> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Storage; + +require_once __DIR__ . '/../3rdparty/smb4php/smb.php'; + +class SMB_OC extends \OC\Files\Storage\SMB { + private $username_as_share; + + public function __construct($params) { + if (isset($params['host']) && \OC::$session->exists('smb-credentials')) { + $host=$params['host']; + $this->username_as_share = ($params['username_as_share'] === 'true'); + + $params_auth = \OC::$session->get('smb-credentials'); + $user = \OC::$session->get('loginname'); + $password = $params_auth['password']; + + $root=isset($params['root'])?$params['root']:'/'; + $share = ''; + + if ($this->username_as_share) { + $share = '/'.$user; + } elseif (isset($params['share'])) { + $share = $params['share']; + } else { + throw new \Exception(); + } + parent::__construct(array( + "user" => $user, + "password" => $password, + "host" => $host, + "share" => $share, + "root" => $root + )); + } else { + throw new \Exception(); + } + } + + public static function login( $params ) { + \OC::$session->set('smb-credentials', $params); + } + + public function isSharable($path) { + return false; + } + + public function test($isPersonal = true) { + if ($isPersonal) { + if ($this->stat('')) { + return true; + } + return false; + } else { + $smb = new \smb(); + $pu = $smb->parse_url($this->constructUrl('')); + + // Attempt to connect anonymously + $pu['user'] = ''; + $pu['pass'] = ''; + + // Share cannot be checked if dynamic + if ($this->username_as_share) { + if ($smb->look($pu)) { + return true; + } else { + return false; + } + } + if (!$pu['share']) { + return false; + } + + // The following error messages are expected due to anonymous login + $regexp = array( + '(NT_STATUS_ACCESS_DENIED)' => 'skip' + ) + $smb->getRegexp(); + + if ($smb->client("-d 0 " . escapeshellarg('//' . $pu['host'] . '/' . $pu['share']) . " -c exit", $pu, $regexp)) { + return true; + } else { + return false; + } + } + } +} diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 7a56fcfc8b7..1337d9f581d 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -251,6 +251,10 @@ class Swift extends \OC\Files\Storage\Common { $mtime = $object->extra_headers['X-Object-Meta-Timestamp']; } + if (!empty($mtime)) { + $mtime = floor($mtime); + } + $stat = array(); $stat['size'] = $object->content_length; $stat['mtime'] = $mtime; @@ -370,7 +374,7 @@ class Swift extends \OC\Files\Storage\Common { 'X-Object-Meta-Timestamp' => $mtime ) ); - return $object->Update($settings); + return $object->UpdateMetadata($settings); } else { $object = $this->container->DataObject(); if (is_null($mtime)) { diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index de44d3c8644..e8815acaf16 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -1,149 +1,152 @@ -<form id="files_external"> - <fieldset class="personalblock"> +<form id="files_external" class="section"> <h2><?php p($l->t('External Storage')); ?></h2> - <?php if (isset($_['dependencies']) and ($_['dependencies']<>'')) print_unescaped(''.$_['dependencies'].''); ?> - <table id="externalStorage" class="grid" data-admin='<?php print_unescaped(json_encode($_['isAdminPage'])); ?>'> - <thead> - <tr> - <th></th> - <th><?php p($l->t('Folder name')); ?></th> - <th><?php p($l->t('External storage')); ?></th> - <th><?php p($l->t('Configuration')); ?></th> - <!--<th><?php p($l->t('Options')); ?></th> --> - <?php if ($_['isAdminPage']) print_unescaped('<th>'.$l->t('Applicable').'</th>'); ?> - <th> </th> - </tr> - </thead> - <tbody width="100%"> - <?php $_['mounts'] = array_merge($_['mounts'], array('' => array())); ?> - <?php foreach ($_['mounts'] as $mountPoint => $mount): ?> - <tr <?php print_unescaped(($mountPoint != '') ? 'class="'.OC_Util::sanitizeHTML($mount['class']).'"' : 'id="addMountPoint"'); ?>> - <td class="status"> - <?php if (isset($mount['status'])): ?> - <span class="<?php p(($mount['status']) ? 'success' : 'error'); ?>"></span> - <?php endif; ?> + <?php if (isset($_['dependencies']) and ($_['dependencies']<>'')) print_unescaped(''.$_['dependencies'].''); ?> + <table id="externalStorage" class="grid" data-admin='<?php print_unescaped(json_encode($_['isAdminPage'])); ?>'> + <thead> + <tr> + <th></th> + <th><?php p($l->t('Folder name')); ?></th> + <th><?php p($l->t('External storage')); ?></th> + <th><?php p($l->t('Configuration')); ?></th> + <!--<th><?php p($l->t('Options')); ?></th> --> + <?php if ($_['isAdminPage']) print_unescaped('<th>'.$l->t('Available for').'</th>'); ?> + <th> </th> + </tr> + </thead> + <tbody width="100%"> + <?php $_['mounts'] = array_merge($_['mounts'], array('' => array())); ?> + <?php foreach ($_['mounts'] as $mount): ?> + <tr <?php print_unescaped(($mount['mountpoint'] !== '') ? 'class="'.OC_Util::sanitizeHTML($mount['class']).'"' : 'id="addMountPoint"'); ?>> + <td class="status"> + <?php if (isset($mount['status'])): ?> + <span class="<?php p(($mount['status']) ? 'success' : 'error'); ?>"></span> + <?php endif; ?> + </td> + <td class="mountPoint"><input type="text" name="mountPoint" + value="<?php p($mount['mountpoint']); ?>" + placeholder="<?php p($l->t('Folder name')); ?>" /></td> + <?php if ($mount['mountpoint'] == ''): ?> + <td class="backend"> + <select id="selectBackend" data-configurations='<?php print_unescaped(json_encode($_['backends'])); ?>'> + <option value="" disabled selected + style="display:none;"><?php p($l->t('Add storage')); ?></option> + <?php foreach ($_['backends'] as $class => $backend): ?> + <option value="<?php p($class); ?>"><?php p($backend['backend']); ?></option> + <?php endforeach; ?> + </select> </td> - <td class="mountPoint"><input type="text" name="mountPoint" - value="<?php p($mountPoint); ?>" - placeholder="<?php p($l->t('Folder name')); ?>" /></td> - <?php if ($mountPoint == ''): ?> - <td class="backend"> - <select id="selectBackend" data-configurations='<?php print_unescaped(json_encode($_['backends'])); ?>'> - <option value="" disabled selected - style="display:none;"><?php p($l->t('Add storage')); ?></option> - <?php foreach ($_['backends'] as $class => $backend): ?> - <option value="<?php p($class); ?>"><?php p($backend['backend']); ?></option> - <?php endforeach; ?> - </select> - </td> - <?php else: ?> - <td class="backend" - data-class="<?php p($mount['class']); ?>"><?php p($mount['backend']); ?></td> - <?php endif; ?> - <td class ="configuration" width="100%"> - <?php if (isset($mount['configuration'])): ?> - <?php foreach ($mount['configuration'] as $parameter => $value): ?> - <?php if (isset($_['backends'][$mount['class']]['configuration'][$parameter])): ?> - <?php $placeholder = $_['backends'][$mount['class']]['configuration'][$parameter]; ?> - <?php if (strpos($placeholder, '*') !== false): ?> - <input type="password" - data-parameter="<?php p($parameter); ?>" - value="<?php p($value); ?>" - placeholder="<?php p(substr($placeholder, 1)); ?>" /> - <?php elseif (strpos($placeholder, '!') !== false): ?> - <label><input type="checkbox" - data-parameter="<?php p($parameter); ?>" - <?php if ($value == 'true'): ?> checked="checked"<?php endif; ?> - /><?php p(substr($placeholder, 1)); ?></label> - <?php elseif (strpos($placeholder, '&') !== false): ?> - <input type="text" - class="optional" - data-parameter="<?php p($parameter); ?>" - value="<?php p($value); ?>" - placeholder="<?php p(substr($placeholder, 1)); ?>" /> - <?php elseif (strpos($placeholder, '#') !== false): ?> - <input type="hidden" - data-parameter="<?php p($parameter); ?>" - value="<?php p($value); ?>" /> - <?php else: ?> - <input type="text" - data-parameter="<?php p($parameter); ?>" - value="<?php p($value); ?>" - placeholder="<?php p($placeholder); ?>" /> - <?php endif; ?> + <?php else: ?> + <td class="backend" + data-class="<?php p($mount['class']); ?>"><?php p($mount['backend']); ?></td> + <?php endif; ?> + <td class ="configuration" width="100%"> + <?php if (isset($mount['options'])): ?> + <?php foreach ($mount['options'] as $parameter => $value): ?> + <?php if (isset($_['backends'][$mount['class']]['configuration'][$parameter])): ?> + <?php + $placeholder = $_['backends'][$mount['class']]['configuration'][$parameter]; + $is_optional = FALSE; + if (strpos($placeholder, '&') === 0) { + $is_optional = TRUE; + $placeholder = substr($placeholder, 1); + } + ?> + <?php if (strpos($placeholder, '*') === 0): ?> + <input type="password" + <?php if ($is_optional): ?> class="optional"<?php endif; ?> + data-parameter="<?php p($parameter); ?>" + value="<?php p($value); ?>" + placeholder="<?php p(substr($placeholder, 1)); ?>" /> + <?php elseif (strpos($placeholder, '!') === 0): ?> + <label><input type="checkbox" + data-parameter="<?php p($parameter); ?>" + <?php if ($value == 'true'): ?> checked="checked"<?php endif; ?> + /><?php p(substr($placeholder, 1)); ?></label> + <?php elseif (strpos($placeholder, '#') === 0): ?> + <input type="hidden" + data-parameter="<?php p($parameter); ?>" + value="<?php p($value); ?>" /> + <?php else: ?> + <input type="text" + <?php if ($is_optional): ?> class="optional"<?php endif; ?> + data-parameter="<?php p($parameter); ?>" + value="<?php p($value); ?>" + placeholder="<?php p($placeholder); ?>" /> <?php endif; ?> - <?php endforeach; ?> - <?php if (isset($_['backends'][$mount['class']]['custom']) && !in_array('files_external/js/'.$_['backends'][$mount['class']]['custom'], \OC_Util::$scripts)): ?> - <?php OCP\Util::addScript('files_external', $_['backends'][$mount['class']]['custom']); ?> <?php endif; ?> + <?php endforeach; ?> + <?php if (isset($_['backends'][$mount['class']]['custom']) && !in_array('files_external/js/'.$_['backends'][$mount['class']]['custom'], \OC_Util::$scripts)): ?> + <?php OCP\Util::addScript('files_external', $_['backends'][$mount['class']]['custom']); ?> <?php endif; ?> - </td> - <?php if ($_['isAdminPage']): ?> - <td class="applicable" - align="right" - data-applicable-groups='<?php if (isset($mount['applicable']['groups'])) - print_unescaped(json_encode($mount['applicable']['groups'])); ?>' - data-applicable-users='<?php if (isset($mount['applicable']['users'])) - print_unescaped(json_encode($mount['applicable']['users'])); ?>'> - <select class="chzn-select" - multiple style="width:20em;" - data-placeholder="<?php p($l->t('None set')); ?>"> - <option value="all" <?php if (isset($mount['applicable']['users']) && in_array('all', $mount['applicable']['users'])) print_unescaped('selected="selected"');?> ><?php p($l->t('All Users')); ?></option> - <optgroup label="<?php p($l->t('Groups')); ?>"> - <?php foreach ($_['groups'] as $group): ?> - <option value="<?php p($group); ?>(group)" - <?php if (isset($mount['applicable']['groups']) && in_array($group, $mount['applicable']['groups'])): ?> - selected="selected" - <?php endif; ?>><?php p($group); ?></option> - <?php endforeach; ?> - </optgroup> - <optgroup label="<?php p($l->t('Users')); ?>"> - <?php foreach ($_['users'] as $user): ?> - <option value="<?php p($user); ?>" - <?php if (isset($mount['applicable']['users']) && in_array($user, $mount['applicable']['users'])): ?> - selected="selected" - <?php endif; ?>><?php p($_['userDisplayNames'][$user]); ?></option> - <?php endforeach; ?> - </optgroup> - </select> - </td> <?php endif; ?> - <td <?php if ($mountPoint != ''): ?>class="remove" - <?php else: ?>style="visibility:hidden;" - <?php endif ?>><img alt="<?php p($l->t('Delete')); ?>" - title="<?php p($l->t('Delete')); ?>" - class="svg action" - src="<?php print_unescaped(image_path('core', 'actions/delete.svg')); ?>" /></td> - </tr> - <?php endforeach; ?> - </tbody> - </table> - <br /> + </td> + <?php if ($_['isAdminPage']): ?> + <td class="applicable" + align="right" + data-applicable-groups='<?php if (isset($mount['applicable']['groups'])) + print_unescaped(json_encode($mount['applicable']['groups'])); ?>' + data-applicable-users='<?php if (isset($mount['applicable']['users'])) + print_unescaped(json_encode($mount['applicable']['users'])); ?>'> + <select class="chzn-select" + multiple style="width:20em;" + data-placeholder="<?php p($l->t('No user or group')); ?>"> + <option value="all" + <?php if (empty($mount['class']) || (isset($mount['applicable']['users']) && in_array('all', $mount['applicable']['users']))) print_unescaped('selected="selected"');?> > + <?php p($l->t('All Users')); ?> + </option> + <optgroup label="<?php p($l->t('Groups')); ?>"> + <?php foreach ($_['groups'] as $group): ?> + <option value="<?php p($group); ?>(group)" + <?php if (isset($mount['applicable']['groups']) && in_array($group, $mount['applicable']['groups'])): ?> + selected="selected" + <?php endif; ?>><?php p($group); ?></option> + <?php endforeach; ?> + </optgroup> + <optgroup label="<?php p($l->t('Users')); ?>"> + <?php foreach ($_['users'] as $user): ?> + <option value="<?php p($user); ?>" + <?php if (isset($mount['applicable']['users']) && in_array($user, $mount['applicable']['users'])): ?> + selected="selected" + <?php endif; ?>><?php p($_['userDisplayNames'][$user]); ?></option> + <?php endforeach; ?> + </optgroup> + </select> + </td> + <?php endif; ?> + <td <?php if ($mount['mountpoint'] != ''): ?>class="remove" + <?php else: ?>style="visibility:hidden;" + <?php endif ?>><img alt="<?php p($l->t('Delete')); ?>" + title="<?php p($l->t('Delete')); ?>" + class="svg action" + src="<?php print_unescaped(image_path('core', 'actions/delete.svg')); ?>" /></td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + <br /> - <?php if ($_['isAdminPage']): ?> - <br /> - <input type="checkbox" name="allowUserMounting" id="allowUserMounting" - value="1" <?php if ($_['allowUserMounting'] == 'yes') print_unescaped(' checked="checked"'); ?> /> - <label for="allowUserMounting"><?php p($l->t('Enable User External Storage')); ?></label> <span id="userMountingMsg" class="msg"></span> + <?php if ($_['isAdminPage']): ?> + <br /> + <input type="checkbox" name="allowUserMounting" id="allowUserMounting" + value="1" <?php if ($_['allowUserMounting'] == 'yes') print_unescaped(' checked="checked"'); ?> /> + <label for="allowUserMounting"><?php p($l->t('Enable User External Storage')); ?></label> <span id="userMountingMsg" class="msg"></span> - <p id="userMountingBackups"<?php if ($_['allowUserMounting'] != 'yes'): ?> class="hidden"<?php endif; ?>> - <?php p($l->t('Allow users to mount the following external storage')); ?><br /> - <?php $i = 0; foreach ($_['personal_backends'] as $class => $backend): ?> - <input type="checkbox" id="allowUserMountingBackends<?php p($i); ?>" name="allowUserMountingBackends[]" value="<?php p($class); ?>" <?php if ($backend['enabled']) print_unescaped(' checked="checked"'); ?> /> - <label for="allowUserMountingBackends<?php p($i); ?>"><?php p($backend['backend']); ?></label> <br /> - <?php $i++; ?> - <?php endforeach; ?> - </p> - <?php endif; ?> - </fieldset> + <p id="userMountingBackups"<?php if ($_['allowUserMounting'] != 'yes'): ?> class="hidden"<?php endif; ?>> + <?php p($l->t('Allow users to mount the following external storage')); ?><br /> + <?php $i = 0; foreach ($_['personal_backends'] as $class => $backend): ?> + <input type="checkbox" id="allowUserMountingBackends<?php p($i); ?>" name="allowUserMountingBackends[]" value="<?php p($class); ?>" <?php if ($backend['enabled']) print_unescaped(' checked="checked"'); ?> /> + <label for="allowUserMountingBackends<?php p($i); ?>"><?php p($backend['backend']); ?></label> <br /> + <?php $i++; ?> + <?php endforeach; ?> + </p> + <?php endif; ?> </form> <?php if ( ! $_['isAdminPage']): ?> -<form id="files_external" +<form id="files_external" class="section" method="post" enctype="multipart/form-data" action="<?php p(OCP\Util::linkTo('files_external', 'ajax/addRootCertificate.php')); ?>"> -<fieldset class="personalblock"> <h2><?php p($l->t('SSL root certificates'));?></h2> <table id="sslCertificate" data-admin='<?php print_unescaped(json_encode($_['isAdminPage'])); ?>'> <tbody width="100%"> @@ -163,6 +166,5 @@ <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']); ?>"> <input type="file" id="rootcert_import" name="rootcert_import"> <input type="submit" name="cert_import" value="<?php p($l->t('Import Root Certificate')); ?>" /> -</fieldset> </form> <?php endif; ?> diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php index bf43bb31c38..c89874c94d5 100644 --- a/apps/files_external/tests/mountconfig.php +++ b/apps/files_external/tests/mountconfig.php @@ -212,13 +212,51 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { } /** + * Provider for testing configurations with different + * "applicable" values (all, user, groups) + */ + public function applicableConfigProvider() { + return array( + // applicable to "all" + array( + OC_Mount_Config::MOUNT_TYPE_USER, + 'all', + array( + 'users' => array('all'), + 'groups' => array() + ) + ), + // applicable to single user + array( + OC_Mount_Config::MOUNT_TYPE_USER, + self::TEST_USER1, + array( + 'users' => array(self::TEST_USER1), + 'groups' => array() + ) + ), + // applicable to single group + array( + OC_Mount_Config::MOUNT_TYPE_GROUP, + self::TEST_GROUP1, + array( + 'users' => array(), + 'groups' => array(self::TEST_GROUP1) + ) + ), + ); + } + + /** * Test reading and writing global config + * + * @dataProvider applicableConfigProvider */ - public function testReadWriteGlobalConfig() { - $mountType = OC_Mount_Config::MOUNT_TYPE_USER; - $applicable = 'all'; + public function testReadWriteGlobalConfig($mountType, $applicable, $expectApplicableArray) { + $mountType = $mountType; + $applicable = $applicable; $isPersonal = false; - $mountConfig = array( + $options = array( 'host' => 'smbhost', 'user' => 'smbuser', 'password' => 'smbpassword', @@ -231,7 +269,7 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { OC_Mount_Config::addMountPoint( '/ext', '\OC\Files\Storage\SMB', - $mountConfig, + $options, $mountType, $applicable, $isPersonal @@ -241,12 +279,13 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { // re-read config $config = OC_Mount_Config::getSystemMountPoints(); $this->assertEquals(1, count($config)); - $this->assertTrue(isset($config['ext'])); - $this->assertEquals('\OC\Files\Storage\SMB', $config['ext']['class']); - $savedMountConfig = $config['ext']['configuration']; - $this->assertEquals($mountConfig, $savedMountConfig); + $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('ext', $config[0]['mountpoint']); + $this->assertEquals($expectApplicableArray, $config[0]['applicable']); + $savedOptions = $config[0]['options']; + $this->assertEquals($options, $savedOptions); // key order needs to be preserved for the UI... - $this->assertEquals(array_keys($mountConfig), array_keys($savedMountConfig)); + $this->assertEquals(array_keys($options), array_keys($savedOptions)); } /** @@ -256,7 +295,7 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { $mountType = OC_Mount_Config::MOUNT_TYPE_USER; $applicable = self::TEST_USER1; $isPersonal = true; - $mountConfig = array( + $options = array( 'host' => 'smbhost', 'user' => 'smbuser', 'password' => 'smbpassword', @@ -269,7 +308,7 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { OC_Mount_Config::addMountPoint( '/ext', '\OC\Files\Storage\SMB', - $mountConfig, + $options, $mountType, $applicable, $isPersonal @@ -279,12 +318,12 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { // re-read config $config = OC_Mount_Config::getPersonalMountPoints(); $this->assertEquals(1, count($config)); - $this->assertTrue(isset($config['ext'])); - $this->assertEquals('\OC\Files\Storage\SMB', $config['ext']['class']); - $savedMountConfig = $config['ext']['configuration']; - $this->assertEquals($mountConfig, $savedMountConfig); + $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('ext', $config[0]['mountpoint']); + $savedOptions = $config[0]['options']; + $this->assertEquals($options, $savedOptions); // key order needs to be preserved for the UI... - $this->assertEquals(array_keys($mountConfig), array_keys($savedMountConfig)); + $this->assertEquals(array_keys($options), array_keys($savedOptions)); } /** @@ -362,7 +401,7 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { // re-read config, password was read correctly $config = OC_Mount_Config::getPersonalMountPoints(); - $savedMountConfig = $config['ext']['configuration']; + $savedMountConfig = $config[0]['options']; $this->assertEquals($mountConfig, $savedMountConfig); } @@ -475,4 +514,130 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { $this->assertEquals(0, count($mountPoints)); } } + + /** + * Test the same config for multiple users. + * The config will be merged by getSystemMountPoints(). + */ + public function testConfigMerging() { + $mountType = OC_Mount_Config::MOUNT_TYPE_USER; + $isPersonal = false; + $options = array( + 'host' => 'smbhost', + 'user' => 'smbuser', + 'password' => 'smbpassword', + 'share' => 'smbshare', + 'root' => 'smbroot' + ); + + // write config + $this->assertTrue( + OC_Mount_Config::addMountPoint( + '/ext', + '\OC\Files\Storage\SMB', + $options, + OC_Mount_Config::MOUNT_TYPE_USER, + self::TEST_USER1, + $isPersonal + ) + ); + + $this->assertTrue( + OC_Mount_Config::addMountPoint( + '/ext', + '\OC\Files\Storage\SMB', + $options, + OC_Mount_Config::MOUNT_TYPE_USER, + self::TEST_USER2, + $isPersonal + ) + ); + + $this->assertTrue( + OC_Mount_Config::addMountPoint( + '/ext', + '\OC\Files\Storage\SMB', + $options, + OC_Mount_Config::MOUNT_TYPE_GROUP, + self::TEST_GROUP2, + $isPersonal + ) + ); + + $this->assertTrue( + OC_Mount_Config::addMountPoint( + '/ext', + '\OC\Files\Storage\SMB', + $options, + OC_Mount_Config::MOUNT_TYPE_GROUP, + self::TEST_GROUP1, + $isPersonal + ) + ); + + // re-read config + $config = OC_Mount_Config::getSystemMountPoints(); + $this->assertEquals(1, count($config)); + $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('ext', $config[0]['mountpoint']); + $this->assertEquals($options, $config[0]['options']); + $this->assertEquals(array(self::TEST_USER1, self::TEST_USER2), $config[0]['applicable']['users']); + $this->assertEquals(array(self::TEST_GROUP2, self::TEST_GROUP1), $config[0]['applicable']['groups']); + } + + /** + * Create then re-read mount points configs where the mount points + * have the same path, the config must NOT be merged. + */ + public function testRereadMountpointWithSamePath() { + $mountType = OC_Mount_Config::MOUNT_TYPE_USER; + $isPersonal = false; + $options1 = array( + 'host' => 'smbhost', + 'user' => 'smbuser', + 'password' => 'smbpassword', + 'share' => 'smbshare', + 'root' => 'smbroot' + ); + + // write config + $this->assertTrue( + OC_Mount_Config::addMountPoint( + '/ext', + '\OC\Files\Storage\SMB', + $options1, + $mountType, + self::TEST_USER1, + $isPersonal + ) + ); + + $options2 = array( + 'host' => 'anothersmbhost', + 'user' => 'anothersmbuser', + 'password' => 'anothersmbpassword', + 'share' => 'anothersmbshare', + 'root' => 'anothersmbroot' + ); + $this->assertTrue( + OC_Mount_Config::addMountPoint( + '/ext', + '\OC\Files\Storage\SMB', + $options2, + $mountType, + self::TEST_USER2, + $isPersonal + ) + ); + + // re-read config + $config = OC_Mount_Config::getSystemMountPoints(); + $this->assertEquals(2, count($config)); + $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('ext', $config[0]['mountpoint']); + $this->assertEquals($options1, $config[0]['options']); + $this->assertEquals('\OC\Files\Storage\SMB', $config[1]['class']); + $this->assertEquals('ext', $config[1]['mountpoint']); + $this->assertEquals($options2, $config[1]['options']); + } } diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php index 4b716e764f4..ab32108ea25 100644 --- a/apps/files_sharing/appinfo/update.php +++ b/apps/files_sharing/appinfo/update.php @@ -71,19 +71,6 @@ if (version_compare($installedVersion, '0.3', '<')) { } // clean up oc_share table from files which are no longer exists -if (version_compare($installedVersion, '0.3.5', '<')) { - - // get all shares where the original file no longer exists - $findShares = \OC_DB::prepare('SELECT `file_source` FROM `*PREFIX*share` LEFT JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` WHERE `*PREFIX*filecache`.`fileid` IS NULL AND `*PREFIX*share`.`item_type` IN (\'file\', \'folder\')'); - $sharesFound = $findShares->execute(array())->fetchAll(); - - // delete those shares from the oc_share table - if (is_array($sharesFound) && !empty($sharesFound)) { - $delArray = array(); - foreach ($sharesFound as $share) { - $delArray[] = $share['file_source']; - } - $removeShares = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `file_source` IN (?)'); - $result = $removeShares->execute(array(implode(',', $delArray))); - } +if (version_compare($installedVersion, '0.3.5.6', '<')) { + \OC\Files\Cache\Shared_Updater::fixBrokenSharesOnAppUpdate(); } diff --git a/apps/files_sharing/appinfo/version b/apps/files_sharing/appinfo/version index 09e9157034c..8f91d33378e 100644 --- a/apps/files_sharing/appinfo/version +++ b/apps/files_sharing/appinfo/version @@ -1 +1 @@ -0.3.5
\ No newline at end of file +0.3.5.6 diff --git a/apps/files_sharing/css/mobile.css b/apps/files_sharing/css/mobile.css index 7d2116d190d..333c4c77fc9 100644 --- a/apps/files_sharing/css/mobile.css +++ b/apps/files_sharing/css/mobile.css @@ -1,4 +1,4 @@ -@media only screen and (max-width: 600px) { +@media only screen and (max-width: 768px) { /* make header scroll up for single shares, more view of content on small screens */ #header.share-file { @@ -45,5 +45,13 @@ table td.filename .nametext { display: none; } +/* ellipsis on file names */ +.nametext { + width: 60%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + } diff --git a/apps/files_sharing/l10n/sk_SK.php b/apps/files_sharing/l10n/sk_SK.php index 4e9856da4a7..6856c0591f4 100644 --- a/apps/files_sharing/l10n/sk_SK.php +++ b/apps/files_sharing/l10n/sk_SK.php @@ -11,6 +11,7 @@ $TRANSLATIONS = array( "sharing is disabled" => "zdieľanie je zakázané", "For more info, please ask the person who sent this link." => "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.", "shared by %s" => "Zdieľa %s", +"Download %s" => "Stiahnuť %s", "Direct link" => "Priama linka" ); $PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index 01db29d72e2..eeb62c3cce2 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -20,6 +20,7 @@ */ namespace OC\Files\Cache; + use OCP\Share_Backend_Collection; /** @@ -50,7 +51,7 @@ class Shared_Cache extends Cache { \OC\Files\Filesystem::initMountPoints($source['fileOwner']); $mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']); if (is_array($mount)) { - $fullPath = $mount[key($mount)]->getMountPoint().$source['path']; + $fullPath = $mount[key($mount)]->getMountPoint() . $source['path']; list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($fullPath); if ($storage) { $this->files[$target] = $internalPath; @@ -75,7 +76,7 @@ class Shared_Cache extends Cache { /** * get the stored metadata of a file or folder * - * @param string/int $file + * @param string /int $file * @return array */ public function get($file) { @@ -95,8 +96,8 @@ class Shared_Cache extends Cache { } else { $query = \OC_DB::prepare( 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`,' - .' `size`, `mtime`, `encrypted`, `unencrypted_size`' - .' FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + . ' `size`, `mtime`, `encrypted`, `unencrypted_size`' + . ' FROM `*PREFIX*filecache` WHERE `fileid` = ?'); $result = $query->execute(array($file)); $data = $result->fetchRow(); $data['fileid'] = (int)$data['fileid']; @@ -288,8 +289,7 @@ class Shared_Cache extends Cache { foreach ($files as $file) { if ($file['mimetype'] === 'httpd/unix-directory') { $exploreDirs[] = ltrim($dir . '/' . $file['name'], '/'); - } - else if (($mimepart && $file['mimepart'] === $mimepart) || ($mimetype && $file['mimetype'] === $mimetype)) { + } else if (($mimepart && $file['mimepart'] === $mimepart) || ($mimetype && $file['mimetype'] === $mimetype)) { // usersPath not reliable //$file['path'] = $file['usersPath']; $file['path'] = ltrim($dir . '/' . $file['name'], '/'); @@ -344,8 +344,6 @@ class Shared_Cache extends Cache { if ($row['encrypted'] or ($row['unencrypted_size'] > 0 and $row['mimetype'] === 'httpd/unix-directory')) { $row['encrypted_size'] = $row['size']; $row['size'] = $row['unencrypted_size']; - } else { - $row['size'] = $row['size']; } $files[] = $row; } @@ -402,4 +400,48 @@ class Shared_Cache extends Cache { return false; } + /** + * get the path of a file on this storage by it's id + * + * @param int $id + * @param string $pathEnd (optional) used internally for recursive calls + * @return string | null + */ + public function getPathById($id, $pathEnd = '') { + // direct shares are easy + if ($path = $this->getShareById($id)) { + return $path . $pathEnd; + } else { + // if the item is a direct share we try and get the path of the parent and append the name of the item to it + list($parent, $name) = $this->getParentInfo($id); + if ($parent > 0) { + return $this->getPathById($parent, '/' . $name . $pathEnd); + } else { + return null; + } + } + } + + private function getShareById($id) { + $item = \OCP\Share::getItemSharedWithBySource('file', $id); + if ($item) { + return trim($item['file_target'], '/'); + } + $item = \OCP\Share::getItemSharedWithBySource('folder', $id); + if ($item) { + return trim($item['file_target'], '/'); + } + return null; + } + + private function getParentInfo($id) { + $sql = 'SELECT `parent`, `name` FROM `*PREFIX*filecache` WHERE `fileid` = ?'; + $query = \OC_DB::prepare($sql); + $result = $query->execute(array($id)); + if ($row = $result->fetchRow()) { + return array($row['parent'], $row['name']); + } else { + return array(-1, ''); + } + } } diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php index 23ebc9fb811..e3a7679292d 100644 --- a/apps/files_sharing/lib/updater.php +++ b/apps/files_sharing/lib/updater.php @@ -135,4 +135,19 @@ class Shared_Updater { } } + /** + * clean up oc_share table from files which are no longer exists + * + * This fixes issues from updates from files_sharing < 0.3.5.6 (ownCloud 4.5) + * It will just be called during the update of the app + */ + static public function fixBrokenSharesOnAppUpdate() { + // delete all shares where the original file no longer exists + $findAndRemoveShares = \OC_DB::prepare('DELETE FROM `*PREFIX*share` ' . + 'WHERE `file_source` NOT IN ( ' . + 'SELECT `fileid` FROM `*PREFIX*filecache` WHERE `item_type` IN (\'file\', \'folder\'))' + ); + $findAndRemoveShares->execute(array()); + } + } diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php index e2bbb548182..e3c5b6e4315 100644 --- a/apps/files_sharing/tests/api.php +++ b/apps/files_sharing/tests/api.php @@ -886,5 +886,5 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base { class TestShareApi extends \OCA\Files\Share\Api { public function correctPathTest($path, $folder) { return self::correctPath($path, $folder); -} + } } diff --git a/apps/files_sharing/tests/cache.php b/apps/files_sharing/tests/cache.php index a75e1860527..47969833ab5 100644 --- a/apps/files_sharing/tests/cache.php +++ b/apps/files_sharing/tests/cache.php @@ -246,4 +246,43 @@ class Test_Files_Sharing_Cache extends Test_Files_Sharing_Base { } } + public function testGetPathByIdDirectShare() { + self::loginHelper(self::TEST_FILES_SHARING_API_USER1); + \OC\Files\Filesystem::file_put_contents('test.txt', 'foo'); + $info = \OC\Files\Filesystem::getFileInfo('test.txt'); + \OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, \OCP\PERMISSION_ALL); + \OC_Util::tearDownFS(); + + self::loginHelper(self::TEST_FILES_SHARING_API_USER2); + $this->assertTrue(\OC\Files\Filesystem::file_exists('/Shared/test.txt')); + list($sharedStorage) = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/Shared/test.txt'); + /** + * @var \OC\Files\Storage\Shared $sharedStorage + */ + + $sharedCache = $sharedStorage->getCache(); + $this->assertEquals('test.txt', $sharedCache->getPathById($info->getId())); + } + + public function testGetPathByIdShareSubFolder() { + self::loginHelper(self::TEST_FILES_SHARING_API_USER1); + \OC\Files\Filesystem::mkdir('foo'); + \OC\Files\Filesystem::mkdir('foo/bar'); + \OC\Files\Filesystem::touch('foo/bar/test.txt', 'bar'); + $folderInfo = \OC\Files\Filesystem::getFileInfo('foo'); + $fileInfo = \OC\Files\Filesystem::getFileInfo('foo/bar/test.txt'); + \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, \OCP\PERMISSION_ALL); + \OC_Util::tearDownFS(); + + self::loginHelper(self::TEST_FILES_SHARING_API_USER2); + $this->assertTrue(\OC\Files\Filesystem::file_exists('/Shared/foo')); + list($sharedStorage) = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/Shared/foo'); + /** + * @var \OC\Files\Storage\Shared $sharedStorage + */ + + $sharedCache = $sharedStorage->getCache(); + $this->assertEquals('foo', $sharedCache->getPathById($folderInfo->getId())); + $this->assertEquals('foo/bar/test.txt', $sharedCache->getPathById($fileInfo->getId())); + } } diff --git a/apps/files_sharing/tests/updater.php b/apps/files_sharing/tests/updater.php new file mode 100644 index 00000000000..79ae4879b64 --- /dev/null +++ b/apps/files_sharing/tests/updater.php @@ -0,0 +1,91 @@ +<?php +/** + * ownCloud + * + * @author Morris Jobke + * @copyright 2014 Morris Jobke <morris.jobke@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * Class Test_Files_Sharing_Updater + */ +class Test_Files_Sharing_Updater extends \PHPUnit_Framework_TestCase { + + function setUp() { + // some previous tests didn't clean up and therefore this has to be done here + // FIXME: DIRTY HACK - TODO: find tests, that don't clean up and fix it there + $this->tearDown(); + + // add items except one - because this is the test case for the broken share table + $addItems = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache` (`storage`, `path_hash`, ' . + '`parent`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`) ' . + 'VALUES (1, ?, 1, 1, 1, 1, 1, 1)'); + $items = array(1, 3); + $fileIds = array(); + foreach($items as $item) { + // the number is used as path_hash + $addItems->execute(array($item)); + $fileIds[] = \OC_DB::insertId('*PREFIX*filecache'); + } + + $addShares = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`file_source`, `item_type`, `uid_owner`) VALUES (?, \'file\', 1)'); + // the number is used as item_source + $addShares->execute(array($fileIds[0])); + $addShares->execute(array(200)); // id of "deleted" file + $addShares->execute(array($fileIds[1])); + } + + function tearDown() { + $removeShares = \OC_DB::prepare('DELETE FROM `*PREFIX*share`'); + $removeShares->execute(); + $removeItems = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache`'); + $removeItems->execute(); + } + + /** + * @medium + */ + function testRemoveBrokenShares() { + // check if there are just 3 shares (see setUp - precondition: empty table) + $countShares = \OC_DB::prepare('SELECT COUNT(`id`) FROM `*PREFIX*share`'); + $result = $countShares->execute()->fetchOne(); + $this->assertEquals(3, $result); + + // check if there are just 2 items (see setUp - precondition: empty table) + $countItems = \OC_DB::prepare('SELECT COUNT(`fileid`) FROM `*PREFIX*filecache`'); + $result = $countItems->execute()->fetchOne(); + $this->assertEquals(2, $result); + + // execute actual code which should be tested + \OC\Files\Cache\Shared_Updater::fixBrokenSharesOnAppUpdate(); + + // check if there are just 2 shares (one gets killed by the code as there is no filecache entry for this) + $countShares = \OC_DB::prepare('SELECT COUNT(`id`) FROM `*PREFIX*share`'); + $result = $countShares->execute()->fetchOne(); + $this->assertEquals(2, $result); + + // check if the share of file '200' is removed as there is no entry for this in filecache table + $countShares = \OC_DB::prepare('SELECT COUNT(`id`) FROM `*PREFIX*share` WHERE `file_source` = 200'); + $result = $countShares->execute()->fetchOne(); + $this->assertEquals(0, $result); + + // check if there are just 2 items + $countItems = \OC_DB::prepare('SELECT COUNT(`fileid`) FROM `*PREFIX*filecache`'); + $result = $countItems->execute()->fetchOne(); + $this->assertEquals(2, $result); + } +} diff --git a/apps/files_trashbin/ajax/list.php b/apps/files_trashbin/ajax/list.php index 124a236bcbd..cec18c46525 100644 --- a/apps/files_trashbin/ajax/list.php +++ b/apps/files_trashbin/ajax/list.php @@ -1,11 +1,5 @@ <?php -// only need filesystem apps -$RUNTIME_APPTYPES=array('filesystem'); - -// Init owncloud - - OCP\JSON::checkLoggedIn(); // Load the files diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js index 6aade210505..efe1e89f0bf 100644 --- a/apps/files_trashbin/js/trash.js +++ b/apps/files_trashbin/js/trash.js @@ -25,6 +25,11 @@ $(document).ready(function() { enableActions(); } + Files.updateStorageStatistics = function() { + // no op because the trashbin doesn't have + // storage info like free space / used space + }; + if (typeof FileActions !== 'undefined') { FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename) { var tr = FileList.findFileEl(filename); diff --git a/apps/files_trashbin/l10n/ar.php b/apps/files_trashbin/l10n/ar.php index 68c51d1cc7d..4084daa127a 100644 --- a/apps/files_trashbin/l10n/ar.php +++ b/apps/files_trashbin/l10n/ar.php @@ -4,6 +4,7 @@ $TRANSLATIONS = array( "Couldn't restore %s" => "تعذّر استرجاع %s ", "Deleted files" => "حذف الملفات", "Error" => "خطأ", +"restored" => "تمت الاستعادة", "Nothing in here. Your trash bin is empty!" => "لا يوجد شيء هنا. سلة المهملات خاليه.", "Name" => "اسم", "Restore" => "استعيد", diff --git a/apps/files_versions/appinfo/info.xml b/apps/files_versions/appinfo/info.xml index 661d64aa979..a735caee945 100644 --- a/apps/files_versions/appinfo/info.xml +++ b/apps/files_versions/appinfo/info.xml @@ -9,7 +9,7 @@ <description> ownCloud supports simple version control for files. The versioning app expires old versions automatically to make sure that - the user doesn't run out of space. Following pattern is used to delete + the user doesn't run out of space. The following pattern is used to delete old versions: For the first 10 seconds ownCloud keeps one version every 2 seconds; For the first hour ownCloud keeps one version every minute; diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js index 4adf14745de..b452bc25b13 100644 --- a/apps/files_versions/js/versions.js +++ b/apps/files_versions/js/versions.js @@ -11,7 +11,7 @@ $(document).ready(function(){ // Add versions button to 'files/index.php' FileActions.register( 'file' - , t('files_versions', 'Versions') + , 'Versions' , OC.PERMISSION_UPDATE , function() { // Specify icon for hitory button @@ -36,6 +36,7 @@ $(document).ready(function(){ createVersionsDropdown(filename, file); } } + , t('files_versions', 'Versions') ); } diff --git a/apps/user_ldap/appinfo/info.xml b/apps/user_ldap/appinfo/info.xml index 9cc908e8522..e4a4375a737 100644 --- a/apps/user_ldap/appinfo/info.xml +++ b/apps/user_ldap/appinfo/info.xml @@ -2,8 +2,8 @@ <info> <id>user_ldap</id> <name>LDAP user and group backend</name> - <description>Authenticate users and groups by LDAP respectively Active - Directory. + <description>Authenticate users and groups through LDAP, such as OpenLDAP + or Active Directory. This app is not compatible with the WebDAV user backend. </description> diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php index 1e975911953..926419d86b2 100644 --- a/apps/user_ldap/l10n/el.php +++ b/apps/user_ldap/l10n/el.php @@ -33,12 +33,14 @@ $TRANSLATIONS = array( "Save" => "Αποθήκευση", "Test Configuration" => "Δοκιμαστικες ρυθμισεις", "Help" => "Βοήθεια", +"Groups meeting these criteria are available in %s:" => "Οι ομάδες που πληρούν τα κριτήρια είναι διαθέσιμες σε %s:", "only those object classes:" => "μόνο αυτές οι κλάσεις αντικειμένων:", "only from those groups:" => "μόνο από αυτές τις ομάδες:", "Edit raw filter instead" => "Επεξεργασία πρωτογενούς φίλτρου αντί αυτού", "Raw LDAP filter" => "Πρωτογενές φίλτρο ", "The filter specifies which LDAP groups shall have access to the %s instance." => "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.", "groups found" => "ομάδες βρέθηκαν", +"Users login with this attribute:" => "Οι χρήστες εισέρχονται με αυτό το χαρακτηριστικό:", "LDAP Username:" => "Όνομα χρήστη LDAP:", "LDAP Email Address:" => "Διεύθυνση ηλ. ταχυδρομείου LDAP:", "Other Attributes:" => "Άλλες Ιδιότητες:", @@ -53,6 +55,7 @@ $TRANSLATIONS = array( "For anonymous access, leave DN and Password empty." => "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword.", "One Base DN per line" => "Ένα DN Βάσης ανά γραμμή ", "You can specify Base DN for users and groups in the Advanced tab" => "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις", +"Limit %s access to users meeting these criteria:" => "Περιορισμός της πρόσβασης %s σε χρήστες που πληρούν τα κριτήρια:", "The filter specifies which LDAP users shall have access to the %s instance." => "Το φίλτρο καθορίζει ποιοι χρήστες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.", "users found" => "χρήστες βρέθηκαν", "Back" => "Επιστροφή", @@ -85,6 +88,7 @@ $TRANSLATIONS = array( "One Group Base DN per line" => "Μια ομαδικη Βάση DN ανά γραμμή", "Group Search Attributes" => "Ομάδα Χαρακτηριστικων Αναζήτηση", "Group-Member association" => "Group-Member association", +"Nested Groups" => "Φωλιασμένες ομάδες", "Special Attributes" => "Ειδικά Χαρακτηριστικά ", "Quota Field" => "Ποσοσταση πεδιου", "Quota Default" => "Προκαθισμενο πεδιο", diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php index b2a21b6e029..b6df62ffb79 100644 --- a/apps/user_ldap/l10n/sl.php +++ b/apps/user_ldap/l10n/sl.php @@ -85,6 +85,7 @@ $TRANSLATIONS = array( "One Group Base DN per line" => "Eno osnovno ime skupine na vrstico", "Group Search Attributes" => "Skupinski atributi iskanja", "Group-Member association" => "Povezava član-skupina", +"Nested Groups" => "Gnezdene skupine", "Special Attributes" => "Posebni atributi", "Quota Field" => "Polje količinske omejitve", "Quota Default" => "Privzeta količinska omejitev", diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index 79c4ae224c3..ee4a7df3cb8 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -1,5 +1,5 @@ <form id="ldap" action="#" method="post"> - <div id="ldapSettings" class="personalblock"> + <div id="ldapSettings" class="section"> <ul> <?php foreach($_['toc'] as $id => $title) { ?> <li id="<?php p($id); ?>"><a href="<?php p($id); ?>"><?php p($title); ?></a></li> diff --git a/apps/user_webdavauth/appinfo/info.xml b/apps/user_webdavauth/appinfo/info.xml index 76b314e48aa..20c5909cc12 100755 --- a/apps/user_webdavauth/appinfo/info.xml +++ b/apps/user_webdavauth/appinfo/info.xml @@ -4,7 +4,7 @@ <name>WebDAV user backend</name> <description>Authenticate users by a WebDAV call. You can use any WebDAV server, ownCloud server or other webserver to authenticate. It should return http 200 for right credentials and http 401 for wrong ones. - This app is not compatible to the LDAP user and group backend.</description> + This app is not compatible with the LDAP user and group backend.</description> <licence>AGPL</licence> <author>Frank Karlitschek</author> <require>4.93</require> diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php index ad1701add8c..4596fdf3c78 100755 --- a/apps/user_webdavauth/templates/settings.php +++ b/apps/user_webdavauth/templates/settings.php @@ -1,9 +1,7 @@ -<form id="webdavauth" action="#" method="post"> - <fieldset class="personalblock"> - <h2><?php p($l->t('WebDAV Authentication'));?></h2> - <p><label for="webdav_url"><?php p($l->t('Address: '));?><input type="url" placeholder="https://example.com/webdav" id="webdav_url" name="webdav_url" value="<?php p($_['webdav_url']); ?>"></label> - <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']) ?>" id="requesttoken"> - <input type="submit" value="Save" /> - <br /><?php p($l->t('The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials.')); ?> - </fieldset> +<form id="webdavauth" class="section" action="#" method="post"> + <h2><?php p($l->t('WebDAV Authentication'));?></h2> + <p><label for="webdav_url"><?php p($l->t('Address: '));?><input type="url" placeholder="https://example.com/webdav" id="webdav_url" name="webdav_url" value="<?php p($_['webdav_url']); ?>"></label> + <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']) ?>" id="requesttoken"> + <input type="submit" value="Save" /> + <br /><?php p($l->t('The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials.')); ?> </form> diff --git a/build/package.json b/build/package.json index c9ed7b96c6c..0c395839cf9 100644 --- a/build/package.json +++ b/build/package.json @@ -14,7 +14,9 @@ "karma": "*", "karma-jasmine": "*", "karma-junit-reporter": "*", - "karma-coverage": "*" + "karma-coverage": "*", + "karma-phantomjs-launcher": "*", + "phantomjs": "*" }, "engine": "node >= 0.8" } diff --git a/config/config.sample.php b/config/config.sample.php index 891c2eb5fa1..140b75706ea 100755 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -276,6 +276,15 @@ $CONFIG = array( /* all css and js files will be served by the web server statically in one js file and ons css file*/ 'asset-pipeline.enabled' => false, - /* where mount.json file should be stored, defaults to data/mount.json */ - 'mount_file' => '', +/* where mount.json file should be stored, defaults to data/mount.json */ +'mount_file' => '', + +/* + * Location of the cache folder, defaults to "data/$user/cache" where "$user" is the current user. + * + * When specified, the format will change to "$cache_path/$user" where "$cache_path" is the configured + * cache directory and "$user" is the user. + * + */ +'cache_path' => '' ); diff --git a/console.php b/console.php index 25b8b312539..dd2c1026e47 100644 --- a/console.php +++ b/console.php @@ -8,7 +8,6 @@ use Symfony\Component\Console\Application; -$RUNTIME_NOAPPS = true; require_once 'lib/base.php'; // Don't do anything if ownCloud has not been installed yet @@ -22,6 +21,9 @@ if (!OC::$CLI) { exit(0); } +// load all apps to get all api routes properly setup +OC_App::loadApps(); + $defaults = new OC_Defaults; $application = new Application($defaults->getName(), \OC_Util::getVersionString()); require_once 'core/register_command.php'; diff --git a/core/ajax/share.php b/core/ajax/share.php index 3f04e1e4ad1..e667d9b5faa 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -21,7 +21,6 @@ OC_JSON::checkLoggedIn(); OCP\JSON::callCheck(); -OC_App::loadApps(); $defaults = new \OCP\Defaults(); diff --git a/core/ajax/update.php b/core/ajax/update.php index 2a0cbb2036d..55e8ab15ec2 100644 --- a/core/ajax/update.php +++ b/core/ajax/update.php @@ -1,6 +1,5 @@ <?php set_time_limit(0); -$RUNTIME_NOAPPS = true; require_once '../../lib/base.php'; if (OC::checkUpgrade(false)) { diff --git a/core/command/upgrade.php b/core/command/upgrade.php index cfccfb5d2f0..ed72d136e24 100644 --- a/core/command/upgrade.php +++ b/core/command/upgrade.php @@ -34,9 +34,6 @@ class Upgrade extends Command { * @param OutputInterface $output output interface */ protected function execute(InputInterface $input, OutputInterface $output) { - global $RUNTIME_NOAPPS; - - $RUNTIME_NOAPPS = true; //no apps, yet require_once \OC::$SERVERROOT . '/lib/base.php'; diff --git a/core/command/user/report.php b/core/command/user/report.php index 70c5a8566b7..a5159310af1 100644 --- a/core/command/user/report.php +++ b/core/command/user/report.php @@ -46,7 +46,6 @@ class Report extends Command { } private function countUsers() { - \OC_App::loadApps(array('authentication')); $userManager = \OC::$server->getUserManager(); return $userManager->countUsers(); } @@ -56,4 +55,4 @@ class Report extends Command { $userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory'); return count($userDirectories); } -}
\ No newline at end of file +} diff --git a/core/css/apps.css b/core/css/apps.css index 0e6a080c9cd..ebf277faf46 100644 --- a/core/css/apps.css +++ b/core/css/apps.css @@ -29,10 +29,14 @@ -moz-box-sizing: border-box; box-sizing: border-box; } #app-navigation .active, -#app-navigation .active a, -#app-navigation li:hover > a { +#app-navigation .active a { background-color: #ddd; } +#app-navigation li:hover > a, +#app-navigation .selected, +#app-navigation .selected a { + background-color: #ccc; +} /* special rules for first-level entries and folders */ #app-navigation > ul > li { @@ -151,9 +155,6 @@ transition: padding-bottom 500ms ease 0s; padding-bottom: 40px; } -#app-navigation .personalblock > legend { /* TODO @Raydiation: still needed? */ - padding: 10px 0; margin: 0; -} #app-navigation .error { color: #dd1144; } @@ -242,3 +243,22 @@ button.loading { padding-right: 30px; } + +/* general styles for the content area */ +.section { + display: block; + padding: 30px; + color: #555; + border-top: 1px solid #ddd; +} +.section h2 { + font-size: 20px; + font-weight: normal; + margin-bottom: 7px; +} +/* slight position correction of checkboxes and radio buttons */ +.section input[type="checkbox"], +.section input[type="radio"] { + vertical-align: -2px; + margin-right: 4px; +} diff --git a/core/css/jquery.ocdialog.css b/core/css/jquery.ocdialog.css index 236968e3245..a1221137bc4 100644 --- a/core/css/jquery.ocdialog.css +++ b/core/css/jquery.ocdialog.css @@ -43,7 +43,7 @@ background-color: #000; opacity: .20;filter:Alpha(Opacity=20); z-index: 999; - position: absolute; + position: fixed; top: 0; left: 0; width: 100%; height: 100%; } diff --git a/core/css/mobile.css b/core/css/mobile.css index a63aa902d34..c67ac3e5ecf 100644 --- a/core/css/mobile.css +++ b/core/css/mobile.css @@ -1,4 +1,12 @@ -@media only screen and (max-width: 600px) { +@media only screen and (max-width: 768px) { + +/* show caret indicator next to logo to make clear it is tappable */ +#owncloud.menutoggle { + background-image: url('../img/actions/caret.svg'); + background-repeat: no-repeat; + background-position: right 26px; + padding-right: 16px !important; +} /* compress search box on mobile, expand when focused */ .searchbox input[type="search"] { @@ -18,5 +26,80 @@ display: none; } +/* toggle navigation */ +#content-wrapper { + padding-left: 0; +} + +#navigation { + top: 45px; + bottom: initial; + width: 255px; + max-height: 90%; + margin-top: 0; + top: 45px; + background-color: rgba(36, 40, 47, .97); + overflow-x: initial; + border-bottom-right-radius: 7px; + border-bottom: 1px #333 solid; + border-right: 1px #333 solid; + box-shadow: 0 0 7px rgba(29,45,68,.97); + display: none; +} +#navigation, #navigation * { + box-sizing:border-box; -moz-box-sizing:border-box; +} +#navigation li { + display: inline-block; +} +#navigation a { + width: 80px; + height: 80px; + display: inline-block; + text-align: center; + padding: 20px 0; +} +#navigation a span { + display: inline-block; + font-size: 13px; + padding-bottom: 0; + padding-left: 0; + width: 80px; +} +#navigation .icon { + margin: 0 auto; + padding: 0; +} +#navigation li:first-child .icon { + padding-top: 0; +} +/* Apps management as sticky footer */ +#navigation .wrapper { + min-height: initial; + margin: 0; +} +#apps-management, #navigation .push { + height: initial; +} + + + +/* shift to account for missing navigation */ +#body-user #controls, +#body-settings #controls { + padding-left: 0; +} + +/* don’t require a minimum width for controls bar */ +#controls { + min-width: initial !important; +} + +/* position share dropdown */ +#dropdown { + margin-right: 10% !important; + width: 80% !important; +} + } diff --git a/core/css/styles.css b/core/css/styles.css index bd8111ebc72..8a12057529d 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -77,6 +77,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari #header .logo { background-image: url(../img/logo.svg); + background-repeat: no-repeat; width: 250px; height: 118px; margin: 0 auto; @@ -84,6 +85,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari #header .logo-wide { background-image: url(../img/logo-wide.svg); + background-repeat: no-repeat; width: 147px; height: 32px; } @@ -99,11 +101,18 @@ input[type="time"], textarea, select, button, .button, +input[type="submit"], +input[type="button"], #quota, .pager li a { - width:10em; margin:.3em; padding:.6em .5em .4em; - font-size:1em; - background:#fff; color:#333; border:1px solid #ddd; outline:none; + width: 130px; + margin: 3px 3px 3px 0; + padding: 7px 6px 5px; + font-size: 13px; + background: #fff; + color: #333; + border: 1px solid #ddd; + outline: none; border-radius: 3px; } input[type="hidden"] { @@ -168,14 +177,12 @@ input[type="submit"], input[type="button"], button, .button, #quota, select, .pager li a { width: auto; - padding: .4em; + padding: 5px; background-color: rgba(240,240,240,.9); font-weight: bold; color: #555; border: 1px solid rgba(190,190,190,.9); cursor: pointer; - border-radius: 3px; - outline: none; } input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, input[type="button"]:focus, @@ -246,6 +253,7 @@ input[type="submit"].enabled { -webkit-box-sizing: border-box; box-sizing: border-box; position: fixed; + top:45px; right: 0; left: 0; height: 44px; @@ -790,20 +798,12 @@ tr .action { width:16px; height:16px; } tr:hover .action:hover, .selectedActions a:hover, .header-action:hover { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } tbody tr:hover, tr:active { background-color:#f8f8f8; } -#body-settings h2 { - font-size: 20px; - font-weight: normal; - margin-bottom: 7px; -} -#body-settings .personalblock, #body-settings .helpblock { - padding: 30px; - color: #555; - border-top: 1px solid #ddd; -} -#body-settings .personalblock#quota { position:relative; padding:0; } -#body-settings #controls+.helpblock { position:relative; margin-top:3em; } code { font-family:"Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", monospace; } +#quota { + position: relative; + padding: 0; +} #quota div { padding: 0; background-color: rgb(220,220,220); diff --git a/core/js/js.js b/core/js/js.js index 3d3185f12c1..302b6b4d9fa 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -482,6 +482,53 @@ var OC={ }).show(); }, 'html'); } + }, + + // for menu toggling + registerMenu: function($toggle, $menuEl) { + $menuEl.addClass('menu'); + $toggle.addClass('menutoggle'); + $toggle.on('click.menu', function(event) { + if ($menuEl.is(OC._currentMenu)) { + $menuEl.hide(); + OC._currentMenu = null; + OC._currentMenuToggle = null; + return false; + } + // another menu was open? + else if (OC._currentMenu) { + // close it + OC._currentMenu.hide(); + } + $menuEl.show(); + OC._currentMenu = $menuEl; + OC._currentMenuToggle = $toggle; + return false + }); + }, + + unregisterMenu: function($toggle, $menuEl) { + // close menu if opened + if ($menuEl.is(OC._currentMenu)) { + $menuEl.hide(); + OC._currentMenu = null; + OC._currentMenuToggle = null; + } + $toggle.off('click.menu').removeClass('menutoggle'); + $menuEl.removeClass('menu'); + }, + + /** + * Wrapper for matchMedia + * + * This is makes it possible for unit tests to + * stub matchMedia (which doesn't work in PhantomJS) + */ + _matchMedia: function(media) { + if (window.matchMedia) { + return window.matchMedia(media); + } + return false; } }; OC.search.customResults={}; @@ -712,11 +759,11 @@ SVGSupport.checkMimeType=function(){ if(value[0]==='"'){ value=value.substr(1,value.length-2); } - headers[parts[0]]=value; + headers[parts[0].toLowerCase()]=value; } } }); - if(headers["Content-Type"]!=='image/svg+xml'){ + if(headers["content-type"]!=='image/svg+xml'){ replaceSVG(); SVGSupport.checkMimeType.correct=false; } @@ -940,6 +987,67 @@ function initCore() { $('a.action').tipsy({gravity:'s', fade:true, live:true}); $('td .modified').tipsy({gravity:'s', fade:true, live:true}); $('input').tipsy({gravity:'w', fade:true}); + + // toggle for menus + $(document).on('mouseup.closemenus', function(event) { + var $el = $(event.target); + if ($el.closest('.menu').length || $el.closest('.menutoggle').length) { + // don't close when clicking on the menu directly or a menu toggle + return false; + } + if (OC._currentMenu) { + OC._currentMenu.hide(); + } + OC._currentMenu = null; + OC._currentMenuToggle = null; + }); + + + /** + * Set up the main menu toggle to react to media query changes. + * If the screen is small enough, the main menu becomes a toggle. + * If the screen is bigger, the main menu is not a toggle any more. + */ + function setupMainMenu() { + // toggle the navigation on mobile + if (!OC._matchMedia) { + return; + } + var mq = OC._matchMedia('(max-width: 768px)'); + var lastMatch = mq.matches; + var $toggle = $('#header #owncloud'); + var $navigation = $('#navigation'); + + function updateMainMenu() { + // mobile mode ? + if (lastMatch && !$toggle.hasClass('menutoggle')) { + // init the menu + OC.registerMenu($toggle, $navigation); + $toggle.data('oldhref', $toggle.attr('href')); + $toggle.attr('href', '#'); + $navigation.hide(); + } + else { + OC.unregisterMenu($toggle, $navigation); + $toggle.attr('href', $toggle.data('oldhref')); + $navigation.show(); + } + } + + updateMainMenu(); + + // TODO: debounce this + $(window).resize(function() { + if (lastMatch !== mq.matches) { + lastMatch = mq.matches; + updateMainMenu(); + } + }); + } + + if (window.matchMedia) { + setupMainMenu(); + } } $(document).ready(initCore); diff --git a/core/js/share.js b/core/js/share.js index 9ee50ff6963..ef71cc7999a 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -48,7 +48,7 @@ OC.Share={ var action = $(file).find('.fileactions .action[data-action="Share"]'); var img = action.find('img').attr('src', image); action.addClass('permanent'); - action.html(' '+t('core', 'Shared')).prepend(img); + action.html(' <span>'+t('core', 'Shared')+'</span>').prepend(img); } else { var dir = $('#dir').val(); if (dir.length > 1) { @@ -63,7 +63,7 @@ OC.Share={ if (img.attr('src') != OC.imagePath('core', 'actions/public')) { img.attr('src', image); $(action).addClass('permanent'); - $(action).html(' '+t('core', 'Shared')).prepend(img); + $(action).html(' <span>'+t('core', 'Shared')+'</span>').prepend(img); } }); } @@ -103,10 +103,10 @@ OC.Share={ var img = action.find('img').attr('src', image); if (shares) { action.addClass('permanent'); - action.html(' '+ escapeHTML(t('core', 'Shared'))).prepend(img); + action.html(' <span>'+ escapeHTML(t('core', 'Shared'))+'</span>').prepend(img); } else { action.removeClass('permanent'); - action.html(' '+ escapeHTML(t('core', 'Share'))).prepend(img); + action.html(' <span>'+ escapeHTML(t('core', 'Share'))+'</span>').prepend(img); } } } @@ -551,7 +551,7 @@ $(document).ready(function() { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); var shareType = $li.data('share-type'); - var shareWith = $li.data('share-with'); + var shareWith = $li.attr('data-share-with'); OC.Share.unshare(itemType, itemSource, shareType, shareWith, function() { $li.remove(); var index = OC.Share.itemShares[shareType].indexOf(shareWith); @@ -597,7 +597,7 @@ $(document).ready(function() { OC.Share.setPermissions($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), li.data('share-type'), - li.data('share-with'), + li.attr('data-share-with'), permissions); }); @@ -782,7 +782,7 @@ $(document).ready(function() { } var shareType = $li.data('share-type'); - var shareWith = $li.data('share-with'); + var shareWith = $li.attr('data-share-with'); $.post(OC.filePath('core', 'ajax', 'share.php'), {action: action, recipient: shareWith, shareType: shareType, itemSource: itemSource, itemType: itemType}, function(result) { if (result.status !== 'success') { diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js index 069546387c7..57ea5be8be0 100644 --- a/core/js/tests/specs/coreSpec.js +++ b/core/js/tests/specs/coreSpec.js @@ -279,5 +279,109 @@ describe('Core base tests', function() { expect(OC.generateUrl('apps/files/download{file}', {file: '/Welcome.txt'})).toEqual(OC.webroot + '/index.php/apps/files/download/Welcome.txt'); }); }); + describe('Main menu mobile toggle', function() { + var oldMatchMedia; + var $toggle; + var $navigation; + + beforeEach(function() { + oldMatchMedia = OC._matchMedia; + // a separate method was needed because window.matchMedia + // cannot be stubbed due to a bug in PhantomJS: + // https://github.com/ariya/phantomjs/issues/12069 + OC._matchMedia = sinon.stub(); + $('#testArea').append('<div id="header">' + + '<a id="owncloud" href="#"></a>' + + '</div>' + + '<div id="navigation"></div>'); + $toggle = $('#owncloud'); + $navigation = $('#navigation'); + }); + + afterEach(function() { + OC._matchMedia = oldMatchMedia; + }); + it('Sets up menu toggle in mobile mode', function() { + OC._matchMedia.returns({matches: true}); + window.initCore(); + expect($toggle.hasClass('menutoggle')).toEqual(true); + expect($navigation.hasClass('menu')).toEqual(true); + }); + it('Does not set up menu toggle in desktop mode', function() { + OC._matchMedia.returns({matches: false}); + window.initCore(); + expect($toggle.hasClass('menutoggle')).toEqual(false); + expect($navigation.hasClass('menu')).toEqual(false); + }); + it('Switches on menu toggle when mobile mode changes', function() { + var mq = {matches: false}; + OC._matchMedia.returns(mq); + window.initCore(); + expect($toggle.hasClass('menutoggle')).toEqual(false); + mq.matches = true; + $(window).trigger('resize'); + expect($toggle.hasClass('menutoggle')).toEqual(true); + }); + it('Switches off menu toggle when mobile mode changes', function() { + var mq = {matches: true}; + OC._matchMedia.returns(mq); + window.initCore(); + expect($toggle.hasClass('menutoggle')).toEqual(true); + mq.matches = false; + $(window).trigger('resize'); + expect($toggle.hasClass('menutoggle')).toEqual(false); + }); + it('Clicking menu toggle toggles navigation in mobile mode', function() { + OC._matchMedia.returns({matches: true}); + window.initCore(); + $navigation.hide(); // normally done through media query triggered CSS + expect($navigation.is(':visible')).toEqual(false); + $toggle.click(); + expect($navigation.is(':visible')).toEqual(true); + $toggle.click(); + expect($navigation.is(':visible')).toEqual(false); + }); + it('Clicking menu toggle does not toggle navigation in desktop mode', function() { + OC._matchMedia.returns({matches: false}); + window.initCore(); + expect($navigation.is(':visible')).toEqual(true); + $toggle.click(); + expect($navigation.is(':visible')).toEqual(true); + }); + it('Switching to mobile mode hides navigation', function() { + var mq = {matches: false}; + OC._matchMedia.returns(mq); + window.initCore(); + expect($navigation.is(':visible')).toEqual(true); + mq.matches = true; + $(window).trigger('resize'); + expect($navigation.is(':visible')).toEqual(false); + }); + it('Switching to desktop mode shows navigation', function() { + var mq = {matches: true}; + OC._matchMedia.returns(mq); + window.initCore(); + expect($navigation.is(':visible')).toEqual(false); + mq.matches = false; + $(window).trigger('resize'); + expect($navigation.is(':visible')).toEqual(true); + }); + it('Switch to desktop with opened menu then back to mobile resets toggle', function() { + var mq = {matches: true}; + OC._matchMedia.returns(mq); + window.initCore(); + expect($navigation.is(':visible')).toEqual(false); + $toggle.click(); + expect($navigation.is(':visible')).toEqual(true); + mq.matches = false; + $(window).trigger('resize'); + expect($navigation.is(':visible')).toEqual(true); + mq.matches = true; + $(window).trigger('resize'); + expect($navigation.is(':visible')).toEqual(false); + $toggle.click(); + expect($navigation.is(':visible')).toEqual(true); + }); + }); }); diff --git a/core/l10n/el.php b/core/l10n/el.php index ed7792b7261..0ffb746fc77 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Expiration date is in the past." => "Η ημερομηνία λήξης είναι στο παρελθόν.", "Couldn't send mail to following users: %s " => "Αδυναμία αποστολής μηνύματος στους ακόλουθους χρήστες: %s", "Turned on maintenance mode" => "Η κατάσταση συντήρησης ενεργοποιήθηκε", "Turned off maintenance mode" => "Η κατάσταση συντήρησης απενεργοποιήθηκε", @@ -55,8 +56,10 @@ $TRANSLATIONS = array( "Continue" => "Συνέχεια", "(all selected)" => "(όλα τα επιλεγμένα)", "({count} selected)" => "({count} επιλέχθησαν)", +"Error loading file exists template" => "Σφάλμα κατά την φόρτωση του προτύπου ύπαρξης αρχείου", "Very weak password" => "Πολύ αδύναμο συνθηματικό", "Weak password" => "Αδύναμο συνθηματικό", +"So-so password" => "Μέτριο συνθηματικό", "Good password" => "Καλό συνθηματικό", "Strong password" => "Δυνατό συνθηματικό", "Shared" => "Κοινόχρηστα", @@ -119,6 +122,8 @@ $TRANSLATIONS = array( "To login page" => "Σελίδα εισόδου", "New password" => "Νέο συνθηματικό", "Reset password" => "Επαναφορά συνθηματικού", +"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Το Mac OS X δεν υποστηρίζεται και το %s δεν θα λειτουργήσει σωστά σε αυτή την πλατφόρμα. Χρησιμοποιείτε με δική σας ευθύνη!", +"For the best results, please consider using a GNU/Linux server instead." => "Για καλύτερα αποτελέσματα, παρακαλούμε εξετάστε την μετατροπή σε έναν διακομιστή GNU/Linux.", "Personal" => "Προσωπικά", "Users" => "Χρήστες", "Apps" => "Εφαρμογές", @@ -144,6 +149,7 @@ $TRANSLATIONS = array( "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Ο κατάλογος δεδομένων και τα αρχεία σας είναι πιθανό προσβάσιμα από το internet γιατί δεν δουλεύει το αρχείο .htaccess.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Για πληροφορίες πως να ρυθμίσετε ορθά τον διακομιστή σας, παρακαλώ δείτε την <a href=\"%s\" target=\"_blank\">τεκμηρίωση</a>.", "Create an <strong>admin account</strong>" => "Δημιουργήστε έναν <strong>λογαριασμό διαχειριστή</strong>", +"Storage & database" => "Αποθήκευση & βάση δεδομένων", "Data folder" => "Φάκελος δεδομένων", "Configure the database" => "Ρύθμιση της βάσης δεδομένων", "will be used" => "θα χρησιμοποιηθούν", @@ -166,6 +172,7 @@ $TRANSLATIONS = array( "remember" => "απομνημόνευση", "Log in" => "Είσοδος", "Alternative Logins" => "Εναλλακτικές Συνδέσεις", +"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Γειά χαρά,<br><br>απλά σας ενημερώνω πως ο %s μοιράστηκε το<strong>%s</strong> με εσάς.<br><a href=\"%s\">Δείτε το!</a><br><br>", "This ownCloud instance is currently in single user mode." => "Αυτή η εγκατάσταση ownCloud είναι τώρα σε κατάσταση ενός χρήστη.", "This means only administrators can use the instance." => "Αυτό σημαίνει ότι μόνο διαχειριστές μπορούν να χρησιμοποιήσουν την εγκατάσταση.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Επικοινωνήστε με το διαχειριστή του συστήματος αν αυτό το μήνυμα συνεχίζει να εμφανίζεται ή εμφανίστηκε απρόσμενα.", diff --git a/core/l10n/es.php b/core/l10n/es.php index 7f4d46aa1f1..52f1a15089a 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -1,6 +1,6 @@ <?php $TRANSLATIONS = array( -"Expiration date is in the past." => "La fecha de caducidad está en el pasado.", +"Expiration date is in the past." => "Ha pasado la fecha de caducidad", "Couldn't send mail to following users: %s " => "No se pudo enviar el mensaje a los siguientes usuarios: %s", "Turned on maintenance mode" => "Modo mantenimiento activado", "Turned off maintenance mode" => "Modo mantenimiento desactivado", @@ -105,7 +105,7 @@ $TRANSLATIONS = array( "Edit tags" => "Editar etiquetas", "Error loading dialog template: {error}" => "Error cargando plantilla de diálogo: {error}", "No tags selected for deletion." => "No hay etiquetas seleccionadas para borrar.", -"Please reload the page." => "Vuelva a cargar la página.", +"Please reload the page." => "Recargue/Actualice la página", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "La actualización ha fracasado. Por favor, informe de este problema a la <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">Comunidad de ownCloud</a>.", "The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.", "%s password reset" => "%s restablecer contraseña", @@ -179,6 +179,6 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Gracias por su paciencia.", "Updating ownCloud to version %s, this may take a while." => "Actualizando ownCloud a la versión %s, esto puede demorar un tiempo.", "This ownCloud instance is currently being updated, which may take a while." => "Esta versión de owncloud se está actualizando, esto puede demorar un tiempo.", -"Please reload this page after a short time to continue using ownCloud." => "Por favor , recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo." +"Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/pl_PL.php b/core/l10n/pl_PL.php deleted file mode 100644 index 15c376eb954..00000000000 --- a/core/l10n/pl_PL.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Settings" => "Ustawienia", -"Username" => "Nazwa użytkownika" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/core/l10n/ru.php b/core/l10n/ru.php index 8d84e7d31bc..e2fdc36be0b 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Expiration date is in the past." => "Дата истечения срока действия в прошлом.", "Couldn't send mail to following users: %s " => "Невозможно отправить письмо следующим пользователям: %s", "Turned on maintenance mode" => "Режим отладки включён", "Turned off maintenance mode" => "Режим отладки отключён", @@ -56,6 +57,11 @@ $TRANSLATIONS = array( "(all selected)" => "(выбраны все)", "({count} selected)" => "({count} выбрано)", "Error loading file exists template" => "Ошибка при загрузке шаблона существующего файла", +"Very weak password" => "Очень слабый пароль", +"Weak password" => "Слабый пароль", +"So-so password" => "Так себе пароль", +"Good password" => "Хороший пароль", +"Strong password" => "Устойчивый к взлому пароль", "Shared" => "Общие", "Share" => "Открыть доступ", "Error" => "Ошибка", @@ -103,6 +109,7 @@ $TRANSLATIONS = array( "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "При обновлении произошла ошибка. Пожалуйста сообщите об этом в <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud сообщество</a>.", "The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...", "%s password reset" => "%s сброс пароля", +"A problem has occurred whilst sending the email, please contact your administrator." => "Произошла ошибка при отправке сообщения электронной почты, пожалуйста, свяжитесь с Вашим администратором.", "Use the following link to reset your password: {link}" => "Используйте следующую ссылку чтобы сбросить пароль: {link}", "The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Ссылка для сброса пароля отправлена вам по электронной почте.<br>Если вы не получите письмо в пределах одной-двух минут, проверьте папку Спам. <br>Если письма там нет, обратитесь к своему администратору.", "Request failed!<br>Did you make sure your email/username was right?" => "Запрос не удался. Вы уверены, что email или имя пользователя указаны верно?", @@ -115,6 +122,8 @@ $TRANSLATIONS = array( "To login page" => "На страницу авторизации", "New password" => "Новый пароль", "Reset password" => "Сбросить пароль", +"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте ее на свой страх и риск!", +"For the best results, please consider using a GNU/Linux server instead." => "Для достижения наилучших результатов, пожалуйста, рассмотрите возможность использовать взамен GNU/Linux сервер.", "Personal" => "Личное", "Users" => "Пользователи", "Apps" => "Приложения", @@ -140,6 +149,7 @@ $TRANSLATIONS = array( "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Для информации, как правильно настроить Ваш сервер, пожалуйста загляните в <a hrev=\"%s\"target=\"blank\">документацию</a>.", "Create an <strong>admin account</strong>" => "Создать <strong>учётную запись администратора</strong>", +"Storage & database" => "Система хранения данных & база данных", "Data folder" => "Директория с данными", "Configure the database" => "Настройка базы данных", "will be used" => "будет использовано", @@ -162,6 +172,7 @@ $TRANSLATIONS = array( "remember" => "запомнить", "Log in" => "Войти", "Alternative Logins" => "Альтернативные имена пользователя", +"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Здравствуйте,<br><br>просто даём вам знать, что %s открыл доступ к %s для вас.<br><a href=\"%s\">Посмотреть!</a><br><br>", "This ownCloud instance is currently in single user mode." => "Эта установка ownCloud в настоящее время в однопользовательском режиме.", "This means only administrators can use the instance." => "Это значит, что только администраторы могут использовать эту установку.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Обратитесь к вашему системному администратору если это сообщение не исчезает или появляется неожиданно.", diff --git a/core/l10n/sl.php b/core/l10n/sl.php index 2cfdfd11899..49eb4f9aa69 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -122,6 +122,8 @@ $TRANSLATIONS = array( "To login page" => "Na prijavno stran", "New password" => "Novo geslo", "Reset password" => "Ponastavi geslo", +"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! ", +"For the best results, please consider using a GNU/Linux server instead." => "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux.", "Personal" => "Osebno", "Users" => "Uporabniki", "Apps" => "Programi", diff --git a/core/l10n/tr.php b/core/l10n/tr.php index 03544cd3c0f..affa1b063d0 100644 --- a/core/l10n/tr.php +++ b/core/l10n/tr.php @@ -111,7 +111,7 @@ $TRANSLATIONS = array( "%s password reset" => "%s parola sıfırlama", "A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yönetinizle iletişime geçin.", "Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}", -"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz.<br> Eğer orada da bulamazsanız sistem yöneticinize sorunuz.", +"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz.", "Request failed!<br>Did you make sure your email/username was right?" => "İstek başarısız!<br>E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?", "You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.", "Username" => "Kullanıcı Adı", diff --git a/core/setup/controller.php b/core/setup/controller.php index bb9c9101fe2..1a8e9b2b764 100644 --- a/core/setup/controller.php +++ b/core/setup/controller.php @@ -20,7 +20,7 @@ class Controller { $errors = array('errors' => $e); if(count($e) > 0) { - $options = array_merge($post, $opts, $errors); + $options = array_merge($opts, $post, $errors); $this->display($options); } else { @@ -28,7 +28,8 @@ class Controller { } } else { - $this->display($opts); + $options = array_merge($opts, $post); + $this->display($options); } } @@ -41,6 +42,7 @@ class Controller { 'dbname' => '', 'dbtablespace' => '', 'dbhost' => '', + 'dbtype' => '', ); $parameters = array_merge($defaults, $post); diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index 91157b923a5..5788d1d5bd3 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -36,7 +36,7 @@ <body id="body-login"> <div class="wrapper"><!-- for sticky footer --> <header><div id="header"> - <div class='logo'></div> + <div class="logo svg"></div> <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> </div></header> diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 3d897503480..ba5f6ef9b54 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -15,7 +15,7 @@ </title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=1.0"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> <meta name="apple-itunes-app" content="app-id=543672169"> <link rel="shortcut icon" href="<?php print_unescaped(image_path('', 'favicon.png')); ?>" /> <link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path('', 'favicon-touch.png')); ?>" /> @@ -46,7 +46,7 @@ </div> <header><div id="header"> <a href="<?php print_unescaped(link_to('', 'index.php')); ?>" title="" id="owncloud"> - <div class='logo-wide'></div> + <div class="logo-wide svg"></div> </a> <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> <div id="settings" class="svg"> @@ -48,6 +48,9 @@ try { require_once 'lib/base.php'; + // load all apps to get all api routes properly setup + OC_App::loadApps(); + \OC::$session->close(); $logger = \OC_Log::$object; diff --git a/index.php b/index.php index 0a2f15f9f5e..bd94d0e908d 100755 --- a/index.php +++ b/index.php @@ -21,8 +21,6 @@ * */ -$RUNTIME_NOAPPS = true; //no apps, yet - try { require_once 'lib/base.php'; diff --git a/l10n/ar/files.po b/l10n/ar/files.po index bade00bb3fb..03c7ac1650d 100644 --- a/l10n/ar/files.po +++ b/l10n/ar/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "غير قادر على تحميل المجلد" msgid "Invalid Token" msgstr "علامة غير صالحة" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "لم يتم رفع أي ملف , خطأ غير معروف" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "تم ترفيع الملفات بنجاح." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "حجم الملف المرفوع تجاوز قيمة upload_max_filesize الموجودة في ملف php.ini " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "تم ترفيع جزء من الملفات الذي تريد ترفيعها فقط" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "لم يتم ترفيع أي من الملفات" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "المجلد المؤقت غير موجود" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "خطأ في الكتابة على القرص الصلب" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "لا يوجد مساحة تخزينية كافية" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "فشلت عملية الرفع. تعذر الحصول على معلومات الملف." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "مسار غير صحيح." diff --git a/l10n/ar/files_trashbin.po b/l10n/ar/files_trashbin.po index 4eef8c34320..e354e3194c0 100644 --- a/l10n/ar/files_trashbin.po +++ b/l10n/ar/files_trashbin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Abderraouf Mehdi Bouhali <armbouhali@gmail.com>, 2014 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-19 06:40+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:10+0000\n" +"Last-Translator: Abderraouf Mehdi Bouhali <armbouhali@gmail.com>\n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,9 +36,9 @@ msgstr "حذف الملفات" msgid "Error" msgstr "خطأ" -#: lib/trashbin.php:853 lib/trashbin.php:855 +#: lib/trashbin.php:859 lib/trashbin.php:861 msgid "restored" -msgstr "" +msgstr "تمت الاستعادة" #: templates/index.php:7 msgid "Nothing in here. Your trash bin is empty!" diff --git a/l10n/ar/user_ldap.po b/l10n/ar/user_ldap.po index 7b68c2ffef2..a4e3832904c 100644 --- a/l10n/ar/user_ldap.po +++ b/l10n/ar/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-21 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 11:40+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: m.shehab <shehab.mahmood@gmail.com>\n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po index bb8c6f450fa..6d6412edeed 100644 --- a/l10n/bg_BG/files.po +++ b/l10n/bg_BG/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Файлът е качен успешно" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Файлът който се опитвате да качите надвишава стойностите в MAX_FILE_SIZE в HTML формата." -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Файлът е качен частично" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Фахлът не бе качен" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Липсва временна папка" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Възникна проблем при запис в диска" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Невалидна директория." @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "Качването е спряно." -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/bg_BG/user_ldap.po b/l10n/bg_BG/user_ldap.po index 658e5fef623..78f3b6a1147 100644 --- a/l10n/bg_BG/user_ldap.po +++ b/l10n/bg_BG/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/bn_BD/files.po b/l10n/bn_BD/files.po index 199301ae110..43c3d26d9a4 100644 --- a/l10n/bn_BD/files.po +++ b/l10n/bn_BD/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "%s কে স্থানান্তর করা সম্ভব হলো না" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "ফাইলের নামটি ফাঁকা রাখা যাবে না।" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে " -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "কোন ফাইল আপলোড করা হয় নি" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "ডিস্কে লিখতে ব্যর্থ" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "ভুল ডিরেক্টরি" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "আপলোড বাতিল করা হয়েছে।" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "{new_name} টি বিদ্যমান" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/bn_BD/user_ldap.po b/l10n/bn_BD/user_ldap.po index 5e7729e1d4d..a7caeb40194 100644 --- a/l10n/bn_BD/user_ldap.po +++ b/l10n/bn_BD/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/bs/files.po b/l10n/bs/files.po index 0bd442a17ae..09ae4d496d7 100644 --- a/l10n/bs/files.po +++ b/l10n/bs/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Bosnian (http://www.transifex.com/projects/p/owncloud/language/bs/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: bs\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/bs/user_ldap.po b/l10n/bs/user_ldap.po index 3ec9651aca4..268fdc806b2 100644 --- a/l10n/bs/user_ldap.po +++ b/l10n/bs/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Bosnian (http://www.transifex.com/projects/p/owncloud/language/bs/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ca/files.po b/l10n/ca/files.po index d3df8a0bd17..f504332b2d6 100644 --- a/l10n/ca/files.po +++ b/l10n/ca/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "El nóm no és vàlid, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' no estan permesos." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "La carpeta de destí s'ha mogut o eliminat." @@ -92,54 +92,54 @@ msgstr "No es pot establir la carpeta de pujada." msgid "Invalid Token" msgstr "Testimoni no vàlid" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "No s'ha carregat cap fitxer. Error desconegut" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "No hi ha errors, el fitxer s'ha carregat correctament" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "El fitxer carregat supera la directiva MAX_FILE_SIZE especificada al formulari HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "El fitxer només s'ha carregat parcialment" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "No s'ha carregat cap fitxer" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Falta un fitxer temporal" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Ha fallat en escriure al disc" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "No hi ha prou espai disponible" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "La pujada ha fallat. El fitxer pujat no s'ha trobat." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "La pujada ha fallat. No s'ha pogut obtenir informació del fitxer." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Directori no vàlid." diff --git a/l10n/ca/settings.po b/l10n/ca/settings.po index cb43c907693..9368907aeb2 100644 --- a/l10n/ca/settings.po +++ b/l10n/ca/settings.po @@ -4,14 +4,15 @@ # # Translators: # rogerc, 2013-2014 +# Josep Torné <josep@substantiu.com>, 2014 # rogerc, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 13:43+0000\n" +"Last-Translator: Josep Torné <josep@substantiu.com>\n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -431,7 +432,7 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "L'últim cron s'ha executat el %s" #: templates/admin.php:170 #, php-format diff --git a/l10n/ca/user_ldap.po b/l10n/ca/user_ldap.po index ce1cd4df022..90f2c187f2f 100644 --- a/l10n/ca/user_ldap.po +++ b/l10n/ca/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-19 01:55-0400\n" -"PO-Revision-Date: 2014-03-18 08:52+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: rogerc\n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po index aae75b1c0b8..cdc38895bf0 100644 --- a/l10n/cs_CZ/files.po +++ b/l10n/cs_CZ/files.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: pstast <petr@stastny.eu>\n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -50,7 +50,7 @@ msgid "" "allowed." msgstr "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Cílová složka byla přesunuta nebo smazána." @@ -96,54 +96,54 @@ msgstr "Nelze nastavit adresář pro nahrané soubory." msgid "Invalid Token" msgstr "Neplatný token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Žádný soubor nebyl odeslán. Neznámá chyba" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Soubor byl odeslán úspěšně" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Soubor byl odeslán pouze částečně" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Žádný soubor nebyl odeslán" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Chybí adresář pro dočasné soubory" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Zápis na disk selhal" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nedostatek dostupného úložného prostoru" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Nahrávání selhalo. Nepodařilo se nalézt nahraný soubor." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Nahrávání selhalo. Nepodařilo se získat informace o souboru." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Neplatný adresář" diff --git a/l10n/cs_CZ/settings.po b/l10n/cs_CZ/settings.po index b092cba79c6..3a2d8b6029b 100644 --- a/l10n/cs_CZ/settings.po +++ b/l10n/cs_CZ/settings.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 21:10+0000\n" +"Last-Translator: m23 <black23@gmail.com>\n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -436,18 +436,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Poslední cron byl spuštěn v %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Poslední cron byl spuštěn v %s. To se stalo před více než hodinu. Vypadá to, že není něco v pořádku." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron ještě nebyl spuštěn!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/cs_CZ/user_ldap.po b/l10n/cs_CZ/user_ldap.po index e9fd629b0b9..f20b90fcd2d 100644 --- a/l10n/cs_CZ/user_ldap.po +++ b/l10n/cs_CZ/user_ldap.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-23 22:50+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: pstast <petr@stastny.eu>\n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/cy_GB/files.po b/l10n/cy_GB/files.po index 4af8ab8a905..f9ca4e11176 100644 --- a/l10n/cy_GB/files.po +++ b/l10n/cy_GB/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" @@ -42,7 +42,7 @@ msgid "" "allowed." msgstr "Enw annilys, ni chaniateir, '\\', '/', '<', '>', ':', '\"', '|', '?' na '*'." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ni lwythwyd ffeil i fyny. Gwall anhysbys." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Dim ond yn rhannol y llwythwyd y ffeil i fyny" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ni lwythwyd ffeil i fyny" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Plygell dros dro yn eisiau" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Methwyd ysgrifennu i'r ddisg" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Dim digon o le storio ar gael" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Cyfeiriadur annilys." diff --git a/l10n/cy_GB/user_ldap.po b/l10n/cy_GB/user_ldap.po index d0c43b131c4..cc9dff4f5d9 100644 --- a/l10n/cy_GB/user_ldap.po +++ b/l10n/cy_GB/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/da/files.po b/l10n/da/files.po index 74ad1a5d02c..16d923ac96e 100644 --- a/l10n/da/files.po +++ b/l10n/da/files.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -47,7 +47,7 @@ msgid "" "allowed." msgstr "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Mappen er blevet slettet eller fjernet." @@ -93,54 +93,54 @@ msgstr "Ude af stand til at vælge upload mappe." msgid "Invalid Token" msgstr "Ugyldig Token " -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil blev uploadet. Ukendt fejl." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Der skete ingen fejl, filen blev succesfuldt uploadet" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Filen blev kun delvist uploadet." -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ingen fil uploadet" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Manglende midlertidig mappe." -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Fejl ved skrivning til disk." -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Der er ikke nok plads til rådlighed" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Upload fejlede. Kunne ikke finde den uploadede fil." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Upload fejlede. Kunne ikke hente filinformation." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ugyldig mappe." diff --git a/l10n/da/settings.po b/l10n/da/settings.po index 9a4cdd0e910..ecc1285414a 100644 --- a/l10n/da/settings.po +++ b/l10n/da/settings.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 09:30+0000\n" +"Last-Translator: Sappe\n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +32,7 @@ msgstr "Gemt" #: admin/controller.php:90 msgid "test email settings" -msgstr "" +msgstr "test email indstillinger" #: admin/controller.php:91 msgid "If you received this email, the settings seem to be correct." @@ -326,15 +326,15 @@ msgstr "" #: templates/admin.php:19 msgid "NT LAN Manager" -msgstr "" +msgstr "NT LAN Manager" #: templates/admin.php:24 msgid "SSL" -msgstr "" +msgstr "SSL" #: templates/admin.php:25 msgid "TLS" -msgstr "" +msgstr "TLS" #: templates/admin.php:47 templates/admin.php:61 msgid "Security Warning" @@ -535,7 +535,7 @@ msgstr "Forbind venligst til din %s via HTTPS for at aktivere eller deaktivere S #: templates/admin.php:294 msgid "Email Server" -msgstr "" +msgstr "Email Server" #: templates/admin.php:296 msgid "This is used for sending out notifications." @@ -543,11 +543,11 @@ msgstr "" #: templates/admin.php:327 msgid "From address" -msgstr "" +msgstr "Fra adresse" #: templates/admin.php:349 msgid "Authentication required" -msgstr "" +msgstr "Godkendelse påkrævet" #: templates/admin.php:353 msgid "Server address" @@ -559,23 +559,23 @@ msgstr "Port" #: templates/admin.php:362 msgid "Credentials" -msgstr "" +msgstr "Brugeroplysninger" #: templates/admin.php:363 msgid "SMTP Username" -msgstr "" +msgstr "SMTP Brugernavn" #: templates/admin.php:366 msgid "SMTP Password" -msgstr "" +msgstr "SMTP Kodeord" #: templates/admin.php:370 msgid "Test email settings" -msgstr "" +msgstr "Test email indstillinger" #: templates/admin.php:371 msgid "Send email" -msgstr "" +msgstr "Send email" #: templates/admin.php:376 msgid "Log" @@ -621,7 +621,7 @@ msgstr "Vælg en App" #: templates/apps.php:42 msgid "Documentation:" -msgstr "" +msgstr "Dokumentation:" #: templates/apps.php:48 msgid "See application page at apps.owncloud.com" diff --git a/l10n/da/user_ldap.po b/l10n/da/user_ldap.po index 67ac87e3643..91bc2bece8a 100644 --- a/l10n/da/user_ldap.po +++ b/l10n/da/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/de/files.po b/l10n/de/files.po index 1b89a09ee32..d6ab1aa2101 100644 --- a/l10n/de/files.po +++ b/l10n/de/files.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" @@ -50,7 +50,7 @@ msgid "" "allowed." msgstr "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Der Zielordner wurde verschoben oder gelöscht." @@ -96,54 +96,54 @@ msgstr "Das Upload-Verzeichnis konnte nicht gesetzt werden." msgid "Invalid Token" msgstr "Ungültiges Merkmal" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Die Datei konnte nur teilweise übertragen werden" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Keine Datei konnte übertragen werden." -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Kein temporärer Ordner vorhanden" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nicht genug Speicher vorhanden." -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ungültiges Verzeichnis." diff --git a/l10n/de/settings.po b/l10n/de/settings.po index cb821401a7b..b120125988d 100644 --- a/l10n/de/settings.po +++ b/l10n/de/settings.po @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 11:50+0000\n" +"Last-Translator: Mario Siegmann <mario_siegmann@web.de>\n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -438,18 +438,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Letzter Cron wurde um %s ausgeführt." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron wurde bis jetzt noch nicht ausgeführt!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po index b41d11b2bd9..61ce5eaac60 100644 --- a/l10n/de/user_ldap.po +++ b/l10n/de/user_ldap.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 13:11+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: Mario Siegmann <mario_siegmann@web.de>\n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/de_AT/files.po b/l10n/de_AT/files.po index 8c9106e7e2e..1cff24b0dea 100644 --- a/l10n/de_AT/files.po +++ b/l10n/de_AT/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: German (Austria) (http://www.transifex.com/projects/p/owncloud/language/de_AT/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: de_AT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/de_AT/user_ldap.po b/l10n/de_AT/user_ldap.po index 8fe6722c368..1e86832a9e0 100644 --- a/l10n/de_AT/user_ldap.po +++ b/l10n/de_AT/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: German (Austria) (http://www.transifex.com/projects/p/owncloud/language/de_AT/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/de_CH/files.po b/l10n/de_CH/files.po index a5326b44b9c..223375e7fa1 100644 --- a/l10n/de_CH/files.po +++ b/l10n/de_CH/files.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n" "MIME-Version: 1.0\n" @@ -51,7 +51,7 @@ msgid "" "allowed." msgstr "Ungültiger Name, «\\», «/», «<», «>», «:», «\"», «|», «?» und «*» sind nicht zulässig." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -97,54 +97,54 @@ msgstr "Das Upload-Verzeichnis konnte nicht gesetzt werden." msgid "Invalid Token" msgstr "Ungültiges Merkmal" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Die Datei ist grösser, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Die Datei konnte nur teilweise übertragen werden" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Keine Datei konnte übertragen werden." -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Kein temporärer Ordner vorhanden" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nicht genug Speicher vorhanden." -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ungültiges Verzeichnis." diff --git a/l10n/de_CH/user_ldap.po b/l10n/de_CH/user_ldap.po index c71f7f57765..14344bc7b1d 100644 --- a/l10n/de_CH/user_ldap.po +++ b/l10n/de_CH/user_ldap.po @@ -10,13 +10,13 @@ # Marcel Kühlhorn <tux93@opensuse.org>, 2013 # Mario Siegmann <mario_siegmann@web.de>, 2013 # multimill <multimill@gmail.com>, 2012 -# traductor <transifex-3.7.mensaje@spamgourmet.com>, 2012-2013 +# traductor, 2012-2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/owncloud/language/de_CH/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 46cc403bb2b..5e50b0b468c 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" @@ -53,7 +53,7 @@ msgid "" "allowed." msgstr "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Der Ziel-Ordner wurde verschoben oder gelöscht." @@ -99,54 +99,54 @@ msgstr "Das Upload-Verzeichnis konnte nicht gesetzt werden." msgid "Invalid Token" msgstr "Ungültiges Merkmal" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Die Datei ist größer, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Die Datei konnte nur teilweise übertragen werden" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Keine Datei konnte übertragen werden." -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Kein temporärer Ordner vorhanden" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nicht genug Speicher vorhanden." -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ungültiges Verzeichnis." diff --git a/l10n/de_DE/settings.po b/l10n/de_DE/settings.po index 9143ffdf82b..2af94421409 100644 --- a/l10n/de_DE/settings.po +++ b/l10n/de_DE/settings.po @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 11:50+0000\n" +"Last-Translator: Mario Siegmann <mario_siegmann@web.de>\n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -438,18 +438,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Letzter Cron wurde um %s ausgeführt." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron wurde bis jetzt noch nicht ausgeführt!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po index c96d99dfa1a..721016886e3 100644 --- a/l10n/de_DE/user_ldap.po +++ b/l10n/de_DE/user_ldap.po @@ -7,14 +7,14 @@ # Marcel Kühlhorn <tux93@opensuse.org>, 2013 # Mario Siegmann <mario_siegmann@web.de>, 2013-2014 # JamFX <niko@nik-o-mat.de>, 2013 -# traductor <transifex-3.7.mensaje@spamgourmet.com>, 2013 +# traductor, 2013 # noxin <transifex.com@davidmainzer.com>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 13:11+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: Mario Siegmann <mario_siegmann@web.de>\n" "Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/el/core.po b/l10n/el/core.po index 54906380cd8..7f52a39aed6 100644 --- a/l10n/el/core.po +++ b/l10n/el/core.po @@ -6,6 +6,7 @@ # Efstathios Iosifidis <iefstathios@gmail.com>, 2013-2014 # Efstathios Iosifidis <iosifidis@opensuse.org>, 2013 # KAT.RAT12 <spanish.katerina@gmail.com>, 2013 +# pe_ppe <peppe@cs.uoi.gr>, 2014 # Teogramm <theodorewii121@hotmail.com>, 2013 # Teogramm <theodorewii121@hotmail.com>, 2013 # vkehayas <vkehayas@gmail.com>, 2013-2014 @@ -16,9 +17,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-22 01:55-0400\n" -"PO-Revision-Date: 2014-03-22 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 16:30+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,24 +27,24 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/share.php:88 +#: ajax/share.php:87 msgid "Expiration date is in the past." -msgstr "" +msgstr "Η ημερομηνία λήξης είναι στο παρελθόν." -#: ajax/share.php:120 ajax/share.php:162 +#: ajax/share.php:119 ajax/share.php:161 #, php-format msgid "Couldn't send mail to following users: %s " msgstr "Αδυναμία αποστολής μηνύματος στους ακόλουθους χρήστες: %s" -#: ajax/update.php:11 +#: ajax/update.php:10 msgid "Turned on maintenance mode" msgstr "Η κατάσταση συντήρησης ενεργοποιήθηκε" -#: ajax/update.php:14 +#: ajax/update.php:13 msgid "Turned off maintenance mode" msgstr "Η κατάσταση συντήρησης απενεργοποιήθηκε" -#: ajax/update.php:17 +#: ajax/update.php:16 msgid "Updated database" msgstr "Ενημερωμένη βάση δεδομένων" @@ -147,59 +148,59 @@ msgstr "Δεκέμβριος" msgid "Settings" msgstr "Ρυθμίσεις" -#: js/js.js:496 +#: js/js.js:543 msgid "Saving..." msgstr "Γίνεται αποθήκευση..." -#: js/js.js:995 +#: js/js.js:1103 msgid "seconds ago" msgstr "δευτερόλεπτα πριν" -#: js/js.js:996 +#: js/js.js:1104 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "%n λεπτό πριν" msgstr[1] "%n λεπτά πριν" -#: js/js.js:997 +#: js/js.js:1105 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "%n ώρα πριν" msgstr[1] "%n ώρες πριν" -#: js/js.js:998 +#: js/js.js:1106 msgid "today" msgstr "σήμερα" -#: js/js.js:999 +#: js/js.js:1107 msgid "yesterday" msgstr "χτες" -#: js/js.js:1000 +#: js/js.js:1108 msgid "%n day ago" msgid_plural "%n days ago" msgstr[0] "%n ημέρα πριν" msgstr[1] "%n ημέρες πριν" -#: js/js.js:1001 +#: js/js.js:1109 msgid "last month" msgstr "τελευταίο μήνα" -#: js/js.js:1002 +#: js/js.js:1110 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "%n μήνας πριν" msgstr[1] "%n μήνες πριν" -#: js/js.js:1003 +#: js/js.js:1111 msgid "months ago" msgstr "μήνες πριν" -#: js/js.js:1004 +#: js/js.js:1112 msgid "last year" msgstr "τελευταίο χρόνο" -#: js/js.js:1005 +#: js/js.js:1113 msgid "years ago" msgstr "χρόνια πριν" @@ -265,7 +266,7 @@ msgstr "({count} επιλέχθησαν)" #: js/oc-dialogs.js:457 msgid "Error loading file exists template" -msgstr "" +msgstr "Σφάλμα κατά την φόρτωση του προτύπου ύπαρξης αρχείου" #: js/setup.js:84 msgid "Very weak password" @@ -277,7 +278,7 @@ msgstr "Αδύναμο συνθηματικό" #: js/setup.js:86 msgid "So-so password" -msgstr "" +msgstr "Μέτριο συνθηματικό" #: js/setup.js:87 msgid "Good password" @@ -542,17 +543,17 @@ msgstr "Νέο συνθηματικό" msgid "Reset password" msgstr "Επαναφορά συνθηματικού" -#: setup/controller.php:138 +#: setup/controller.php:140 #, php-format msgid "" "Mac OS X is not supported and %s will not work properly on this platform. " "Use it at your own risk! " -msgstr "" +msgstr "Το Mac OS X δεν υποστηρίζεται και το %s δεν θα λειτουργήσει σωστά σε αυτή την πλατφόρμα. Χρησιμοποιείτε με δική σας ευθύνη!" -#: setup/controller.php:142 +#: setup/controller.php:144 msgid "" "For the best results, please consider using a GNU/Linux server instead." -msgstr "" +msgstr "Για καλύτερα αποτελέσματα, παρακαλούμε εξετάστε την μετατροπή σε έναν διακομιστή GNU/Linux." #: strings.php:5 msgid "Personal" @@ -674,7 +675,7 @@ msgstr "Δημιουργήστε έναν <strong>λογαριασμό διαχ #: templates/installation.php:70 msgid "Storage & database" -msgstr "" +msgstr "Αποθήκευση & βάση δεδομένων" #: templates/installation.php:77 msgid "Data folder" @@ -775,7 +776,7 @@ msgstr "Εναλλακτικές Συνδέσεις" msgid "" "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> " "with you.<br><a href=\"%s\">View it!</a><br><br>" -msgstr "" +msgstr "Γειά χαρά,<br><br>απλά σας ενημερώνω πως ο %s μοιράστηκε το<strong>%s</strong> με εσάς.<br><a href=\"%s\">Δείτε το!</a><br><br>" #: templates/singleuser.user.php:3 msgid "This ownCloud instance is currently in single user mode." diff --git a/l10n/el/files.po b/l10n/el/files.po index 48163996d32..086a36cec35 100644 --- a/l10n/el/files.po +++ b/l10n/el/files.po @@ -7,14 +7,15 @@ # Efstathios Iosifidis <iosifidis@opensuse.org>, 2013 # gtsamis <gtsamis@yahoo.com>, 2013 # frerisp <petrosfreris@gmail.com>, 2013 +# pe_ppe <peppe@cs.uoi.gr>, 2014 # vkehayas <vkehayas@gmail.com>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 16:30+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -47,10 +48,10 @@ msgid "" "allowed." msgstr "Μη έγκυρο όνομα, '\\', '/', '<', '>', ':', '\"', '|', '?' και '*' δεν επιτρέπονται." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." -msgstr "" +msgstr "Ο φάκελος προορισμού έχει μετακινηθεί ή διαγραφεί." #: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format @@ -93,54 +94,54 @@ msgstr "Αδυναμία ορισμού καταλόγου αποστολής." msgid "Invalid Token" msgstr "Μη έγκυρο Token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Το αρχείο που εστάλει υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"upload_max_filesize\" του php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Το ανεβασμένο αρχείο υπερβαίνει το MAX_FILE_SIZE που ορίζεται στην HTML φόρμα" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Το αρχείο εστάλει μόνο εν μέρει" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Κανένα αρχείο δεν στάλθηκε" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Λείπει ο προσωρινός φάκελος" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Αποτυχία εγγραφής στο δίσκο" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Μη έγκυρος φάκελος." @@ -154,12 +155,12 @@ msgstr "Αδυναμία φόρτωσης {filename} καθώς είναι κα #: js/file-upload.js:258 msgid "Total file size {size1} exceeds upload limit {size2}" -msgstr "" +msgstr "Το συνολικό μέγεθος αρχείου {size1} υπερβαίνει το όριο μεταφόρτωσης {size2}" #: js/file-upload.js:268 msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" -msgstr "" +msgstr "Δεν υπάρχει αρκετός ελεύθερος χώρος, μεταφορτώνετε μέγεθος {size1} αλλά υπάρχει χώρος μόνο {size2}" #: js/file-upload.js:340 msgid "Upload cancelled." @@ -198,15 +199,15 @@ msgstr "Αδυναμία δημιουργίας φακέλου" msgid "Error fetching URL" msgstr "Σφάλμα φόρτωσης URL" -#: js/fileactions.js:149 +#: js/fileactions.js:164 msgid "Share" msgstr "Διαμοιρασμός" -#: js/fileactions.js:162 +#: js/fileactions.js:177 msgid "Delete permanently" msgstr "Μόνιμη διαγραφή" -#: js/fileactions.js:223 +#: js/fileactions.js:238 msgid "Rename" msgstr "Μετονομασία" @@ -230,13 +231,13 @@ msgstr "αναίρεση" msgid "Error deleting file." msgstr "Σφάλμα διαγραφής αρχείου." -#: js/filelist.js:687 js/filelist.js:761 js/files.js:691 +#: js/filelist.js:687 js/filelist.js:761 js/files.js:694 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "%n φάκελος" msgstr[1] "%n φάκελοι" -#: js/filelist.js:688 js/filelist.js:762 js/files.js:697 +#: js/filelist.js:688 js/filelist.js:762 js/files.js:700 msgid "%n file" msgid_plural "%n files" msgstr[0] "%n αρχείο" @@ -283,29 +284,29 @@ msgid "" "your personal settings to decrypt your files." msgstr "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις" -#: js/files.js:379 +#: js/files.js:382 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος." -#: js/files.js:610 js/files.js:654 +#: js/files.js:613 js/files.js:657 msgid "Error moving file" msgstr "Σφάλμα κατά τη μετακίνηση του αρχείου" -#: js/files.js:610 js/files.js:654 +#: js/files.js:613 js/files.js:657 msgid "Error" msgstr "Σφάλμα" -#: js/files.js:672 templates/index.php:68 +#: js/files.js:675 templates/index.php:68 msgid "Name" msgstr "Όνομα" -#: js/files.js:673 templates/index.php:80 +#: js/files.js:676 templates/index.php:80 msgid "Size" msgstr "Μέγεθος" -#: js/files.js:674 templates/index.php:82 +#: js/files.js:677 templates/index.php:82 msgid "Modified" msgstr "Τροποποιήθηκε" diff --git a/l10n/el/files_encryption.po b/l10n/el/files_encryption.po index bd28873a5e1..0398e975672 100644 --- a/l10n/el/files_encryption.po +++ b/l10n/el/files_encryption.po @@ -5,6 +5,7 @@ # Translators: # Efstathios Iosifidis <iosifidis@opensuse.org>, 2013 # Marios Bekatoros <>, 2013 +# pe_ppe <peppe@cs.uoi.gr>, 2014 # Teogramm <theodorewii121@hotmail.com>, 2013 # Teogramm <theodorewii121@hotmail.com>, 2013 # vkehayas <vkehayas@gmail.com>, 2013 @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 16:30+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -106,7 +107,7 @@ msgstr "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπ #: js/detect-migration.js:25 msgid "Initial encryption running... Please try again later." -msgstr "" +msgstr "Εκτέλεση αρχικής κρυπτογράφησης... Παρακαλώ προσπαθήστε αργότερα." #: templates/invalid_private_key.php:8 msgid "Go directly to your " diff --git a/l10n/el/files_external.po b/l10n/el/files_external.po index ca669ad43ad..f2240af7932 100644 --- a/l10n/el/files_external.po +++ b/l10n/el/files_external.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# pe_ppe <peppe@cs.uoi.gr>, 2014 # KAT.RAT12 <spanish.katerina@gmail.com>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-13 17:12-0400\n" -"PO-Revision-Date: 2014-03-13 14:21+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 16:30+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,24 +39,24 @@ msgstr "Παρακαλούμε δώστε έγκυρο κλειδί Dropbox κα msgid "Error configuring Google Drive storage" msgstr "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive " -#: js/settings.js:313 js/settings.js:320 +#: js/settings.js:318 js/settings.js:325 msgid "Saved" msgstr "Αποθηκεύτηκαν" -#: lib/config.php:512 +#: lib/config.php:654 msgid "" "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "<b>Προσοχή:</b> Ο \"smbclient\" δεν εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση CIFS/SMB. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει." -#: lib/config.php:516 +#: lib/config.php:658 msgid "" "<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." msgstr "<b>Προσοχή:</b> Η υποστήριξη FTP στην PHP δεν ενεργοποιήθηκε ή εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση FTP. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει." -#: lib/config.php:519 +#: lib/config.php:661 msgid "" "<b>Warning:</b> The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " @@ -90,39 +91,39 @@ msgstr "Εφαρμόσιμο" msgid "Add storage" msgstr "Προσθηκη αποθηκευσης" -#: templates/settings.php:90 +#: templates/settings.php:93 msgid "None set" msgstr "Κανένα επιλεγμένο" -#: templates/settings.php:91 +#: templates/settings.php:94 msgid "All Users" msgstr "Όλοι οι Χρήστες" -#: templates/settings.php:92 +#: templates/settings.php:95 msgid "Groups" msgstr "Ομάδες" -#: templates/settings.php:100 +#: templates/settings.php:103 msgid "Users" msgstr "Χρήστες" -#: templates/settings.php:113 templates/settings.php:114 -#: templates/settings.php:155 templates/settings.php:156 +#: templates/settings.php:116 templates/settings.php:117 +#: templates/settings.php:158 templates/settings.php:159 msgid "Delete" msgstr "Διαγραφή" -#: templates/settings.php:127 +#: templates/settings.php:130 msgid "Enable User External Storage" msgstr "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη" -#: templates/settings.php:130 +#: templates/settings.php:133 msgid "Allow users to mount the following external storage" -msgstr "" +msgstr "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης" -#: templates/settings.php:147 +#: templates/settings.php:150 msgid "SSL root certificates" msgstr "Πιστοποιητικά SSL root" -#: templates/settings.php:165 +#: templates/settings.php:168 msgid "Import Root Certificate" msgstr "Εισαγωγή Πιστοποιητικού Root" diff --git a/l10n/el/lib.po b/l10n/el/lib.po index 8f6d6e8c547..3428c9daded 100644 --- a/l10n/el/lib.po +++ b/l10n/el/lib.po @@ -5,14 +5,15 @@ # Translators: # Efstathios Iosifidis <iefstathios@gmail.com>, 2014 # Efstathios Iosifidis <iosifidis@opensuse.org>, 2013 +# pe_ppe <peppe@cs.uoi.gr>, 2014 # vkehayas <vkehayas@gmail.com>, 2013-2014 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-16 03:12-0400\n" -"PO-Revision-Date: 2014-03-15 22:50+0000\n" -"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 16:30+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,23 +69,23 @@ msgstr "Μη έγκυρη εικόνα" msgid "web services under your control" msgstr "υπηρεσίες δικτύου υπό τον έλεγχό σας" -#: private/files.php:231 +#: private/files.php:232 msgid "ZIP download is turned off." msgstr "Η λήψη ZIP απενεργοποιήθηκε." -#: private/files.php:232 +#: private/files.php:233 msgid "Files need to be downloaded one by one." msgstr "Τα αρχεία πρέπει να ληφθούν ένα-ένα." -#: private/files.php:233 private/files.php:261 +#: private/files.php:234 private/files.php:262 msgid "Back to Files" msgstr "Πίσω στα Αρχεία" -#: private/files.php:258 +#: private/files.php:259 msgid "Selected files too large to generate zip file." msgstr "Τα επιλεγμένα αρχεία είναι μεγάλα ώστε να δημιουργηθεί αρχείο zip." -#: private/files.php:259 +#: private/files.php:260 msgid "" "Please download the files separately in smaller chunks or kindly ask your " "administrator." @@ -234,7 +235,7 @@ msgstr "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL/Ma #: private/setup/mysql.php:86 msgid "Drop this user from MySQL/MariaDB" -msgstr "" +msgstr "Κατάργηση του χρήστη από MySQL/MariaDB" #: private/setup/mysql.php:91 #, php-format @@ -243,7 +244,7 @@ msgstr "Υπάρχει ήδη ο χρήστης '%s'@'%%' της MySQL/MariaDB" #: private/setup/mysql.php:92 msgid "Drop this user from MySQL/MariaDB." -msgstr "" +msgstr "Κατάργηση του χρήστη από MySQL/MariaDB." #: private/setup/oci.php:34 msgid "Oracle connection could not be established" @@ -270,13 +271,13 @@ msgstr "Εισάγετε όνομα χρήστη διαχειριστή." msgid "Set an admin password." msgstr "Εισάγετε συνθηματικό διαχειριστή." -#: private/setup.php:198 +#: private/setup.php:202 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "Ο διακομιστής σας δεν έχει ρυθμιστεί κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων γιατί η διεπαφή WebDAV πιθανόν να είναι κατεστραμμένη." -#: private/setup.php:199 +#: private/setup.php:203 #, php-format msgid "Please double check the <a href='%s'>installation guides</a>." msgstr "Ελέγξτε ξανά τις <a href='%s'>οδηγίες εγκατάστασης</a>." diff --git a/l10n/el/settings.po b/l10n/el/settings.po index 963340f3af1..adda7be21db 100644 --- a/l10n/el/settings.po +++ b/l10n/el/settings.po @@ -6,6 +6,7 @@ # Efstathios Iosifidis <iefstathios@gmail.com>, 2013-2014 # Efstathios Iosifidis <iosifidis@opensuse.org>, 2013 # KAT.RAT12 <spanish.katerina@gmail.com>, 2013 +# pe_ppe <peppe@cs.uoi.gr>, 2014 # Teogramm <theodorewii121@hotmail.com>, 2013 # Teogramm <theodorewii121@hotmail.com>, 2013 # vkehayas <vkehayas@gmail.com>, 2013 @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 17:11+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "" #: admin/controller.php:66 #, php-format msgid "Invalid value supplied for %s" -msgstr "" +msgstr "Άκυρη τιμή για το %s" #: admin/controller.php:73 msgid "Saved" @@ -72,7 +73,7 @@ msgid "Unable to load list from App Store" msgstr "Σφάλμα στην φόρτωση της λίστας από το App Store" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 -#: ajax/togglegroups.php:20 changepassword/controller.php:55 +#: ajax/togglegroups.php:20 changepassword/controller.php:49 msgid "Authentication error" msgstr "Σφάλμα πιστοποίησης" @@ -134,32 +135,32 @@ msgstr "Αδυναμία αφαίρεσης χρήστη από την ομάδ msgid "Couldn't update app." msgstr "Αδυναμία ενημέρωσης εφαρμογής" -#: changepassword/controller.php:20 +#: changepassword/controller.php:17 msgid "Wrong password" msgstr "Εσφαλμένο συνθηματικό" -#: changepassword/controller.php:42 +#: changepassword/controller.php:36 msgid "No user supplied" msgstr "Δεν εισήχθη χρήστης" -#: changepassword/controller.php:74 +#: changepassword/controller.php:68 msgid "" "Please provide an admin recovery password, otherwise all user data will be " "lost" msgstr "Παρακαλώ παρέχετε έναν κωδικό ανάκτησης διαχειριστή, διαφορετικά όλα τα δεδομένα χρήστη θα χαθούν" -#: changepassword/controller.php:79 +#: changepassword/controller.php:73 msgid "" "Wrong admin recovery password. Please check the password and try again." msgstr "Λάθος κωδικός ανάκτησης διαχειριστή. Παρακαλώ ελέγξτε τον κωδικό και δοκιμάστε ξανά." -#: changepassword/controller.php:87 +#: changepassword/controller.php:81 msgid "" "Back-end doesn't support password change, but the users encryption key was " "successfully updated." msgstr "Το βασικό πλαίσιο δεν υποστηρίζει αλλαγή κωδικού, αλλά το κλειδί κρυπτογράφησης των χρηστών ενημερώθηκε επιτυχώς." -#: changepassword/controller.php:92 changepassword/controller.php:103 +#: changepassword/controller.php:86 changepassword/controller.php:97 msgid "Unable to change password" msgstr "Αδυναμία αλλαγής συνθηματικού" @@ -233,7 +234,7 @@ msgstr "Αδύναμο συνθηματικό" #: js/personal.js:279 msgid "So-so password" -msgstr "" +msgstr "Μέτριο συνθηματικό" #: js/personal.js:280 msgid "Good password" @@ -292,7 +293,7 @@ msgstr "Πρέπει να δοθεί έγκυρο συνθηματικό" msgid "Warning: Home directory for user \"{user}\" already exists" msgstr "Προειδοποίηση: Ο μητρικός κατάλογος του χρήστη \"{user}\" υπάρχει ήδη" -#: personal.php:49 personal.php:50 +#: personal.php:48 personal.php:49 msgid "__language_name__" msgstr "__όνομα_γλώσσας__" @@ -326,7 +327,7 @@ msgstr "Σύνδεση" #: templates/admin.php:18 msgid "Plain" -msgstr "" +msgstr "Απλό" #: templates/admin.php:19 msgid "NT LAN Manager" @@ -437,18 +438,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Η τελευταία εκτέλεση του cron ήταν στις %s" #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Η τελευταία εκτέλεση του cron ήταν στις %s. Αυτό είναι πάνω από μια ώρα πριν, ίσως κάτι δεν πάει καλά." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Η διεργασία cron δεν εκτελέστηκε ακόμα!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po index 5f0073e1a0d..aeb2e200366 100644 --- a/l10n/el/user_ldap.po +++ b/l10n/el/user_ldap.po @@ -4,14 +4,15 @@ # # Translators: # Marios Bekatoros <>, 2013 +# pe_ppe <peppe@cs.uoi.gr>, 2014 # vkehayas <vkehayas@gmail.com>, 2013-2014 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 17:11+0000\n" +"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -165,7 +166,7 @@ msgstr "Βοήθεια" #: templates/part.wizard-groupfilter.php:4 #, php-format msgid "Groups meeting these criteria are available in %s:" -msgstr "" +msgstr "Οι ομάδες που πληρούν τα κριτήρια είναι διαθέσιμες σε %s:" #: templates/part.wizard-groupfilter.php:8 #: templates/part.wizard-userfilter.php:8 @@ -201,7 +202,7 @@ msgstr "ομάδες βρέθηκαν" #: templates/part.wizard-loginfilter.php:4 msgid "Users login with this attribute:" -msgstr "" +msgstr "Οι χρήστες εισέρχονται με αυτό το χαρακτηριστικό:" #: templates/part.wizard-loginfilter.php:8 msgid "LDAP Username:" @@ -269,7 +270,7 @@ msgstr "Μπορείτε να καθορίσετε το Base DN για χρήσ #: templates/part.wizard-userfilter.php:4 #, php-format msgid "Limit %s access to users meeting these criteria:" -msgstr "" +msgstr "Περιορισμός της πρόσβασης %s σε χρήστες που πληρούν τα κριτήρια:" #: templates/part.wizard-userfilter.php:31 #, php-format @@ -413,7 +414,7 @@ msgstr "Group-Member association" #: templates/settings.php:39 msgid "Nested Groups" -msgstr "" +msgstr "Φωλιασμένες ομάδες" #: templates/settings.php:39 msgid "" diff --git a/l10n/en_GB/files.po b/l10n/en_GB/files.po index fcaa77bb69e..182341b8a25 100644 --- a/l10n/en_GB/files.po +++ b/l10n/en_GB/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Invalid name: '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "The target folder has been moved or deleted." @@ -89,54 +89,54 @@ msgstr "Unable to set upload directory." msgid "Invalid Token" msgstr "Invalid Token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "No file was uploaded. Unknown error" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "There is no error, the file uploaded successfully" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "The uploaded file was only partially uploaded" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "No file was uploaded" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Missing a temporary folder" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Failed to write to disk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Not enough storage available" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Upload failed. Could not find uploaded file" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Upload failed. Could not get file info." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Invalid directory." diff --git a/l10n/en_GB/settings.po b/l10n/en_GB/settings.po index c88871fc4f4..f04a916b0cf 100644 --- a/l10n/en_GB/settings.po +++ b/l10n/en_GB/settings.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 12:20+0000\n" +"Last-Translator: mnestis <transifex@mnestis.net>\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -430,18 +430,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Last cron was executed at %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Last cron was executed at %s. This is more than an hour ago, something seems wrong." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron was not executed yet!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/en_GB/user_ldap.po b/l10n/en_GB/user_ldap.po index a2648a790d3..334316ca9ef 100644 --- a/l10n/en_GB/user_ldap.po +++ b/l10n/en_GB/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 12:10+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: mnestis <transifex@mnestis.net>\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/en_GB/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/eo/files.po b/l10n/eo/files.po index 7d8eee4479a..7518719c1a8 100644 --- a/l10n/eo/files.po +++ b/l10n/eo/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Nevalida nomo: “\\”, “/”, “<”, “>”, “:”, “\"”, “|”, “?” kaj “*” ne permesatas." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -89,54 +89,54 @@ msgstr "Ne povis agordiĝi la alŝuta dosierujo." msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Neniu dosiero alŝutiĝis. Nekonata eraro." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Ne estas eraro, la dosiero alŝutiĝis sukcese." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "la alŝutita dosiero nur parte alŝutiĝis" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Neniu dosiero alŝutiĝis." -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Mankas provizora dosierujo." -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Malsukcesis skribo al disko" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Ne haveblas sufiĉa memoro" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "La alŝuto malsukcesis. Ne troviĝis alŝutota dosiero." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "La alŝuto malsukcesis. Ne povis ekhaviĝi informo pri dosiero." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Nevalida dosierujo." diff --git a/l10n/eo/user_ldap.po b/l10n/eo/user_ldap.po index 6f353ffd28f..1f0d5fdcec3 100644 --- a/l10n/eo/user_ldap.po +++ b/l10n/eo/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/es/core.po b/l10n/es/core.po index 10724eb1434..758f1024ad2 100644 --- a/l10n/es/core.po +++ b/l10n/es/core.po @@ -21,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-23 01:55-0400\n" -"PO-Revision-Date: 2014-03-22 18:40+0000\n" -"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n" +"POT-Creation-Date: 2014-03-29 01:55-0400\n" +"PO-Revision-Date: 2014-03-28 06:06+0000\n" +"Last-Translator: victormce <victormce@gmail.com>\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,24 +31,24 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/share.php:88 +#: ajax/share.php:87 msgid "Expiration date is in the past." -msgstr "La fecha de caducidad está en el pasado." +msgstr "Ha pasado la fecha de caducidad" -#: ajax/share.php:120 ajax/share.php:162 +#: ajax/share.php:119 ajax/share.php:161 #, php-format msgid "Couldn't send mail to following users: %s " msgstr "No se pudo enviar el mensaje a los siguientes usuarios: %s" -#: ajax/update.php:11 +#: ajax/update.php:10 msgid "Turned on maintenance mode" msgstr "Modo mantenimiento activado" -#: ajax/update.php:14 +#: ajax/update.php:13 msgid "Turned off maintenance mode" msgstr "Modo mantenimiento desactivado" -#: ajax/update.php:17 +#: ajax/update.php:16 msgid "Updated database" msgstr "Base de datos actualizada" @@ -152,59 +152,59 @@ msgstr "Diciembre" msgid "Settings" msgstr "Ajustes" -#: js/js.js:496 +#: js/js.js:543 msgid "Saving..." msgstr "Guardando..." -#: js/js.js:995 +#: js/js.js:1103 msgid "seconds ago" msgstr "segundos antes" -#: js/js.js:996 +#: js/js.js:1104 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "Hace %n minuto" msgstr[1] "Hace %n minutos" -#: js/js.js:997 +#: js/js.js:1105 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "Hace %n hora" msgstr[1] "Hace %n horas" -#: js/js.js:998 +#: js/js.js:1106 msgid "today" msgstr "hoy" -#: js/js.js:999 +#: js/js.js:1107 msgid "yesterday" msgstr "ayer" -#: js/js.js:1000 +#: js/js.js:1108 msgid "%n day ago" msgid_plural "%n days ago" msgstr[0] "Hace %n día" msgstr[1] "Hace %n días" -#: js/js.js:1001 +#: js/js.js:1109 msgid "last month" msgstr "el mes pasado" -#: js/js.js:1002 +#: js/js.js:1110 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "Hace %n mes" msgstr[1] "Hace %n meses" -#: js/js.js:1003 +#: js/js.js:1111 msgid "months ago" msgstr "meses antes" -#: js/js.js:1004 +#: js/js.js:1112 msgid "last year" msgstr "el año pasado" -#: js/js.js:1005 +#: js/js.js:1113 msgid "years ago" msgstr "años antes" @@ -467,7 +467,7 @@ msgstr "No hay etiquetas seleccionadas para borrar." #: js/update.js:8 msgid "Please reload the page." -msgstr "Vuelva a cargar la página." +msgstr "Recargue/Actualice la página" #: js/update.js:17 msgid "" @@ -547,14 +547,14 @@ msgstr "Nueva contraseña" msgid "Reset password" msgstr "Restablecer contraseña" -#: setup/controller.php:138 +#: setup/controller.php:140 #, php-format msgid "" "Mac OS X is not supported and %s will not work properly on this platform. " "Use it at your own risk! " msgstr "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela a su propio riesgo! " -#: setup/controller.php:142 +#: setup/controller.php:144 msgid "" "For the best results, please consider using a GNU/Linux server instead." msgstr "Para óptimos resultados, considere utilizar un servidor GNU/Linux." @@ -812,4 +812,4 @@ msgstr "Esta versión de owncloud se está actualizando, esto puede demorar un t #: templates/update.user.php:4 msgid "Please reload this page after a short time to continue using ownCloud." -msgstr "Por favor , recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo." +msgstr "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud" diff --git a/l10n/es/files.po b/l10n/es/files.po index a88b0ed95e1..b9d0e700b38 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -52,7 +52,7 @@ msgid "" "allowed." msgstr "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos " -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "La carpeta destino fue movida o eliminada." @@ -98,54 +98,54 @@ msgstr "Incapaz de crear directorio de subida." msgid "Invalid Token" msgstr "Token Inválido" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "No se subió ningún archivo. Error desconocido" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "No hubo ningún problema, el archivo se subió con éxito" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "El archivo subido fue sólo subido parcialmente" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "No se subió ningún archivo" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Falta la carpeta temporal" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Falló al escribir al disco" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "No hay suficiente espacio disponible" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Actualización fallida. No se pudo encontrar el archivo subido" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Actualización fallida. No se pudo obtener información del archivo." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Directorio inválido." diff --git a/l10n/es/files_sharing.po b/l10n/es/files_sharing.po index dd65ca15edc..f44f8bcb5b9 100644 --- a/l10n/es/files_sharing.po +++ b/l10n/es/files_sharing.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 15:20+0000\n" -"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n" +"POT-Creation-Date: 2014-03-29 01:55-0400\n" +"PO-Revision-Date: 2014-03-28 06:16+0000\n" +"Last-Translator: victormce <victormce@gmail.com>\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/es/files_trashbin.po b/l10n/es/files_trashbin.po index c4e17664608..2586fb2af3d 100644 --- a/l10n/es/files_trashbin.po +++ b/l10n/es/files_trashbin.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-15 02:13-0400\n" -"PO-Revision-Date: 2014-03-15 05:40+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-29 01:55-0400\n" +"PO-Revision-Date: 2014-03-28 06:24+0000\n" +"Last-Translator: victormce <victormce@gmail.com>\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,11 +33,11 @@ msgstr "No se puede restaurar %s" msgid "Deleted files" msgstr "Archivos eliminados" -#: js/trash.js:16 js/trash.js:103 js/trash.js:152 +#: js/trash.js:16 js/trash.js:108 js/trash.js:157 msgid "Error" msgstr "Error" -#: lib/trashbin.php:853 lib/trashbin.php:855 +#: lib/trashbin.php:859 lib/trashbin.php:861 msgid "restored" msgstr "recuperado" diff --git a/l10n/es/settings.po b/l10n/es/settings.po index 6884769d8ae..0a625464a1d 100644 --- a/l10n/es/settings.po +++ b/l10n/es/settings.po @@ -21,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 22:10+0000\n" +"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -443,18 +443,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Cron fue ejecutado por última vez a las %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Cron fue ejecutado por última vez a las %s. Esto fue hace más de una hora, algo anda mal." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "¡Cron aún no ha sido ejecutado!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/es/user_ldap.po b/l10n/es/user_ldap.po index 9058d328ef1..81a43116f95 100644 --- a/l10n/es/user_ldap.po +++ b/l10n/es/user_ldap.po @@ -4,7 +4,7 @@ # # Translators: # Agustin Ferrario <agustin.ferrario@hotmail.com.ar>, 2013 -# txelu <joseluis.tirado@gmail.com>, 2014 +# Jose Luis Tirado <joseluis.tirado@gmail.com>, 2014 # Maenso <balero_arana@hotmail.com>, 2013 # Raul Fernandez Garcia <raulfg3@gmail.com>, 2013 # ordenet <roberto@ordenet.com>, 2013 @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-13 01:55-0400\n" -"PO-Revision-Date: 2014-03-12 21:20+0000\n" -"Last-Translator: txelu <joseluis.tirado@gmail.com>\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" +"Last-Translator: Jose Luis Tirado <joseluis.tirado@gmail.com>\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po index 51663cf577a..02f0efea9be 100644 --- a/l10n/es_AR/files.po +++ b/l10n/es_AR/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -92,54 +92,54 @@ msgstr "No fue posible crear el directorio de subida." msgid "Invalid Token" msgstr "Token Inválido" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "El archivo no fue subido. Error desconocido" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "No hay errores, el archivo fue subido con éxito" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "El archivo fue subido parcialmente" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "No se subió ningún archivo " -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Falta un directorio temporal" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Error al escribir en el disco" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "No hay suficiente almacenamiento" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Falló la carga. No se pudo encontrar el archivo subido." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Falló la carga. No se pudo obtener la información del archivo." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Directorio inválido." diff --git a/l10n/es_AR/user_ldap.po b/l10n/es_AR/user_ldap.po index d3976c28d2e..bbccd0908e1 100644 --- a/l10n/es_AR/user_ldap.po +++ b/l10n/es_AR/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/es_MX/files.po b/l10n/es_MX/files.po index 5d13dd51a3b..e35ebde5b12 100644 --- a/l10n/es_MX/files.po +++ b/l10n/es_MX/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/owncloud/language/es_MX/)\n" "MIME-Version: 1.0\n" @@ -42,7 +42,7 @@ msgid "" "allowed." msgstr "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos " -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -88,54 +88,54 @@ msgstr "Incapaz de crear directorio de subida." msgid "Invalid Token" msgstr "Token Inválido" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "No se subió ningún archivo. Error desconocido" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "No hubo ningún problema, el archivo se subió con éxito" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "El archivo subido fue sólo subido parcialmente" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "No se subió ningún archivo" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Falta la carpeta temporal" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Falló al escribir al disco" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "No hay suficiente espacio disponible" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Actualización fallida. No se pudo encontrar el archivo subido" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Actualización fallida. No se pudo obtener información del archivo." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Directorio inválido." diff --git a/l10n/es_MX/user_ldap.po b/l10n/es_MX/user_ldap.po index a2926c98e42..78711d7f98b 100644 --- a/l10n/es_MX/user_ldap.po +++ b/l10n/es_MX/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/owncloud/language/es_MX/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po index 33c13f4b24d..780aa687c9d 100644 --- a/l10n/et_EE/files.po +++ b/l10n/et_EE/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "Üleslaadimiste kausta määramine ebaõnnestus." msgid "Invalid Token" msgstr "Vigane kontrollkood" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ühtegi faili ei laetud üles. Tundmatu viga" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Ühtegi tõrget polnud, fail on üles laetud" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Üleslaetud fail ületab MAX_FILE_SIZE suuruse, mis on HTML vormi jaoks määratud" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Fail laeti üles ainult osaliselt" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ühtegi faili ei laetud üles" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Ajutiste failide kaust puudub" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Kettale kirjutamine ebaõnnestus" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Saadaval pole piisavalt ruumi" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Üleslaadimine ebaõnnestus. Üleslaetud faili ei leitud" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Üleslaadimine ebaõnnestus. Faili info hankimine ebaõnnestus." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Vigane kaust." diff --git a/l10n/et_EE/user_ldap.po b/l10n/et_EE/user_ldap.po index a05bf02b3fd..68433039694 100644 --- a/l10n/et_EE/user_ldap.po +++ b/l10n/et_EE/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/eu/files.po b/l10n/eu/files.po index 9904b91c21b..8245bccc029 100644 --- a/l10n/eu/files.po +++ b/l10n/eu/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "Ezin da igoera direktorioa ezarri." msgid "Invalid Token" msgstr "Lekuko baliogabea" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ez da fitxategirik igo. Errore ezezaguna" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Ez da errorerik egon, fitxategia ongi igo da" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Igotako fitxategia HTML formularioan zehaztutako MAX_FILE_SIZE direktiba baino handidagoa da." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Igotako fitxategiaren zati bat bakarrik igo da" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ez da fitxategirik igo" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Aldi bateko karpeta falta da" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Errore bat izan da diskoan idazterakoan" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Ez dago behar aina leku erabilgarri," -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Igoerak huts egin du. Ezin izan da igotako fitxategia aurkitu" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Igoerak huts egin du. Ezin izan da fitxategiaren informazioa eskuratu." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Baliogabeko karpeta." diff --git a/l10n/eu/user_ldap.po b/l10n/eu/user_ldap.po index 0a00e89e649..502322ad159 100644 --- a/l10n/eu/user_ldap.po +++ b/l10n/eu/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/eu_ES/files.po b/l10n/eu_ES/files.po index 08dee84c9e1..f57a7040ace 100644 --- a/l10n/eu_ES/files.po +++ b/l10n/eu_ES/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Basque (Spain) (http://www.transifex.com/projects/p/owncloud/language/eu_ES/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: eu_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/eu_ES/user_ldap.po b/l10n/eu_ES/user_ldap.po index 20c3e494dba..bbc3027bfca 100644 --- a/l10n/eu_ES/user_ldap.po +++ b/l10n/eu_ES/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Basque (Spain) (http://www.transifex.com/projects/p/owncloud/language/eu_ES/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/fa/files.po b/l10n/fa/files.po index fead8e85df4..83011111feb 100644 --- a/l10n/fa/files.po +++ b/l10n/fa/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "نام نامعتبر ، '\\', '/', '<', '>', ':', '\"', '|', '?' و '*' مجاز نمی باشند." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "قادر به تنظیم پوشه آپلود نمی باشد." msgid "Invalid Token" msgstr "رمز نامعتبر" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "هیچ فایلی آپلود نشد.خطای ناشناس" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است." -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "پرونده بارگذاری شده فقط تاحدودی بارگذاری شده" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "هیچ پروندهای بارگذاری نشده" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "یک پوشه موقت گم شده" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "نوشتن بر روی دیسک سخت ناموفق بود" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "فضای کافی در دسترس نیست" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "فهرست راهنما نامعتبر می باشد." diff --git a/l10n/fa/user_ldap.po b/l10n/fa/user_ldap.po index 8311efcf667..978827d9d51 100644 --- a/l10n/fa/user_ldap.po +++ b/l10n/fa/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/fi_FI/files.po b/l10n/fi_FI/files.po index 6acc4fff640..8306890140f 100644 --- a/l10n/fi_FI/files.po +++ b/l10n/fi_FI/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -45,7 +45,7 @@ msgid "" "allowed." msgstr "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Kohdekansio on siirretty tai poistettu." @@ -91,54 +91,54 @@ msgstr "Lähetyskansion asettaminen epäonnistui." msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Tiedostoa ei lähetetty. Tuntematon virhe" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Ei virheitä, tiedosto lähetettiin onnistuneesti" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Lähetetyn tiedoston koko ylittää php.ini-tiedoston upload_max_filesize-säännön:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Lähetettävän tiedoston enimmäiskoko ylittää HTML-lomakkeessa määritellyn MAX_FILE_SIZE-säännön" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Tiedoston lähetys onnistui vain osittain" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Yhtäkään tiedostoa ei lähetetty" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Tilapäiskansio puuttuu" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Levylle kirjoitus epäonnistui" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Tallennustilaa ei ole riittävästi käytettävissä" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Virheellinen kansio." diff --git a/l10n/fi_FI/settings.po b/l10n/fi_FI/settings.po index 65fc5864d4b..820800fa818 100644 --- a/l10n/fi_FI/settings.po +++ b/l10n/fi_FI/settings.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 07:01+0000\n" +"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -430,18 +430,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Viimeisin cron suoritettiin %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Viimeisin cron suoritettiin %s. Siitä on yli tunti aikaa, joten jokin näyttää olevan pielessä." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cronia ei suoritettu vielä!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/fi_FI/user_ldap.po b/l10n/fi_FI/user_ldap.po index 750a7b58534..83464ec1114 100644 --- a/l10n/fi_FI/user_ldap.po +++ b/l10n/fi_FI/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index 379cd86cc13..9e3b0bca469 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -47,7 +47,7 @@ msgid "" "allowed." msgstr "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Le dossier cible a été déplacé ou supprimé." @@ -93,54 +93,54 @@ msgstr "Impossible de définir le dossier pour l'upload, charger." msgid "Invalid Token" msgstr "Jeton non valide" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Aucun fichier n'a été envoyé. Erreur inconnue" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Aucune erreur, le fichier a été envoyé avec succès." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Le fichier envoyé dépasse l'instruction upload_max_filesize située dans le fichier php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Le fichier envoyé dépasse l'instruction MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Le fichier n'a été que partiellement envoyé." -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Pas de fichier envoyé." -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Absence de dossier temporaire." -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Erreur d'écriture sur le disque" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Plus assez d'espace de stockage disponible" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "L'envoi a échoué. Impossible de trouver le fichier envoyé." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "L'envoi a échoué. Impossible d'obtenir les informations du fichier." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Dossier invalide." diff --git a/l10n/fr/user_ldap.po b/l10n/fr/user_ldap.po index 44203b8b95d..09a7f945aba 100644 --- a/l10n/fr/user_ldap.po +++ b/l10n/fr/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-13 17:12-0400\n" -"PO-Revision-Date: 2014-03-13 16:21+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index b71b62fd9bd..5d5e1a7178d 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Nome incorrecto, non se permite «\\», «/», «<», «>», «:», «\"», «|», «?» e «*»." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "O cartafol de destino foi movido ou eliminado." @@ -90,54 +90,54 @@ msgstr "Non é posíbel configurar o directorio de envíos." msgid "Invalid Token" msgstr "Marca incorrecta" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Non se enviou ningún ficheiro. Produciuse un erro descoñecido." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Non houbo erros, o ficheiro enviouse correctamente" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "O ficheiro so foi parcialmente enviado" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Non se enviou ningún ficheiro" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Falta o cartafol temporal" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Produciuse un erro ao escribir no disco" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Non hai espazo de almacenamento abondo" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "O envío fracasou. Non foi posíbel atopar o ficheiro enviado" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "O envío fracasou. Non foi posíbel obter información do ficheiro." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "O directorio é incorrecto." diff --git a/l10n/gl/settings.po b/l10n/gl/settings.po index 8cb40f5bbb9..2403bc7cc3e 100644 --- a/l10n/gl/settings.po +++ b/l10n/gl/settings.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-29 01:55-0400\n" +"PO-Revision-Date: 2014-03-28 19:40+0000\n" +"Last-Translator: mbouzada <mbouzada@gmail.com>\n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -66,7 +66,7 @@ msgid "Unable to load list from App Store" msgstr "Non foi posíbel cargar a lista desde a App Store" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 -#: ajax/togglegroups.php:20 changepassword/controller.php:55 +#: ajax/togglegroups.php:20 changepassword/controller.php:49 msgid "Authentication error" msgstr "Produciuse un erro de autenticación" @@ -128,32 +128,32 @@ msgstr "Non é posíbel eliminar o usuario do grupo %s" msgid "Couldn't update app." msgstr "Non foi posíbel actualizar o aplicativo." -#: changepassword/controller.php:20 +#: changepassword/controller.php:17 msgid "Wrong password" msgstr "Contrasinal incorrecto" -#: changepassword/controller.php:42 +#: changepassword/controller.php:36 msgid "No user supplied" msgstr "Non subministrado polo usuario" -#: changepassword/controller.php:74 +#: changepassword/controller.php:68 msgid "" "Please provide an admin recovery password, otherwise all user data will be " "lost" msgstr "Forneza un contrasinal de recuperación do administrador de recuperación, senón perderanse todos os datos do usuario" -#: changepassword/controller.php:79 +#: changepassword/controller.php:73 msgid "" "Wrong admin recovery password. Please check the password and try again." msgstr "Contrasinal de recuperación do administrador incorrecto. Comprobe o contrasinal e tenteo de novo." -#: changepassword/controller.php:87 +#: changepassword/controller.php:81 msgid "" "Back-end doesn't support password change, but the users encryption key was " "successfully updated." msgstr "A infraestrutura non admite o cambio de contrasinal, mais a chave de cifrado dos usuarios foi actualizada correctamente." -#: changepassword/controller.php:92 changepassword/controller.php:103 +#: changepassword/controller.php:86 changepassword/controller.php:97 msgid "Unable to change password" msgstr "Non é posíbel cambiar o contrasinal" @@ -286,7 +286,7 @@ msgstr "Debe fornecer un contrasinal" msgid "Warning: Home directory for user \"{user}\" already exists" msgstr "Aviso: O directorio persoal para o usuario «{user}» xa existe" -#: personal.php:49 personal.php:50 +#: personal.php:48 personal.php:49 msgid "__language_name__" msgstr "Galego" @@ -431,18 +431,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "O último «cron» executouse ás %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "O último «cron» executouse ás %s. Isto supón que pasou máis dunha hora. polo que semella que algo vai mal." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "«Cron» aínda non foi executado!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/gl/user_ldap.po b/l10n/gl/user_ldap.po index 56d17fa56b4..2070e8c7153 100644 --- a/l10n/gl/user_ldap.po +++ b/l10n/gl/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-15 02:13-0400\n" -"PO-Revision-Date: 2014-03-14 09:10+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: mbouzada <mbouzada@gmail.com>\n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/he/files.po b/l10n/he/files.po index 4273d42e1fd..fe83688b064 100644 --- a/l10n/he/files.po +++ b/l10n/he/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "השם שגוי, אסור להשתמש בתווים '\\', '/', '<', '>', ':', '\"', '|', '?' ו־'*'." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "לא הועלה קובץ. טעות בלתי מזוהה." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "לא התרחשה שגיאה, הקובץ הועלה בהצלחה" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "הקובץ שהועלה גדוך מהערך MAX_FILE_SIZE שהוגדר בתופס HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "הקובץ הועלה באופן חלקי בלבד" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "שום קובץ לא הועלה" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "תקיה זמנית חסרה" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "הכתיבה לכונן נכשלה" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "אין די שטח פנוי באחסון" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "העלאה נכשלה. לא ניתן להשיג את פרטי הקובץ." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "תיקייה שגויה." diff --git a/l10n/he/user_ldap.po b/l10n/he/user_ldap.po index e43dba49a7b..5a7b24997c7 100644 --- a/l10n/he/user_ldap.po +++ b/l10n/he/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/hi/files.po b/l10n/hi/files.po index 6405316b8b7..571ff8efa40 100644 --- a/l10n/hi/files.po +++ b/l10n/hi/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/hi/user_ldap.po b/l10n/hi/user_ldap.po index f001017d01f..1c1bdbf62bb 100644 --- a/l10n/hi/user_ldap.po +++ b/l10n/hi/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/hr/files.po b/l10n/hr/files.po index 1f5a7f6813b..6670ab986cc 100644 --- a/l10n/hr/files.po +++ b/l10n/hr/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Nema pogreške, datoteka je poslana uspješno." -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Poslana datoteka prelazi veličinu prikazanu u MAX_FILE_SIZE direktivi u HTML formi" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Poslana datoteka je parcijalno poslana" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Datoteka nije poslana" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Nedostaje privremeni direktorij" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Neuspjelo pisanje na disk" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "Slanje poništeno." -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje." -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/hr/user_ldap.po b/l10n/hr/user_ldap.po index c5facc60a29..0d0c691cf7a 100644 --- a/l10n/hr/user_ldap.po +++ b/l10n/hr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/hu_HU/files.po b/l10n/hu_HU/files.po index 3532ba7040d..6e63b3157d4 100644 --- a/l10n/hu_HU/files.po +++ b/l10n/hu_HU/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "Nem található a mappa, ahova feltölteni szeretne." msgid "Invalid Token" msgstr "Hibás mappacím" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Nem történt feltöltés. Ismeretlen hiba" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "A fájlt sikerült feltölteni" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét." -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Az eredeti fájlt csak részben sikerült feltölteni." -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nem töltődött fel állomány" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Hiányzik egy ideiglenes mappa" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Nem sikerült a lemezre történő írás" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nincs elég szabad hely." -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "A feltöltés nem sikerült. Nem található a feltöltendő állomány." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Érvénytelen mappa." diff --git a/l10n/hu_HU/user_ldap.po b/l10n/hu_HU/user_ldap.po index a199ced0ec6..37aa013a6f8 100644 --- a/l10n/hu_HU/user_ldap.po +++ b/l10n/hu_HU/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/hy/files.po b/l10n/hy/files.po index 86f00de0bee..b8176dd3744 100644 --- a/l10n/hy/files.po +++ b/l10n/hy/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: hy\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/hy/user_ldap.po b/l10n/hy/user_ldap.po index eeb36900227..1acfafd169e 100644 --- a/l10n/hy/user_ldap.po +++ b/l10n/hy/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ia/files.po b/l10n/ia/files.po index 7f1089dd461..5b6b0d60760 100644 --- a/l10n/ia/files.po +++ b/l10n/ia/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Le file incargate solmente esseva incargate partialmente" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nulle file esseva incargate." -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Manca un dossier temporari" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/ia/user_ldap.po b/l10n/ia/user_ldap.po index 593db01cf1d..8cf13b0b0d6 100644 --- a/l10n/ia/user_ldap.po +++ b/l10n/ia/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/id/files.po b/l10n/id/files.po index d2ec10037f8..1f2f31785c9 100644 --- a/l10n/id/files.po +++ b/l10n/id/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Nama tidak valid, karakter '\\', '/', '<', '>', ':', '\"', '|', '?' dan '*' tidak diizinkan." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -89,54 +89,54 @@ msgstr "Tidak dapat mengatur folder unggah" msgid "Invalid Token" msgstr "Token tidak sah" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Tidak ada berkas yang diunggah. Galat tidak dikenal." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Tidak ada galat, berkas sukses diunggah" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Berkas hanya diunggah sebagian" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Tidak ada berkas yang diunggah" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Folder sementara tidak ada" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Gagal menulis ke disk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Ruang penyimpanan tidak mencukupi" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Unggah gagal. Tidak menemukan berkas yang akan diunggah" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Unggah gagal. Tidak mendapatkan informasi berkas." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Direktori tidak valid." diff --git a/l10n/id/user_ldap.po b/l10n/id/user_ldap.po index a8e38b76de2..fcf502a7a8d 100644 --- a/l10n/id/user_ldap.po +++ b/l10n/id/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/is/files.po b/l10n/is/files.po index 61955187307..82f83fd1b11 100644 --- a/l10n/is/files.po +++ b/l10n/is/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "Gat ekki fært %s - Skrá með þessu nafni er þegar til" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "Gat ekki fært %s" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "Nafn skráar má ekki vera tómt" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "Ógilt nafn, táknin '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' eru ekki leyfð." -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Engin skrá var send inn. Óþekkt villa." -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Engin villa, innsending heppnaðist" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Innsend skrá er stærri en upload_max stillingin í php.ini:" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu." -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Einungis hluti af innsendri skrá skilaði sér" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Engin skrá skilaði sér" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Vantar bráðabirgðamöppu" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Tókst ekki að skrifa á disk" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ógild mappa." @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "Hætt við innsendingu." -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast." -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "{new_name} er þegar til" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/is/user_ldap.po b/l10n/is/user_ldap.po index e0cccdc882d..df6247cd5d8 100644 --- a/l10n/is/user_ldap.po +++ b/l10n/is/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/it/files.po b/l10n/it/files.po index c1dcdc79c2e..2b729d50968 100644 --- a/l10n/it/files.po +++ b/l10n/it/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "La cartella di destinazione è stata spostata o eliminata." @@ -90,54 +90,54 @@ msgstr "Impossibile impostare una cartella di caricamento." msgid "Invalid Token" msgstr "Token non valido" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Nessun file è stato inviato. Errore sconosciuto" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Non ci sono errori, il file è stato caricato correttamente" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Il file caricato supera la direttiva upload_max_filesize in php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Il file inviato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Il file è stato caricato solo parzialmente" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nessun file è stato caricato" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Manca una cartella temporanea" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Scrittura su disco non riuscita" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Spazio di archiviazione insufficiente" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Caricamento non riuscito. Impossibile trovare il file caricato." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Caricamento non riuscito. Impossibile ottenere informazioni sul file." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Cartella non valida." diff --git a/l10n/it/settings.po b/l10n/it/settings.po index d3f2015ed5b..2edd7721bcf 100644 --- a/l10n/it/settings.po +++ b/l10n/it/settings.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 12:01+0000\n" +"Last-Translator: Paolo Velati <paolo.velati@gmail.com>\n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -433,18 +433,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "L'ultimo cron è stato eseguito alle %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "L'ultimo cron è stato eseguito alle %s. È più di un ora fa, qualcosa sembra sbagliato." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron non è ancora stato eseguito!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/it/user_ldap.po b/l10n/it/user_ldap.po index 0f6dbc21554..da54354cf9c 100644 --- a/l10n/it/user_ldap.po +++ b/l10n/it/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 22:50+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ja/files.po b/l10n/ja/files.po index 53eda260327..02c744dddc1 100644 --- a/l10n/ja/files.po +++ b/l10n/ja/files.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -49,7 +49,7 @@ msgid "" "allowed." msgstr "無効な名前、'\\', '/', '<', '>', ':', '\"', '|', '?', '*' は使用できません。" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "目標のフォルダは移動されたか、削除されました。" @@ -95,54 +95,54 @@ msgstr "アップロードディレクトリを設定できません。" msgid "Invalid Token" msgstr "無効なトークン" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "ファイルは何もアップロードされていません。不明なエラー" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "エラーはありません。ファイルのアップロードは成功しました" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "アップロードファイルはHTMLフォームで指定された MAX_FILE_SIZE の制限を超えています" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "アップロードファイルは一部分だけアップロードされました" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "ファイルはアップロードされませんでした" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "一時保存フォルダーが見つかりません" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "ディスクへの書き込みに失敗しました" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "ストレージに十分な空き容量がありません" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "アップロードに失敗。アップロード済みのファイルを見つけることができませんでした。" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "アップロードに失敗。ファイル情報を取得できませんでした。" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "無効なディレクトリです。" diff --git a/l10n/ja/user_ldap.po b/l10n/ja/user_ldap.po index 879766d023d..e670589dd74 100644 --- a/l10n/ja/user_ldap.po +++ b/l10n/ja/user_ldap.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-13 17:12-0400\n" -"PO-Revision-Date: 2014-03-11 13:31+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: plazmism <gomidori@live.jp>\n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ka_GE/files.po b/l10n/ka_GE/files.po index edcf2c73318..227a54b6dd7 100644 --- a/l10n/ka_GE/files.po +++ b/l10n/ka_GE/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -42,7 +42,7 @@ msgid "" "allowed." msgstr "არადაშვებადი სახელი, '\\', '/', '<', '>', ':', '\"', '|', '?' და '*' არ არის დაიშვებული." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "ფაილი არ აიტვირთა. უცნობი შეცდომა" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "ატვირთული ფაილი აჭარბებს MAX_FILE_SIZE დირექტივას, რომელიც მითითებულია HTML ფორმაში" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "ატვირთული ფაილი მხოლოდ ნაწილობრივ აიტვირთა" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "ფაილი არ აიტვირთა" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "დროებითი საქაღალდე არ არსებობს" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "შეცდომა დისკზე ჩაწერისას" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "საცავში საკმარისი ადგილი არ არის" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "დაუშვებელი დირექტორია." diff --git a/l10n/ka_GE/user_ldap.po b/l10n/ka_GE/user_ldap.po index 848926c0e6f..ea64bec0b7f 100644 --- a/l10n/ka_GE/user_ldap.po +++ b/l10n/ka_GE/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/km/files.po b/l10n/km/files.po index becad9cf512..828078cedad 100644 --- a/l10n/km/files.po +++ b/l10n/km/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Khmer (http://www.transifex.com/projects/p/owncloud/language/km/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: km\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/km/user_ldap.po b/l10n/km/user_ldap.po index 9a3c86b8c51..5f8d728426c 100644 --- a/l10n/km/user_ldap.po +++ b/l10n/km/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Khmer (http://www.transifex.com/projects/p/owncloud/language/km/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ko/files.po b/l10n/ko/files.po index 056ec258471..45ee79b1c1a 100644 --- a/l10n/ko/files.po +++ b/l10n/ko/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -48,7 +48,7 @@ msgid "" "allowed." msgstr "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -94,54 +94,54 @@ msgstr "업로드 디렉터리를 설정할 수 없습니다." msgid "Invalid Token" msgstr "잘못된 토큰" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "파일 업로드에 성공하였습니다." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "업로드한 파일 크기가 HTML 폼의 MAX_FILE_SIZE보다 큼" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "파일의 일부분만 업로드됨" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "파일이 업로드되지 않았음" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "임시 폴더가 없음" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "디스크에 쓰지 못했습니다" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "저장소가 용량이 충분하지 않습니다." -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "올바르지 않은 디렉터리입니다." diff --git a/l10n/ko/user_ldap.po b/l10n/ko/user_ldap.po index c8074d818e6..06500e88a3f 100644 --- a/l10n/ko/user_ldap.po +++ b/l10n/ko/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ku_IQ/files.po b/l10n/ku_IQ/files.po index 64de8738b2c..36645752f11 100644 --- a/l10n/ku_IQ/files.po +++ b/l10n/ku_IQ/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/ku_IQ/user_ldap.po b/l10n/ku_IQ/user_ldap.po index 1305adc5d8f..4635426b59a 100644 --- a/l10n/ku_IQ/user_ldap.po +++ b/l10n/ku_IQ/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/lb/files.po b/l10n/lb/files.po index 52508632146..9f74628eee0 100644 --- a/l10n/lb/files.po +++ b/l10n/lb/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Keen Feeler, Datei ass komplett ropgelueden ginn" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Déi ropgelueden Datei ass nëmmen hallef ropgelueden ginn" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Et ass kee Fichier ropgeluede ginn" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Et feelt en temporären Dossier" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Konnt net op den Disk schreiwen" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "Upload ofgebrach." -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach." -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/lb/user_ldap.po b/l10n/lb/user_ldap.po index fe03047f218..4edf0855c49 100644 --- a/l10n/lb/user_ldap.po +++ b/l10n/lb/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/lt_LT/files.po b/l10n/lt_LT/files.po index 8c931cc06c8..7d183402126 100644 --- a/l10n/lt_LT/files.po +++ b/l10n/lt_LT/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -45,7 +45,7 @@ msgid "" "allowed." msgstr "Neleistinas pavadinimas, '\\', '/', '<', '>', ':', '\"', '|', '?' ir '*' yra neleidžiami." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -91,54 +91,54 @@ msgstr "Nepavyksta nustatyti įkėlimų katalogo." msgid "Invalid Token" msgstr "Netinkamas ženklas" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Failai nebuvo įkelti dėl nežinomos priežasties" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Failas įkeltas sėkmingai, be klaidų" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Įkeliamas failas yra didesnis nei leidžia upload_max_filesize php.ini faile:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Failas buvo įkeltas tik dalinai" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nebuvo įkeltas joks failas" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Nėra laikinojo katalogo" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Nepavyko įrašyti į diską" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nepakanka vietos serveryje" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Įkėlimas nepavyko. Nepavyko rasti įkelto failo" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Įkėlimas nepavyko. Nepavyko gauti failo informacijos." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Neteisingas aplankas" diff --git a/l10n/lt_LT/user_ldap.po b/l10n/lt_LT/user_ldap.po index a67be7dfd94..074b5567000 100644 --- a/l10n/lt_LT/user_ldap.po +++ b/l10n/lt_LT/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/lv/files.po b/l10n/lv/files.po index cb6b1128af0..23f5f3998b0 100644 --- a/l10n/lv/files.po +++ b/l10n/lv/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -89,54 +89,54 @@ msgstr "Nevar uzstādīt augšupielādes mapi." msgid "Invalid Token" msgstr "Nepareiza pilnvara" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Netika augšupielādēta neviena datne. Nezināma kļūda" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Viss kārtībā, datne augšupielādēta veiksmīga" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Augšupielādētā datne ir tikai daļēji augšupielādēta" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Neviena datne netika augšupielādēta" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Trūkst pagaidu mapes" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Neizdevās saglabāt diskā" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nav pietiekami daudz vietas" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Nederīga direktorija." diff --git a/l10n/lv/user_ldap.po b/l10n/lv/user_ldap.po index db3bc0393e7..90f2e4597e8 100644 --- a/l10n/lv/user_ldap.po +++ b/l10n/lv/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/mk/files.po b/l10n/mk/files.po index a397c54f04a..7f907ff611e 100644 --- a/l10n/mk/files.po +++ b/l10n/mk/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Неправилно име. , '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не се дозволени." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -89,54 +89,54 @@ msgstr "Не може да се постави папката за префрл msgid "Invalid Token" msgstr "Грешен токен" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ниту еден фајл не се вчита. Непозната грешка" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Датотеката беше успешно подигната." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Датотеката беше само делумно подигната." -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Не беше подигната датотека." -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Недостасува привремена папка" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Неуспеав да запишам на диск" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Нема доволно слободен сториџ" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Префрлањето е неуспешно. Не можам да го најдам префрлената датотека." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Погрешна папка." diff --git a/l10n/mk/user_ldap.po b/l10n/mk/user_ldap.po index 2b41dae61bc..9fbc64a8403 100644 --- a/l10n/mk/user_ldap.po +++ b/l10n/mk/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ms_MY/files.po b/l10n/ms_MY/files.po index 2162290bb8a..ceca8d5e295 100644 --- a/l10n/ms_MY/files.po +++ b/l10n/ms_MY/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Tiada fail dimuatnaik. Ralat tidak diketahui." -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Tiada ralat berlaku, fail berjaya dimuatnaik" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Fail yang dimuatnaik tidak lengkap" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Tiada fail dimuatnaik" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Direktori sementara hilang" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Gagal untuk disimpan" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "Muatnaik dibatalkan." -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/ms_MY/user_ldap.po b/l10n/ms_MY/user_ldap.po index 703f27af485..ffaf5f23caa 100644 --- a/l10n/ms_MY/user_ldap.po +++ b/l10n/ms_MY/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nb_NO/files.po b/l10n/nb_NO/files.po index 1988ef019cc..d81379a26d1 100644 --- a/l10n/nb_NO/files.po +++ b/l10n/nb_NO/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -92,54 +92,54 @@ msgstr "Kunne ikke sette opplastingskatalog." msgid "Invalid Token" msgstr "Ugyldig nøkkel" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ingen filer ble lastet opp. Ukjent feil." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Pust ut, ingen feil. Filen ble lastet opp problemfritt" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Filstørrelsen overskrider maksgrensedirektivet upload_max_filesize i php.ini-konfigurasjonen." -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Filen du prøvde å laste opp var større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Filen du prøvde å laste opp ble kun delvis lastet opp" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ingen filer ble lastet opp" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Mangler midlertidig mappe" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Klarte ikke å skrive til disk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Ikke nok lagringsplass" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Opplasting feilet. Fant ikke opplastet fil." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Opplasting feilet. Klarte ikke å finne informasjon om fil." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ugyldig katalog." diff --git a/l10n/nb_NO/user_ldap.po b/l10n/nb_NO/user_ldap.po index ae84487d1bb..8de5b111cf9 100644 --- a/l10n/nb_NO/user_ldap.po +++ b/l10n/nb_NO/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nl/files.po b/l10n/nl/files.po index efbd44ed5ba..d478170f83b 100644 --- a/l10n/nl/files.po +++ b/l10n/nl/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "De doelmap is verplaatst of verwijderd." @@ -90,54 +90,54 @@ msgstr "Kan upload map niet instellen." msgid "Invalid Token" msgstr "Ongeldig Token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Er was geen bestand geladen. Onbekende fout" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "De upload van het bestand is goedgegaan." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Het bestand overschrijdt de MAX_FILE_SIZE instelling dat is opgegeven in het HTML formulier" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Het bestand is gedeeltelijk geüpload" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Er is geen bestand geüpload" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Er ontbreekt een tijdelijke map" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Schrijven naar schijf mislukt" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Niet genoeg opslagruimte beschikbaar" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Upload mislukt. Kon ge-uploade bestand niet vinden" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Upload mislukt, Kon geen bestandsinfo krijgen." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ongeldige directory." diff --git a/l10n/nl/settings.po b/l10n/nl/settings.po index 821671a92f8..8113608307e 100644 --- a/l10n/nl/settings.po +++ b/l10n/nl/settings.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 19:01+0000\n" +"Last-Translator: André Koot <meneer@tken.net>\n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -433,18 +433,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Laatst uitgevoerde cron op %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Laatst uitgevoerde cron op %s. Dat is langer dan een uur geleden, er is iets fout gegaan." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron is nog niet uitgevoerd!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/nl/user_ldap.po b/l10n/nl/user_ldap.po index d3f5eb8d77f..a4759a0e924 100644 --- a/l10n/nl/user_ldap.po +++ b/l10n/nl/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 18:30+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: André Koot <meneer@tken.net>\n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index e9994a268cc..9f4fa5869fa 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -45,7 +45,7 @@ msgid "" "allowed." msgstr "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -91,54 +91,54 @@ msgstr "Klarte ikkje å endra opplastingsmappa." msgid "Invalid Token" msgstr "Ugyldig token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ingen filer lasta opp. Ukjend feil" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Ingen feil, fila vart lasta opp" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Fila vart berre delvis lasta opp" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ingen filer vart lasta opp" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Manglar ei mellombels mappe" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Klarte ikkje skriva til disk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Ikkje nok lagringsplass tilgjengeleg" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Feil ved opplasting. Klarte ikkje å finna opplasta fil." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Feil ved opplasting. Klarte ikkje å henta filinfo." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Ugyldig mappe." diff --git a/l10n/nn_NO/user_ldap.po b/l10n/nn_NO/user_ldap.po index 480d38d38db..37d6774cb71 100644 --- a/l10n/nn_NO/user_ldap.po +++ b/l10n/nn_NO/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/oc/files.po b/l10n/oc/files.po index f8210485c0a..7f609bb3b07 100644 --- a/l10n/oc/files.po +++ b/l10n/oc/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Amontcargament capitat, pas d'errors" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Lo fichièr amontcargat es mai gròs que la directiva «MAX_FILE_SIZE» especifiada dins lo formulari HTML" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Lo fichièr foguèt pas completament amontcargat" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Cap de fichièrs son estats amontcargats" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Un dorsièr temporari manca" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "L'escriptura sul disc a fracassat" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "Amontcargar anullat." -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. " -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/oc/user_ldap.po b/l10n/oc/user_ldap.po index 40d6de703ce..1c69513cbd9 100644 --- a/l10n/oc/user_ldap.po +++ b/l10n/oc/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/pl/files.po b/l10n/pl/files.po index d00c7fd8d5a..9473672b266 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -48,7 +48,7 @@ msgid "" "allowed." msgstr "Nieprawidłowa nazwa. Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*' są niedozwolone." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Folder docelowy został przeniesiony lub usunięty" @@ -94,54 +94,54 @@ msgstr "Nie można ustawić katalog wczytywania." msgid "Invalid Token" msgstr "Nieprawidłowy Token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Żaden plik nie został załadowany. Nieznany błąd" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Nie było błędów, plik wysłano poprawnie." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Załadowany plik został wysłany tylko częściowo." -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nie wysłano żadnego pliku" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Brak folderu tymczasowego" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Błąd zapisu na dysk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Za mało dostępnego miejsca" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Nieudane przesłanie. Nie można znaleźć przesyłanego pliku" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Nieudane przesłanie. Nie można pobrać informacji o pliku." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Zła ścieżka." diff --git a/l10n/pl/settings.po b/l10n/pl/settings.po index 1bd3e4c2dac..d1e47d0889e 100644 --- a/l10n/pl/settings.po +++ b/l10n/pl/settings.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 10:42+0000\n" +"Last-Translator: bobie <maciej.przybecki@gmail.com>\n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -432,18 +432,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Ostatni cron był uruchomiony %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Ostatni cron był uruchomiony %s. To jest więcej niż godzinę temu, wygląda na to, że coś jest nie tak." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron nie został jeszcze uruchomiony!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/pl/user_ldap.po b/l10n/pl/user_ldap.po index c0c5d208854..25da5a7a43f 100644 --- a/l10n/pl/user_ldap.po +++ b/l10n/pl/user_ldap.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-13 17:12-0400\n" -"PO-Revision-Date: 2014-03-13 07:30+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: maxxx <maxxxrally@gmail.com>\n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/pl_PL/core.po b/l10n/pl_PL/core.po deleted file mode 100644 index 7b4ef7d09a1..00000000000 --- a/l10n/pl_PL/core.po +++ /dev/null @@ -1,617 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-06-04 02:29+0200\n" -"PO-Revision-Date: 2013-06-03 00:32+0000\n" -"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/share.php:97 -#, php-format -msgid "User %s shared a file with you" -msgstr "" - -#: ajax/share.php:99 -#, php-format -msgid "User %s shared a folder with you" -msgstr "" - -#: ajax/share.php:101 -#, php-format -msgid "" -"User %s shared the file \"%s\" with you. It is available for download here: " -"%s" -msgstr "" - -#: ajax/share.php:104 -#, php-format -msgid "" -"User %s shared the folder \"%s\" with you. It is available for download " -"here: %s" -msgstr "" - -#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 -msgid "Category type not provided." -msgstr "" - -#: ajax/vcategories/add.php:30 -msgid "No category to add?" -msgstr "" - -#: ajax/vcategories/add.php:37 -#, php-format -msgid "This category already exists: %s" -msgstr "" - -#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 -#: ajax/vcategories/favorites.php:24 -#: ajax/vcategories/removeFromFavorites.php:26 -msgid "Object type not provided." -msgstr "" - -#: ajax/vcategories/addToFavorites.php:30 -#: ajax/vcategories/removeFromFavorites.php:30 -#, php-format -msgid "%s ID not provided." -msgstr "" - -#: ajax/vcategories/addToFavorites.php:35 -#, php-format -msgid "Error adding %s to favorites." -msgstr "" - -#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 -msgid "No categories selected for deletion." -msgstr "" - -#: ajax/vcategories/removeFromFavorites.php:35 -#, php-format -msgid "Error removing %s from favorites." -msgstr "" - -#: js/config.php:34 -msgid "Sunday" -msgstr "" - -#: js/config.php:35 -msgid "Monday" -msgstr "" - -#: js/config.php:36 -msgid "Tuesday" -msgstr "" - -#: js/config.php:37 -msgid "Wednesday" -msgstr "" - -#: js/config.php:38 -msgid "Thursday" -msgstr "" - -#: js/config.php:39 -msgid "Friday" -msgstr "" - -#: js/config.php:40 -msgid "Saturday" -msgstr "" - -#: js/config.php:45 -msgid "January" -msgstr "" - -#: js/config.php:46 -msgid "February" -msgstr "" - -#: js/config.php:47 -msgid "March" -msgstr "" - -#: js/config.php:48 -msgid "April" -msgstr "" - -#: js/config.php:49 -msgid "May" -msgstr "" - -#: js/config.php:50 -msgid "June" -msgstr "" - -#: js/config.php:51 -msgid "July" -msgstr "" - -#: js/config.php:52 -msgid "August" -msgstr "" - -#: js/config.php:53 -msgid "September" -msgstr "" - -#: js/config.php:54 -msgid "October" -msgstr "" - -#: js/config.php:55 -msgid "November" -msgstr "" - -#: js/config.php:56 -msgid "December" -msgstr "" - -#: js/js.js:286 -msgid "Settings" -msgstr "Ustawienia" - -#: js/js.js:718 -msgid "seconds ago" -msgstr "" - -#: js/js.js:719 -msgid "1 minute ago" -msgstr "" - -#: js/js.js:720 -msgid "{minutes} minutes ago" -msgstr "" - -#: js/js.js:721 -msgid "1 hour ago" -msgstr "" - -#: js/js.js:722 -msgid "{hours} hours ago" -msgstr "" - -#: js/js.js:723 -msgid "today" -msgstr "" - -#: js/js.js:724 -msgid "yesterday" -msgstr "" - -#: js/js.js:725 -msgid "{days} days ago" -msgstr "" - -#: js/js.js:726 -msgid "last month" -msgstr "" - -#: js/js.js:727 -msgid "{months} months ago" -msgstr "" - -#: js/js.js:728 -msgid "months ago" -msgstr "" - -#: js/js.js:729 -msgid "last year" -msgstr "" - -#: js/js.js:730 -msgid "years ago" -msgstr "" - -#: js/oc-dialogs.js:117 -msgid "Choose" -msgstr "" - -#: js/oc-dialogs.js:122 -msgid "Cancel" -msgstr "" - -#: js/oc-dialogs.js:141 js/oc-dialogs.js:200 -msgid "Error loading file picker template" -msgstr "" - -#: js/oc-dialogs.js:164 -msgid "Yes" -msgstr "" - -#: js/oc-dialogs.js:172 -msgid "No" -msgstr "" - -#: js/oc-dialogs.js:185 -msgid "Ok" -msgstr "" - -#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 -#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 -msgid "The object type is not specified." -msgstr "" - -#: js/oc-vcategories.js:14 js/oc-vcategories.js:80 js/oc-vcategories.js:95 -#: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195 -#: js/oc-vcategories.js:199 js/share.js:136 js/share.js:143 js/share.js:577 -#: js/share.js:589 -msgid "Error" -msgstr "" - -#: js/oc-vcategories.js:179 -msgid "The app name is not specified." -msgstr "" - -#: js/oc-vcategories.js:194 -msgid "The required file {file} is not installed!" -msgstr "" - -#: js/share.js:30 js/share.js:45 js/share.js:87 -msgid "Shared" -msgstr "" - -#: js/share.js:90 -msgid "Share" -msgstr "" - -#: js/share.js:125 js/share.js:617 -msgid "Error while sharing" -msgstr "" - -#: js/share.js:136 -msgid "Error while unsharing" -msgstr "" - -#: js/share.js:143 -msgid "Error while changing permissions" -msgstr "" - -#: js/share.js:152 -msgid "Shared with you and the group {group} by {owner}" -msgstr "" - -#: js/share.js:154 -msgid "Shared with you by {owner}" -msgstr "" - -#: js/share.js:159 -msgid "Share with" -msgstr "" - -#: js/share.js:164 -msgid "Share with link" -msgstr "" - -#: js/share.js:167 -msgid "Password protect" -msgstr "" - -#: js/share.js:169 templates/installation.php:54 templates/login.php:26 -msgid "Password" -msgstr "" - -#: js/share.js:173 -msgid "Email link to person" -msgstr "" - -#: js/share.js:174 -msgid "Send" -msgstr "" - -#: js/share.js:178 -msgid "Set expiration date" -msgstr "" - -#: js/share.js:179 -msgid "Expiration date" -msgstr "" - -#: js/share.js:211 -msgid "Share via email:" -msgstr "" - -#: js/share.js:213 -msgid "No people found" -msgstr "" - -#: js/share.js:251 -msgid "Resharing is not allowed" -msgstr "" - -#: js/share.js:287 -msgid "Shared in {item} with {user}" -msgstr "" - -#: js/share.js:308 -msgid "Unshare" -msgstr "" - -#: js/share.js:320 -msgid "can edit" -msgstr "" - -#: js/share.js:322 -msgid "access control" -msgstr "" - -#: js/share.js:325 -msgid "create" -msgstr "" - -#: js/share.js:328 -msgid "update" -msgstr "" - -#: js/share.js:331 -msgid "delete" -msgstr "" - -#: js/share.js:334 -msgid "share" -msgstr "" - -#: js/share.js:368 js/share.js:564 -msgid "Password protected" -msgstr "" - -#: js/share.js:577 -msgid "Error unsetting expiration date" -msgstr "" - -#: js/share.js:589 -msgid "Error setting expiration date" -msgstr "" - -#: js/share.js:604 -msgid "Sending ..." -msgstr "" - -#: js/share.js:615 -msgid "Email sent" -msgstr "" - -#: js/update.js:14 -msgid "" -"The update was unsuccessful. Please report this issue to the <a " -"href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud " -"community</a>." -msgstr "" - -#: js/update.js:18 -msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" - -#: lostpassword/controller.php:48 -msgid "ownCloud password reset" -msgstr "" - -#: lostpassword/templates/email.php:2 -msgid "Use the following link to reset your password: {link}" -msgstr "" - -#: lostpassword/templates/lostpassword.php:4 -msgid "" -"The link to reset your password has been sent to your email.<br>If you do " -"not receive it within a reasonable amount of time, check your spam/junk " -"folders.<br>If it is not there ask your local administrator ." -msgstr "" - -#: lostpassword/templates/lostpassword.php:12 -msgid "Request failed!<br>Did you make sure your email/username was right?" -msgstr "" - -#: lostpassword/templates/lostpassword.php:15 -msgid "You will receive a link to reset your password via Email." -msgstr "" - -#: lostpassword/templates/lostpassword.php:18 templates/installation.php:48 -#: templates/login.php:19 -msgid "Username" -msgstr "Nazwa użytkownika" - -#: lostpassword/templates/lostpassword.php:21 -msgid "Request reset" -msgstr "" - -#: lostpassword/templates/resetpassword.php:4 -msgid "Your password was reset" -msgstr "" - -#: lostpassword/templates/resetpassword.php:5 -msgid "To login page" -msgstr "" - -#: lostpassword/templates/resetpassword.php:8 -msgid "New password" -msgstr "" - -#: lostpassword/templates/resetpassword.php:11 -msgid "Reset password" -msgstr "" - -#: strings.php:5 -msgid "Personal" -msgstr "" - -#: strings.php:6 -msgid "Users" -msgstr "" - -#: strings.php:7 -msgid "Apps" -msgstr "" - -#: strings.php:8 -msgid "Admin" -msgstr "" - -#: strings.php:9 -msgid "Help" -msgstr "" - -#: templates/403.php:12 -msgid "Access forbidden" -msgstr "" - -#: templates/404.php:12 -msgid "Cloud not found" -msgstr "" - -#: templates/edit_categories_dialog.php:4 -msgid "Edit categories" -msgstr "" - -#: templates/edit_categories_dialog.php:16 -msgid "Add" -msgstr "" - -#: templates/installation.php:24 templates/installation.php:31 -#: templates/installation.php:38 -msgid "Security Warning" -msgstr "" - -#: templates/installation.php:25 -msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" -msgstr "" - -#: templates/installation.php:26 -msgid "Please update your PHP installation to use ownCloud securely." -msgstr "" - -#: templates/installation.php:32 -msgid "" -"No secure random number generator is available, please enable the PHP " -"OpenSSL extension." -msgstr "" - -#: templates/installation.php:33 -msgid "" -"Without a secure random number generator an attacker may be able to predict " -"password reset tokens and take over your account." -msgstr "" - -#: templates/installation.php:39 -msgid "" -"Your data directory and files are probably accessible from the internet " -"because the .htaccess file does not work." -msgstr "" - -#: templates/installation.php:40 -msgid "" -"For information how to properly configure your server, please see the <a " -"href=\"http://doc.owncloud.org/server/5.0/admin_manual/installation.html\" " -"target=\"_blank\">documentation</a>." -msgstr "" - -#: templates/installation.php:44 -msgid "Create an <strong>admin account</strong>" -msgstr "" - -#: templates/installation.php:62 -msgid "Advanced" -msgstr "" - -#: templates/installation.php:64 -msgid "Data folder" -msgstr "" - -#: templates/installation.php:74 -msgid "Configure the database" -msgstr "" - -#: templates/installation.php:79 templates/installation.php:91 -#: templates/installation.php:102 templates/installation.php:113 -#: templates/installation.php:125 -msgid "will be used" -msgstr "" - -#: templates/installation.php:137 -msgid "Database user" -msgstr "" - -#: templates/installation.php:144 -msgid "Database password" -msgstr "" - -#: templates/installation.php:149 -msgid "Database name" -msgstr "" - -#: templates/installation.php:159 -msgid "Database tablespace" -msgstr "" - -#: templates/installation.php:166 -msgid "Database host" -msgstr "" - -#: templates/installation.php:172 -msgid "Finish setup" -msgstr "" - -#: templates/layout.guest.php:40 -msgid "web services under your control" -msgstr "" - -#: templates/layout.user.php:37 -#, php-format -msgid "%s is available. Get more information on how to update." -msgstr "" - -#: templates/layout.user.php:62 -msgid "Log out" -msgstr "" - -#: templates/login.php:9 -msgid "Automatic logon rejected!" -msgstr "" - -#: templates/login.php:10 -msgid "" -"If you did not change your password recently, your account may be " -"compromised!" -msgstr "" - -#: templates/login.php:12 -msgid "Please change your password to secure your account again." -msgstr "" - -#: templates/login.php:34 -msgid "Lost your password?" -msgstr "" - -#: templates/login.php:39 -msgid "remember" -msgstr "" - -#: templates/login.php:41 -msgid "Log in" -msgstr "" - -#: templates/login.php:47 -msgid "Alternative Logins" -msgstr "" - -#: templates/part.pagenavi.php:3 -msgid "prev" -msgstr "" - -#: templates/part.pagenavi.php:20 -msgid "next" -msgstr "" - -#: templates/update.php:3 -#, php-format -msgid "Updating ownCloud to version %s, this may take a while." -msgstr "" diff --git a/l10n/pl_PL/files.po b/l10n/pl_PL/files.po deleted file mode 100644 index be28fc5ba39..00000000000 --- a/l10n/pl_PL/files.po +++ /dev/null @@ -1,322 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-06-03 02:27+0200\n" -"PO-Revision-Date: 2013-06-02 23:17+0000\n" -"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/move.php:17 -#, php-format -msgid "Could not move %s - File with this name already exists" -msgstr "" - -#: ajax/move.php:27 ajax/move.php:30 -#, php-format -msgid "Could not move %s" -msgstr "" - -#: ajax/upload.php:19 -msgid "No file was uploaded. Unknown error" -msgstr "" - -#: ajax/upload.php:26 -msgid "There is no error, the file uploaded with success" -msgstr "" - -#: ajax/upload.php:27 -msgid "" -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "" - -#: ajax/upload.php:29 -msgid "" -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " -"the HTML form" -msgstr "" - -#: ajax/upload.php:30 -msgid "The uploaded file was only partially uploaded" -msgstr "" - -#: ajax/upload.php:31 -msgid "No file was uploaded" -msgstr "" - -#: ajax/upload.php:32 -msgid "Missing a temporary folder" -msgstr "" - -#: ajax/upload.php:33 -msgid "Failed to write to disk" -msgstr "" - -#: ajax/upload.php:51 -msgid "Not enough storage available" -msgstr "" - -#: ajax/upload.php:83 -msgid "Invalid directory." -msgstr "" - -#: appinfo/app.php:12 -msgid "Files" -msgstr "" - -#: js/fileactions.js:116 -msgid "Share" -msgstr "" - -#: js/fileactions.js:126 -msgid "Delete permanently" -msgstr "" - -#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 -msgid "Delete" -msgstr "" - -#: js/fileactions.js:194 -msgid "Rename" -msgstr "" - -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 -msgid "Pending" -msgstr "" - -#: js/filelist.js:259 js/filelist.js:261 -msgid "{new_name} already exists" -msgstr "" - -#: js/filelist.js:259 js/filelist.js:261 -msgid "replace" -msgstr "" - -#: js/filelist.js:259 -msgid "suggest name" -msgstr "" - -#: js/filelist.js:259 js/filelist.js:261 -msgid "cancel" -msgstr "" - -#: js/filelist.js:306 -msgid "replaced {new_name} with {old_name}" -msgstr "" - -#: js/filelist.js:306 -msgid "undo" -msgstr "" - -#: js/filelist.js:331 -msgid "perform delete operation" -msgstr "" - -#: js/filelist.js:413 -msgid "1 file uploading" -msgstr "" - -#: js/filelist.js:416 js/filelist.js:470 -msgid "files uploading" -msgstr "" - -#: js/files.js:52 -msgid "'.' is an invalid file name." -msgstr "" - -#: js/files.js:56 -msgid "File name cannot be empty." -msgstr "" - -#: js/files.js:64 -msgid "" -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " -"allowed." -msgstr "" - -#: js/files.js:78 -msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" - -#: js/files.js:82 -msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" - -#: js/files.js:231 -msgid "" -"Your download is being prepared. This might take some time if the files are " -"big." -msgstr "" - -#: js/files.js:264 -msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "" - -#: js/files.js:277 -msgid "Not enough space available" -msgstr "" - -#: js/files.js:317 -msgid "Upload cancelled." -msgstr "" - -#: js/files.js:413 -msgid "" -"File upload is in progress. Leaving the page now will cancel the upload." -msgstr "" - -#: js/files.js:486 -msgid "URL cannot be empty." -msgstr "" - -#: js/files.js:491 -msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" - -#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 -msgid "Error" -msgstr "" - -#: js/files.js:877 templates/index.php:69 -msgid "Name" -msgstr "" - -#: js/files.js:878 templates/index.php:80 -msgid "Size" -msgstr "" - -#: js/files.js:879 templates/index.php:82 -msgid "Modified" -msgstr "" - -#: js/files.js:898 -msgid "1 folder" -msgstr "" - -#: js/files.js:900 -msgid "{count} folders" -msgstr "" - -#: js/files.js:908 -msgid "1 file" -msgstr "" - -#: js/files.js:910 -msgid "{count} files" -msgstr "" - -#: lib/app.php:53 -msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" - -#: lib/app.php:73 -msgid "Unable to rename file" -msgstr "" - -#: lib/helper.php:11 templates/index.php:18 -msgid "Upload" -msgstr "" - -#: templates/admin.php:5 -msgid "File handling" -msgstr "" - -#: templates/admin.php:7 -msgid "Maximum upload size" -msgstr "" - -#: templates/admin.php:10 -msgid "max. possible: " -msgstr "" - -#: templates/admin.php:15 -msgid "Needed for multi-file and folder downloads." -msgstr "" - -#: templates/admin.php:17 -msgid "Enable ZIP-download" -msgstr "" - -#: templates/admin.php:20 -msgid "0 is unlimited" -msgstr "" - -#: templates/admin.php:22 -msgid "Maximum input size for ZIP files" -msgstr "" - -#: templates/admin.php:26 -msgid "Save" -msgstr "Zapisz" - -#: templates/index.php:7 -msgid "New" -msgstr "" - -#: templates/index.php:10 -msgid "Text file" -msgstr "" - -#: templates/index.php:12 -msgid "Folder" -msgstr "" - -#: templates/index.php:14 -msgid "From link" -msgstr "" - -#: templates/index.php:42 -msgid "Deleted files" -msgstr "" - -#: templates/index.php:48 -msgid "Cancel upload" -msgstr "" - -#: templates/index.php:54 -msgid "You don’t have write permissions here." -msgstr "" - -#: templates/index.php:61 -msgid "Nothing in here. Upload something!" -msgstr "" - -#: templates/index.php:75 -msgid "Download" -msgstr "" - -#: templates/index.php:87 templates/index.php:88 -msgid "Unshare" -msgstr "" - -#: templates/index.php:107 -msgid "Upload too large" -msgstr "" - -#: templates/index.php:109 -msgid "" -"The files you are trying to upload exceed the maximum size for file uploads " -"on this server." -msgstr "" - -#: templates/index.php:114 -msgid "Files are being scanned, please wait." -msgstr "" - -#: templates/index.php:117 -msgid "Current scanning" -msgstr "" - -#: templates/upgrade.php:2 -msgid "Upgrading filesystem cache..." -msgstr "" diff --git a/l10n/pl_PL/files_encryption.po b/l10n/pl_PL/files_encryption.po deleted file mode 100644 index 6b66a61ef66..00000000000 --- a/l10n/pl_PL/files_encryption.po +++ /dev/null @@ -1,103 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-30 02:27+0200\n" -"PO-Revision-Date: 2013-05-30 00:27+0000\n" -"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/adminrecovery.php:29 -msgid "Recovery key successfully enabled" -msgstr "" - -#: ajax/adminrecovery.php:34 -msgid "" -"Could not enable recovery key. Please check your recovery key password!" -msgstr "" - -#: ajax/adminrecovery.php:48 -msgid "Recovery key successfully disabled" -msgstr "" - -#: ajax/adminrecovery.php:53 -msgid "" -"Could not disable recovery key. Please check your recovery key password!" -msgstr "" - -#: ajax/changeRecoveryPassword.php:49 -msgid "Password successfully changed." -msgstr "" - -#: ajax/changeRecoveryPassword.php:51 -msgid "Could not change the password. Maybe the old password was not correct." -msgstr "" - -#: js/settings-admin.js:11 -msgid "Saving..." -msgstr "" - -#: templates/settings-admin.php:5 templates/settings-personal.php:4 -msgid "Encryption" -msgstr "" - -#: templates/settings-admin.php:9 -msgid "" -"Enable encryption passwords recovery key (allow sharing to recovery key):" -msgstr "" - -#: templates/settings-admin.php:13 -msgid "Recovery account password" -msgstr "" - -#: templates/settings-admin.php:20 templates/settings-personal.php:18 -msgid "Enabled" -msgstr "" - -#: templates/settings-admin.php:28 templates/settings-personal.php:26 -msgid "Disabled" -msgstr "" - -#: templates/settings-admin.php:32 -msgid "Change encryption passwords recovery key:" -msgstr "" - -#: templates/settings-admin.php:39 -msgid "Old Recovery account password" -msgstr "" - -#: templates/settings-admin.php:46 -msgid "New Recovery account password" -msgstr "" - -#: templates/settings-admin.php:51 -msgid "Change Password" -msgstr "" - -#: templates/settings-personal.php:9 -msgid "Enable password recovery by sharing all files with your administrator:" -msgstr "" - -#: templates/settings-personal.php:11 -msgid "" -"Enabling this option will allow you to reobtain access to your encrypted " -"files if your password is lost" -msgstr "" - -#: templates/settings-personal.php:27 -msgid "File recovery settings updated" -msgstr "" - -#: templates/settings-personal.php:28 -msgid "Could not update file recovery" -msgstr "" diff --git a/l10n/pl_PL/files_external.po b/l10n/pl_PL/files_external.po deleted file mode 100644 index be11b7a0268..00000000000 --- a/l10n/pl_PL/files_external.po +++ /dev/null @@ -1,123 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-25 02:01+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: js/dropbox.js:7 js/dropbox.js:28 js/google.js:16 js/google.js:34 -msgid "Access granted" -msgstr "" - -#: js/dropbox.js:30 js/dropbox.js:96 js/dropbox.js:102 -msgid "Error configuring Dropbox storage" -msgstr "" - -#: js/dropbox.js:65 js/google.js:66 -msgid "Grant access" -msgstr "" - -#: js/dropbox.js:101 -msgid "Please provide a valid Dropbox app key and secret." -msgstr "" - -#: js/google.js:36 js/google.js:93 -msgid "Error configuring Google Drive storage" -msgstr "" - -#: lib/config.php:431 -msgid "" -"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " -"is not possible. Please ask your system administrator to install it." -msgstr "" - -#: lib/config.php:434 -msgid "" -"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting" -" of FTP shares is not possible. Please ask your system administrator to " -"install it." -msgstr "" - -#: lib/config.php:437 -msgid "" -"<b>Warning:</b> The Curl support in PHP is not enabled or installed. " -"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " -"your system administrator to install it." -msgstr "" - -#: templates/settings.php:3 -msgid "External Storage" -msgstr "" - -#: templates/settings.php:9 templates/settings.php:28 -msgid "Folder name" -msgstr "" - -#: templates/settings.php:10 -msgid "External storage" -msgstr "" - -#: templates/settings.php:11 -msgid "Configuration" -msgstr "" - -#: templates/settings.php:12 -msgid "Options" -msgstr "" - -#: templates/settings.php:13 -msgid "Applicable" -msgstr "" - -#: templates/settings.php:33 -msgid "Add storage" -msgstr "" - -#: templates/settings.php:90 -msgid "None set" -msgstr "" - -#: templates/settings.php:91 -msgid "All Users" -msgstr "" - -#: templates/settings.php:92 -msgid "Groups" -msgstr "" - -#: templates/settings.php:100 -msgid "Users" -msgstr "" - -#: templates/settings.php:113 templates/settings.php:114 -#: templates/settings.php:149 templates/settings.php:150 -msgid "Delete" -msgstr "" - -#: templates/settings.php:129 -msgid "Enable User External Storage" -msgstr "" - -#: templates/settings.php:130 -msgid "Allow users to mount their own external storage" -msgstr "" - -#: templates/settings.php:141 -msgid "SSL root certificates" -msgstr "" - -#: templates/settings.php:159 -msgid "Import Root Certificate" -msgstr "" diff --git a/l10n/pl_PL/files_sharing.po b/l10n/pl_PL/files_sharing.po deleted file mode 100644 index c8bd08a2eae..00000000000 --- a/l10n/pl_PL/files_sharing.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-25 02:01+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: templates/authenticate.php:4 -msgid "Password" -msgstr "" - -#: templates/authenticate.php:6 -msgid "Submit" -msgstr "" - -#: templates/public.php:10 -#, php-format -msgid "%s shared the folder %s with you" -msgstr "" - -#: templates/public.php:13 -#, php-format -msgid "%s shared the file %s with you" -msgstr "" - -#: templates/public.php:19 templates/public.php:43 -msgid "Download" -msgstr "" - -#: templates/public.php:40 -msgid "No preview available for" -msgstr "" - -#: templates/public.php:50 -msgid "web services under your control" -msgstr "" diff --git a/l10n/pl_PL/files_trashbin.po b/l10n/pl_PL/files_trashbin.po deleted file mode 100644 index e6ecf010e77..00000000000 --- a/l10n/pl_PL/files_trashbin.po +++ /dev/null @@ -1,84 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-25 02:01+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/delete.php:42 -#, php-format -msgid "Couldn't delete %s permanently" -msgstr "" - -#: ajax/undelete.php:42 -#, php-format -msgid "Couldn't restore %s" -msgstr "" - -#: js/trash.js:7 js/trash.js:96 -msgid "perform restore operation" -msgstr "" - -#: js/trash.js:19 js/trash.js:46 js/trash.js:114 js/trash.js:139 -msgid "Error" -msgstr "" - -#: js/trash.js:34 -msgid "delete file permanently" -msgstr "" - -#: js/trash.js:121 -msgid "Delete permanently" -msgstr "" - -#: js/trash.js:174 templates/index.php:17 -msgid "Name" -msgstr "" - -#: js/trash.js:175 templates/index.php:27 -msgid "Deleted" -msgstr "" - -#: js/trash.js:184 -msgid "1 folder" -msgstr "" - -#: js/trash.js:186 -msgid "{count} folders" -msgstr "" - -#: js/trash.js:194 -msgid "1 file" -msgstr "" - -#: js/trash.js:196 -msgid "{count} files" -msgstr "" - -#: templates/index.php:9 -msgid "Nothing in here. Your trash bin is empty!" -msgstr "" - -#: templates/index.php:20 templates/index.php:22 -msgid "Restore" -msgstr "" - -#: templates/index.php:30 templates/index.php:31 -msgid "Delete" -msgstr "" - -#: templates/part.breadcrumb.php:9 -msgid "Deleted Files" -msgstr "" diff --git a/l10n/pl_PL/files_versions.po b/l10n/pl_PL/files_versions.po deleted file mode 100644 index d6ce265c2af..00000000000 --- a/l10n/pl_PL/files_versions.po +++ /dev/null @@ -1,57 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-25 02:01+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/rollbackVersion.php:15 -#, php-format -msgid "Could not revert: %s" -msgstr "" - -#: history.php:40 -msgid "success" -msgstr "" - -#: history.php:42 -#, php-format -msgid "File %s was reverted to version %s" -msgstr "" - -#: history.php:49 -msgid "failure" -msgstr "" - -#: history.php:51 -#, php-format -msgid "File %s could not be reverted to version %s" -msgstr "" - -#: history.php:69 -msgid "No old versions available" -msgstr "" - -#: history.php:74 -msgid "No path specified" -msgstr "" - -#: js/versions.js:6 -msgid "Versions" -msgstr "" - -#: templates/history.php:20 -msgid "Revert a file to a previous version by clicking on its revert button" -msgstr "" diff --git a/l10n/pl_PL/lib.po b/l10n/pl_PL/lib.po deleted file mode 100644 index e91de0bce1e..00000000000 --- a/l10n/pl_PL/lib.po +++ /dev/null @@ -1,245 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-06-04 02:29+0200\n" -"PO-Revision-Date: 2013-06-03 00:32+0000\n" -"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: app.php:357 -msgid "Help" -msgstr "" - -#: app.php:370 -msgid "Personal" -msgstr "" - -#: app.php:381 -msgid "Settings" -msgstr "Ustawienia" - -#: app.php:393 -msgid "Users" -msgstr "" - -#: app.php:406 -msgid "Apps" -msgstr "" - -#: app.php:414 -msgid "Admin" -msgstr "" - -#: files.php:210 -msgid "ZIP download is turned off." -msgstr "" - -#: files.php:211 -msgid "Files need to be downloaded one by one." -msgstr "" - -#: files.php:212 files.php:245 -msgid "Back to Files" -msgstr "" - -#: files.php:242 -msgid "Selected files too large to generate zip file." -msgstr "" - -#: helper.php:236 -msgid "couldn't be determined" -msgstr "" - -#: json.php:28 -msgid "Application is not enabled" -msgstr "" - -#: json.php:39 json.php:62 json.php:73 -msgid "Authentication error" -msgstr "" - -#: json.php:51 -msgid "Token expired. Please reload page." -msgstr "" - -#: search/provider/file.php:17 search/provider/file.php:35 -msgid "Files" -msgstr "" - -#: search/provider/file.php:26 search/provider/file.php:33 -msgid "Text" -msgstr "" - -#: search/provider/file.php:29 -msgid "Images" -msgstr "" - -#: setup.php:34 -msgid "Set an admin username." -msgstr "" - -#: setup.php:37 -msgid "Set an admin password." -msgstr "" - -#: setup.php:55 -#, php-format -msgid "%s enter the database username." -msgstr "" - -#: setup.php:58 -#, php-format -msgid "%s enter the database name." -msgstr "" - -#: setup.php:61 -#, php-format -msgid "%s you may not use dots in the database name" -msgstr "" - -#: setup.php:64 -#, php-format -msgid "%s set the database host." -msgstr "" - -#: setup.php:132 setup.php:329 setup.php:374 -msgid "PostgreSQL username and/or password not valid" -msgstr "" - -#: setup.php:133 setup.php:238 -msgid "You need to enter either an existing account or the administrator." -msgstr "" - -#: setup.php:155 -msgid "Oracle connection could not be established" -msgstr "" - -#: setup.php:237 -msgid "MySQL username and/or password not valid" -msgstr "" - -#: setup.php:291 setup.php:395 setup.php:404 setup.php:422 setup.php:432 -#: setup.php:441 setup.php:474 setup.php:540 setup.php:566 setup.php:573 -#: setup.php:584 setup.php:591 setup.php:600 setup.php:608 setup.php:617 -#: setup.php:623 -#, php-format -msgid "DB Error: \"%s\"" -msgstr "" - -#: setup.php:292 setup.php:396 setup.php:405 setup.php:423 setup.php:433 -#: setup.php:442 setup.php:475 setup.php:541 setup.php:567 setup.php:574 -#: setup.php:585 setup.php:601 setup.php:609 setup.php:618 -#, php-format -msgid "Offending command was: \"%s\"" -msgstr "" - -#: setup.php:308 -#, php-format -msgid "MySQL user '%s'@'localhost' exists already." -msgstr "" - -#: setup.php:309 -msgid "Drop this user from MySQL" -msgstr "" - -#: setup.php:314 -#, php-format -msgid "MySQL user '%s'@'%%' already exists" -msgstr "" - -#: setup.php:315 -msgid "Drop this user from MySQL." -msgstr "" - -#: setup.php:466 setup.php:533 -msgid "Oracle username and/or password not valid" -msgstr "" - -#: setup.php:592 setup.php:624 -#, php-format -msgid "Offending command was: \"%s\", name: %s, password: %s" -msgstr "" - -#: setup.php:644 -#, php-format -msgid "MS SQL username and/or password not valid: %s" -msgstr "" - -#: setup.php:867 -msgid "" -"Your web server is not yet properly setup to allow files synchronization " -"because the WebDAV interface seems to be broken." -msgstr "" - -#: setup.php:868 -#, php-format -msgid "Please double check the <a href='%s'>installation guides</a>." -msgstr "" - -#: template.php:113 -msgid "seconds ago" -msgstr "" - -#: template.php:114 -msgid "1 minute ago" -msgstr "" - -#: template.php:115 -#, php-format -msgid "%d minutes ago" -msgstr "" - -#: template.php:116 -msgid "1 hour ago" -msgstr "" - -#: template.php:117 -#, php-format -msgid "%d hours ago" -msgstr "" - -#: template.php:118 -msgid "today" -msgstr "" - -#: template.php:119 -msgid "yesterday" -msgstr "" - -#: template.php:120 -#, php-format -msgid "%d days ago" -msgstr "" - -#: template.php:121 -msgid "last month" -msgstr "" - -#: template.php:122 -#, php-format -msgid "%d months ago" -msgstr "" - -#: template.php:123 -msgid "last year" -msgstr "" - -#: template.php:124 -msgid "years ago" -msgstr "" - -#: vcategories.php:188 vcategories.php:249 -#, php-format -msgid "Could not find category \"%s\"" -msgstr "" diff --git a/l10n/pl_PL/settings.po b/l10n/pl_PL/settings.po deleted file mode 100644 index 68a0e23721f..00000000000 --- a/l10n/pl_PL/settings.po +++ /dev/null @@ -1,496 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-06-03 02:27+0200\n" -"PO-Revision-Date: 2013-06-02 23:17+0000\n" -"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/apps/ocs.php:20 -msgid "Unable to load list from App Store" -msgstr "" - -#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 -#: ajax/togglegroups.php:20 -msgid "Authentication error" -msgstr "" - -#: ajax/changedisplayname.php:31 -msgid "Your display name has been changed." -msgstr "" - -#: ajax/changedisplayname.php:34 -msgid "Unable to change display name" -msgstr "" - -#: ajax/creategroup.php:10 -msgid "Group already exists" -msgstr "" - -#: ajax/creategroup.php:19 -msgid "Unable to add group" -msgstr "" - -#: ajax/enableapp.php:11 -msgid "Could not enable app. " -msgstr "" - -#: ajax/lostpassword.php:12 -msgid "Email saved" -msgstr "" - -#: ajax/lostpassword.php:14 -msgid "Invalid email" -msgstr "" - -#: ajax/removegroup.php:13 -msgid "Unable to delete group" -msgstr "" - -#: ajax/removeuser.php:24 -msgid "Unable to delete user" -msgstr "" - -#: ajax/setlanguage.php:15 -msgid "Language changed" -msgstr "" - -#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 -msgid "Invalid request" -msgstr "" - -#: ajax/togglegroups.php:12 -msgid "Admins can't remove themself from the admin group" -msgstr "" - -#: ajax/togglegroups.php:30 -#, php-format -msgid "Unable to add user to group %s" -msgstr "" - -#: ajax/togglegroups.php:36 -#, php-format -msgid "Unable to remove user from group %s" -msgstr "" - -#: ajax/updateapp.php:14 -msgid "Couldn't update app." -msgstr "" - -#: js/apps.js:30 -msgid "Update to {appversion}" -msgstr "" - -#: js/apps.js:36 js/apps.js:76 -msgid "Disable" -msgstr "" - -#: js/apps.js:36 js/apps.js:64 js/apps.js:83 -msgid "Enable" -msgstr "" - -#: js/apps.js:55 -msgid "Please wait...." -msgstr "" - -#: js/apps.js:59 js/apps.js:71 js/apps.js:80 js/apps.js:93 -msgid "Error" -msgstr "" - -#: js/apps.js:90 -msgid "Updating...." -msgstr "" - -#: js/apps.js:93 -msgid "Error while updating app" -msgstr "" - -#: js/apps.js:96 -msgid "Updated" -msgstr "" - -#: js/personal.js:118 -msgid "Saving..." -msgstr "" - -#: js/users.js:47 -msgid "deleted" -msgstr "" - -#: js/users.js:47 -msgid "undo" -msgstr "" - -#: js/users.js:79 -msgid "Unable to remove user" -msgstr "" - -#: js/users.js:92 templates/users.php:26 templates/users.php:83 -#: templates/users.php:108 -msgid "Groups" -msgstr "" - -#: js/users.js:95 templates/users.php:85 templates/users.php:120 -msgid "Group Admin" -msgstr "" - -#: js/users.js:115 templates/users.php:160 -msgid "Delete" -msgstr "" - -#: js/users.js:269 -msgid "add group" -msgstr "" - -#: js/users.js:428 -msgid "A valid username must be provided" -msgstr "" - -#: js/users.js:429 js/users.js:435 js/users.js:450 -msgid "Error creating user" -msgstr "" - -#: js/users.js:434 -msgid "A valid password must be provided" -msgstr "" - -#: personal.php:35 personal.php:36 -msgid "__language_name__" -msgstr "" - -#: templates/admin.php:15 -msgid "Security Warning" -msgstr "" - -#: templates/admin.php:18 -msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "" - -#: templates/admin.php:29 -msgid "Setup Warning" -msgstr "" - -#: templates/admin.php:32 -msgid "" -"Your web server is not yet properly setup to allow files synchronization " -"because the WebDAV interface seems to be broken." -msgstr "" - -#: templates/admin.php:33 -#, php-format -msgid "Please double check the <a href='%s'>installation guides</a>." -msgstr "" - -#: templates/admin.php:44 -msgid "Module 'fileinfo' missing" -msgstr "" - -#: templates/admin.php:47 -msgid "" -"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " -"module to get best results with mime-type detection." -msgstr "" - -#: templates/admin.php:58 -msgid "Locale not working" -msgstr "" - -#: templates/admin.php:63 -#, php-format -msgid "" -"This ownCloud server can't set system locale to %s. This means that there " -"might be problems with certain characters in file names. We strongly suggest" -" to install the required packages on your system to support %s." -msgstr "" - -#: templates/admin.php:75 -msgid "Internet connection not working" -msgstr "" - -#: templates/admin.php:78 -msgid "" -"This ownCloud server has no working internet connection. This means that " -"some of the features like mounting of external storage, notifications about " -"updates or installation of 3rd party apps don´t work. Accessing files from " -"remote and sending of notification emails might also not work. We suggest to" -" enable internet connection for this server if you want to have all features" -" of ownCloud." -msgstr "" - -#: templates/admin.php:92 -msgid "Cron" -msgstr "" - -#: templates/admin.php:101 -msgid "Execute one task with each page loaded" -msgstr "" - -#: templates/admin.php:111 -msgid "" -"cron.php is registered at a webcron service. Call the cron.php page in the " -"owncloud root once a minute over http." -msgstr "" - -#: templates/admin.php:121 -msgid "" -"Use systems cron service. Call the cron.php file in the owncloud folder via " -"a system cronjob once a minute." -msgstr "" - -#: templates/admin.php:128 -msgid "Sharing" -msgstr "" - -#: templates/admin.php:134 -msgid "Enable Share API" -msgstr "" - -#: templates/admin.php:135 -msgid "Allow apps to use the Share API" -msgstr "" - -#: templates/admin.php:142 -msgid "Allow links" -msgstr "" - -#: templates/admin.php:143 -msgid "Allow users to share items to the public with links" -msgstr "" - -#: templates/admin.php:150 -msgid "Allow resharing" -msgstr "" - -#: templates/admin.php:151 -msgid "Allow users to share items shared with them again" -msgstr "" - -#: templates/admin.php:158 -msgid "Allow users to share with anyone" -msgstr "" - -#: templates/admin.php:161 -msgid "Allow users to only share with users in their groups" -msgstr "" - -#: templates/admin.php:168 -msgid "Security" -msgstr "" - -#: templates/admin.php:181 -msgid "Enforce HTTPS" -msgstr "" - -#: templates/admin.php:182 -msgid "" -"Enforces the clients to connect to ownCloud via an encrypted connection." -msgstr "" - -#: templates/admin.php:185 -msgid "" -"Please connect to this ownCloud instance via HTTPS to enable or disable the " -"SSL enforcement." -msgstr "" - -#: templates/admin.php:195 -msgid "Log" -msgstr "" - -#: templates/admin.php:196 -msgid "Log level" -msgstr "" - -#: templates/admin.php:227 -msgid "More" -msgstr "" - -#: templates/admin.php:228 -msgid "Less" -msgstr "" - -#: templates/admin.php:235 templates/personal.php:111 -msgid "Version" -msgstr "" - -#: templates/admin.php:237 templates/personal.php:114 -msgid "" -"Developed by the <a href=\"http://ownCloud.org/contact\" " -"target=\"_blank\">ownCloud community</a>, the <a " -"href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is " -"licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" " -"target=\"_blank\"><abbr title=\"Affero General Public " -"License\">AGPL</abbr></a>." -msgstr "" - -#: templates/apps.php:11 -msgid "Add your App" -msgstr "" - -#: templates/apps.php:12 -msgid "More Apps" -msgstr "" - -#: templates/apps.php:28 -msgid "Select an App" -msgstr "" - -#: templates/apps.php:34 -msgid "See application page at apps.owncloud.com" -msgstr "" - -#: templates/apps.php:36 -msgid "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" -msgstr "" - -#: templates/apps.php:38 -msgid "Update" -msgstr "Uaktualnienie" - -#: templates/help.php:4 -msgid "User Documentation" -msgstr "" - -#: templates/help.php:6 -msgid "Administrator Documentation" -msgstr "" - -#: templates/help.php:9 -msgid "Online Documentation" -msgstr "" - -#: templates/help.php:11 -msgid "Forum" -msgstr "" - -#: templates/help.php:14 -msgid "Bugtracker" -msgstr "" - -#: templates/help.php:17 -msgid "Commercial Support" -msgstr "" - -#: templates/personal.php:8 -#, php-format -msgid "You have used <strong>%s</strong> of the available <strong>%s</strong>" -msgstr "" - -#: templates/personal.php:15 -msgid "Get the apps to sync your files" -msgstr "" - -#: templates/personal.php:26 -msgid "Show First Run Wizard again" -msgstr "" - -#: templates/personal.php:37 templates/users.php:23 templates/users.php:82 -msgid "Password" -msgstr "" - -#: templates/personal.php:38 -msgid "Your password was changed" -msgstr "" - -#: templates/personal.php:39 -msgid "Unable to change your password" -msgstr "" - -#: templates/personal.php:40 -msgid "Current password" -msgstr "" - -#: templates/personal.php:42 -msgid "New password" -msgstr "" - -#: templates/personal.php:44 -msgid "Change password" -msgstr "" - -#: templates/personal.php:56 templates/users.php:81 -msgid "Display Name" -msgstr "" - -#: templates/personal.php:71 -msgid "Email" -msgstr "Email" - -#: templates/personal.php:73 -msgid "Your email address" -msgstr "" - -#: templates/personal.php:74 -msgid "Fill in an email address to enable password recovery" -msgstr "" - -#: templates/personal.php:83 templates/personal.php:84 -msgid "Language" -msgstr "" - -#: templates/personal.php:95 -msgid "Help translate" -msgstr "" - -#: templates/personal.php:100 -msgid "WebDAV" -msgstr "" - -#: templates/personal.php:102 -msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "" - -#: templates/users.php:21 templates/users.php:80 -msgid "Login Name" -msgstr "" - -#: templates/users.php:30 -msgid "Create" -msgstr "" - -#: templates/users.php:34 -msgid "Admin Recovery Password" -msgstr "" - -#: templates/users.php:38 -msgid "Default Storage" -msgstr "" - -#: templates/users.php:44 templates/users.php:138 -msgid "Unlimited" -msgstr "" - -#: templates/users.php:62 templates/users.php:153 -msgid "Other" -msgstr "" - -#: templates/users.php:87 -msgid "Storage" -msgstr "" - -#: templates/users.php:98 -msgid "change display name" -msgstr "" - -#: templates/users.php:102 -msgid "set new password" -msgstr "" - -#: templates/users.php:133 -msgid "Default" -msgstr "" diff --git a/l10n/pl_PL/user_ldap.po b/l10n/pl_PL/user_ldap.po deleted file mode 100644 index 242252ed0e4..00000000000 --- a/l10n/pl_PL/user_ldap.po +++ /dev/null @@ -1,419 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-25 02:01+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: ajax/clearMappings.php:34 -msgid "Failed to clear the mappings." -msgstr "" - -#: ajax/deleteConfiguration.php:34 -msgid "Failed to delete the server configuration" -msgstr "" - -#: ajax/testConfiguration.php:36 -msgid "The configuration is valid and the connection could be established!" -msgstr "" - -#: ajax/testConfiguration.php:39 -msgid "" -"The configuration is valid, but the Bind failed. Please check the server " -"settings and credentials." -msgstr "" - -#: ajax/testConfiguration.php:43 -msgid "" -"The configuration is invalid. Please look in the ownCloud log for further " -"details." -msgstr "" - -#: js/settings.js:66 -msgid "Deletion failed" -msgstr "" - -#: js/settings.js:82 -msgid "Take over settings from recent server configuration?" -msgstr "" - -#: js/settings.js:83 -msgid "Keep settings?" -msgstr "" - -#: js/settings.js:97 -msgid "Cannot add server configuration" -msgstr "" - -#: js/settings.js:111 -msgid "mappings cleared" -msgstr "" - -#: js/settings.js:112 -msgid "Success" -msgstr "" - -#: js/settings.js:117 -msgid "Error" -msgstr "" - -#: js/settings.js:141 -msgid "Connection test succeeded" -msgstr "" - -#: js/settings.js:146 -msgid "Connection test failed" -msgstr "" - -#: js/settings.js:156 -msgid "Do you really want to delete the current Server Configuration?" -msgstr "" - -#: js/settings.js:157 -msgid "Confirm Deletion" -msgstr "" - -#: templates/settings.php:9 -msgid "" -"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may" -" experience unexpected behaviour. Please ask your system administrator to " -"disable one of them." -msgstr "" - -#: templates/settings.php:12 -msgid "" -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not " -"work. Please ask your system administrator to install it." -msgstr "" - -#: templates/settings.php:16 -msgid "Server configuration" -msgstr "" - -#: templates/settings.php:32 -msgid "Add Server Configuration" -msgstr "" - -#: templates/settings.php:37 -msgid "Host" -msgstr "" - -#: templates/settings.php:39 -msgid "" -"You can omit the protocol, except you require SSL. Then start with ldaps://" -msgstr "" - -#: templates/settings.php:40 -msgid "Base DN" -msgstr "" - -#: templates/settings.php:41 -msgid "One Base DN per line" -msgstr "" - -#: templates/settings.php:42 -msgid "You can specify Base DN for users and groups in the Advanced tab" -msgstr "" - -#: templates/settings.php:44 -msgid "User DN" -msgstr "" - -#: templates/settings.php:46 -msgid "" -"The DN of the client user with which the bind shall be done, e.g. " -"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " -"empty." -msgstr "" - -#: templates/settings.php:47 -msgid "Password" -msgstr "" - -#: templates/settings.php:50 -msgid "For anonymous access, leave DN and Password empty." -msgstr "" - -#: templates/settings.php:51 -msgid "User Login Filter" -msgstr "" - -#: templates/settings.php:54 -#, php-format -msgid "" -"Defines the filter to apply, when login is attempted. %%uid replaces the " -"username in the login action." -msgstr "" - -#: templates/settings.php:55 -#, php-format -msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" -msgstr "" - -#: templates/settings.php:56 -msgid "User List Filter" -msgstr "" - -#: templates/settings.php:59 -msgid "Defines the filter to apply, when retrieving users." -msgstr "" - -#: templates/settings.php:60 -msgid "without any placeholder, e.g. \"objectClass=person\"." -msgstr "" - -#: templates/settings.php:61 -msgid "Group Filter" -msgstr "" - -#: templates/settings.php:64 -msgid "Defines the filter to apply, when retrieving groups." -msgstr "" - -#: templates/settings.php:65 -msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." -msgstr "" - -#: templates/settings.php:69 -msgid "Connection Settings" -msgstr "" - -#: templates/settings.php:71 -msgid "Configuration Active" -msgstr "" - -#: templates/settings.php:71 -msgid "When unchecked, this configuration will be skipped." -msgstr "" - -#: templates/settings.php:72 -msgid "Port" -msgstr "" - -#: templates/settings.php:73 -msgid "Backup (Replica) Host" -msgstr "" - -#: templates/settings.php:73 -msgid "" -"Give an optional backup host. It must be a replica of the main LDAP/AD " -"server." -msgstr "" - -#: templates/settings.php:74 -msgid "Backup (Replica) Port" -msgstr "" - -#: templates/settings.php:75 -msgid "Disable Main Server" -msgstr "" - -#: templates/settings.php:75 -msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" - -#: templates/settings.php:76 -msgid "Use TLS" -msgstr "" - -#: templates/settings.php:76 -msgid "Do not use it additionally for LDAPS connections, it will fail." -msgstr "" - -#: templates/settings.php:77 -msgid "Case insensitve LDAP server (Windows)" -msgstr "" - -#: templates/settings.php:78 -msgid "Turn off SSL certificate validation." -msgstr "" - -#: templates/settings.php:78 -msgid "" -"If connection only works with this option, import the LDAP server's SSL " -"certificate in your ownCloud server." -msgstr "" - -#: templates/settings.php:78 -msgid "Not recommended, use for testing only." -msgstr "" - -#: templates/settings.php:79 -msgid "Cache Time-To-Live" -msgstr "" - -#: templates/settings.php:79 -msgid "in seconds. A change empties the cache." -msgstr "" - -#: templates/settings.php:81 -msgid "Directory Settings" -msgstr "" - -#: templates/settings.php:83 -msgid "User Display Name Field" -msgstr "" - -#: templates/settings.php:83 -msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" - -#: templates/settings.php:84 -msgid "Base User Tree" -msgstr "" - -#: templates/settings.php:84 -msgid "One User Base DN per line" -msgstr "" - -#: templates/settings.php:85 -msgid "User Search Attributes" -msgstr "" - -#: templates/settings.php:85 templates/settings.php:88 -msgid "Optional; one attribute per line" -msgstr "" - -#: templates/settings.php:86 -msgid "Group Display Name Field" -msgstr "" - -#: templates/settings.php:86 -msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" - -#: templates/settings.php:87 -msgid "Base Group Tree" -msgstr "" - -#: templates/settings.php:87 -msgid "One Group Base DN per line" -msgstr "" - -#: templates/settings.php:88 -msgid "Group Search Attributes" -msgstr "" - -#: templates/settings.php:89 -msgid "Group-Member association" -msgstr "" - -#: templates/settings.php:91 -msgid "Special Attributes" -msgstr "" - -#: templates/settings.php:93 -msgid "Quota Field" -msgstr "" - -#: templates/settings.php:94 -msgid "Quota Default" -msgstr "" - -#: templates/settings.php:94 -msgid "in bytes" -msgstr "" - -#: templates/settings.php:95 -msgid "Email Field" -msgstr "" - -#: templates/settings.php:96 -msgid "User Home Folder Naming Rule" -msgstr "" - -#: templates/settings.php:96 -msgid "" -"Leave empty for user name (default). Otherwise, specify an LDAP/AD " -"attribute." -msgstr "" - -#: templates/settings.php:101 -msgid "Internal Username" -msgstr "" - -#: templates/settings.php:102 -msgid "" -"By default the internal username will be created from the UUID attribute. It" -" makes sure that the username is unique and characters do not need to be " -"converted. The internal username has the restriction that only these " -"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " -"with their ASCII correspondence or simply omitted. On collisions a number " -"will be added/increased. The internal username is used to identify a user " -"internally. It is also the default name for the user home folder in " -"ownCloud. It is also a port of remote URLs, for instance for all *DAV " -"services. With this setting, the default behaviour can be overriden. To " -"achieve a similar behaviour as before ownCloud 5 enter the user display name" -" attribute in the following field. Leave it empty for default behaviour. " -"Changes will have effect only on newly mapped (added) LDAP users." -msgstr "" - -#: templates/settings.php:103 -msgid "Internal Username Attribute:" -msgstr "" - -#: templates/settings.php:104 -msgid "Override UUID detection" -msgstr "" - -#: templates/settings.php:105 -msgid "" -"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " -"used to doubtlessly identify LDAP users and groups. Also, the internal " -"username will be created based on the UUID, if not specified otherwise " -"above. You can override the setting and pass an attribute of your choice. " -"You must make sure that the attribute of your choice can be fetched for both" -" users and groups and it is unique. Leave it empty for default behaviour. " -"Changes will have effect only on newly mapped (added) LDAP users and groups." -msgstr "" - -#: templates/settings.php:106 -msgid "UUID Attribute:" -msgstr "" - -#: templates/settings.php:107 -msgid "Username-LDAP User Mapping" -msgstr "" - -#: templates/settings.php:108 -msgid "" -"ownCloud uses usernames to store and assign (meta) data. In order to " -"precisely identify and recognize users, each LDAP user will have a internal " -"username. This requires a mapping from ownCloud username to LDAP user. The " -"created username is mapped to the UUID of the LDAP user. Additionally the DN" -" is cached as well to reduce LDAP interaction, but it is not used for " -"identification. If the DN changes, the changes will be found by ownCloud. " -"The internal ownCloud name is used all over in ownCloud. Clearing the " -"Mappings will have leftovers everywhere. Clearing the Mappings is not " -"configuration sensitive, it affects all LDAP configurations! Do never clear " -"the mappings in a production environment. Only clear mappings in a testing " -"or experimental stage." -msgstr "" - -#: templates/settings.php:109 -msgid "Clear Username-LDAP User Mapping" -msgstr "" - -#: templates/settings.php:109 -msgid "Clear Groupname-LDAP Group Mapping" -msgstr "" - -#: templates/settings.php:111 -msgid "Test Configuration" -msgstr "" - -#: templates/settings.php:111 -msgid "Help" -msgstr "" diff --git a/l10n/pl_PL/user_webdavauth.po b/l10n/pl_PL/user_webdavauth.po deleted file mode 100644 index 2ac39a46211..00000000000 --- a/l10n/pl_PL/user_webdavauth.po +++ /dev/null @@ -1,33 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: ownCloud\n" -"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-25 02:01+0200\n" -"PO-Revision-Date: 2012-11-09 09:06+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: templates/settings.php:3 -msgid "WebDAV Authentication" -msgstr "" - -#: templates/settings.php:4 -msgid "URL: http://" -msgstr "" - -#: templates/settings.php:7 -msgid "" -"ownCloud will send the user credentials to this URL. This plugin checks the " -"response and will interpret the HTTP statuscodes 401 and 403 as invalid " -"credentials, and all other responses as valid credentials." -msgstr "" diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index 897f8011e4c..127cadb9b98 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -45,7 +45,7 @@ msgid "" "allowed." msgstr "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "A pasta de destino foi movida ou excluída." @@ -91,54 +91,54 @@ msgstr "Impossível configurar o diretório de upload" msgid "Invalid Token" msgstr "Token inválido" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Nenhum arquivo foi enviado. Erro desconhecido" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Sem erros, o arquivo foi enviado com sucesso" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "O arquivo carregado excede o argumento MAX_FILE_SIZE especificado no formulário HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "O arquivo foi parcialmente enviado" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nenhum arquivo enviado" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Pasta temporária não encontrada" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Falha ao escrever no disco" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Espaço de armazenamento insuficiente" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Falha no envio. Não foi possível encontrar o arquivo enviado" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Falha no envio. Não foi possível obter informações do arquivo." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Diretório inválido." diff --git a/l10n/pt_BR/settings.po b/l10n/pt_BR/settings.po index 2de5517c11f..aed155f7491 100644 --- a/l10n/pt_BR/settings.po +++ b/l10n/pt_BR/settings.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 19:31+0000\n" +"Last-Translator: Flávio Veras <flaviove@gmail.com>\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -431,18 +431,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Último cron foi executado em %s." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Última cron foi executado em %s. Isso é, mais do que uma hora atrás, algo parece errado." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron não foi executado ainda!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/pt_BR/user_ldap.po b/l10n/pt_BR/user_ldap.po index 7835f9b48a5..f8940d0e55c 100644 --- a/l10n/pt_BR/user_ldap.po +++ b/l10n/pt_BR/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 13:11+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: Flávio Veras <flaviove@gmail.com>\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index 0bfb1061078..5d3d9a8a8dc 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "Nome Inválido, os caracteres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -92,54 +92,54 @@ msgstr "Não foi possível criar o diretório de upload" msgid "Invalid Token" msgstr "Token inválido" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Nenhum ficheiro foi carregado. Erro desconhecido" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Não ocorreram erros, o ficheiro foi submetido com sucesso" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "O ficheiro enviado excede o limite permitido na directiva do php.ini upload_max_filesize" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "O tamanho do ficheiro carregado ultrapassa o valor MAX_FILE_SIZE definido no formulário HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "O ficheiro seleccionado foi apenas carregado parcialmente" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nenhum ficheiro foi submetido" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Está a faltar a pasta temporária" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Falhou a escrita no disco" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Não há espaço suficiente em disco" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Falhou o envio. Não conseguiu encontrar o ficheiro enviado" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "O carregamento falhou. Não foi possível obter a informação do ficheiro." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Directório Inválido" diff --git a/l10n/pt_PT/user_ldap.po b/l10n/pt_PT/user_ldap.po index db90a116846..98b05141911 100644 --- a/l10n/pt_PT/user_ldap.po +++ b/l10n/pt_PT/user_ldap.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-22 01:55-0400\n" -"PO-Revision-Date: 2014-03-21 11:41+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ro/files.po b/l10n/ro/files.po index 13be40a7311..f4def010820 100644 --- a/l10n/ro/files.po +++ b/l10n/ro/files.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -49,7 +49,7 @@ msgid "" "allowed." msgstr "Nume nevalide, '\\', '/', '<', '>', ':', '\"', '|', '?' și '*' nu sunt permise." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -95,54 +95,54 @@ msgstr "Imposibil de a seta directorul pentru incărcare." msgid "Invalid Token" msgstr "Jeton Invalid" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Niciun fișier nu a fost încărcat. Eroare necunoscută" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Fișierul încărcat depășește directiva upload_max_filesize din php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Fișierul a fost încărcat doar parțial" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nu a fost încărcat niciun fișier" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Lipsește un dosar temporar" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Eroare la scrierea pe disc" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nu este disponibil suficient spațiu" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Încărcare eșuată. Nu se poate găsi fișierul încărcat" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Încărcare eșuată. Nu se pot obține informații despre fișier." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Dosar nevalid." diff --git a/l10n/ro/user_ldap.po b/l10n/ro/user_ldap.po index b81ac785574..a209336d3df 100644 --- a/l10n/ro/user_ldap.po +++ b/l10n/ro/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ru/core.po b/l10n/ru/core.po index 1c955e49776..fec52335def 100644 --- a/l10n/ru/core.po +++ b/l10n/ru/core.po @@ -13,6 +13,7 @@ # stushev, 2013 # eurekafag <rkfg@rkfg.me>, 2013 # sk.avenger <sk.avenger@adygnet.ru>, 2013 +# Swab <swab@i.ua>, 2014 # Victor Bravo <>, 2013 # vsapronov <vladimir.sapronov@gmail.com>, 2013 # not_your_conscience <hex.void@gmail.com>, 2013 @@ -23,9 +24,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-22 01:55-0400\n" -"PO-Revision-Date: 2014-03-22 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 14:31+0000\n" +"Last-Translator: Swab <swab@i.ua>\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,7 +36,7 @@ msgstr "" #: ajax/share.php:88 msgid "Expiration date is in the past." -msgstr "" +msgstr "Дата истечения срока действия в прошлом." #: ajax/share.php:120 ajax/share.php:162 #, php-format @@ -281,23 +282,23 @@ msgstr "Ошибка при загрузке шаблона существующ #: js/setup.js:84 msgid "Very weak password" -msgstr "" +msgstr "Очень слабый пароль" #: js/setup.js:85 msgid "Weak password" -msgstr "" +msgstr "Слабый пароль" #: js/setup.js:86 msgid "So-so password" -msgstr "" +msgstr "Так себе пароль" #: js/setup.js:87 msgid "Good password" -msgstr "" +msgstr "Хороший пароль" #: js/setup.js:88 msgid "Strong password" -msgstr "" +msgstr "Устойчивый к взлому пароль" #: js/share.js:51 js/share.js:66 js/share.js:106 msgid "Shared" @@ -496,7 +497,7 @@ msgstr "%s сброс пароля" msgid "" "A problem has occurred whilst sending the email, please contact your " "administrator." -msgstr "" +msgstr "Произошла ошибка при отправке сообщения электронной почты, пожалуйста, свяжитесь с Вашим администратором." #: lostpassword/templates/email.php:2 msgid "Use the following link to reset your password: {link}" @@ -559,12 +560,12 @@ msgstr "Сбросить пароль" msgid "" "Mac OS X is not supported and %s will not work properly on this platform. " "Use it at your own risk! " -msgstr "" +msgstr "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте ее на свой страх и риск!" #: setup/controller.php:142 msgid "" "For the best results, please consider using a GNU/Linux server instead." -msgstr "" +msgstr "Для достижения наилучших результатов, пожалуйста, рассмотрите возможность использовать взамен GNU/Linux сервер." #: strings.php:5 msgid "Personal" @@ -686,7 +687,7 @@ msgstr "Создать <strong>учётную запись администра #: templates/installation.php:70 msgid "Storage & database" -msgstr "" +msgstr "Система хранения данных & база данных" #: templates/installation.php:77 msgid "Data folder" @@ -787,7 +788,7 @@ msgstr "Альтернативные имена пользователя" msgid "" "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> " "with you.<br><a href=\"%s\">View it!</a><br><br>" -msgstr "" +msgstr "Здравствуйте,<br><br>просто даём вам знать, что %s открыл доступ к %s для вас.<br><a href=\"%s\">Посмотреть!</a><br><br>" #: templates/singleuser.user.php:3 msgid "This ownCloud instance is currently in single user mode." diff --git a/l10n/ru/files.po b/l10n/ru/files.po index 07e65a448db..4b5c985dfc9 100644 --- a/l10n/ru/files.po +++ b/l10n/ru/files.po @@ -8,6 +8,7 @@ # jekader <jekader@gmail.com>, 2013 # mogarych <mogarych@mail.ru>, 2014 # eurekafag <rkfg@rkfg.me>, 2013 +# Swab <swab@i.ua>, 2014 # Victor Bravo <>, 2013 # vsapronov <vladimir.sapronov@gmail.com>, 2013 # not_your_conscience <hex.void@gmail.com>, 2013 @@ -18,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 14:22+0000\n" +"Last-Translator: Swab <swab@i.ua>\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -45,7 +46,7 @@ msgstr "Имя файла не может быть пустым." #: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." -msgstr "" +msgstr "\"%s\" это не правильное имя файла." #: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" @@ -53,10 +54,10 @@ msgid "" "allowed." msgstr "Неправильное имя: символы '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." -msgstr "" +msgstr "Целевой каталог был перемещен или удален." #: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format @@ -99,54 +100,54 @@ msgstr "Не удалось установить каталог загрузки msgid "Invalid Token" msgstr "Недопустимый маркер" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Файл не был загружен. Неизвестная ошибка" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Файл загружен успешно." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Файл превышает размер, установленный параметром upload_max_filesize в php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Загруженный файл превышает размер, установленный параметром MAX_FILE_SIZE в HTML-форме" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Файл загружен лишь частично" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ни одного файла загружено не было" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Отсутствует временный каталог" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Ошибка записи на диск" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Недостаточно доступного места в хранилище" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Загрузка не удалась. Невозможно найти загружаемый файл" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Загрузка не удалась. Невозможно получить информацию о файле" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Неверный каталог." @@ -160,12 +161,12 @@ msgstr "Невозможно загрузить {filename}, так как это #: js/file-upload.js:258 msgid "Total file size {size1} exceeds upload limit {size2}" -msgstr "" +msgstr "Полный размер файла {size1} превышает лимит по загрузке {size2}" #: js/file-upload.js:268 msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" -msgstr "" +msgstr "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}" #: js/file-upload.js:340 msgid "Upload cancelled." @@ -263,7 +264,7 @@ msgstr[2] "Закачка %n файлов" #: js/files.js:96 msgid "\"{name}\" is an invalid file name." -msgstr "" +msgstr "\"{name}\" это не правильное имя файла." #: js/files.js:117 msgid "Your storage is full, files can not be updated or synced anymore!" diff --git a/l10n/ru/files_encryption.po b/l10n/ru/files_encryption.po index 07f348b79de..d0f028c8df8 100644 --- a/l10n/ru/files_encryption.po +++ b/l10n/ru/files_encryption.po @@ -8,15 +8,16 @@ # lord93 <lordakryl@gmail.com>, 2013 # jekader <jekader@gmail.com>, 2013 # eurekafag <rkfg@rkfg.me>, 2013 +# Swab <swab@i.ua>, 2014 # Victor Bravo <>, 2013 # vsapronov <vladimir.sapronov@gmail.com>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 14:31+0000\n" +"Last-Translator: Swab <swab@i.ua>\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -108,7 +109,7 @@ msgstr "Начато начальное шифрование... Это може #: js/detect-migration.js:25 msgid "Initial encryption running... Please try again later." -msgstr "" +msgstr "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже." #: templates/invalid_private_key.php:8 msgid "Go directly to your " diff --git a/l10n/ru/files_external.po b/l10n/ru/files_external.po index 6af3711cc64..74a21556d84 100644 --- a/l10n/ru/files_external.po +++ b/l10n/ru/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Swab <swab@i.ua>, 2014 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 14:41+0000\n" +"Last-Translator: Swab <swab@i.ua>\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -39,22 +40,22 @@ msgstr "Ошибка при настройке хранилища Google Drive" #: js/settings.js:313 js/settings.js:320 msgid "Saved" -msgstr "" +msgstr "Сохранено" -#: lib/config.php:512 +#: lib/config.php:654 msgid "" "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его." -#: lib/config.php:516 +#: lib/config.php:658 msgid "" "<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." msgstr "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить." -#: lib/config.php:519 +#: lib/config.php:661 msgid "" "<b>Warning:</b> The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " @@ -116,7 +117,7 @@ msgstr "Включить пользовательские внешние нос #: templates/settings.php:130 msgid "Allow users to mount the following external storage" -msgstr "" +msgstr "Разрешить пользователям монтировать следующую внешнюю систему хранения данных" #: templates/settings.php:147 msgid "SSL root certificates" diff --git a/l10n/ru/settings.po b/l10n/ru/settings.po index 5ee5f5e35c3..5654edd1a82 100644 --- a/l10n/ru/settings.po +++ b/l10n/ru/settings.po @@ -22,8 +22,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 14:41+0000\n" "Last-Translator: I Robot\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -39,7 +39,7 @@ msgstr "" #: admin/controller.php:73 msgid "Saved" -msgstr "" +msgstr "Сохранено" #: admin/controller.php:90 msgid "test email settings" @@ -232,23 +232,23 @@ msgstr "Выберите картинку профиля" #: js/personal.js:277 msgid "Very weak password" -msgstr "" +msgstr "Очень слабый пароль" #: js/personal.js:278 msgid "Weak password" -msgstr "" +msgstr "Слабый пароль" #: js/personal.js:279 msgid "So-so password" -msgstr "" +msgstr "Так себе пароль" #: js/personal.js:280 msgid "Good password" -msgstr "" +msgstr "Хороший пароль" #: js/personal.js:281 msgid "Strong password" -msgstr "" +msgstr "Устойчивый к взлому пароль" #: js/personal.js:316 msgid "Decrypting files... Please wait, this can take some time." diff --git a/l10n/ru/user_ldap.po b/l10n/ru/user_ldap.po index d6ca8bbef1c..449f689dc96 100644 --- a/l10n/ru/user_ldap.po +++ b/l10n/ru/user_ldap.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/si_LK/files.po b/l10n/si_LK/files.po index 1bdecb06284..4d19ae87f3e 100644 --- a/l10n/si_LK/files.po +++ b/l10n/si_LK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "දෝෂයක් නොමැත. සාර්ථකව ගොනුව උඩුගත කෙරුණි" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "උඩුගත කළ ගොනුවේ විශාලත්වය HTML පෝරමයේ නියම කළ ඇති MAX_FILE_SIZE විශාලත්වයට වඩා වැඩිය" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "උඩුගත කළ ගොනුවේ කොටසක් පමණක් උඩුගත විය" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "ගොනුවක් උඩුගත නොවුණි" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "තැටිගත කිරීම අසාර්ථකයි" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "උඩුගත කිරීම අත් හරින්න ලදී" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/si_LK/user_ldap.po b/l10n/si_LK/user_ldap.po index 175aba8b811..e6f39fc39de 100644 --- a/l10n/si_LK/user_ldap.po +++ b/l10n/si_LK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sk/files.po b/l10n/sk/files.po index bc16f5e1012..d705cf64c22 100644 --- a/l10n/sk/files.po +++ b/l10n/sk/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/sk/user_ldap.po b/l10n/sk/user_ldap.po index 2e3098a1e2a..6caf66c53b3 100644 --- a/l10n/sk/user_ldap.po +++ b/l10n/sk/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po index 4a51239c720..91d7cf7c70b 100644 --- a/l10n/sk_SK/core.po +++ b/l10n/sk_SK/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-22 01:55-0400\n" -"PO-Revision-Date: 2014-03-22 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 10:38+0000\n" +"Last-Translator: mhh <marian.hvolka@stuba.sk>\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +19,24 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ajax/share.php:88 +#: ajax/share.php:87 msgid "Expiration date is in the past." msgstr "" -#: ajax/share.php:120 ajax/share.php:162 +#: ajax/share.php:119 ajax/share.php:161 #, php-format msgid "Couldn't send mail to following users: %s " msgstr "Nebolo možné odoslať email týmto používateľom: %s " -#: ajax/update.php:11 +#: ajax/update.php:10 msgid "Turned on maintenance mode" msgstr "Mód údržby je zapnutý" -#: ajax/update.php:14 +#: ajax/update.php:13 msgid "Turned off maintenance mode" msgstr "Mód údržby e vypnutý" -#: ajax/update.php:17 +#: ajax/update.php:16 msgid "Updated database" msgstr "Databáza je aktualizovaná" @@ -140,63 +140,63 @@ msgstr "December" msgid "Settings" msgstr "Nastavenia" -#: js/js.js:496 +#: js/js.js:543 msgid "Saving..." msgstr "Ukladám..." -#: js/js.js:995 +#: js/js.js:1103 msgid "seconds ago" msgstr "pred sekundami" -#: js/js.js:996 +#: js/js.js:1104 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "pred %n minútou" msgstr[1] "pred %n minútami" msgstr[2] "pred %n minútami" -#: js/js.js:997 +#: js/js.js:1105 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "pred %n hodinou" msgstr[1] "pred %n hodinami" msgstr[2] "pred %n hodinami" -#: js/js.js:998 +#: js/js.js:1106 msgid "today" msgstr "dnes" -#: js/js.js:999 +#: js/js.js:1107 msgid "yesterday" msgstr "včera" -#: js/js.js:1000 +#: js/js.js:1108 msgid "%n day ago" msgid_plural "%n days ago" msgstr[0] "pred %n dňom" msgstr[1] "pred %n dňami" msgstr[2] "pred %n dňami" -#: js/js.js:1001 +#: js/js.js:1109 msgid "last month" msgstr "minulý mesiac" -#: js/js.js:1002 +#: js/js.js:1110 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "pred %n mesiacom" msgstr[1] "pred %n mesiacmi" msgstr[2] "pred %n mesiacmi" -#: js/js.js:1003 +#: js/js.js:1111 msgid "months ago" msgstr "pred mesiacmi" -#: js/js.js:1004 +#: js/js.js:1112 msgid "last year" msgstr "minulý rok" -#: js/js.js:1005 +#: js/js.js:1113 msgid "years ago" msgstr "pred rokmi" @@ -540,14 +540,14 @@ msgstr "Nové heslo" msgid "Reset password" msgstr "Obnovenie hesla" -#: setup/controller.php:138 +#: setup/controller.php:140 #, php-format msgid "" "Mac OS X is not supported and %s will not work properly on this platform. " "Use it at your own risk! " msgstr "" -#: setup/controller.php:142 +#: setup/controller.php:144 msgid "" "For the best results, please consider using a GNU/Linux server instead." msgstr "" diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po index b3eb40dfbc3..8694064b152 100644 --- a/l10n/sk_SK/files.po +++ b/l10n/sk_SK/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -89,54 +89,54 @@ msgstr "Nemožno nastaviť priečinok pre nahrané súbory." msgid "Invalid Token" msgstr "Neplatný token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Žiaden súbor nebol nahraný. Neznáma chyba" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Nenastala žiadna chyba, súbor bol úspešne nahraný" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Nahraný súbor prekročil limit nastavený v upload_max_filesize v súbore php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Ukladaný súbor prekračuje nastavenie MAX_FILE_SIZE z volieb HTML formulára." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Ukladaný súbor sa nahral len čiastočne" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Žiadny súbor nebol uložený" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Chýba dočasný priečinok" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Zápis na disk sa nepodaril" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Nedostatok dostupného úložného priestoru" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Nahrávanie zlyhalo. Nepodarilo sa nájsť nahrávaný súbor" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Nahrávanie zlyhalo. Nepodarilo sa získať informácie o súbore." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Neplatný priečinok." diff --git a/l10n/sk_SK/files_external.po b/l10n/sk_SK/files_external.po index 5ac968e0c46..9b27d46c889 100644 --- a/l10n/sk_SK/files_external.po +++ b/l10n/sk_SK/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 10:51+0000\n" "Last-Translator: I Robot\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -38,24 +38,24 @@ msgstr "Zadajte platný kľúč aplikácie a heslo Dropbox" msgid "Error configuring Google Drive storage" msgstr "Chyba pri konfigurácii úložiska Google drive" -#: js/settings.js:313 js/settings.js:320 +#: js/settings.js:318 js/settings.js:325 msgid "Saved" -msgstr "" +msgstr "Uložené" -#: lib/config.php:512 +#: lib/config.php:654 msgid "" "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "<b>Upozornenie:</b> \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje." -#: lib/config.php:516 +#: lib/config.php:658 msgid "" "<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." msgstr "<b>Upozornenie:</b> Podpora FTP v PHP nie je povolená alebo nainštalovaná. Nie je možné pripojenie oddielov FTP. Požiadajte administrátora systému, nech ho nainštaluje." -#: lib/config.php:519 +#: lib/config.php:661 msgid "" "<b>Warning:</b> The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " @@ -90,39 +90,39 @@ msgstr "Aplikovateľné" msgid "Add storage" msgstr "Pridať úložisko" -#: templates/settings.php:90 +#: templates/settings.php:93 msgid "None set" msgstr "Žiadne nastavené" -#: templates/settings.php:91 +#: templates/settings.php:94 msgid "All Users" msgstr "Všetci používatelia" -#: templates/settings.php:92 +#: templates/settings.php:95 msgid "Groups" msgstr "Skupiny" -#: templates/settings.php:100 +#: templates/settings.php:103 msgid "Users" msgstr "Používatelia" -#: templates/settings.php:113 templates/settings.php:114 -#: templates/settings.php:155 templates/settings.php:156 +#: templates/settings.php:116 templates/settings.php:117 +#: templates/settings.php:158 templates/settings.php:159 msgid "Delete" msgstr "Zmazať" -#: templates/settings.php:127 +#: templates/settings.php:130 msgid "Enable User External Storage" msgstr "Povoliť externé úložisko" -#: templates/settings.php:130 +#: templates/settings.php:133 msgid "Allow users to mount the following external storage" msgstr "" -#: templates/settings.php:147 +#: templates/settings.php:150 msgid "SSL root certificates" msgstr "Koreňové SSL certifikáty" -#: templates/settings.php:165 +#: templates/settings.php:168 msgid "Import Root Certificate" msgstr "Importovať koreňový certifikát" diff --git a/l10n/sk_SK/files_sharing.po b/l10n/sk_SK/files_sharing.po index 74a307337e5..fafef561bd3 100644 --- a/l10n/sk_SK/files_sharing.po +++ b/l10n/sk_SK/files_sharing.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# mhh <marian.hvolka@stuba.sk>, 2013 +# mhh <marian.hvolka@stuba.sk>, 2013-2014 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 10:40+0000\n" +"Last-Translator: mhh <marian.hvolka@stuba.sk>\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -66,7 +66,7 @@ msgstr "Zdieľa %s" #: templates/public.php:44 #, php-format msgid "Download %s" -msgstr "" +msgstr "Stiahnuť %s" #: templates/public.php:48 msgid "Direct link" diff --git a/l10n/sk_SK/lib.po b/l10n/sk_SK/lib.po index 41d6fb61393..a7df661ab0c 100644 --- a/l10n/sk_SK/lib.po +++ b/l10n/sk_SK/lib.po @@ -3,15 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# mhh <marian.hvolka@stuba.sk>, 2013 +# mhh <marian.hvolka@stuba.sk>, 2013-2014 # martin, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 10:40+0000\n" +"Last-Translator: mhh <marian.hvolka@stuba.sk>\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -67,23 +67,23 @@ msgstr "Chybný obrázok" msgid "web services under your control" msgstr "webové služby pod Vašou kontrolou" -#: private/files.php:231 +#: private/files.php:232 msgid "ZIP download is turned off." msgstr "Sťahovanie súborov ZIP je vypnuté." -#: private/files.php:232 +#: private/files.php:233 msgid "Files need to be downloaded one by one." msgstr "Súbory musia byť nahrávané jeden za druhým." -#: private/files.php:233 private/files.php:261 +#: private/files.php:234 private/files.php:262 msgid "Back to Files" msgstr "Späť na súbory" -#: private/files.php:258 +#: private/files.php:259 msgid "Selected files too large to generate zip file." msgstr "Zvolené súbory sú príliš veľké na vygenerovanie zip súboru." -#: private/files.php:259 +#: private/files.php:260 msgid "" "Please download the files separately in smaller chunks or kindly ask your " "administrator." @@ -159,7 +159,7 @@ msgstr "Token vypršal. Obnovte, prosím, stránku." #: private/json.php:75 msgid "Unknown user" -msgstr "" +msgstr "Neznámy používateľ" #: private/search/provider/file.php:18 private/search/provider/file.php:36 msgid "Files" @@ -194,8 +194,8 @@ msgid "MS SQL username and/or password not valid: %s" msgstr "Používateľské meno, alebo heslo MS SQL nie je platné: %s" #: private/setup/mssql.php:21 private/setup/mysql.php:13 -#: private/setup/oci.php:114 private/setup/postgresql.php:24 -#: private/setup/postgresql.php:70 +#: private/setup/oci.php:114 private/setup/postgresql.php:31 +#: private/setup/postgresql.php:84 msgid "You need to enter either an existing account or the administrator." msgstr "Musíte zadať jestvujúci účet alebo administrátora." @@ -208,9 +208,9 @@ msgstr "" #: private/setup/oci.php:151 private/setup/oci.php:162 #: private/setup/oci.php:169 private/setup/oci.php:178 #: private/setup/oci.php:186 private/setup/oci.php:195 -#: private/setup/oci.php:201 private/setup/postgresql.php:89 -#: private/setup/postgresql.php:98 private/setup/postgresql.php:115 -#: private/setup/postgresql.php:125 private/setup/postgresql.php:134 +#: private/setup/oci.php:201 private/setup/postgresql.php:103 +#: private/setup/postgresql.php:112 private/setup/postgresql.php:129 +#: private/setup/postgresql.php:139 private/setup/postgresql.php:148 #, php-format msgid "DB Error: \"%s\"" msgstr "Chyba DB: \"%s\"" @@ -219,9 +219,9 @@ msgstr "Chyba DB: \"%s\"" #: private/setup/oci.php:122 private/setup/oci.php:145 #: private/setup/oci.php:152 private/setup/oci.php:163 #: private/setup/oci.php:179 private/setup/oci.php:187 -#: private/setup/oci.php:196 private/setup/postgresql.php:90 -#: private/setup/postgresql.php:99 private/setup/postgresql.php:116 -#: private/setup/postgresql.php:126 private/setup/postgresql.php:135 +#: private/setup/oci.php:196 private/setup/postgresql.php:104 +#: private/setup/postgresql.php:113 private/setup/postgresql.php:130 +#: private/setup/postgresql.php:140 private/setup/postgresql.php:149 #, php-format msgid "Offending command was: \"%s\"" msgstr "Podozrivý príkaz bol: \"%s\"" @@ -257,7 +257,7 @@ msgstr "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné" msgid "Offending command was: \"%s\", name: %s, password: %s" msgstr "Podozrivý príkaz bol: \"%s\", meno: %s, heslo: %s" -#: private/setup/postgresql.php:23 private/setup/postgresql.php:69 +#: private/setup/postgresql.php:30 private/setup/postgresql.php:83 msgid "PostgreSQL username and/or password not valid" msgstr "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné" @@ -269,13 +269,13 @@ msgstr "Zadajte používateľské meno administrátora." msgid "Set an admin password." msgstr "Zadajte heslo administrátora." -#: private/setup.php:198 +#: private/setup.php:202 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené." -#: private/setup.php:199 +#: private/setup.php:203 #, php-format msgid "Please double check the <a href='%s'>installation guides</a>." msgstr "Prosím skontrolujte <a href='%s'>inštalačnú príručku</a>." diff --git a/l10n/sk_SK/settings.po b/l10n/sk_SK/settings.po index 32ec5e902eb..224946f78bd 100644 --- a/l10n/sk_SK/settings.po +++ b/l10n/sk_SK/settings.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" +"PO-Revision-Date: 2014-03-31 10:51+0000\n" +"Last-Translator: mhh <marian.hvolka@stuba.sk>\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,7 +26,7 @@ msgstr "" #: admin/controller.php:73 msgid "Saved" -msgstr "" +msgstr "Uložené" #: admin/controller.php:90 msgid "test email settings" @@ -66,7 +66,7 @@ msgid "Unable to load list from App Store" msgstr "Nie je možné nahrať zoznam z App Store" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 -#: ajax/togglegroups.php:20 changepassword/controller.php:55 +#: ajax/togglegroups.php:20 changepassword/controller.php:49 msgid "Authentication error" msgstr "Chyba autentifikácie" @@ -128,38 +128,38 @@ msgstr "Nie je možné odstrániť používateľa zo skupiny %s" msgid "Couldn't update app." msgstr "Nemožno aktualizovať aplikáciu." -#: changepassword/controller.php:20 +#: changepassword/controller.php:17 msgid "Wrong password" msgstr "Nesprávne heslo" -#: changepassword/controller.php:42 +#: changepassword/controller.php:36 msgid "No user supplied" msgstr "Nebol uvedený používateľ" -#: changepassword/controller.php:74 +#: changepassword/controller.php:68 msgid "" "Please provide an admin recovery password, otherwise all user data will be " "lost" msgstr "Zadajte administrátorské heslo pre obnovu, inak budú všetky dáta stratené" -#: changepassword/controller.php:79 +#: changepassword/controller.php:73 msgid "" "Wrong admin recovery password. Please check the password and try again." msgstr "Chybné administrátorské heslo pre obnovu. Skontrolujte správnosť hesla a skúste to znovu." -#: changepassword/controller.php:87 +#: changepassword/controller.php:81 msgid "" "Back-end doesn't support password change, but the users encryption key was " "successfully updated." msgstr "Úložisko nepodporuje zmenu hesla, ale šifrovací kľúč používateľov bol úspešne zmenený." -#: changepassword/controller.php:92 changepassword/controller.php:103 +#: changepassword/controller.php:86 changepassword/controller.php:97 msgid "Unable to change password" msgstr "Zmena hesla sa nepodarila" #: js/admin.js:73 msgid "Sending..." -msgstr "" +msgstr "Odosielam..." #: js/apps.js:45 templates/help.php:4 msgid "User Documentation" @@ -286,7 +286,7 @@ msgstr "Musíte zadať platné heslo" msgid "Warning: Home directory for user \"{user}\" already exists" msgstr "Upozornenie: Domovský priečinok používateľa \"{user}\" už existuje" -#: personal.php:49 personal.php:50 +#: personal.php:48 personal.php:49 msgid "__language_name__" msgstr "Slovensky" @@ -328,11 +328,11 @@ msgstr "" #: templates/admin.php:24 msgid "SSL" -msgstr "" +msgstr "SSL" #: templates/admin.php:25 msgid "TLS" -msgstr "" +msgstr "TLS" #: templates/admin.php:47 templates/admin.php:61 msgid "Security Warning" @@ -533,7 +533,7 @@ msgstr "Pripojte sa k %s cez HTTPS pre povolenie alebo zakázanie vynútenia SSL #: templates/admin.php:294 msgid "Email Server" -msgstr "" +msgstr "Email server" #: templates/admin.php:296 msgid "This is used for sending out notifications." @@ -561,11 +561,11 @@ msgstr "Prihlasovanie údaje" #: templates/admin.php:363 msgid "SMTP Username" -msgstr "" +msgstr "SMTP používateľské meno" #: templates/admin.php:366 msgid "SMTP Password" -msgstr "" +msgstr "SMTP heslo" #: templates/admin.php:370 msgid "Test email settings" @@ -573,7 +573,7 @@ msgstr "" #: templates/admin.php:371 msgid "Send email" -msgstr "" +msgstr "Odoslať email" #: templates/admin.php:376 msgid "Log" diff --git a/l10n/sk_SK/user_ldap.po b/l10n/sk_SK/user_ldap.po index 09793a0baf8..2359384c654 100644 --- a/l10n/sk_SK/user_ldap.po +++ b/l10n/sk_SK/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sl/core.po b/l10n/sl/core.po index ddd78cae32f..e3285d025c8 100644 --- a/l10n/sl/core.po +++ b/l10n/sl/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-22 01:55-0400\n" -"PO-Revision-Date: 2014-03-22 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-30 01:55-0400\n" +"PO-Revision-Date: 2014-03-29 20:30+0000\n" +"Last-Translator: mateju <>\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +19,24 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: ajax/share.php:88 +#: ajax/share.php:87 msgid "Expiration date is in the past." msgstr "Datum preteka je v preteklosti." -#: ajax/share.php:120 ajax/share.php:162 +#: ajax/share.php:119 ajax/share.php:161 #, php-format msgid "Couldn't send mail to following users: %s " msgstr "Ni mogoče poslati sporočila za: %s" -#: ajax/update.php:11 +#: ajax/update.php:10 msgid "Turned on maintenance mode" msgstr "Vzdrževalni način je omogočen" -#: ajax/update.php:14 +#: ajax/update.php:13 msgid "Turned off maintenance mode" msgstr "Vzdrževalni način je onemogočen" -#: ajax/update.php:17 +#: ajax/update.php:16 msgid "Updated database" msgstr "Posodobljena podatkovna zbirka" @@ -140,15 +140,15 @@ msgstr "december" msgid "Settings" msgstr "Nastavitve" -#: js/js.js:496 +#: js/js.js:543 msgid "Saving..." msgstr "Poteka shranjevanje ..." -#: js/js.js:995 +#: js/js.js:1103 msgid "seconds ago" msgstr "pred nekaj sekundami" -#: js/js.js:996 +#: js/js.js:1104 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "pred %n minuto" @@ -156,7 +156,7 @@ msgstr[1] "pred %n minutama" msgstr[2] "pred %n minutami" msgstr[3] "pred %n minutami" -#: js/js.js:997 +#: js/js.js:1105 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "pred %n uro" @@ -164,15 +164,15 @@ msgstr[1] "pred %n urama" msgstr[2] "pred %n urami" msgstr[3] "pred %n urami" -#: js/js.js:998 +#: js/js.js:1106 msgid "today" msgstr "danes" -#: js/js.js:999 +#: js/js.js:1107 msgid "yesterday" msgstr "včeraj" -#: js/js.js:1000 +#: js/js.js:1108 msgid "%n day ago" msgid_plural "%n days ago" msgstr[0] "pred %n dnevom" @@ -180,11 +180,11 @@ msgstr[1] "pred %n dnevoma" msgstr[2] "pred %n dnevi" msgstr[3] "pred %n dnevi" -#: js/js.js:1001 +#: js/js.js:1109 msgid "last month" msgstr "zadnji mesec" -#: js/js.js:1002 +#: js/js.js:1110 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "pred %n mesecem" @@ -192,15 +192,15 @@ msgstr[1] "pred %n mesecema" msgstr[2] "pred %n meseci" msgstr[3] "pred %n meseci" -#: js/js.js:1003 +#: js/js.js:1111 msgid "months ago" msgstr "mesecev nazaj" -#: js/js.js:1004 +#: js/js.js:1112 msgid "last year" msgstr "lansko leto" -#: js/js.js:1005 +#: js/js.js:1113 msgid "years ago" msgstr "let nazaj" @@ -545,17 +545,17 @@ msgstr "Novo geslo" msgid "Reset password" msgstr "Ponastavi geslo" -#: setup/controller.php:138 +#: setup/controller.php:140 #, php-format msgid "" "Mac OS X is not supported and %s will not work properly on this platform. " "Use it at your own risk! " -msgstr "" +msgstr "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! " -#: setup/controller.php:142 +#: setup/controller.php:144 msgid "" "For the best results, please consider using a GNU/Linux server instead." -msgstr "" +msgstr "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux." #: strings.php:5 msgid "Personal" diff --git a/l10n/sl/files.po b/l10n/sl/files.po index 00b2b25a51c..9966a2785bb 100644 --- a/l10n/sl/files.po +++ b/l10n/sl/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Neveljavno ime; znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Ciljna mapa je premaknjena ali izbrisana." @@ -90,54 +90,54 @@ msgstr "Mapo, v katero boste prenašali dokumente, ni mogoče določiti" msgid "Invalid Token" msgstr "Neveljaven žeton" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ni poslane datoteke. Neznana napaka." -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Datoteka je uspešno naložena." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Poslana datoteka presega dovoljeno velikost, ki je določena z možnostjo upload_max_filesize v datoteki php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Poslana datoteka presega velikost, ki jo določa parameter največje dovoljene velikosti v obrazcu HTML." -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Poslan je le del datoteke." -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ni poslane datoteke" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Manjka začasna mapa" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Pisanje na disk je spodletelo" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Na voljo ni dovolj prostora" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke." -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Pošiljanje je spodletelo. Ni mogoče pridobiti podrobnosti datoteke." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Neveljavna mapa." diff --git a/l10n/sl/settings.po b/l10n/sl/settings.po index 91e310d8f24..dbde28d85dd 100644 --- a/l10n/sl/settings.po +++ b/l10n/sl/settings.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-30 01:55-0400\n" +"PO-Revision-Date: 2014-03-29 20:50+0000\n" +"Last-Translator: mateju <>\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +22,7 @@ msgstr "" #: admin/controller.php:66 #, php-format msgid "Invalid value supplied for %s" -msgstr "" +msgstr "Navedena je napačna vrednost za %s" #: admin/controller.php:73 msgid "Saved" @@ -66,7 +66,7 @@ msgid "Unable to load list from App Store" msgstr "Ni mogoče naložiti seznama iz programskega središča" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 -#: ajax/togglegroups.php:20 changepassword/controller.php:55 +#: ajax/togglegroups.php:20 changepassword/controller.php:49 msgid "Authentication error" msgstr "Napaka med overjanjem" @@ -128,32 +128,32 @@ msgstr "Uporabnika ni mogoče odstraniti iz skupine %s" msgid "Couldn't update app." msgstr "Programa ni mogoče posodobiti." -#: changepassword/controller.php:20 +#: changepassword/controller.php:17 msgid "Wrong password" msgstr "Napačno geslo" -#: changepassword/controller.php:42 +#: changepassword/controller.php:36 msgid "No user supplied" msgstr "Ni navedenega uporabnika" -#: changepassword/controller.php:74 +#: changepassword/controller.php:68 msgid "" "Please provide an admin recovery password, otherwise all user data will be " "lost" msgstr "Podati je treba skrbniško obnovitveno geslo, sicer bodo vsi uporabniški podatki izgubljeni." -#: changepassword/controller.php:79 +#: changepassword/controller.php:73 msgid "" "Wrong admin recovery password. Please check the password and try again." msgstr "Napačno navedeno skrbniško obnovitveno geslo. Preverite geslo in poskusite znova." -#: changepassword/controller.php:87 +#: changepassword/controller.php:81 msgid "" "Back-end doesn't support password change, but the users encryption key was " "successfully updated." msgstr "Hrbtišče programa ne podpira spreminjanja gesla, je pa uspešno posodobljeno uporabniško šifriranje." -#: changepassword/controller.php:92 changepassword/controller.php:103 +#: changepassword/controller.php:86 changepassword/controller.php:97 msgid "Unable to change password" msgstr "Ni mogoče spremeniti gesla" @@ -286,7 +286,7 @@ msgstr "Navedeno mora biti veljavno geslo" msgid "Warning: Home directory for user \"{user}\" already exists" msgstr "Opozorilo: osebna mapa uporabnika \"{user}\" že obstaja" -#: personal.php:49 personal.php:50 +#: personal.php:48 personal.php:49 msgid "__language_name__" msgstr "Slovenščina" diff --git a/l10n/sl/user_ldap.po b/l10n/sl/user_ldap.po index b5478c054ec..222415e4d01 100644 --- a/l10n/sl/user_ldap.po +++ b/l10n/sl/user_ldap.po @@ -4,14 +4,14 @@ # # Translators: # barbarak <barbarak@arnes.si>, 2013 -# mateju <>, 2013 +# mateju <>, 2013-2014 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-30 01:55-0400\n" +"PO-Revision-Date: 2014-03-29 20:50+0000\n" +"Last-Translator: mateju <>\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -417,7 +417,7 @@ msgstr "Povezava član-skupina" #: templates/settings.php:39 msgid "Nested Groups" -msgstr "" +msgstr "Gnezdene skupine" #: templates/settings.php:39 msgid "" diff --git a/l10n/sq/files.po b/l10n/sq/files.po index 8068ca93687..10f0a0a3fc5 100644 --- a/l10n/sq/files.po +++ b/l10n/sq/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "Emër jo i vlefshëm, '\\', '/', '<', '>', ':', '\"', '|', '?' dhe '*' nuk lejohen." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "E pa mundur të vendoset dosja e ngarkimit" msgid "Invalid Token" msgstr "Shenjë e gabuar" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Asnjë skedar nuk u dërgua. Gabim i pa njohur" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Skedari u ngarkua me sukses" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Skedari i ngarkuar tejkalon limitin hapsirës së lejuar në php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Skedari i ngarkuar tejlakon vlerën MAX_FILE_SIZE të përcaktuar në formën HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Skedari është ngakruar vetëm pjesërisht" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Asnjë skedar nuk është ngarkuar" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Mungon dosja e përkohshme" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Dështoi shkrimi në disk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Hapsira e arkivimit e pamjaftueshme" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Dosje e pavlefshme" diff --git a/l10n/sq/user_ldap.po b/l10n/sq/user_ldap.po index 82db1279b91..b8ed2aa5515 100644 --- a/l10n/sq/user_ldap.po +++ b/l10n/sq/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sr/files.po b/l10n/sr/files.po index 6953dc1242f..eb157cd5a79 100644 --- a/l10n/sr/files.po +++ b/l10n/sr/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -42,7 +42,7 @@ msgid "" "allowed." msgstr "Неисправан назив. Следећи знакови нису дозвољени: \\, /, <, >, :, \", |, ? и *." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ниједна датотека није отпремљена услед непознате грешке" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Није дошло до грешке. Датотека је успешно отпремљена." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Отпремљена датотека прелази смерницу upload_max_filesize у датотеци php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Отпремљена датотека прелази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Датотека је делимично отпремљена" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Датотека није отпремљена" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Недостаје привремена фасцикла" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Не могу да пишем на диск" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Нема довољно простора" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "неисправна фасцикла." diff --git a/l10n/sr/user_ldap.po b/l10n/sr/user_ldap.po index 03929445d00..d39190908f6 100644 --- a/l10n/sr/user_ldap.po +++ b/l10n/sr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sr@latin/files.po b/l10n/sr@latin/files.po index ba91a498ad6..04923e48049 100644 --- a/l10n/sr@latin/files.po +++ b/l10n/sr@latin/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Nema greške, fajl je uspešno poslat" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Poslati fajl prevazilazi direktivu MAX_FILE_SIZE koja je navedena u HTML formi" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Poslati fajl je samo delimično otpremljen!" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Nijedan fajl nije poslat" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Nedostaje privremena fascikla" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/sr@latin/user_ldap.po b/l10n/sr@latin/user_ldap.po index 91af0333798..bfe386afdc3 100644 --- a/l10n/sr@latin/user_ldap.po +++ b/l10n/sr@latin/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sv/files.po b/l10n/sv/files.po index 4ac3ca06a70..337141babf3 100644 --- a/l10n/sv/files.po +++ b/l10n/sv/files.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -50,7 +50,7 @@ msgid "" "allowed." msgstr "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -96,54 +96,54 @@ msgstr "Kan inte sätta mapp för uppladdning." msgid "Invalid Token" msgstr "Ogiltig token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil uppladdad. Okänt fel" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Inga fel uppstod. Filen laddades upp utan problem." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Den uppladdade filen överskrider MAX_FILE_SIZE direktivet som har angetts i HTML formuläret" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Den uppladdade filen var endast delvis uppladdad" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Ingen fil laddades upp" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "En temporär mapp saknas" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Misslyckades spara till disk" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Inte tillräckligt med lagringsutrymme tillgängligt" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Uppladdning misslyckades. Kunde inte hitta den uppladdade filen" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Uppladdning misslyckades. Gick inte att hämta filinformation." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Felaktig mapp." diff --git a/l10n/sv/user_ldap.po b/l10n/sv/user_ldap.po index d06794d6eee..1b9e5d7a427 100644 --- a/l10n/sv/user_ldap.po +++ b/l10n/sv/user_ldap.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po index 325aee00eaa..0dacc830107 100644 --- a/l10n/ta_LK/files.po +++ b/l10n/ta_LK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "செல்லுபடியற்ற பெயர்,'\\', '/', '<', '>', ':', '\"', '|', '?' மற்றும் '*' ஆகியன அனுமதிக்கப்படமாட்டாது." -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "இங்கு வழு இல்லை, கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "பதிவேற்றப்பட்ட கோப்பானது HTML படிவத்தில் குறிப்பிடப்பட்டுள்ள MAX_FILE_SIZE directive ஐ விட கூடியது" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "பதிவேற்றப்பட்ட கோப்பானது பகுதியாக மட்டுமே பதிவேற்றப்பட்டுள்ளது" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "எந்த கோப்பும் பதிவேற்றப்படவில்லை" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "வட்டில் எழுத முடியவில்லை" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்." -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "{new_name} ஏற்கனவே உள்ளது" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/ta_LK/user_ldap.po b/l10n/ta_LK/user_ldap.po index 8ff5e0b32ac..7095ac9958f 100644 --- a/l10n/ta_LK/user_ldap.po +++ b/l10n/ta_LK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/te/files.po b/l10n/te/files.po index 962db4331a7..23e4494a55d 100644 --- a/l10n/te/files.po +++ b/l10n/te/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/te/user_ldap.po b/l10n/te/user_ldap.po index e728d77914a..d7bc4f03188 100644 --- a/l10n/te/user_ldap.po +++ b/l10n/te/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-11 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index db622dadabe..e2343f68a9d 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -18,24 +18,24 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: ajax/share.php:88 +#: ajax/share.php:87 msgid "Expiration date is in the past." msgstr "" -#: ajax/share.php:120 ajax/share.php:162 +#: ajax/share.php:119 ajax/share.php:161 #, php-format msgid "Couldn't send mail to following users: %s " msgstr "" -#: ajax/update.php:11 +#: ajax/update.php:10 msgid "Turned on maintenance mode" msgstr "" -#: ajax/update.php:14 +#: ajax/update.php:13 msgid "Turned off maintenance mode" msgstr "" -#: ajax/update.php:17 +#: ajax/update.php:16 msgid "Updated database" msgstr "" @@ -139,59 +139,59 @@ msgstr "" msgid "Settings" msgstr "" -#: js/js.js:496 +#: js/js.js:543 msgid "Saving..." msgstr "" -#: js/js.js:995 +#: js/js.js:1103 msgid "seconds ago" msgstr "" -#: js/js.js:996 +#: js/js.js:1104 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "" msgstr[1] "" -#: js/js.js:997 +#: js/js.js:1105 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "" msgstr[1] "" -#: js/js.js:998 +#: js/js.js:1106 msgid "today" msgstr "" -#: js/js.js:999 +#: js/js.js:1107 msgid "yesterday" msgstr "" -#: js/js.js:1000 +#: js/js.js:1108 msgid "%n day ago" msgid_plural "%n days ago" msgstr[0] "" msgstr[1] "" -#: js/js.js:1001 +#: js/js.js:1109 msgid "last month" msgstr "" -#: js/js.js:1002 +#: js/js.js:1110 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "" msgstr[1] "" -#: js/js.js:1003 +#: js/js.js:1111 msgid "months ago" msgstr "" -#: js/js.js:1004 +#: js/js.js:1112 msgid "last year" msgstr "" -#: js/js.js:1005 +#: js/js.js:1113 msgid "years ago" msgstr "" @@ -534,14 +534,14 @@ msgstr "" msgid "Reset password" msgstr "" -#: setup/controller.php:138 +#: setup/controller.php:140 #, php-format msgid "" "Mac OS X is not supported and %s will not work properly on this platform. " "Use it at your own risk! " msgstr "" -#: setup/controller.php:142 +#: setup/controller.php:144 msgid "For the best results, please consider using a GNU/Linux server instead." msgstr "" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index b27ceaf4cad..32c823f9114 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -193,15 +193,15 @@ msgstr "" msgid "Error fetching URL" msgstr "" -#: js/fileactions.js:149 +#: js/fileactions.js:164 msgid "Share" msgstr "" -#: js/fileactions.js:162 +#: js/fileactions.js:177 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:223 +#: js/fileactions.js:238 msgid "Rename" msgstr "" @@ -225,13 +225,13 @@ msgstr "" msgid "Error deleting file." msgstr "" -#: js/filelist.js:687 js/filelist.js:761 js/files.js:691 +#: js/filelist.js:687 js/filelist.js:761 js/files.js:694 msgid "%n folder" msgid_plural "%n folders" msgstr[0] "" msgstr[1] "" -#: js/filelist.js:688 js/filelist.js:762 js/files.js:697 +#: js/filelist.js:688 js/filelist.js:762 js/files.js:700 msgid "%n file" msgid_plural "%n files" msgstr[0] "" @@ -277,29 +277,29 @@ msgid "" "your personal settings to decrypt your files." msgstr "" -#: js/files.js:379 +#: js/files.js:382 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:610 js/files.js:654 +#: js/files.js:613 js/files.js:657 msgid "Error moving file" msgstr "" -#: js/files.js:610 js/files.js:654 +#: js/files.js:613 js/files.js:657 msgid "Error" msgstr "" -#: js/files.js:672 templates/index.php:68 +#: js/files.js:675 templates/index.php:68 msgid "Name" msgstr "" -#: js/files.js:673 templates/index.php:80 +#: js/files.js:676 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:674 templates/index.php:82 +#: js/files.js:677 templates/index.php:82 msgid "Modified" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 7d450a7d2e9..426ee835c51 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index fbbe45effc4..15d30558896 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,24 +37,24 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: js/settings.js:313 js/settings.js:320 +#: js/settings.js:318 js/settings.js:325 msgid "Saved" msgstr "" -#: lib/config.php:631 +#: lib/config.php:654 msgid "" "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:635 +#: lib/config.php:658 msgid "" "<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting " "of FTP shares is not possible. Please ask your system administrator to " "install it." msgstr "" -#: lib/config.php:638 +#: lib/config.php:661 msgid "" "<b>Warning:</b> The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " @@ -89,39 +89,39 @@ msgstr "" msgid "Add storage" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:93 msgid "None set" msgstr "" -#: templates/settings.php:91 +#: templates/settings.php:94 msgid "All Users" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:95 msgid "Groups" msgstr "" -#: templates/settings.php:100 +#: templates/settings.php:103 msgid "Users" msgstr "" -#: templates/settings.php:113 templates/settings.php:114 -#: templates/settings.php:155 templates/settings.php:156 +#: templates/settings.php:116 templates/settings.php:117 +#: templates/settings.php:158 templates/settings.php:159 msgid "Delete" msgstr "" -#: templates/settings.php:127 +#: templates/settings.php:130 msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:130 +#: templates/settings.php:133 msgid "Allow users to mount the following external storage" msgstr "" -#: templates/settings.php:147 +#: templates/settings.php:150 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:165 +#: templates/settings.php:168 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 71f7f914ca5..5acf3d4e6fd 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 74f47ea00b0..d890a5395da 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -31,7 +31,7 @@ msgstr "" msgid "Deleted files" msgstr "" -#: js/trash.js:16 js/trash.js:103 js/trash.js:152 +#: js/trash.js:16 js/trash.js:108 js/trash.js:157 msgid "Error" msgstr "" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 315f764576e..21b53607979 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -22,22 +22,22 @@ msgstr "" msgid "Could not revert: %s" msgstr "" -#: js/versions.js:14 +#: js/versions.js:39 msgid "Versions" msgstr "" -#: js/versions.js:60 +#: js/versions.js:61 msgid "Failed to revert {file} to revision {timestamp}." msgstr "" -#: js/versions.js:87 +#: js/versions.js:88 msgid "More versions..." msgstr "" -#: js/versions.js:125 +#: js/versions.js:126 msgid "No other versions available" msgstr "" -#: js/versions.js:155 +#: js/versions.js:156 msgid "Restore" msgstr "" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 5fbe1da2664..f7ed90f06ae 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -66,23 +66,23 @@ msgstr "" msgid "web services under your control" msgstr "" -#: private/files.php:231 +#: private/files.php:232 msgid "ZIP download is turned off." msgstr "" -#: private/files.php:232 +#: private/files.php:233 msgid "Files need to be downloaded one by one." msgstr "" -#: private/files.php:233 private/files.php:261 +#: private/files.php:234 private/files.php:262 msgid "Back to Files" msgstr "" -#: private/files.php:258 +#: private/files.php:259 msgid "Selected files too large to generate zip file." msgstr "" -#: private/files.php:259 +#: private/files.php:260 msgid "" "Please download the files separately in smaller chunks or kindly ask your " "administrator." diff --git a/l10n/templates/private.pot b/l10n/templates/private.pot index 7ef9bd01f44..64f139c4968 100644 --- a/l10n/templates/private.pot +++ b/l10n/templates/private.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -66,23 +66,23 @@ msgstr "" msgid "web services under your control" msgstr "" -#: files.php:231 +#: files.php:232 msgid "ZIP download is turned off." msgstr "" -#: files.php:232 +#: files.php:233 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:233 files.php:261 +#: files.php:234 files.php:262 msgid "Back to Files" msgstr "" -#: files.php:258 +#: files.php:259 msgid "Selected files too large to generate zip file." msgstr "" -#: files.php:259 +#: files.php:260 msgid "" "Please download the files separately in smaller chunks or kindly ask your " "administrator." diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 0038925b941..2da34f73a9a 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -64,7 +64,7 @@ msgid "Unable to load list from App Store" msgstr "" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 -#: ajax/togglegroups.php:20 changepassword/controller.php:55 +#: ajax/togglegroups.php:20 changepassword/controller.php:49 msgid "Authentication error" msgstr "" @@ -126,31 +126,31 @@ msgstr "" msgid "Couldn't update app." msgstr "" -#: changepassword/controller.php:20 +#: changepassword/controller.php:17 msgid "Wrong password" msgstr "" -#: changepassword/controller.php:42 +#: changepassword/controller.php:36 msgid "No user supplied" msgstr "" -#: changepassword/controller.php:74 +#: changepassword/controller.php:68 msgid "" "Please provide an admin recovery password, otherwise all user data will be " "lost" msgstr "" -#: changepassword/controller.php:79 +#: changepassword/controller.php:73 msgid "Wrong admin recovery password. Please check the password and try again." msgstr "" -#: changepassword/controller.php:87 +#: changepassword/controller.php:81 msgid "" "Back-end doesn't support password change, but the users encryption key was " "successfully updated." msgstr "" -#: changepassword/controller.php:92 changepassword/controller.php:103 +#: changepassword/controller.php:86 changepassword/controller.php:97 msgid "Unable to change password" msgstr "" @@ -283,7 +283,7 @@ msgstr "" msgid "Warning: Home directory for user \"{user}\" already exists" msgstr "" -#: personal.php:49 personal.php:50 +#: personal.php:48 personal.php:49 msgid "__language_name__" msgstr "" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index d28d8dc9079..2e57ba0cb5b 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index ebdf862dd7e..5d24239a412 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" +"POT-Creation-Date: 2014-04-01 01:55-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/th_TH/files.po b/l10n/th_TH/files.po index 5969ccf253f..7cb40f38e77 100644 --- a/l10n/th_TH/files.po +++ b/l10n/th_TH/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -42,7 +42,7 @@ msgid "" "allowed." msgstr "ชื่อที่ใช้ไม่ถูกต้อง, '\\', '/', '<', '>', ':', '\"', '|', '?' และ '*' ไม่ได้รับอนุญาตให้ใช้งานได้" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "ไฟล์ที่อัพโหลดมีขนาดไฟล์ใหญ่เกินจำนวนที่กำหนดไว้ในคำสั่ง MAX_FILE_SIZE ที่ถูกระบุไว้ในรูปแบบของ HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "ไฟล์ถูกอัพโหลดได้เพียงบางส่วนเท่านั้น" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "ไม่มีไฟล์ที่ถูกอัพโหลด" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "โฟลเดอร์ชั่วคราวเกิดการสูญหาย" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "ไดเร็กทอรี่ไม่ถูกต้อง" diff --git a/l10n/th_TH/user_ldap.po b/l10n/th_TH/user_ldap.po index 9b08c612be8..1e29595c3f8 100644 --- a/l10n/th_TH/user_ldap.po +++ b/l10n/th_TH/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/tr/core.po b/l10n/tr/core.po index 177ac786519..09a1e3d278e 100644 --- a/l10n/tr/core.po +++ b/l10n/tr/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-23 13:20+0000\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 19:31+0000\n" "Last-Translator: volkangezer <volkangezer@gmail.com>\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -490,7 +490,7 @@ msgid "" "The link to reset your password has been sent to your email.<br>If you do " "not receive it within a reasonable amount of time, check your spam/junk " "folders.<br>If it is not there ask your local administrator ." -msgstr "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz.<br> Eğer orada da bulamazsanız sistem yöneticinize sorunuz." +msgstr "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz." #: lostpassword/templates/lostpassword.php:15 msgid "Request failed!<br>Did you make sure your email/username was right?" diff --git a/l10n/tr/files.po b/l10n/tr/files.po index e44d0c628f9..3894fb0ad4d 100644 --- a/l10n/tr/files.po +++ b/l10n/tr/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "Geçersiz isim, '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "Hedef klasör taşındı veya silindi." @@ -92,54 +92,54 @@ msgstr "Yükleme dizini tanımlanamadı." msgid "Invalid Token" msgstr "Geçersiz Simge" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Dosya yüklenmedi. Bilinmeyen hata" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Dosya başarıyla yüklendi, hata oluşmadı" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı." -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Yüklenecek dosyanın boyutu HTML formunda belirtilen MAX_FILE_SIZE limitini aşıyor" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Dosya kısmen karşıya yüklenebildi" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Hiç dosya gönderilmedi" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Geçici dizin eksik" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Diske yazılamadı" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Yeterli disk alanı yok" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Yükleme başarısız. Yüklenen dosya bulunamadı" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Yükleme başarısız. Dosya bilgisi alınamadı." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Geçersiz dizin." diff --git a/l10n/tr/settings.po b/l10n/tr/settings.po index 9cf4c3306ca..cb9da3017de 100644 --- a/l10n/tr/settings.po +++ b/l10n/tr/settings.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-26 01:55-0400\n" -"PO-Revision-Date: 2014-03-26 05:55+0000\n" -"Last-Translator: I Robot\n" +"POT-Creation-Date: 2014-03-28 01:55-0400\n" +"PO-Revision-Date: 2014-03-27 19:31+0000\n" +"Last-Translator: volkangezer <volkangezer@gmail.com>\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -433,18 +433,18 @@ msgstr "Cron" #: templates/admin.php:167 #, php-format msgid "Last cron was executed at %s." -msgstr "" +msgstr "Son cron %s zamanında çalıştırıldı." #: templates/admin.php:170 #, php-format msgid "" "Last cron was executed at %s. This is more than an hour ago, something seems" " wrong." -msgstr "" +msgstr "Son cron %s zamanında çalıştırıldı. Bu bir saatten daha uzun bir süre, bir şeyler yanlış gibi görünüyor." #: templates/admin.php:174 msgid "Cron was not executed yet!" -msgstr "" +msgstr "Cron henüz çalıştırılmadı!" #: templates/admin.php:184 msgid "Execute one task with each page loaded" diff --git a/l10n/tr/user_ldap.po b/l10n/tr/user_ldap.po index 29c83ca6b78..33a02856ebe 100644 --- a/l10n/tr/user_ldap.po +++ b/l10n/tr/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-13 01:55-0400\n" -"PO-Revision-Date: 2014-03-12 10:51+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: volkangezer <volkangezer@gmail.com>\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/ug/files.po b/l10n/ug/files.po index 506c14df31a..99023de9b63 100644 --- a/l10n/ug/files.po +++ b/l10n/ug/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" "MIME-Version: 1.0\n" @@ -42,7 +42,7 @@ msgid "" "allowed." msgstr "" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "ھېچقانداق ھۆججەت يۈكلەنمىدى" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "ۋاقىتلىق قىسقۇچ كەم." -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "دىسكىغا يازالمىدى" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "يېتەرلىك ساقلاش بوشلۇقى يوق" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" diff --git a/l10n/ug/user_ldap.po b/l10n/ug/user_ldap.po index a2672c92aaa..4ac58f58360 100644 --- a/l10n/ug/user_ldap.po +++ b/l10n/ug/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/uk/files.po b/l10n/uk/files.po index 87f0b69253d..310553d9484 100644 --- a/l10n/uk/files.po +++ b/l10n/uk/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "allowed." msgstr "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '*' не дозволені." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -89,54 +89,54 @@ msgstr "Не вдалося встановити каталог завантаж msgid "Invalid Token" msgstr "" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Не завантажено жодного файлу. Невідома помилка" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Файл успішно вивантажено без помилок." -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Розмір відвантаженого файлу перевищує директиву MAX_FILE_SIZE вказану в HTML формі" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Файл відвантажено лише частково" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Не відвантажено жодного файлу" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Відсутній тимчасовий каталог" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Невдалося записати на диск" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Місця більше немає" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Невірний каталог." diff --git a/l10n/uk/user_ldap.po b/l10n/uk/user_ldap.po index 5aa076e5cb8..0e0f846c7ff 100644 --- a/l10n/uk/user_ldap.po +++ b/l10n/uk/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/vi/files.po b/l10n/vi/files.po index 1040f0a0b16..b049eef635c 100644 --- a/l10n/vi/files.po +++ b/l10n/vi/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng." -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -92,54 +92,54 @@ msgstr "Không thể thiết lập thư mục tải lên." msgid "Invalid Token" msgstr "Xác thực không hợp lệ" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "Không có tập tin nào được tải lên. Lỗi không xác định" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "Không có lỗi, các tập tin đã được tải lên thành công" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "Tập tin được tải lên vượt quá MAX_FILE_SIZE được quy định trong mẫu HTML" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "Các tập tin được tải lên chỉ tải lên được một phần" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "Chưa có file nào được tải lên" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "Không tìm thấy thư mục tạm" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "Không thể ghi " -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "Không đủ không gian lưu trữ" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "Tải lên thất bại. Không thể tìm thấy tập tin được tải lên" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "Tải lên thất bại. Không thể có được thông tin tập tin." -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "Thư mục không hợp lệ" diff --git a/l10n/vi/user_ldap.po b/l10n/vi/user_ldap.po index 6d8ab5dafc1..0874d51ffbd 100644 --- a/l10n/vi/user_ldap.po +++ b/l10n/vi/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index 40428237a05..79cc25eb3ea 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgid "" "allowed." msgstr "无效名称,'\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 不被允许使用。" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -92,54 +92,54 @@ msgstr "无法设置上传文件夹。" msgid "Invalid Token" msgstr "无效密匙" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "没有文件被上传。未知错误" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "文件上传成功,没有错误发生" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "上传文件大小已超过php.ini中upload_max_filesize所规定的值" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "上传的文件长度超出了 HTML 表单中 MAX_FILE_SIZE 的限制" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "已上传文件只上传了部分(不完整)" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "没有文件被上传" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "缺少临时目录" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "写入磁盘失败" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "没有足够的存储空间" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "上传失败。不能发现上传的文件" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "上传失败。不能获取文件信息。" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "无效文件夹。" diff --git a/l10n/zh_CN/user_ldap.po b/l10n/zh_CN/user_ldap.po index 723367bdbe1..79cecd9f5ea 100644 --- a/l10n/zh_CN/user_ldap.po +++ b/l10n/zh_CN/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/zh_HK/files.po b/l10n/zh_HK/files.po index 76b4c3ff60c..af3a338f965 100644 --- a/l10n/zh_HK/files.po +++ b/l10n/zh_HK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-20 01:55-0400\n" -"PO-Revision-Date: 2014-03-20 05:55+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,66 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/move.php:17 +#: ajax/move.php:15 #, php-format msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:27 ajax/move.php:30 +#: ajax/move.php:25 ajax/move.php:28 #, php-format msgid "Could not move %s" msgstr "" -#: ajax/newfile.php:57 js/files.js:98 +#: ajax/newfile.php:58 js/files.js:98 msgid "File name cannot be empty." msgstr "" -#: ajax/newfile.php:62 +#: ajax/newfile.php:63 #, php-format msgid "\"%s\" is an invalid file name." msgstr "" -#: ajax/newfile.php:68 ajax/newfolder.php:27 js/files.js:105 +#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." msgstr "" -#: ajax/newfile.php:75 ajax/newfolder.php:34 ajax/upload.php:137 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" -#: ajax/newfile.php:87 ajax/newfolder.php:46 lib/app.php:74 +#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #, php-format msgid "" "The name %s is already used in the folder %s. Please choose a different " "name." msgstr "" -#: ajax/newfile.php:96 +#: ajax/newfile.php:97 msgid "Not a valid source" msgstr "" -#: ajax/newfile.php:101 +#: ajax/newfile.php:102 msgid "" "Server is not allowed to open URLs, please check the server configuration" msgstr "" -#: ajax/newfile.php:118 +#: ajax/newfile.php:119 #, php-format msgid "Error while downloading %s to %s" msgstr "" -#: ajax/newfile.php:155 +#: ajax/newfile.php:156 msgid "Error when creating the file" msgstr "" -#: ajax/newfolder.php:21 +#: ajax/newfolder.php:22 msgid "Folder name cannot be empty." msgstr "" -#: ajax/newfolder.php:65 +#: ajax/newfolder.php:66 msgid "Error when creating the folder" msgstr "" @@ -88,54 +88,54 @@ msgstr "" msgid "Invalid Token" msgstr "" -#: ajax/upload.php:67 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "" -#: ajax/upload.php:74 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:75 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:77 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:78 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:79 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:80 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:81 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:99 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:156 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "" -#: ajax/upload.php:166 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "" -#: ajax/upload.php:185 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "" @@ -156,40 +156,40 @@ msgid "" "Not enough free space, you are uploading {size1} but only {size2} is left" msgstr "" -#: js/file-upload.js:338 +#: js/file-upload.js:340 msgid "Upload cancelled." msgstr "" -#: js/file-upload.js:383 +#: js/file-upload.js:385 msgid "Could not get result from server." msgstr "" -#: js/file-upload.js:475 +#: js/file-upload.js:477 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/file-upload.js:562 +#: js/file-upload.js:564 msgid "URL cannot be empty" msgstr "" -#: js/file-upload.js:566 +#: js/file-upload.js:568 msgid "In the home folder 'Shared' is a reserved filename" msgstr "" -#: js/file-upload.js:568 js/filelist.js:430 +#: js/file-upload.js:570 js/filelist.js:430 msgid "{new_name} already exists" msgstr "" -#: js/file-upload.js:634 +#: js/file-upload.js:636 msgid "Could not create file" msgstr "" -#: js/file-upload.js:650 +#: js/file-upload.js:652 msgid "Could not create folder" msgstr "" -#: js/file-upload.js:700 +#: js/file-upload.js:702 msgid "Error fetching URL" msgstr "" diff --git a/l10n/zh_HK/user_ldap.po b/l10n/zh_HK/user_ldap.po index 690f08e838e..67182c3f7e1 100644 --- a/l10n/zh_HK/user_ldap.po +++ b/l10n/zh_HK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/zh_TW/files.po b/l10n/zh_TW/files.po index 71dc6a0a86b..a83f1fff465 100644 --- a/l10n/zh_TW/files.po +++ b/l10n/zh_TW/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-24 01:55-0400\n" -"PO-Revision-Date: 2014-03-24 05:00+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgid "" "allowed." msgstr "檔名不合法,不允許 \\ / < > : \" | ? * 字元" -#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:138 +#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: lib/app.php:65 msgid "The target folder has been moved or deleted." msgstr "" @@ -90,54 +90,54 @@ msgstr "無法設定上傳目錄" msgid "Invalid Token" msgstr "無效的 token" -#: ajax/upload.php:68 +#: ajax/upload.php:71 msgid "No file was uploaded. Unknown error" msgstr "沒有檔案被上傳,原因未知" -#: ajax/upload.php:75 +#: ajax/upload.php:78 msgid "There is no error, the file uploaded with success" msgstr "一切都順利,檔案上傳成功" -#: ajax/upload.php:76 +#: ajax/upload.php:79 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:" -#: ajax/upload.php:78 +#: ajax/upload.php:81 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "上傳的檔案大小超過 HTML 表單中 MAX_FILE_SIZE 的限制" -#: ajax/upload.php:79 +#: ajax/upload.php:82 msgid "The uploaded file was only partially uploaded" msgstr "只有檔案的一部分被上傳" -#: ajax/upload.php:80 +#: ajax/upload.php:83 msgid "No file was uploaded" msgstr "沒有檔案被上傳" -#: ajax/upload.php:81 +#: ajax/upload.php:84 msgid "Missing a temporary folder" msgstr "找不到暫存資料夾" -#: ajax/upload.php:82 +#: ajax/upload.php:85 msgid "Failed to write to disk" msgstr "寫入硬碟失敗" -#: ajax/upload.php:100 +#: ajax/upload.php:103 msgid "Not enough storage available" msgstr "儲存空間不足" -#: ajax/upload.php:157 +#: ajax/upload.php:160 msgid "Upload failed. Could not find uploaded file" msgstr "上傳失敗,找不到上傳的檔案" -#: ajax/upload.php:167 +#: ajax/upload.php:170 msgid "Upload failed. Could not get file info." msgstr "上傳失敗,無法取得檔案資訊" -#: ajax/upload.php:186 +#: ajax/upload.php:189 msgid "Invalid directory." msgstr "無效的資料夾" diff --git a/l10n/zh_TW/user_ldap.po b/l10n/zh_TW/user_ldap.po index 47eae57c809..f025e58cce9 100644 --- a/l10n/zh_TW/user_ldap.po +++ b/l10n/zh_TW/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-03-12 01:54-0400\n" -"PO-Revision-Date: 2014-03-11 06:12+0000\n" +"POT-Creation-Date: 2014-03-27 01:55-0400\n" +"PO-Revision-Date: 2014-03-26 06:01+0000\n" "Last-Translator: I Robot\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" diff --git a/lib/base.php b/lib/base.php index 2515b9657cb..15a3ec8bc8a 100644 --- a/lib/base.php +++ b/lib/base.php @@ -549,16 +549,10 @@ class OC { OC_User::logout(); } - // Load Apps - // This includes plugins for users and filesystems as well - global $RUNTIME_NOAPPS; - global $RUNTIME_APPTYPES; - if (!$RUNTIME_NOAPPS && !self::checkUpgrade(false)) { - if ($RUNTIME_APPTYPES) { - OC_App::loadApps($RUNTIME_APPTYPES); - } else { - OC_App::loadApps(); - } + // Load minimum set of apps - which is filesystem, authentication and logging + if (!self::checkUpgrade(false)) { + OC_App::loadApps(array('authentication')); + OC_App::loadApps(array('filesystem', 'logging')); } //setup extra user backends @@ -659,10 +653,10 @@ class OC { */ public static function registerShareHooks() { if (\OC_Config::getValue('installed')) { - OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); - OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); - OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); - OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup'); + OC_Hook::connect('OC_User', 'post_deleteUser', 'OC\Share\Hooks', 'post_deleteUser'); + OC_Hook::connect('OC_User', 'post_addToGroup', 'OC\Share\Hooks', 'post_addToGroup'); + OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OC\Share\Hooks', 'post_removeFromGroup'); + OC_Hook::connect('OC_User', 'post_deleteGroup', 'OC\Share\Hooks', 'post_deleteGroup'); } } @@ -851,7 +845,7 @@ class OC { ) { return false; } - OC_App::loadApps(array('authentication')); + if (defined("DEBUG") && DEBUG) { OC_Log::write('core', 'Trying to login from cookie', OC_Log::DEBUG); } @@ -923,7 +917,7 @@ class OC { ) { return false; } - OC_App::loadApps(array('authentication')); + if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) { //OC_Log::write('core',"Logged in with HTTP Authentication", OC_Log::DEBUG); OC_User::unsetMagicInCookie(); @@ -934,11 +928,6 @@ class OC { } -// define runtime variables - unless this already has been done -if (!isset($RUNTIME_NOAPPS)) { - $RUNTIME_NOAPPS = false; -} - if (!function_exists('get_temp_dir')) { function get_temp_dir() { if ($temp = ini_get('upload_tmp_dir')) return $temp; @@ -957,4 +946,3 @@ if (!function_exists('get_temp_dir')) { } OC::init(); - diff --git a/lib/l10n/el.php b/lib/l10n/el.php index 148b7fc1fe5..a169ae38649 100644 --- a/lib/l10n/el.php +++ b/lib/l10n/el.php @@ -44,7 +44,9 @@ $TRANSLATIONS = array( "DB Error: \"%s\"" => "Σφάλμα Βάσης Δεδομένων: \"%s\"", "Offending command was: \"%s\"" => "Η εντολη παραβατικοτητας ηταν: \"%s\"", "MySQL/MariaDB user '%s'@'localhost' exists already." => "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL/MariaDB", +"Drop this user from MySQL/MariaDB" => "Κατάργηση του χρήστη από MySQL/MariaDB", "MySQL/MariaDB user '%s'@'%%' already exists" => "Υπάρχει ήδη ο χρήστης '%s'@'%%' της MySQL/MariaDB", +"Drop this user from MySQL/MariaDB." => "Κατάργηση του χρήστη από MySQL/MariaDB.", "Oracle connection could not be established" => "Αδυναμία σύνδεσης Oracle", "Oracle username and/or password not valid" => "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle", "Offending command was: \"%s\", name: %s, password: %s" => "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s", diff --git a/lib/l10n/pl_PL.php b/lib/l10n/pl_PL.php deleted file mode 100644 index 5494e3dab25..00000000000 --- a/lib/l10n/pl_PL.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Settings" => "Ustawienia" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/lib/l10n/sk_SK.php b/lib/l10n/sk_SK.php index 546e3017978..424f0f5bd8c 100644 --- a/lib/l10n/sk_SK.php +++ b/lib/l10n/sk_SK.php @@ -31,6 +31,7 @@ $TRANSLATIONS = array( "Application is not enabled" => "Aplikácia nie je zapnutá", "Authentication error" => "Chyba autentifikácie", "Token expired. Please reload page." => "Token vypršal. Obnovte, prosím, stránku.", +"Unknown user" => "Neznámy používateľ", "Files" => "Súbory", "Text" => "Text", "Images" => "Obrázky", diff --git a/lib/private/cache/file.php b/lib/private/cache/file.php index 8a6ef39f61b..be6805a9a57 100644 --- a/lib/private/cache/file.php +++ b/lib/private/cache/file.php @@ -1,6 +1,7 @@ <?php /** * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl> + * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com> * This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. @@ -10,22 +11,22 @@ namespace OC\Cache; class File { protected $storage; + + /** + * Returns the cache storage for the logged in user + * @return cache storage + */ protected function getStorage() { if (isset($this->storage)) { return $this->storage; } if(\OC_User::isLoggedIn()) { \OC\Files\Filesystem::initMountPoints(\OC_User::getUser()); - $subdir = 'cache'; - $view = new \OC\Files\View('/' . \OC_User::getUser()); - if(!$view->file_exists($subdir)) { - $view->mkdir($subdir); - } - $this->storage = new \OC\Files\View('/' . \OC_User::getUser().'/'.$subdir); + $this->storage = new \OC\Files\View('/' . \OC_User::getUser() . '/cache'); return $this->storage; }else{ \OC_Log::write('core', 'Can\'t get cache storage, user not logged in', \OC_Log::ERROR); - return false; + throw new \OC\ForbiddenException('Can\t get cache storage, user not logged in'); } } diff --git a/lib/private/connector/sabre/quotaplugin.php b/lib/private/connector/sabre/quotaplugin.php index 8099794f670..227e684741c 100644 --- a/lib/private/connector/sabre/quotaplugin.php +++ b/lib/private/connector/sabre/quotaplugin.php @@ -56,8 +56,19 @@ class OC_Connector_Sabre_QuotaPlugin extends Sabre_DAV_ServerPlugin { $uri='/'.$uri; } list($parentUri, $newName) = Sabre_DAV_URLUtil::splitPath($uri); + $req = $this->server->httpRequest; + if ($req->getHeader('OC-Chunked')) { + $info = OC_FileChunking::decodeName($newName); + $chunkHandler = new OC_FileChunking($info); + // substract the already uploaded size to see whether + // there is still enough space for the remaining chunks + $length -= $chunkHandler->getCurrentSize(); + } $freeSpace = $this->getFreeSpace($parentUri); if ($freeSpace !== \OC\Files\SPACE_UNKNOWN && $length > $freeSpace) { + if (isset($chunkHandler)) { + $chunkHandler->cleanup(); + } throw new Sabre_DAV_Exception_InsufficientStorage(); } } diff --git a/lib/private/db/statementwrapper.php b/lib/private/db/statementwrapper.php index eaf215c7231..492209b883b 100644 --- a/lib/private/db/statementwrapper.php +++ b/lib/private/db/statementwrapper.php @@ -8,6 +8,11 @@ /** * small wrapper around \Doctrine\DBAL\Driver\Statement to make it behave, more like an MDB2 Statement + * + * @method boolean bindValue(mixed $param, mixed $value, integer $type = null); + * @method string errorCode(); + * @method array errorInfo(); + * @method integer rowCount(); */ class OC_DB_StatementWrapper { /** @@ -161,6 +166,8 @@ class OC_DB_StatementWrapper { /** * provide an alias for fetch + * + * @return mixed */ public function fetchRow() { return $this->statement->fetch(); @@ -168,12 +175,13 @@ class OC_DB_StatementWrapper { /** * Provide a simple fetchOne. + * * fetch single column from the next row - * @param int $colnum the column number to fetch + * @param int $column the column number to fetch * @return string */ - public function fetchOne($colnum = 0) { - return $this->statement->fetchColumn($colnum); + public function fetchOne($column = 0) { + return $this->statement->fetchColumn($column); } /** diff --git a/lib/private/filechunking.php b/lib/private/filechunking.php index be7f4e14a11..1da02fc81e3 100644 --- a/lib/private/filechunking.php +++ b/lib/private/filechunking.php @@ -64,20 +64,46 @@ class OC_FileChunking { return $parts == $this->info['chunkcount']; } + /** + * Assembles the chunks into the file specified by the path. + * Chunks are deleted afterwards. + * + * @param string $f target path + * + * @return assembled file size + * + * @throws \OC\InsufficientStorageException when file could not be fully + * assembled due to lack of free space + */ public function assemble($f) { $cache = $this->getCache(); $prefix = $this->getPrefix(); $count = 0; - for($i=0; $i < $this->info['chunkcount']; $i++) { + for ($i = 0; $i < $this->info['chunkcount']; $i++) { $chunk = $cache->get($prefix.$i); + // remove after reading to directly save space + $cache->remove($prefix.$i); $count += fwrite($f, $chunk); } - $this->cleanup(); return $count; } /** + * Returns the size of the chunks already present + * @return size in bytes + */ + public function getCurrentSize() { + $cache = $this->getCache(); + $prefix = $this->getPrefix(); + $total = 0; + for ($i = 0; $i < $this->info['chunkcount']; $i++) { + $total += $cache->size($prefix.$i); + } + return $total; + } + + /** * Removes all chunks which belong to this transmission */ public function cleanup() { @@ -128,7 +154,15 @@ class OC_FileChunking { } /** - * @param string $path + * Assembles the chunks into the file specified by the path. + * Also triggers the relevant hooks and proxies. + * + * @param string $path target path + * + * @return assembled file size or false if file could not be created + * + * @throws \OC\InsufficientStorageException when file could not be fully + * assembled due to lack of free space */ public function file_assemble($path) { $absolutePath = \OC\Files\Filesystem::normalizePath(\OC\Files\Filesystem::getView()->getAbsolutePath($path)); diff --git a/lib/private/files.php b/lib/private/files.php index 7e7a27f48dc..bfe6d3c02da 100644 --- a/lib/private/files.php +++ b/lib/private/files.php @@ -148,8 +148,9 @@ class OC_Files { set_time_limit($executionTime); } else { if ($xsendfile) { + $view = \OC\Files\Filesystem::getView(); /** @var $storage \OC\Files\Storage\Storage */ - list($storage) = \OC\Files\Filesystem::resolvePath($filename); + list($storage) = $view->resolvePath($filename); if ($storage->isLocal()) { self::addSendfileHeader(\OC\Files\Filesystem::getLocalFile($filename)); } else { diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php index abc11e76470..1c9de56f8c5 100644 --- a/lib/private/files/cache/cache.php +++ b/lib/private/files/cache/cache.php @@ -594,7 +594,25 @@ class Cache { } /** + * get the path of a file on this storage by it's id + * + * @param int $id + * @return string | null + */ + public function getPathById($id) { + $sql = 'SELECT `path` FROM `*PREFIX*filecache` WHERE `fileid` = ? AND `storage` = ?'; + $result = \OC_DB::executeAudited($sql, array($id, $this->getNumericStorageId())); + if ($row = $result->fetchRow()) { + return $row['path']; + } else { + return null; + } + } + + /** * get the storage id of the storage for a file and the internal path of the file + * unlike getPathById this does not limit the search to files on this storage and + * instead does a global search in the cache table * * @param int $id * @return array, first element holding the storage id, second the path diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php index c31e0c38180..7e27650c557 100644 --- a/lib/private/files/filesystem.php +++ b/lib/private/files/filesystem.php @@ -321,11 +321,36 @@ class Filesystem { self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); } + self::mountCacheDir($user); + // Chance to mount for other storages \OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root)); } /** + * Mounts the cache directory + * @param string $user user name + */ + private static function mountCacheDir($user) { + $cacheBaseDir = \OC_Config::getValue('cache_path', ''); + if ($cacheBaseDir === '') { + // use local cache dir relative to the user's home + $subdir = 'cache'; + $view = new \OC\Files\View('/' . $user); + if(!$view->file_exists($subdir)) { + $view->mkdir($subdir); + } + } else { + $cacheDir = rtrim($cacheBaseDir, '/') . '/' . $user; + if (!file_exists($cacheDir)) { + mkdir($cacheDir, 0770, true); + } + // mount external cache dir to "/$user/cache" mount point + self::mount('\OC\Files\Storage\Local', array('datadir' => $cacheDir), '/' . $user . '/cache'); + } + } + + /** * get the default filesystem view * * @return View diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 3c078d7b1b4..2b697141515 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -160,8 +160,7 @@ abstract class Common implements \OC\Files\Storage\Storage { public function hash($type, $path, $raw = false) { $tmpFile = $this->getLocalFile($path); - $hash = hash($type, $tmpFile, $raw); - unlink($tmpFile); + $hash = hash_file($type, $tmpFile, $raw); return $hash; } diff --git a/lib/private/files/storage/local.php b/lib/private/files/storage/local.php index 0f906ec55b4..571bf7f97c1 100644 --- a/lib/private/files/storage/local.php +++ b/lib/private/files/storage/local.php @@ -256,7 +256,7 @@ if (\OC_Util::runningOnWindows()) { return 0; } - public function hash($path, $type, $raw = false) { + public function hash($type, $path, $raw = false) { return hash_file($type, $this->datadir . $path, $raw); } diff --git a/lib/private/files/storage/mappedlocal.php b/lib/private/files/storage/mappedlocal.php index 026f6ec895e..94ee28ca763 100644 --- a/lib/private/files/storage/mappedlocal.php +++ b/lib/private/files/storage/mappedlocal.php @@ -276,7 +276,7 @@ class MappedLocal extends \OC\Files\Storage\Common{ return 0; } - public function hash($path, $type, $raw=false) { + public function hash($type, $path, $raw=false) { return hash_file($type, $this->buildPath($path), $raw); } diff --git a/lib/private/files/view.php b/lib/private/files/view.php index f06c2fcd66c..90b0da09c37 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -1129,15 +1129,22 @@ class View { * @return string */ public function getPath($id) { - list($storage, $internalPath) = Cache\Cache::getById($id); - $mounts = Filesystem::getMountByStorageId($storage); + $manager = Filesystem::getMountManager(); + $mounts = $manager->findIn($this->fakeRoot); + $mounts[] = $manager->find($this->fakeRoot); + // reverse the array so we start with the storage this view is in + // which is the most likely to contain the file we're looking for + $mounts = array_reverse($mounts); foreach ($mounts as $mount) { /** - * @var \OC\Files\Mount $mount + * @var \OC\Files\Mount\Mount $mount */ - $fullPath = $mount->getMountPoint() . $internalPath; - if (!is_null($path = $this->getRelativePath($fullPath))) { - return $path; + $cache = $mount->getStorage()->getCache(); + if ($internalPath = $cache->getPathById($id)) { + $fullPath = $mount->getMountPoint() . $internalPath; + if (!is_null($path = $this->getRelativePath($fullPath))) { + return $path; + } } } return null; diff --git a/lib/private/forbiddenexception.php b/lib/private/forbiddenexception.php new file mode 100644 index 00000000000..14a4cd14984 --- /dev/null +++ b/lib/private/forbiddenexception.php @@ -0,0 +1,16 @@ +<?php +/** + * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC; + +/** + * Exception thrown whenever access to a resource has + * been forbidden or whenever a user isn't authenticated. + */ +class ForbiddenException extends \Exception { +} diff --git a/lib/private/helper.php b/lib/private/helper.php index 98a86388d20..d7ac0b5f4fa 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -78,8 +78,7 @@ class OC_Helper { * Returns a absolute url to the given app and file. */ public static function linkToAbsolute($app, $file, $args = array()) { - $urlLinkTo = self::linkTo($app, $file, $args); - return self::makeURLAbsolute($urlLinkTo); + return self::linkTo($app, $file, $args); } /** diff --git a/lib/private/route/router.php b/lib/private/route/router.php index bad74c925fa..1f0a23ee124 100644 --- a/lib/private/route/router.php +++ b/lib/private/route/router.php @@ -114,7 +114,7 @@ class Router implements IRouter { } } foreach ($routingFiles as $app => $file) { - if (!$this->loadedApps[$app]) { + if (!isset($this->loadedApps[$app])) { $this->loadedApps[$app] = true; $this->useCollection($app); require_once $file; diff --git a/lib/private/share/constants.php b/lib/private/share/constants.php new file mode 100644 index 00000000000..7e4223d10fa --- /dev/null +++ b/lib/private/share/constants.php @@ -0,0 +1,44 @@ +<?php +/** + * ownCloud + * + * @author Bjoern Schiessle + * @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OC\Share; + +class Constants { + + const SHARE_TYPE_USER = 0; + const SHARE_TYPE_GROUP = 1; + const SHARE_TYPE_LINK = 3; + const SHARE_TYPE_EMAIL = 4; + const SHARE_TYPE_CONTACT = 5; + const SHARE_TYPE_REMOTE = 6; + + const FORMAT_NONE = -1; + const FORMAT_STATUSES = -2; + const FORMAT_SOURCES = -3; + + const TOKEN_LENGTH = 32; // see db_structure.xml + + protected static $shareTypeUserAndGroups = -1; + protected static $shareTypeGroupUserUnique = 2; + protected static $backends = array(); + protected static $backendTypes = array(); + protected static $isResharingAllowed; +} diff --git a/lib/private/share/helper.php b/lib/private/share/helper.php new file mode 100644 index 00000000000..fde55667281 --- /dev/null +++ b/lib/private/share/helper.php @@ -0,0 +1,202 @@ +<?php +/** + * ownCloud + * + * @author Bjoern Schiessle + * @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OC\Share; + +class Helper extends \OC\Share\Constants { + + /** + * Generate a unique target for the item + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param string User that is the owner of shared item + * @param string The suggested target originating from a reshare (optional) + * @param int The id of the parent group share (optional) + * @return string Item target + */ + public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, + $suggestedTarget = null, $groupParent = null) { + $backend = \OC\Share\Share::getBackend($itemType); + if ($shareType == self::SHARE_TYPE_LINK) { + if (isset($suggestedTarget)) { + return $suggestedTarget; + } + return $backend->generateTarget($itemSource, false); + } else { + if ($itemType == 'file' || $itemType == 'folder') { + $column = 'file_target'; + $columnSource = 'file_source'; + } else { + $column = 'item_target'; + $columnSource = 'item_source'; + } + if ($shareType == self::SHARE_TYPE_USER) { + // Share with is a user, so set share type to user and groups + $shareType = self::$shareTypeUserAndGroups; + $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); + } else { + $userAndGroups = false; + } + $exclude = null; + // Backend has 3 opportunities to generate a unique target + for ($i = 0; $i < 2; $i++) { + // Check if suggested target exists first + if ($i == 0 && isset($suggestedTarget)) { + $target = $suggestedTarget; + } else { + if ($shareType == self::SHARE_TYPE_GROUP) { + $target = $backend->generateTarget($itemSource, false, $exclude); + } else { + $target = $backend->generateTarget($itemSource, $shareWith, $exclude); + } + if (is_array($exclude) && in_array($target, $exclude)) { + break; + } + } + // Check if target already exists + $checkTarget = \OC\Share\Share::getItems($itemType, $target, $shareType, $shareWith); + if (!empty($checkTarget)) { + foreach ($checkTarget as $item) { + // Skip item if it is the group parent row + if (isset($groupParent) && $item['id'] == $groupParent) { + if (count($checkTarget) == 1) { + return $target; + } else { + continue; + } + } + if ($item['uid_owner'] == $uidOwner) { + if ($itemType == 'file' || $itemType == 'folder') { + $meta = \OC\Files\Filesystem::getFileInfo($itemSource); + if ($item['file_source'] == $meta['fileid']) { + return $target; + } + } else if ($item['item_source'] == $itemSource) { + return $target; + } + } + } + if (!isset($exclude)) { + $exclude = array(); + } + // Find similar targets to improve backend's chances to generate a unqiue target + if ($userAndGroups) { + if ($column == 'file_target') { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` IN (\'file\', \'folder\')' + .' AND `share_type` IN (?,?,?)' + .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, + self::$shareTypeGroupUserUnique)); + } else { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` = ? AND `share_type` IN (?,?,?)' + .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, + self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + } + } else { + if ($column == 'file_target') { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` IN (\'file\', \'folder\')' + .' AND `share_type` = ? AND `share_with` = ?'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); + } else { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); + } + } + while ($row = $result->fetchRow()) { + $exclude[] = $row[$column]; + } + } else { + return $target; + } + } + } + $message = 'Sharing backend registered for '.$itemType.' did not generate a unique target for '.$itemSource; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + + /** + * Delete all reshares of an item + * @param int Id of item to delete + * @param bool If true, exclude the parent from the delete (optional) + * @param string The user that the parent was shared with (optinal) + */ + public static function delete($parent, $excludeParent = false, $uidOwner = null) { + $ids = array($parent); + $parents = array($parent); + while (!empty($parents)) { + $parents = "'".implode("','", $parents)."'"; + // Check the owner on the first search of reshares, useful for + // finding and deleting the reshares by a single user of a group share + if (count($ids) == 1 && isset($uidOwner)) { + $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent`' + .' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); + $result = $query->execute(array($uidOwner)); + } else { + $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner`' + .' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); + $result = $query->execute(); + } + // Reset parents array, only go through loop again if items are found + $parents = array(); + while ($item = $result->fetchRow()) { + // Search for a duplicate parent share, this occurs when an + // item is shared to the same user through a group and user or the + // same item is shared by different users + $userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner'])); + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`' + .' WHERE `item_type` = ?' + .' AND `item_target` = ?' + .' AND `share_type` IN (?,?,?)' + .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')' + .' AND `uid_owner` != ? AND `id` != ?'); + $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], + self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, + $item['uid_owner'], $item['parent']))->fetchRow(); + if ($duplicateParent) { + // Change the parent to the other item id if share permission is granted + if ($duplicateParent['permissions'] & \OCP\PERMISSION_SHARE) { + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `parent` = ? WHERE `id` = ?'); + $query->execute(array($duplicateParent['id'], $item['id'])); + continue; + } + } + $ids[] = $item['id']; + $parents[] = $item['id']; + } + } + if ($excludeParent) { + unset($ids[0]); + } + if (!empty($ids)) { + $ids = "'".implode("','", $ids)."'"; + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `id` IN ('.$ids.')'); + $query->execute(); + } + } +} diff --git a/lib/private/share/hooks.php b/lib/private/share/hooks.php new file mode 100644 index 00000000000..a33c71eedd2 --- /dev/null +++ b/lib/private/share/hooks.php @@ -0,0 +1,108 @@ +<?php +/** + * ownCloud + * + * @author Bjoern Schiessle + * @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OC\Share; + +class Hooks extends \OC\Share\Constants { + /** + * Function that is called after a user is deleted. Cleans up the shares of that user. + * @param array arguments + */ + public static function post_deleteUser($arguments) { + // Delete any items shared with the deleted user + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`' + .' WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); + $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); + // Delete any items the deleted user shared + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); + $result = $query->execute(array($arguments['uid'])); + while ($item = $result->fetchRow()) { + Helper::delete($item['id']); + } + } + + /** + * Function that is called after a user is added to a group. + * TODO what does it do? + * @param array arguments + */ + public static function post_addToGroup($arguments) { + // Find the group shares and check if the user needs a unique target + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' + .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' + .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + while ($item = $result->fetchRow()) { + if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { + $itemTarget = null; + } else { + $itemTarget = Helper::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + } + if (isset($item['file_source'])) { + $fileTarget = Helper::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], + self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], + $item['stime'], $item['file_source'], $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); + } + } + } + + /** + * Function that is called after a user is removed from a group. Shares are cleaned up. + * @param array arguments + */ + public static function post_removeFromGroup($arguments) { + $sql = 'SELECT `id`, `share_type` FROM `*PREFIX*share`' + .' WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'; + $result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid'], + self::$shareTypeGroupUserUnique, $arguments['uid'])); + while ($item = $result->fetchRow()) { + if ($item['share_type'] == self::SHARE_TYPE_GROUP) { + // Delete all reshares by this user of the group share + Helper::delete($item['id'], true, $arguments['uid']); + } else { + Helper::delete($item['id']); + } + } + } + + /** + * Function that is called after a group is removed. Cleans up the shares to that group. + * @param array arguments + */ + public static function post_deleteGroup($arguments) { + $sql = 'SELECT `id` FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'; + $result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + while ($item = $result->fetchRow()) { + Helper::delete($item['id']); + } + } + +} diff --git a/lib/private/share/share.php b/lib/private/share/share.php new file mode 100644 index 00000000000..7bab98b00bf --- /dev/null +++ b/lib/private/share/share.php @@ -0,0 +1,1619 @@ +<?php +/** + * ownCloud + * + * @author Bjoern Schiessle, Michael Gapczynski + * @copyright 2012 Michael Gapczynski <mtgap@owncloud.com> + * 2014 Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OC\Share; + +/** + * This class provides the ability for apps to share their content between users. + * Apps must create a backend class that implements OCP\Share_Backend and register it with this class. + * + * It provides the following hooks: + * - post_shared + */ +class Share extends \OC\Share\Constants { + + /** CRUDS permissions (Create, Read, Update, Delete, Share) using a bitmask + * Construct permissions for share() and setPermissions with Or (|) e.g. + * Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE + * + * Check if permission is granted with And (&) e.g. Check if delete is + * granted: if ($permissions & PERMISSION_DELETE) + * + * Remove permissions with And (&) and Not (~) e.g. Remove the update + * permission: $permissions &= ~PERMISSION_UPDATE + * + * Apps are required to handle permissions on their own, this class only + * stores and manages the permissions of shares + * @see lib/public/constants.php + */ + + /** + * Register a sharing backend class that implements OCP\Share_Backend for an item type + * @param string Item type + * @param string Backend class + * @param string (optional) Depends on item type + * @param array (optional) List of supported file extensions if this item type depends on files + * @return Returns true if backend is registered or false if error + */ + public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { + if (self::isEnabled()) { + if (!isset(self::$backendTypes[$itemType])) { + self::$backendTypes[$itemType] = array( + 'class' => $class, + 'collectionOf' => $collectionOf, + 'supportedFileExtensions' => $supportedFileExtensions + ); + if(count(self::$backendTypes) === 1) { + \OC_Util::addScript('core', 'share'); + \OC_Util::addStyle('core', 'share'); + } + return true; + } + \OC_Log::write('OCP\Share', + 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'] + .' is already registered for '.$itemType, + \OC_Log::WARN); + } + return false; + } + + /** + * Check if the Share API is enabled + * @return Returns true if enabled or false + * + * The Share API is enabled by default if not configured + */ + public static function isEnabled() { + if (\OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes') == 'yes') { + return true; + } + return false; + } + + /** + * Find which users can access a shared item + * @param $path to the file + * @param $user owner of the file + * @param include owner to the list of users with access to the file + * @return array + * @note $path needs to be relative to user data dir, e.g. 'file.txt' + * not '/admin/data/file.txt' + */ + public static function getUsersSharingFile($path, $user, $includeOwner = false) { + + $shares = array(); + $publicShare = false; + $source = -1; + $cache = false; + + $view = new \OC\Files\View('/' . $user . '/files'); + if ($view->file_exists($path)) { + $meta = $view->getFileInfo($path); + } else { + // if the file doesn't exists yet we start with the parent folder + $meta = $view->getFileInfo(dirname($path)); + } + + if($meta !== false) { + $source = $meta['fileid']; + $cache = new \OC\Files\Cache\Cache($meta['storage']); + } + + while ($source !== -1) { + + // Fetch all shares with another user + $query = \OC_DB::prepare( + 'SELECT `share_with` + FROM + `*PREFIX*share` + WHERE + `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')' + ); + + $result = $query->execute(array($source, self::SHARE_TYPE_USER)); + + if (\OCP\DB::isError($result)) { + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + } else { + while ($row = $result->fetchRow()) { + $shares[] = $row['share_with']; + } + } + // We also need to take group shares into account + + $query = \OC_DB::prepare( + 'SELECT `share_with` + FROM + `*PREFIX*share` + WHERE + `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')' + ); + + $result = $query->execute(array($source, self::SHARE_TYPE_GROUP)); + + if (\OCP\DB::isError($result)) { + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + } else { + while ($row = $result->fetchRow()) { + $usersInGroup = \OC_Group::usersInGroup($row['share_with']); + $shares = array_merge($shares, $usersInGroup); + } + } + + //check for public link shares + if (!$publicShare) { + $query = \OC_DB::prepare( + 'SELECT `share_with` + FROM + `*PREFIX*share` + WHERE + `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')' + ); + + $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); + + if (\OCP\DB::isError($result)) { + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + } else { + if ($result->fetchRow()) { + $publicShare = true; + } + } + } + + // let's get the parent for the next round + $meta = $cache->get((int)$source); + if($meta !== false) { + $source = (int)$meta['parent']; + } else { + $source = -1; + } + } + // Include owner in list of users, if requested + if ($includeOwner) { + $shares[] = $user; + } + + return array("users" => array_unique($shares), "public" => $publicShare); + } + + /** + * Get the items of item type shared with the current user + * @param string Item type + * @param int Format (optional) Format type must be defined by the backend + * @param mixed Parameters (optional) + * @param int Number of items to return (optional) Returns all by default + * @param bool include collections (optional) + * @return Return depends on format + */ + public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, + $parameters = null, $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, + $parameters, $limit, $includeCollections); + } + + /** + * Get the item of item type shared with the current user + * @param string $itemType + * @param string $itemTarget + * @param int $format (optional) Format type must be defined by the backend + * @param mixed Parameters (optional) + * @param bool include collections (optional) + * @return Return depends on format + */ + public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, + $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, + $parameters, 1, $includeCollections); + } + + /** + * Get the item of item type shared with a given user by source + * @param string $itemType + * @param string $itemSource + * @param string $user User user to whom the item was shared + * @return array Return list of items with file_target, permissions and expiration + */ + public static function getItemSharedWithUser($itemType, $itemSource, $user) { + + $shares = array(); + + // first check if there is a db entry for the specific user + $query = \OC_DB::prepare( + 'SELECT `file_target`, `permissions`, `expiration` + FROM + `*PREFIX*share` + WHERE + `item_source` = ? AND `item_type` = ? AND `share_with` = ?' + ); + + $result = \OC_DB::executeAudited($query, array($itemSource, $itemType, $user)); + + while ($row = $result->fetchRow()) { + $shares[] = $row; + } + + //if didn't found a result than let's look for a group share. + if(empty($shares)) { + $groups = \OC_Group::getUserGroups($user); + + $query = \OC_DB::prepare( + 'SELECT `file_target`, `permissions`, `expiration` + FROM + `*PREFIX*share` + WHERE + `item_source` = ? AND `item_type` = ? AND `share_with` in (?)' + ); + + $result = \OC_DB::executeAudited($query, array($itemSource, $itemType, implode(',', $groups))); + + while ($row = $result->fetchRow()) { + $shares[] = $row; + } + } + + return $shares; + + } + + /** + * Get the item of item type shared with the current user by source + * @param string Item type + * @param string Item source + * @param int Format (optional) Format type must be defined by the backend + * @param mixed Parameters + * @param bool include collections + * @return Return depends on format + */ + public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, + $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, + $parameters, 1, $includeCollections, true); + } + + /** + * Get the item of item type shared by a link + * @param string Item type + * @param string Item source + * @param string Owner of link + * @return Item + */ + public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { + return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, + null, 1); + } + + /** + * Based on the given token the share information will be returned - password protected shares will be verified + * @param string $token + * @return array | bool false will be returned in case the token is unknown or unauthorized + */ + public static function getShareByToken($token, $checkPasswordProtection = true) { + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?', 1); + $result = $query->execute(array($token)); + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', token=' . $token, \OC_Log::ERROR); + } + $row = $result->fetchRow(); + if ($row === false) { + return false; + } + if (is_array($row) and self::expireItem($row)) { + return false; + } + + // password protected shares need to be authenticated + if ($checkPasswordProtection && !\OCP\Share::checkPasswordProtectedShare($row)) { + return false; + } + + return $row; + } + + /** + * resolves reshares down to the last real share + * @param $linkItem + * @return $fileOwner + */ + public static function resolveReShare($linkItem) + { + if (isset($linkItem['parent'])) { + $parent = $linkItem['parent']; + while (isset($parent)) { + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `id` = ?', 1); + $item = $query->execute(array($parent))->fetchRow(); + if (isset($item['parent'])) { + $parent = $item['parent']; + } else { + return $item; + } + } + } + return $linkItem; + } + + + /** + * Get the shared items of item type owned by the current user + * @param string Item type + * @param int Format (optional) Format type must be defined by the backend + * @param mixed Parameters + * @param int Number of items to return (optional) Returns all by default + * @param bool include collections + * @return Return depends on format + */ + public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, + $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, + $parameters, $limit, $includeCollections); + } + + /** + * Get the shared item of item type owned by the current user + * @param string Item type + * @param string Item source + * @param int Format (optional) Format type must be defined by the backend + * @param mixed Parameters + * @param bool include collections + * @return Return depends on format + */ + public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, + $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, + $parameters, -1, $includeCollections); + } + + /** + * Get all users an item is shared with + * @param string Item type + * @param string Item source + * @param string Owner + * @param bool Include collections + * @praram bool check expire date + * @return Return array of users + */ + public static function getUsersItemShared($itemType, $itemSource, $uidOwner, $includeCollections = false, $checkExpireDate = true) { + + $users = array(); + $items = self::getItems($itemType, $itemSource, null, null, $uidOwner, self::FORMAT_NONE, null, -1, $includeCollections, false, $checkExpireDate); + if ($items) { + foreach ($items as $item) { + if ((int)$item['share_type'] === self::SHARE_TYPE_USER) { + $users[] = $item['share_with']; + } else if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { + $users = array_merge($users, \OC_Group::usersInGroup($item['share_with'])); + } + } + } + return $users; + } + + /** + * Share an item with a user, group, or via private link + * @param string $itemType + * @param string $itemSource + * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string $shareWith User or group the item is being shared with + * @param int $permissions CRUDS + * @param null $itemSourceName + * @throws \Exception + * @internal param \OCP\Item $string type + * @internal param \OCP\Item $string source + * @internal param \OCP\SHARE_TYPE_USER $int , SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @internal param \OCP\User $string or group the item is being shared with + * @internal param \OCP\CRUDS $int permissions + * @return bool|string Returns true on success or false on failure, Returns token on success for links + */ + public static function shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions, $itemSourceName = null) { + $uidOwner = \OC_User::getUser(); + $sharingPolicy = \OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global'); + + if (is_null($itemSourceName)) { + $itemSourceName = $itemSource; + } + + // Verify share type and sharing conditions are met + if ($shareType === self::SHARE_TYPE_USER) { + if ($shareWith == $uidOwner) { + $message = 'Sharing '.$itemSourceName.' failed, because the user '.$shareWith.' is the item owner'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if (!\OC_User::userExists($shareWith)) { + $message = 'Sharing '.$itemSourceName.' failed, because the user '.$shareWith.' does not exist'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if ($sharingPolicy == 'groups_only') { + $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith)); + if (empty($inGroup)) { + $message = 'Sharing '.$itemSourceName.' failed, because the user ' + .$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + // Check if the item source is already shared with the user, either from the same owner or a different user + if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, + $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same + // owner and is not a user share, this use case is for increasing + // permissions for a specific user + if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { + $message = 'Sharing '.$itemSourceName.' failed, because this item is already shared with '.$shareWith; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + } else if ($shareType === self::SHARE_TYPE_GROUP) { + if (!\OC_Group::groupExists($shareWith)) { + $message = 'Sharing '.$itemSourceName.' failed, because the group '.$shareWith.' does not exist'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if ($sharingPolicy == 'groups_only' && !\OC_Group::inGroup($uidOwner, $shareWith)) { + $message = 'Sharing '.$itemSourceName.' failed, because ' + .$uidOwner.' is not a member of the group '.$shareWith; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + // Check if the item source is already shared with the group, either from the same owner or a different user + // The check for each user in the group is done inside the put() function + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, + null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same + // owner and is not a group share, this use case is for increasing + // permissions for a specific user + if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { + $message = 'Sharing '.$itemSourceName.' failed, because this item is already shared with '.$shareWith; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + // Convert share with into an array with the keys group and users + $group = $shareWith; + $shareWith = array(); + $shareWith['group'] = $group; + $shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner)); + } else if ($shareType === self::SHARE_TYPE_LINK) { + if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { + // when updating a link share + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, + $uidOwner, self::FORMAT_NONE, null, 1)) { + // remember old token + $oldToken = $checkExists['token']; + $oldPermissions = $checkExists['permissions']; + //delete the old share + Helper::delete($checkExists['id']); + } + + // Generate hash of password - same method as user passwords + if (isset($shareWith)) { + $forcePortable = (CRYPT_BLOWFISH != 1); + $hasher = new \PasswordHash(8, $forcePortable); + $shareWith = $hasher->HashPassword($shareWith.\OC_Config::getValue('passwordsalt', '')); + } else { + // reuse the already set password, but only if we change permissions + // otherwise the user disabled the password protection + if ($checkExists && (int)$permissions !== (int)$oldPermissions) { + $shareWith = $checkExists['share_with']; + } + } + + // Generate token + if (isset($oldToken)) { + $token = $oldToken; + } else { + $token = \OC_Util::generateRandomBytes(self::TOKEN_LENGTH); + } + $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, + null, $token, $itemSourceName); + if ($result) { + return $token; + } else { + return false; + } + } + $message = 'Sharing '.$itemSourceName.' failed, because sharing with links is not allowed'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + return false; + } else { + // Future share types need to include their own conditions + $message = 'Share type '.$shareType.' is not valid for '.$itemSource; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + // Put the item into the database + return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, null, $itemSourceName); + } + + /** + * Unshare an item from a user, group, or delete a private link + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @return Returns true on success or false on failure + */ + public static function unshare($itemType, $itemSource, $shareType, $shareWith) { + $item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(),self::FORMAT_NONE, null, 1); + if (!empty($item)) { + self::unshareItem($item); + return true; + } + return false; + } + + /** + * Unshare an item from all users, groups, and remove all links + * @param string Item type + * @param string Item source + * @return Returns true on success or false on failure + */ + public static function unshareAll($itemType, $itemSource) { + // Get all of the owners of shares of this item. + $query = \OC_DB::prepare( 'SELECT `uid_owner` from `*PREFIX*share` WHERE `item_type`=? AND `item_source`=?' ); + $result = $query->execute(array($itemType, $itemSource)); + $shares = array(); + // Add each owner's shares to the array of all shares for this item. + while ($row = $result->fetchRow()) { + $shares = array_merge($shares, self::getItems($itemType, $itemSource, null, null, $row['uid_owner'])); + } + if (!empty($shares)) { + // Pass all the vars we have for now, they may be useful + $hookParams = array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'shares' => $shares, + ); + \OC_Hook::emit('OCP\Share', 'pre_unshareAll', $hookParams); + foreach ($shares as $share) { + self::unshareItem($share); + } + \OC_Hook::emit('OCP\Share', 'post_unshareAll', $hookParams); + return true; + } + return false; + } + + /** + * Unshare an item shared with the current user + * @param string Item type + * @param string Item target + * @return Returns true on success or false on failure + * + * Unsharing from self is not allowed for items inside collections + */ + public static function unshareFromSelf($itemType, $itemTarget) { + $item = self::getItemSharedWith($itemType, $itemTarget); + if (!empty($item)) { + if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { + // Insert an extra row for the group share and set permission + // to 0 to prevent it from showing up for the user + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share`' + .' (`item_type`, `item_source`, `item_target`, `parent`, `share_type`,' + .' `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`)' + .' VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], + $item['id'], self::$shareTypeGroupUserUnique, + \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], + $item['file_target'])); + \OC_DB::insertid('*PREFIX*share'); + // Delete all reshares by this user of the group share + Helper::delete($item['id'], true, \OC_User::getUser()); + } else if ((int)$item['share_type'] === self::$shareTypeGroupUserUnique) { + // Set permission to 0 to prevent it from showing up for the user + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); + $query->execute(array(0, $item['id'])); + Helper::delete($item['id'], true); + } else { + Helper::delete($item['id']); + } + return true; + } + return false; + } + /** + * sent status if users got informed by mail about share + * @param string $itemType + * @param string $itemSource + * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param bool $status + */ + public static function setSendMailStatus($itemType, $itemSource, $shareType, $status) { + $status = $status ? 1 : 0; + + $query = \OC_DB::prepare( + 'UPDATE `*PREFIX*share` + SET `mail_send` = ? + WHERE `item_type` = ? AND `item_source` = ? AND `share_type` = ?'); + + $result = $query->execute(array($status, $itemType, $itemSource, $shareType)); + + if($result === false) { + \OC_Log::write('OCP\Share', 'Couldn\'t set send mail status', \OC_Log::ERROR); + } + } + + /** + * Set the permissions of an item for a specific user or group + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param int CRUDS permissions + * @return Returns true on success or false on failure + */ + public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, + \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { + // Check if this item is a reshare and verify that the permissions + // granted don't exceed the parent shared item + if (isset($item['parent'])) { + $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*share` WHERE `id` = ?', 1); + $result = $query->execute(array($item['parent']))->fetchRow(); + if (~(int)$result['permissions'] & $permissions) { + $message = 'Setting permissions for '.$itemSource.' failed,' + .' because the permissions exceed permissions granted to '.\OC_User::getUser(); + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); + $query->execute(array($permissions, $item['id'])); + if ($itemType === 'file' || $itemType === 'folder') { + \OC_Hook::emit('OCP\Share', 'post_update_permissions', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'shareType' => $shareType, + 'shareWith' => $shareWith, + 'uidOwner' => \OC_User::getUser(), + 'permissions' => $permissions, + 'path' => $item['path'], + )); + } + // Check if permissions were removed + if ($item['permissions'] & ~$permissions) { + // If share permission is removed all reshares must be deleted + if (($item['permissions'] & \OCP\PERMISSION_SHARE) && (~$permissions & \OCP\PERMISSION_SHARE)) { + Helper::delete($item['id'], true); + } else { + $ids = array(); + $parents = array($item['id']); + while (!empty($parents)) { + $parents = "'".implode("','", $parents)."'"; + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`' + .' WHERE `parent` IN ('.$parents.')'); + $result = $query->execute(); + // Reset parents array, only go through loop again if + // items are found that need permissions removed + $parents = array(); + while ($item = $result->fetchRow()) { + // Check if permissions need to be removed + if ($item['permissions'] & ~$permissions) { + // Add to list of items that need permissions removed + $ids[] = $item['id']; + $parents[] = $item['id']; + } + } + } + // Remove the permissions for all reshares of this item + if (!empty($ids)) { + $ids = "'".implode("','", $ids)."'"; + // TODO this should be done with Doctrine platform objects + if (\OC_Config::getValue( "dbtype") === 'oci') { + $andOp = 'BITAND(`permissions`, ?)'; + } else { + $andOp = '`permissions` & ?'; + } + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = '.$andOp + .' WHERE `id` IN ('.$ids.')'); + $query->execute(array($permissions)); + } + } + } + return true; + } + $message = 'Setting permissions for '.$itemSource.' failed, because the item was not found'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + + /** + * Set expiration date for a share + * @param string $itemType + * @param string $itemSource + * @param string $date expiration date + * @return \OCP\Share_Backend + */ + public static function setExpirationDate($itemType, $itemSource, $date) { + $user = \OC_User::getUser(); + $items = self::getItems($itemType, $itemSource, null, null, $user, self::FORMAT_NONE, null, -1, false); + if (!empty($items)) { + if ($date == '') { + $date = null; + } else { + $date = new \DateTime($date); + } + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); + $query->bindValue(1, $date, 'datetime'); + foreach ($items as $item) { + $query->bindValue(2, (int) $item['id']); + $query->execute(); + \OC_Hook::emit('OCP\Share', 'post_set_expiration_date', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'date' => $date, + 'uidOwner' => $user + )); + } + return true; + } + return false; + } + + /** + * Checks whether a share has expired, calls unshareItem() if yes. + * @param array $item Share data (usually database row) + * @return bool True if item was expired, false otherwise. + */ + protected static function expireItem(array $item) { + if (!empty($item['expiration'])) { + $now = new \DateTime(); + $expires = new \DateTime($item['expiration']); + if ($now > $expires) { + self::unshareItem($item); + return true; + } + } + return false; + } + + /** + * Unshares a share given a share data array + * @param array $item Share data (usually database row) + * @return null + */ + protected static function unshareItem(array $item) { + // Pass all the vars we have for now, they may be useful + $hookParams = array( + 'itemType' => $item['item_type'], + 'itemSource' => $item['item_source'], + 'shareType' => $item['share_type'], + 'shareWith' => $item['share_with'], + 'itemParent' => $item['parent'], + 'uidOwner' => $item['uid_owner'], + ); + + \OC_Hook::emit('OCP\Share', 'pre_unshare', $hookParams + array( + 'fileSource' => $item['file_source'], + )); + Helper::delete($item['id']); + \OC_Hook::emit('OCP\Share', 'post_unshare', $hookParams); + } + + /** + * Get the backend class for the specified item type + * @param string $itemType + * @return \OCP\Share_Backend + */ + public static function getBackend($itemType) { + if (isset(self::$backends[$itemType])) { + return self::$backends[$itemType]; + } else if (isset(self::$backendTypes[$itemType]['class'])) { + $class = self::$backendTypes[$itemType]['class']; + if (class_exists($class)) { + self::$backends[$itemType] = new $class; + if (!(self::$backends[$itemType] instanceof \OCP\Share_Backend)) { + $message = 'Sharing backend '.$class.' must implement the interface OCP\Share_Backend'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + return self::$backends[$itemType]; + } else { + $message = 'Sharing backend '.$class.' not found'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + $message = 'Sharing backend for '.$itemType.' not found'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + + /** + * Check if resharing is allowed + * @return Returns true if allowed or false + * + * Resharing is allowed by default if not configured + */ + private static function isResharingAllowed() { + if (!isset(self::$isResharingAllowed)) { + if (\OC_Appconfig::getValue('core', 'shareapi_allow_resharing', 'yes') == 'yes') { + self::$isResharingAllowed = true; + } else { + self::$isResharingAllowed = false; + } + } + return self::$isResharingAllowed; + } + + /** + * Get a list of collection item types for the specified item type + * @param string Item type + * @return array + */ + private static function getCollectionItemTypes($itemType) { + $collectionTypes = array($itemType); + foreach (self::$backendTypes as $type => $backend) { + if (in_array($backend['collectionOf'], $collectionTypes)) { + $collectionTypes[] = $type; + } + } + // TODO Add option for collections to be collection of themselves, only 'folder' does it now... + if (!self::getBackend($itemType) instanceof \OCP\Share_Backend_Collection || $itemType != 'folder') { + unset($collectionTypes[0]); + } + // Return array if collections were found or the item type is a + // collection itself - collections can be inside collections + if (count($collectionTypes) > 0) { + return $collectionTypes; + } + return false; + } + + /** + * Get shared items from the database + * @param string Item type + * @param string Item source or target (optional) + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique + * @param string User or group the item is being shared with + * @param string User that is the owner of shared items (optional) + * @param int Format to convert items to with formatItems() + * @param mixed Parameters to pass to formatItems() + * @param int Number of items to return, -1 to return all matches (optional) + * @param bool Include collection item types (optional) + * @param bool TODO (optional) + * @prams bool check expire date + * @return array + * + * See public functions getItem(s)... for parameter usage + * + */ + public static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, + $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, + $includeCollections = false, $itemShareWithBySource = false, $checkExpireDate = true) { + if (!self::isEnabled()) { + return array(); + } + $backend = self::getBackend($itemType); + $collectionTypes = false; + // Get filesystem root to add it to the file target and remove from the + // file source, match file_source with the file cache + if ($itemType == 'file' || $itemType == 'folder') { + if(!is_null($uidOwner)) { + $root = \OC\Files\Filesystem::getRoot(); + } else { + $root = ''; + } + $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid`'; + if (!isset($item)) { + $where .= ' WHERE `file_target` IS NOT NULL'; + } + $fileDependent = true; + $queryArgs = array(); + } else { + $fileDependent = false; + $root = ''; + $collectionTypes = self::getCollectionItemTypes($itemType); + if ($includeCollections && !isset($item) && $collectionTypes) { + // If includeCollections is true, find collections of this item type, e.g. a music album contains songs + if (!in_array($itemType, $collectionTypes)) { + $itemTypes = array_merge(array($itemType), $collectionTypes); + } else { + $itemTypes = $collectionTypes; + } + $placeholders = join(',', array_fill(0, count($itemTypes), '?')); + $where = ' WHERE `item_type` IN ('.$placeholders.'))'; + $queryArgs = $itemTypes; + } else { + $where = ' WHERE `item_type` = ?'; + $queryArgs = array($itemType); + } + } + if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') { + $where .= ' AND `share_type` != ?'; + $queryArgs[] = self::SHARE_TYPE_LINK; + } + if (isset($shareType)) { + // Include all user and group items + if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) { + $where .= ' AND `share_type` IN (?,?,?)'; + $queryArgs[] = self::SHARE_TYPE_USER; + $queryArgs[] = self::SHARE_TYPE_GROUP; + $queryArgs[] = self::$shareTypeGroupUserUnique; + $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); + $placeholders = join(',', array_fill(0, count($userAndGroups), '?')); + $where .= ' AND `share_with` IN ('.$placeholders.')'; + $queryArgs = array_merge($queryArgs, $userAndGroups); + // Don't include own group shares + $where .= ' AND `uid_owner` != ?'; + $queryArgs[] = $shareWith; + } else { + $where .= ' AND `share_type` = ?'; + $queryArgs[] = $shareType; + if (isset($shareWith)) { + $where .= ' AND `share_with` = ?'; + $queryArgs[] = $shareWith; + } + } + } + if (isset($uidOwner)) { + $where .= ' AND `uid_owner` = ?'; + $queryArgs[] = $uidOwner; + if (!isset($shareType)) { + // Prevent unique user targets for group shares from being selected + $where .= ' AND `share_type` != ?'; + $queryArgs[] = self::$shareTypeGroupUserUnique; + } + if ($fileDependent) { + $column = 'file_source'; + } else { + $column = 'item_source'; + } + } else { + if ($fileDependent) { + $column = 'file_target'; + } else { + $column = 'item_target'; + } + } + if (isset($item)) { + $collectionTypes = self::getCollectionItemTypes($itemType); + if ($includeCollections && $collectionTypes) { + $where .= ' AND ('; + } else { + $where .= ' AND'; + } + // If looking for own shared items, check item_source else check item_target + if (isset($uidOwner) || $itemShareWithBySource) { + // If item type is a file, file source needs to be checked in case the item was converted + if ($fileDependent) { + $where .= ' `file_source` = ?'; + $column = 'file_source'; + } else { + $where .= ' `item_source` = ?'; + $column = 'item_source'; + } + } else { + if ($fileDependent) { + $where .= ' `file_target` = ?'; + $item = \OC\Files\Filesystem::normalizePath($item); + } else { + $where .= ' `item_target` = ?'; + } + } + $queryArgs[] = $item; + if ($includeCollections && $collectionTypes) { + $placeholders = join(',', array_fill(0, count($collectionTypes), '?')); + $where .= ' OR `item_type` IN ('.$placeholders.'))'; + $queryArgs = array_merge($queryArgs, $collectionTypes); + } + } + if ($limit != -1 && !$includeCollections) { + if ($shareType == self::$shareTypeUserAndGroups) { + // Make sure the unique user target is returned if it exists, + // unique targets should follow the group share in the database + // If the limit is not 1, the filtering can be done later + $where .= ' ORDER BY `*PREFIX*share`.`id` DESC'; + } + // The limit must be at least 3, because filtering needs to be done + if ($limit < 3) { + $queryLimit = 3; + } else { + $queryLimit = $limit; + } + } else { + $queryLimit = null; + } + $select = self::createSelectStatement($format, $fileDependent, $uidOwner); + $root = strlen($root); + $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); + $result = $query->execute($queryArgs); + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', + \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, + \OC_Log::ERROR); + } + $items = array(); + $targets = array(); + $switchedItems = array(); + $mounts = array(); + while ($row = $result->fetchRow()) { + self::transformDBResults($row); + // Filter out duplicate group shares for users with unique targets + if ($row['share_type'] == self::$shareTypeGroupUserUnique && isset($items[$row['parent']])) { + $row['share_type'] = self::SHARE_TYPE_GROUP; + $row['share_with'] = $items[$row['parent']]['share_with']; + // Remove the parent group share + unset($items[$row['parent']]); + if ($row['permissions'] == 0) { + continue; + } + } else if (!isset($uidOwner)) { + // Check if the same target already exists + if (isset($targets[$row[$column]])) { + // Check if the same owner shared with the user twice + // through a group and user share - this is allowed + $id = $targets[$row[$column]]; + if (isset($items[$id]) && $items[$id]['uid_owner'] == $row['uid_owner']) { + // Switch to group share type to ensure resharing conditions aren't bypassed + if ($items[$id]['share_type'] != self::SHARE_TYPE_GROUP) { + $items[$id]['share_type'] = self::SHARE_TYPE_GROUP; + $items[$id]['share_with'] = $row['share_with']; + } + // Switch ids if sharing permission is granted on only + // one share to ensure correct parent is used if resharing + if (~(int)$items[$id]['permissions'] & \OCP\PERMISSION_SHARE + && (int)$row['permissions'] & \OCP\PERMISSION_SHARE) { + $items[$row['id']] = $items[$id]; + $switchedItems[$id] = $row['id']; + unset($items[$id]); + $id = $row['id']; + } + // Combine the permissions for the item + $items[$id]['permissions'] |= (int)$row['permissions']; + continue; + } + } else { + $targets[$row[$column]] = $row['id']; + } + } + // Remove root from file source paths if retrieving own shared items + if (isset($uidOwner) && isset($row['path'])) { + if (isset($row['parent'])) { + // FIXME: Doesn't always construct the correct path, example: + // Folder '/a/b', share '/a' and '/a/b' to user2 + // user2 reshares /Shared/b and ask for share status of /Shared/a/b + // expected result: path=/Shared/a/b; actual result /Shared/b because of the parent + $query = \OC_DB::prepare('SELECT `file_target` FROM `*PREFIX*share` WHERE `id` = ?'); + $parentResult = $query->execute(array($row['parent'])); + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', 'Can\'t select parent: ' . + \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, + \OC_Log::ERROR); + } else { + $parentRow = $parentResult->fetchRow(); + $tmpPath = '/Shared' . $parentRow['file_target']; + // find the right position where the row path continues from the target path + $pos = strrpos($row['path'], $parentRow['file_target']); + $subPath = substr($row['path'], $pos); + $splitPath = explode('/', $subPath); + foreach (array_slice($splitPath, 2) as $pathPart) { + $tmpPath = $tmpPath . '/' . $pathPart; + } + $row['path'] = $tmpPath; + } + } else { + if (!isset($mounts[$row['storage']])) { + $mountPoints = \OC\Files\Filesystem::getMountByNumericId($row['storage']); + if (is_array($mountPoints)) { + $mounts[$row['storage']] = current($mountPoints); + } + } + if ($mounts[$row['storage']]) { + $path = $mounts[$row['storage']]->getMountPoint().$row['path']; + $row['path'] = substr($path, $root); + } + } + } + if($checkExpireDate) { + if (self::expireItem($row)) { + continue; + } + } + // Check if resharing is allowed, if not remove share permission + if (isset($row['permissions']) && !self::isResharingAllowed()) { + $row['permissions'] &= ~\OCP\PERMISSION_SHARE; + } + // Add display names to result + if ( isset($row['share_with']) && $row['share_with'] != '') { + $row['share_with_displayname'] = \OCP\User::getDisplayName($row['share_with']); + } + if ( isset($row['uid_owner']) && $row['uid_owner'] != '') { + $row['displayname_owner'] = \OCP\User::getDisplayName($row['uid_owner']); + } + + $items[$row['id']] = $row; + } + if (!empty($items)) { + $collectionItems = array(); + foreach ($items as &$row) { + // Return only the item instead of a 2-dimensional array + if ($limit == 1 && $row[$column] == $item && ($row['item_type'] == $itemType || $itemType == 'file')) { + if ($format == self::FORMAT_NONE) { + return $row; + } else { + break; + } + } + // Check if this is a collection of the requested item type + if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) { + if (($collectionBackend = self::getBackend($row['item_type'])) + && $collectionBackend instanceof \OCP\Share_Backend_Collection) { + // Collections can be inside collections, check if the item is a collection + if (isset($item) && $row['item_type'] == $itemType && $row[$column] == $item) { + $collectionItems[] = $row; + } else { + $collection = array(); + $collection['item_type'] = $row['item_type']; + if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { + $collection['path'] = basename($row['path']); + } + $row['collection'] = $collection; + // Fetch all of the children sources + $children = $collectionBackend->getChildren($row[$column]); + foreach ($children as $child) { + $childItem = $row; + $childItem['item_type'] = $itemType; + if ($row['item_type'] != 'file' && $row['item_type'] != 'folder') { + $childItem['item_source'] = $child['source']; + $childItem['item_target'] = $child['target']; + } + if ($backend instanceof \OCP\Share_Backend_File_Dependent) { + if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { + $childItem['file_source'] = $child['source']; + } else { // TODO is this really needed if we already know that we use the file backend? + $meta = \OC\Files\Filesystem::getFileInfo($child['file_path']); + $childItem['file_source'] = $meta['fileid']; + } + $childItem['file_target'] = + \OC\Files\Filesystem::normalizePath($child['file_path']); + } + if (isset($item)) { + if ($childItem[$column] == $item) { + // Return only the item instead of a 2-dimensional array + if ($limit == 1) { + if ($format == self::FORMAT_NONE) { + return $childItem; + } else { + // Unset the items array and break out of both loops + $items = array(); + $items[] = $childItem; + break 2; + } + } else { + $collectionItems[] = $childItem; + } + } + } else { + $collectionItems[] = $childItem; + } + } + } + } + // Remove collection item + $toRemove = $row['id']; + if (array_key_exists($toRemove, $switchedItems)) { + $toRemove = $switchedItems[$toRemove]; + } + unset($items[$toRemove]); + } + } + if (!empty($collectionItems)) { + $items = array_merge($items, $collectionItems); + } + + return self::formatResult($items, $column, $backend, $format, $parameters); + } + + return array(); + } + + /** + * Put shared item into the database + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param string User that is the owner of shared item + * @param int CRUDS permissions + * @param bool|array Parent folder target (optional) + * @param string token (optional) + * @param string name of the source item (optional) + * @return bool Returns true on success or false on failure + */ + private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, + $permissions, $parentFolder = null, $token = null, $itemSourceName = null) { + $backend = self::getBackend($itemType); + + // Check if this is a reshare + if ($checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true)) { + + // Check if attempting to share back to owner + if ($checkReshare['uid_owner'] == $shareWith && $shareType == self::SHARE_TYPE_USER) { + $message = 'Sharing '.$itemSourceName.' failed, because the user '.$shareWith.' is the original sharer'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + // Check if share permissions is granted + if (self::isResharingAllowed() && (int)$checkReshare['permissions'] & \OCP\PERMISSION_SHARE) { + if (~(int)$checkReshare['permissions'] & $permissions) { + $message = 'Sharing '.$itemSourceName + .' failed, because the permissions exceed permissions granted to '.$uidOwner; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } else { + // TODO Don't check if inside folder + $parent = $checkReshare['id']; + $itemSource = $checkReshare['item_source']; + $fileSource = $checkReshare['file_source']; + $suggestedItemTarget = $checkReshare['item_target']; + $suggestedFileTarget = $checkReshare['file_target']; + $filePath = $checkReshare['file_target']; + } + } else { + $message = 'Sharing '.$itemSourceName.' failed, because resharing is not allowed'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } else { + $parent = null; + $suggestedItemTarget = null; + $suggestedFileTarget = null; + if (!$backend->isValidSource($itemSource, $uidOwner)) { + $message = 'Sharing '.$itemSource.' failed, because the sharing backend for ' + .$itemType.' could not find its source'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if ($backend instanceof \OCP\Share_Backend_File_Dependent) { + $filePath = $backend->getFilePath($itemSource, $uidOwner); + if ($itemType == 'file' || $itemType == 'folder') { + $fileSource = $itemSource; + } else { + $meta = \OC\Files\Filesystem::getFileInfo($filePath); + $fileSource = $meta['fileid']; + } + if ($fileSource == -1) { + $message = 'Sharing '.$itemSource.' failed, because the file could not be found in the file cache'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } else { + $filePath = null; + $fileSource = null; + } + } + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`,' + .' `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,' + .' `file_target`, `token`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); + // Share with a group + if ($shareType == self::SHARE_TYPE_GROUP) { + $groupItemTarget = Helper::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], + $uidOwner, $suggestedItemTarget); + $run = true; + $error = ''; + \OC_Hook::emit('OCP\Share', 'pre_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $groupItemTarget, + 'shareType' => $shareType, + 'shareWith' => $shareWith['group'], + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'token' => $token, + 'run' => &$run, + 'error' => &$error + )); + + if ($run === false) { + throw new \Exception($error); + } + + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $groupFileTarget = Helper::generateTarget('file', $filePath, $shareType, + $shareWith['group'], $uidOwner, $suggestedFileTarget); + // Set group default file target for future use + $parentFolders[0]['folder'] = $groupFileTarget; + } else { + // Get group default file target + $groupFileTarget = $parentFolder[0]['folder'].$itemSource; + $parent = $parentFolder[0]['id']; + } + } else { + $groupFileTarget = Helper::generateTarget('file', $filePath, $shareType, $shareWith['group'], + $uidOwner, $suggestedFileTarget); + } + } else { + $groupFileTarget = null; + } + $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, + $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); + // Save this id, any extra rows for this group share will need to reference it + $parent = \OC_DB::insertid('*PREFIX*share'); + // Loop through all users of this group in case we need to add an extra row + foreach ($shareWith['users'] as $uid) { + $itemTarget = Helper::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, + $uidOwner, $suggestedItemTarget, $parent); + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $fileTarget = Helper::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, + $uidOwner, $suggestedFileTarget, $parent); + if ($fileTarget != $groupFileTarget) { + $parentFolders[$uid]['folder'] = $fileTarget; + } + } else if (isset($parentFolder[$uid])) { + $fileTarget = $parentFolder[$uid]['folder'].$itemSource; + $parent = $parentFolder[$uid]['id']; + } + } else { + $fileTarget = Helper::generateTarget('file', $filePath, self::SHARE_TYPE_USER, + $uid, $uidOwner, $suggestedFileTarget, $parent); + } + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, + self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), + $fileSource, $fileTarget, $token)); + $id = \OC_DB::insertid('*PREFIX*share'); + } + } + \OC_Hook::emit('OCP\Share', 'post_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $groupItemTarget, + 'parent' => $parent, + 'shareType' => $shareType, + 'shareWith' => $shareWith['group'], + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'fileTarget' => $groupFileTarget, + 'id' => $parent, + 'token' => $token + )); + + if ($parentFolder === true) { + // Return parent folders to preserve file target paths for potential children + return $parentFolders; + } + } else { + $itemTarget = Helper::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, + $suggestedItemTarget); + $run = true; + $error = ''; + \OC_Hook::emit('OCP\Share', 'pre_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $itemTarget, + 'shareType' => $shareType, + 'shareWith' => $shareWith, + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'token' => $token, + 'run' => &$run, + 'error' => &$error + )); + + if ($run === false) { + throw new \Exception($error); + } + + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $fileTarget = Helper::generateTarget('file', $filePath, $shareType, $shareWith, + $uidOwner, $suggestedFileTarget); + $parentFolders['folder'] = $fileTarget; + } else { + $fileTarget = $parentFolder['folder'].$itemSource; + $parent = $parentFolder['id']; + } + } else { + $fileTarget = Helper::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, + $suggestedFileTarget); + } + } else { + $fileTarget = null; + } + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, + $permissions, time(), $fileSource, $fileTarget, $token)); + $id = \OC_DB::insertid('*PREFIX*share'); + \OC_Hook::emit('OCP\Share', 'post_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $itemTarget, + 'parent' => $parent, + 'shareType' => $shareType, + 'shareWith' => $shareWith, + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'fileTarget' => $fileTarget, + 'id' => $id, + 'token' => $token + )); + if ($parentFolder === true) { + $parentFolders['id'] = $id; + // Return parent folder to preserve file target paths for potential children + return $parentFolders; + } + } + return true; + } + + /** + * Delete all shares with type SHARE_TYPE_LINK + */ + public static function removeAllLinkShares() { + // Delete any link shares + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `share_type` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_LINK)); + while ($item = $result->fetchRow()) { + Helper::delete($item['id']); + } + } + + /** + * In case a password protected link is not yet authenticated this function will return false + * + * @param array $linkItem + * @return bool + */ + public static function checkPasswordProtectedShare(array $linkItem) { + if (!isset($linkItem['share_with'])) { + return true; + } + if (!isset($linkItem['share_type'])) { + return true; + } + if (!isset($linkItem['id'])) { + return true; + } + + if ($linkItem['share_type'] != \OCP\Share::SHARE_TYPE_LINK) { + return true; + } + + if ( \OC::$session->exists('public_link_authenticated') + && \OC::$session->get('public_link_authenticated') === $linkItem['id'] ) { + return true; + } + + return false; + } + + /** + * @breif construct select statement + * @param int $format + * @param bool $fileDependent ist it a file/folder share or a generla share + * @param string $uidOwner + * @return string select statement + */ + private static function createSelectStatement($format, $fileDependent, $uidOwner = null) { + $select = '*'; + if ($format == self::FORMAT_STATUSES) { + if ($fileDependent) { + $select = '`*PREFIX*share`.`id`, `*PREFIX*share`.`parent`, `share_type`, `path`, `share_with`, `uid_owner` , `file_source`'; + } else { + $select = '`id`, `parent`, `share_type`, `share_with`, `uid_owner`, `item_source`'; + } + } else { + if (isset($uidOwner)) { + if ($fileDependent) { + $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `*PREFIX*share`.`parent`,' + . ' `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`,' + . ' `expiration`, `token`, `storage`, `mail_send`, `uid_owner`'; + } else { + $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`,' + . ' `stime`, `file_source`, `expiration`, `token`, `mail_send`, `uid_owner`'; + } + } else { + if ($fileDependent) { + if ($format == \OC_Share_Backend_File::FORMAT_GET_FOLDER_CONTENTS || $format == \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT) { + $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `*PREFIX*share`.`parent`, `uid_owner`, ' + . '`share_type`, `share_with`, `file_source`, `path`, `file_target`, ' + . '`permissions`, `expiration`, `storage`, `*PREFIX*filecache`.`parent` as `file_parent`, ' + . '`name`, `mtime`, `mimetype`, `mimepart`, `size`, `unencrypted_size`, `encrypted`, `etag`, `mail_send`'; + } else { + $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, + `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, + `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`, `token`, `storage`, `mail_send`'; + } + } + } + } + return $select; + } + + + /** + * @brief transform db results + * @param array $row result + */ + private static function transformDBResults(&$row) { + if (isset($row['id'])) { + $row['id'] = (int) $row['id']; + } + if (isset($row['share_type'])) { + $row['share_type'] = (int) $row['share_type']; + } + if (isset($row['parent'])) { + $row['parent'] = (int) $row['parent']; + } + if (isset($row['file_parent'])) { + $row['file_parent'] = (int) $row['file_parent']; + } + if (isset($row['file_source'])) { + $row['file_source'] = (int) $row['file_source']; + } + if (isset($row['permissions'])) { + $row['permissions'] = (int) $row['permissions']; + } + if (isset($row['storage'])) { + $row['storage'] = (int) $row['storage']; + } + if (isset($row['stime'])) { + $row['stime'] = (int) $row['stime']; + } + } + + /** + * @brief format result + * @param array $items result + * @prams string $column is it a file share or a general share ('file_target' or 'item_target') + * @params \OCP\Share_Backend $backend sharing backend + * @param int $format + * @param array additional format parameters + * @return array formate result + */ + private static function formatResult($items, $column, $backend, $format = self::FORMAT_NONE , $parameters = null) { + if ($format === self::FORMAT_NONE) { + return $items; + } else if ($format === self::FORMAT_STATUSES) { + $statuses = array(); + foreach ($items as $item) { + if ($item['share_type'] === self::SHARE_TYPE_LINK) { + $statuses[$item[$column]]['link'] = true; + } else if (!isset($statuses[$item[$column]])) { + $statuses[$item[$column]]['link'] = false; + } + if ('file_target') { + $statuses[$item[$column]]['path'] = $item['path']; + } + } + return $statuses; + } else { + return $backend->formatItems($items, $format, $parameters); + } + } +} diff --git a/lib/private/urlgenerator.php b/lib/private/urlgenerator.php index 44b46ef6700..260eeb15108 100644 --- a/lib/private/urlgenerator.php +++ b/lib/private/urlgenerator.php @@ -60,7 +60,7 @@ class URLGenerator implements IURLGenerator { $app_path = \OC_App::getAppPath($app); // Check if the app is in the app folder if ($app_path && file_exists($app_path . '/' . $file)) { - if (substr($file, -3) == 'php' || substr($file, -3) == 'css') { + if (substr($file, -3) == 'php') { $urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app; if ($frontControllerActive) { @@ -148,6 +148,12 @@ class URLGenerator implements IURLGenerator { */ public function getAbsoluteURL($url) { $separator = $url[0] === '/' ? '' : '/'; - return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost() . $separator . $url; + + // The ownCloud web root can already be prepended. + $webRoot = substr($url, 0, strlen(\OC::$WEBROOT)) === \OC::$WEBROOT + ? '' + : \OC::$WEBROOT; + + return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost(). $webRoot . $separator . $url; } } diff --git a/lib/private/user.php b/lib/private/user.php index a89b7286c10..dc4c7ec3b61 100644 --- a/lib/private/user.php +++ b/lib/private/user.php @@ -321,8 +321,6 @@ class OC_User { */ public static function isLoggedIn() { if (\OC::$session->get('user_id') && self::$incognitoMode === false) { - OC_App::loadApps(array('authentication')); - self::setupBackends(); return self::userExists(\OC::$session->get('user_id')); } return false; diff --git a/lib/private/util.php b/lib/private/util.php index 87e173fa765..731b7c97503 100755 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -30,9 +30,7 @@ class OC_Util { } // load all filesystem apps before, so no setup-hook gets lost - if(!isset($RUNTIME_NOAPPS) || !$RUNTIME_NOAPPS) { - OC_App::loadApps(array('filesystem')); - } + OC_App::loadApps(array('filesystem')); // the filesystem will finish when $user is not empty, // mark fs setup here to avoid doing the setup from loading @@ -703,17 +701,18 @@ class OC_Util { * @return void */ public static function redirectToDefaultPage() { + $urlGenerator = \OC::$server->getURLGenerator(); if(isset($_REQUEST['redirect_url'])) { - $location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url'])); + $location = urldecode($_REQUEST['redirect_url']); } else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) { - $location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' ); + $location = $urlGenerator->getAbsoluteURL('/index.php/apps/'.OC::$REQUESTEDAPP.'/index.php'); } else { $defaultPage = OC_Appconfig::getValue('core', 'defaultpage'); if ($defaultPage) { - $location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultPage); + $location = $urlGenerator->getAbsoluteURL($defaultPage); } else { - $location = OC_Helper::linkToAbsolute( 'files', 'index.php' ); + $location = $urlGenerator->getAbsoluteURL('/index.php/files/index.php'); } } OC_Log::write('core', 'redirectToDefaultPage: '.$location, OC_Log::DEBUG); @@ -1074,13 +1073,13 @@ class OC_Util { public static function getUrlContent($url) { if (function_exists('curl_init')) { $curl = curl_init(); + $max_redirects = 10; curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($curl, CURLOPT_URL, $url); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); - curl_setopt($curl, CURLOPT_MAXREDIRS, 10); + curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler"); if(OC_Config::getValue('proxy', '') != '') { @@ -1089,9 +1088,50 @@ class OC_Util { if(OC_Config::getValue('proxyuserpwd', '') != '') { curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd')); } - $data = curl_exec($curl); + + if (ini_get('open_basedir') === '' && ini_get('safe_mode' === 'Off')) { + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($curl, CURLOPT_MAXREDIRS, $max_redirects); + $data = curl_exec($curl); + } else { + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); + $mr = $max_redirects; + if ($mr > 0) { + $newurl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL); + + $rcurl = curl_copy_handle($curl); + curl_setopt($rcurl, CURLOPT_HEADER, true); + curl_setopt($rcurl, CURLOPT_NOBODY, true); + curl_setopt($rcurl, CURLOPT_FORBID_REUSE, false); + curl_setopt($rcurl, CURLOPT_RETURNTRANSFER, true); + do { + curl_setopt($rcurl, CURLOPT_URL, $newurl); + $header = curl_exec($rcurl); + if (curl_errno($rcurl)) { + $code = 0; + } else { + $code = curl_getinfo($rcurl, CURLINFO_HTTP_CODE); + if ($code == 301 || $code == 302) { + preg_match('/Location:(.*?)\n/', $header, $matches); + $newurl = trim(array_pop($matches)); + } else { + $code = 0; + } + } + } while ($code && --$mr); + curl_close($rcurl); + if ($mr > 0) { + curl_setopt($curl, CURLOPT_URL, $newurl); + } + } + + if($mr == 0 && $max_redirects > 0) { + $data = false; + } else { + $data = curl_exec($curl); + } + } curl_close($curl); - } else { $contextArray = null; diff --git a/lib/public/share.php b/lib/public/share.php index 5066d40354d..a08134b3837 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -2,8 +2,9 @@ /** * ownCloud * - * @author Michael Gapczynski - * @copyright 2012 Michael Gapczynski mtgap@owncloud.com + * @author Bjoern Schiessle, Michael Gapczynski + * @copyright 2012 Michael Gapczynski <mtgap@owncloud.com> + * 2014 Bjoern Schiessle <schiessle@owncloud.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -36,41 +37,7 @@ namespace OCP; * It provides the following hooks: * - post_shared */ -class Share { - - const SHARE_TYPE_USER = 0; - const SHARE_TYPE_GROUP = 1; - const SHARE_TYPE_LINK = 3; - const SHARE_TYPE_EMAIL = 4; - const SHARE_TYPE_CONTACT = 5; - const SHARE_TYPE_REMOTE = 6; - - /** CRUDS permissions (Create, Read, Update, Delete, Share) using a bitmask - * Construct permissions for share() and setPermissions with Or (|) e.g. - * Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE - * - * Check if permission is granted with And (&) e.g. Check if delete is - * granted: if ($permissions & PERMISSION_DELETE) - * - * Remove permissions with And (&) and Not (~) e.g. Remove the update - * permission: $permissions &= ~PERMISSION_UPDATE - * - * Apps are required to handle permissions on their own, this class only - * stores and manages the permissions of shares - * @see lib/public/constants.php - */ - - const FORMAT_NONE = -1; - const FORMAT_STATUSES = -2; - const FORMAT_SOURCES = -3; - - const TOKEN_LENGTH = 32; // see db_structure.xml - - private static $shareTypeUserAndGroups = -1; - private static $shareTypeGroupUserUnique = 2; - private static $backends = array(); - private static $backendTypes = array(); - private static $isResharingAllowed; +class Share extends \OC\Share\Constants { /** * Register a sharing backend class that implements OCP\Share_Backend for an item type @@ -78,67 +45,25 @@ class Share { * @param string Backend class * @param string (optional) Depends on item type * @param array (optional) List of supported file extensions if this item type depends on files - * @param string $itemType - * @param string $class - * @param string $collectionOf - * @return boolean true if backend is registered or false if error + * @return Returns true if backend is registered or false if error */ public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { - if (self::isEnabled()) { - if (!isset(self::$backendTypes[$itemType])) { - self::$backendTypes[$itemType] = array( - 'class' => $class, - 'collectionOf' => $collectionOf, - 'supportedFileExtensions' => $supportedFileExtensions - ); - if(count(self::$backendTypes) === 1) { - \OC_Util::addScript('core', 'share'); - \OC_Util::addStyle('core', 'share'); - } - return true; - } - \OC_Log::write('OCP\Share', - 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'] - .' is already registered for '.$itemType, - \OC_Log::WARN); - } - return false; + return \OC\Share\Share::registerBackend($itemType, $class, $collectionOf, $supportedFileExtensions); } /** * Check if the Share API is enabled - * @return boolean true if enabled or false + * @return Returns true if enabled or false * * The Share API is enabled by default if not configured */ public static function isEnabled() { - if (\OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes') == 'yes') { - return true; - } - return false; - } - - /** - * Prepare a path to be passed to DB as file_target - * @param string $path path - * @return string Prepared path - */ - public static function prepFileTarget( $path ) { - - // Paths in DB are stored with leading slashes, so add one if necessary - if ( substr( $path, 0, 1 ) !== '/' ) { - - $path = '/' . $path; - - } - - return $path; - + return \OC\Share\Share::isEnabled(); } /** * Find which users can access a shared item - * @param string $path to the file + * @param $path to the file * @param $user owner of the file * @param include owner to the list of users with access to the file * @return array @@ -146,101 +71,7 @@ class Share { * not '/admin/data/file.txt' */ public static function getUsersSharingFile($path, $user, $includeOwner = false) { - - $shares = array(); - $publicShare = false; - $source = -1; - $cache = false; - - $view = new \OC\Files\View('/' . $user . '/files'); - if ($view->file_exists($path)) { - $meta = $view->getFileInfo($path); - } else { - // if the file doesn't exists yet we start with the parent folder - $meta = $view->getFileInfo(dirname($path)); - } - - if($meta !== false) { - $source = $meta['fileid']; - $cache = new \OC\Files\Cache\Cache($meta['storage']); - } - - while ($source !== -1) { - - // Fetch all shares with another user - $query = \OC_DB::prepare( - 'SELECT `share_with` - FROM - `*PREFIX*share` - WHERE - `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')' - ); - - $result = $query->execute(array($source, self::SHARE_TYPE_USER)); - - if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); - } else { - while ($row = $result->fetchRow()) { - $shares[] = $row['share_with']; - } - } - // We also need to take group shares into account - - $query = \OC_DB::prepare( - 'SELECT `share_with` - FROM - `*PREFIX*share` - WHERE - `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')' - ); - - $result = $query->execute(array($source, self::SHARE_TYPE_GROUP)); - - if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); - } else { - while ($row = $result->fetchRow()) { - $usersInGroup = \OC_Group::usersInGroup($row['share_with']); - $shares = array_merge($shares, $usersInGroup); - } - } - - //check for public link shares - if (!$publicShare) { - $query = \OC_DB::prepare( - 'SELECT `share_with` - FROM - `*PREFIX*share` - WHERE - `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')' - ); - - $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); - - if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); - } else { - if ($result->fetchRow()) { - $publicShare = true; - } - } - } - - // let's get the parent for the next round - $meta = $cache->get((int)$source); - if($meta !== false) { - $source = (int)$meta['parent']; - } else { - $source = -1; - } - } - // Include owner in list of users, if requested - if ($includeOwner) { - $shares[] = $user; - } - - return array("users" => array_unique($shares), "public" => $publicShare); + return \OC\Share\Share::getUsersSharingFile($path, $user, $includeOwner); } /** @@ -250,13 +81,12 @@ class Share { * @param mixed Parameters (optional) * @param int Number of items to return (optional) Returns all by default * @param bool include collections (optional) - * @param string $itemType * @return Return depends on format */ public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { - return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, - $parameters, $limit, $includeCollections); + + return \OC\Share\Share::getItemsSharedWith($itemType, $format, $parameters, $limit, $includeCollections); } /** @@ -266,12 +96,12 @@ class Share { * @param int $format (optional) Format type must be defined by the backend * @param mixed Parameters (optional) * @param bool include collections (optional) - * @return string depends on format + * @return Return depends on format */ public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, - $parameters, 1, $includeCollections); + + return \OC\Share\Share::getItemSharedWith($itemType, $itemTarget, $format, $parameters, $includeCollections); } /** @@ -282,45 +112,7 @@ class Share { * @return array Return list of items with file_target, permissions and expiration */ public static function getItemSharedWithUser($itemType, $itemSource, $user) { - - $shares = array(); - - // first check if there is a db entry for the specific user - $query = \OC_DB::prepare( - 'SELECT `file_target`, `permissions`, `expiration` - FROM - `*PREFIX*share` - WHERE - `item_source` = ? AND `item_type` = ? AND `share_with` = ?' - ); - - $result = \OC_DB::executeAudited($query, array($itemSource, $itemType, $user)); - - while ($row = $result->fetchRow()) { - $shares[] = $row; - } - - //if didn't found a result than let's look for a group share. - if(empty($shares)) { - $groups = \OC_Group::getUserGroups($user); - - $query = \OC_DB::prepare( - 'SELECT `file_target`, `permissions`, `expiration` - FROM - `*PREFIX*share` - WHERE - `item_source` = ? AND `item_type` = ? AND `share_with` in (?)' - ); - - $result = \OC_DB::executeAudited($query, array($itemSource, $itemType, implode(',', $groups))); - - while ($row = $result->fetchRow()) { - $shares[] = $row; - } - } - - return $shares; - + return \OC\Share\Share::getItemSharedWithUser($itemType, $itemSource, $user); } /** @@ -334,8 +126,7 @@ class Share { */ public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, - $parameters, 1, $includeCollections, true); + return \OC\Share\Share::getItemSharedWithBySource($itemType, $itemSource, $format, $parameters, $includeCollections); } /** @@ -346,8 +137,7 @@ class Share { * @return Item */ public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { - return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, - null, 1); + return \OC\Share\Share::getItemSharedWithByLink($itemType, $itemSource, $uidOwner); } /** @@ -356,25 +146,7 @@ class Share { * @return array | bool false will be returned in case the token is unknown or unauthorized */ public static function getShareByToken($token, $checkPasswordProtection = true) { - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?', 1); - $result = $query->execute(array($token)); - if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', token=' . $token, \OC_Log::ERROR); - } - $row = $result->fetchRow(); - if ($row === false) { - return false; - } - if (is_array($row) and self::expireItem($row)) { - return false; - } - - // password protected shares need to be authenticated - if ($checkPasswordProtection && !\OCP\Share::checkPasswordProtectedShare($row)) { - return false; - } - - return $row; + return \OC\Share\Share::getShareByToken($token, $checkPasswordProtection); } /** @@ -382,21 +154,8 @@ class Share { * @param $linkItem * @return $fileOwner */ - public static function resolveReShare($linkItem) - { - if (isset($linkItem['parent'])) { - $parent = $linkItem['parent']; - while (isset($parent)) { - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `id` = ?', 1); - $item = $query->execute(array($parent))->fetchRow(); - if (isset($item['parent'])) { - $parent = $item['parent']; - } else { - return $item; - } - } - } - return $linkItem; + public static function resolveReShare($linkItem) { + return \OC\Share\Share::resolveReShare($linkItem); } @@ -407,13 +166,12 @@ class Share { * @param mixed Parameters * @param int Number of items to return (optional) Returns all by default * @param bool include collections - * @param string $itemType * @return Return depends on format */ public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { - return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, - $parameters, $limit, $includeCollections); + + return \OC\Share\Share::getItemsShared($itemType, $format, $parameters, $limit, $includeCollections); } /** @@ -427,8 +185,8 @@ class Share { */ public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, - $parameters, -1, $includeCollections); + + return \OC\Share\Share::getItemShared($itemType, $itemSource, $format, $parameters, $includeCollections); } /** @@ -441,19 +199,7 @@ class Share { * @return Return array of users */ public static function getUsersItemShared($itemType, $itemSource, $uidOwner, $includeCollections = false, $checkExpireDate = true) { - - $users = array(); - $items = self::getItems($itemType, $itemSource, null, null, $uidOwner, self::FORMAT_NONE, null, -1, $includeCollections, false, $checkExpireDate); - if ($items) { - foreach ($items as $item) { - if ((int)$item['share_type'] === self::SHARE_TYPE_USER) { - $users[] = $item['share_with']; - } else if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { - $users = array_merge($users, \OC_Group::usersInGroup($item['share_with'])); - } - } - } - return $users; + return \OC\Share\Share::getUsersItemShared($itemType, $itemSource, $uidOwner, $includeCollections, $checkExpireDate); } /** @@ -473,176 +219,7 @@ class Share { * @return bool|string Returns true on success or false on failure, Returns token on success for links */ public static function shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions, $itemSourceName = null) { - $uidOwner = \OC_User::getUser(); - $sharingPolicy = \OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global'); - - if (is_null($itemSourceName)) { - $itemSourceName = $itemSource; - } - - // Verify share type and sharing conditions are met - if ($shareType === self::SHARE_TYPE_USER) { - if ($shareWith == $uidOwner) { - $message = 'Sharing '.$itemSourceName.' failed, because the user '.$shareWith.' is the item owner'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - if (!\OC_User::userExists($shareWith)) { - $message = 'Sharing '.$itemSourceName.' failed, because the user '.$shareWith.' does not exist'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - if ($sharingPolicy == 'groups_only') { - $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith)); - if (empty($inGroup)) { - $message = 'Sharing '.$itemSourceName.' failed, because the user ' - .$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - // Check if the item source is already shared with the user, either from the same owner or a different user - if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, - $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { - // Only allow the same share to occur again if it is the same - // owner and is not a user share, this use case is for increasing - // permissions for a specific user - if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { - $message = 'Sharing '.$itemSourceName.' failed, because this item is already shared with '.$shareWith; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - } else if ($shareType === self::SHARE_TYPE_GROUP) { - if (!\OC_Group::groupExists($shareWith)) { - $message = 'Sharing '.$itemSourceName.' failed, because the group '.$shareWith.' does not exist'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - if ($sharingPolicy == 'groups_only' && !\OC_Group::inGroup($uidOwner, $shareWith)) { - $message = 'Sharing '.$itemSourceName.' failed, because ' - .$uidOwner.' is not a member of the group '.$shareWith; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - // Check if the item source is already shared with the group, either from the same owner or a different user - // The check for each user in the group is done inside the put() function - if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, - null, self::FORMAT_NONE, null, 1, true, true)) { - // Only allow the same share to occur again if it is the same - // owner and is not a group share, this use case is for increasing - // permissions for a specific user - if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { - $message = 'Sharing '.$itemSourceName.' failed, because this item is already shared with '.$shareWith; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - // Convert share with into an array with the keys group and users - $group = $shareWith; - $shareWith = array(); - $shareWith['group'] = $group; - $shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner)); - } else if ($shareType === self::SHARE_TYPE_LINK) { - if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { - // when updating a link share - if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, - $uidOwner, self::FORMAT_NONE, null, 1)) { - // remember old token - $oldToken = $checkExists['token']; - $oldPermissions = $checkExists['permissions']; - //delete the old share - self::delete($checkExists['id']); - } - - // Generate hash of password - same method as user passwords - if (isset($shareWith)) { - $forcePortable = (CRYPT_BLOWFISH != 1); - $hasher = new \PasswordHash(8, $forcePortable); - $shareWith = $hasher->HashPassword($shareWith.\OC_Config::getValue('passwordsalt', '')); - } else { - // reuse the already set password, but only if we change permissions - // otherwise the user disabled the password protection - if ($checkExists && (int)$permissions !== (int)$oldPermissions) { - $shareWith = $checkExists['share_with']; - } - } - - // Generate token - if (isset($oldToken)) { - $token = $oldToken; - } else { - $token = \OC_Util::generateRandomBytes(self::TOKEN_LENGTH); - } - $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, - null, $token, $itemSourceName); - if ($result) { - return $token; - } else { - return false; - } - } - $message = 'Sharing '.$itemSourceName.' failed, because sharing with links is not allowed'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - return false; -// } else if ($shareType === self::SHARE_TYPE_CONTACT) { -// if (!\OC_App::isEnabled('contacts')) { -// $message = 'Sharing '.$itemSource.' failed, because the contacts app is not enabled'; -// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); -// return false; -// } -// $vcard = \OC_Contacts_App::getContactVCard($shareWith); -// if (!isset($vcard)) { -// $message = 'Sharing '.$itemSource.' failed, because the contact does not exist'; -// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); -// throw new \Exception($message); -// } -// $details = \OC_Contacts_VCard::structureContact($vcard); -// // TODO Add ownCloud user to contacts vcard -// if (!isset($details['EMAIL'])) { -// $message = 'Sharing '.$itemSource.' failed, because no email address is associated with the contact'; -// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); -// throw new \Exception($message); -// } -// return self::shareItem($itemType, $itemSource, self::SHARE_TYPE_EMAIL, $details['EMAIL'], $permissions); - } else { - // Future share types need to include their own conditions - $message = 'Share type '.$shareType.' is not valid for '.$itemSource; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - // If the item is a folder, scan through the folder looking for equivalent item types -// if ($itemType == 'folder') { -// $parentFolder = self::put('folder', $itemSource, $shareType, $shareWith, $uidOwner, $permissions, true); -// if ($parentFolder && $files = \OC\Files\Filesystem::getDirectoryContent($itemSource)) { -// for ($i = 0; $i < count($files); $i++) { -// $name = substr($files[$i]['name'], strpos($files[$i]['name'], $itemSource) - strlen($itemSource)); -// if ($files[$i]['mimetype'] == 'httpd/unix-directory' -// && $children = \OC\Files\Filesystem::getDirectoryContent($name, '/') -// ) { -// // Continue scanning into child folders -// array_push($files, $children); -// } else { -// // Check file extension for an equivalent item type to convert to -// $extension = strtolower(substr($itemSource, strrpos($itemSource, '.') + 1)); -// foreach (self::$backends as $type => $backend) { -// if (isset($backend->dependsOn) && $backend->dependsOn == 'file' && isset($backend->supportedFileExtensions) && in_array($extension, $backend->supportedFileExtensions)) { -// $itemType = $type; -// break; -// } -// } -// // Pass on to put() to check if this item should be converted, the item won't be inserted into the database unless it can be converted -// self::put($itemType, $name, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder); -// } -// } -// return true; -// } -// return false; -// } else { - // Put the item into the database - return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, null, $itemSourceName); -// } + return \OC\Share\Share::shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions, $itemSourceName); } /** @@ -651,88 +228,32 @@ class Share { * @param string Item source * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK * @param string User or group the item is being shared with - * @return boolean true on success or false on failure + * @return Returns true on success or false on failure */ public static function unshare($itemType, $itemSource, $shareType, $shareWith) { - if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), - self::FORMAT_NONE, null, 1)) { - self::unshareItem($item); - return true; - } - return false; + return \OC\Share\Share::unshare($itemType, $itemSource, $shareType, $shareWith); } /** * Unshare an item from all users, groups, and remove all links * @param string Item type * @param string Item source - * @param string $itemType - * @param string $itemSource - * @return boolean true on success or false on failure + * @return Returns true on success or false on failure */ public static function unshareAll($itemType, $itemSource) { - // Get all of the owners of shares of this item. - $query = \OC_DB::prepare( 'SELECT `uid_owner` from `*PREFIX*share` WHERE `item_type`=? AND `item_source`=?' ); - $result = $query->execute(array($itemType, $itemSource)); - $shares = array(); - // Add each owner's shares to the array of all shares for this item. - while ($row = $result->fetchRow()) { - $shares = array_merge($shares, self::getItems($itemType, $itemSource, null, null, $row['uid_owner'])); - } - if (!empty($shares)) { - // Pass all the vars we have for now, they may be useful - $hookParams = array( - 'itemType' => $itemType, - 'itemSource' => $itemSource, - 'shares' => $shares, - ); - \OC_Hook::emit('OCP\Share', 'pre_unshareAll', $hookParams); - foreach ($shares as $share) { - self::unshareItem($share); - } - \OC_Hook::emit('OCP\Share', 'post_unshareAll', $hookParams); - return true; - } - return false; + return \OC\Share\Share::unshareAll($itemType, $itemSource); } /** * Unshare an item shared with the current user * @param string Item type * @param string Item target - * @param string $itemType - * @param string $itemTarget - * @return boolean true on success or false on failure + * @return Returns true on success or false on failure * * Unsharing from self is not allowed for items inside collections */ public static function unshareFromSelf($itemType, $itemTarget) { - if ($item = self::getItemSharedWith($itemType, $itemTarget)) { - if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { - // Insert an extra row for the group share and set permission - // to 0 to prevent it from showing up for the user - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share`' - .' (`item_type`, `item_source`, `item_target`, `parent`, `share_type`,' - .' `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`)' - .' VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], - $item['id'], self::$shareTypeGroupUserUnique, - \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], - $item['file_target'])); - \OC_DB::insertid('*PREFIX*share'); - // Delete all reshares by this user of the group share - self::delete($item['id'], true, \OC_User::getUser()); - } else if ((int)$item['share_type'] === self::$shareTypeGroupUserUnique) { - // Set permission to 0 to prevent it from showing up for the user - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); - $query->execute(array(0, $item['id'])); - self::delete($item['id'], true); - } else { - self::delete($item['id']); - } - return true; - } - return false; + return \OC\Share\Share::unshareFromSelf($itemType, $itemTarget); } /** * sent status if users got informed by mail about share @@ -742,102 +263,20 @@ class Share { * @param bool $status */ public static function setSendMailStatus($itemType, $itemSource, $shareType, $status) { - $status = $status ? 1 : 0; - - $query = \OC_DB::prepare( - 'UPDATE `*PREFIX*share` - SET `mail_send` = ? - WHERE `item_type` = ? AND `item_source` = ? AND `share_type` = ?'); - - $result = $query->execute(array($status, $itemType, $itemSource, $shareType)); - - if($result === false) { - \OC_Log::write('OCP\Share', 'Couldn\'t set send mail status', \OC_Log::ERROR); - } + return \OC\Share\Share::setSendMailStatus($itemType, $itemSource, $shareType, $status); } /** * Set the permissions of an item for a specific user or group - * @param string $itemType Item type - * @param string $itemSource Item source - * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string $shareWith User or group the item is being shared with - * @param integer|null $permissions CRUDS - * @return boolean true on success or false on failure + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param int CRUDS permissions + * @return Returns true on success or false on failure */ public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { - if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, - \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { - // Check if this item is a reshare and verify that the permissions - // granted don't exceed the parent shared item - if (isset($item['parent'])) { - $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*share` WHERE `id` = ?', 1); - $result = $query->execute(array($item['parent']))->fetchRow(); - if (~(int)$result['permissions'] & $permissions) { - $message = 'Setting permissions for '.$itemSource.' failed,' - .' because the permissions exceed permissions granted to '.\OC_User::getUser(); - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); - $query->execute(array($permissions, $item['id'])); - if ($itemType === 'file' || $itemType === 'folder') { - \OC_Hook::emit('OCP\Share', 'post_update_permissions', array( - 'itemType' => $itemType, - 'itemSource' => $itemSource, - 'shareType' => $shareType, - 'shareWith' => $shareWith, - 'uidOwner' => \OC_User::getUser(), - 'permissions' => $permissions, - 'path' => $item['path'], - )); - } - // Check if permissions were removed - if ($item['permissions'] & ~$permissions) { - // If share permission is removed all reshares must be deleted - if (($item['permissions'] & PERMISSION_SHARE) && (~$permissions & PERMISSION_SHARE)) { - self::delete($item['id'], true); - } else { - $ids = array(); - $parents = array($item['id']); - while (!empty($parents)) { - $parents = "'".implode("','", $parents)."'"; - $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`' - .' WHERE `parent` IN ('.$parents.')'); - $result = $query->execute(); - // Reset parents array, only go through loop again if - // items are found that need permissions removed - $parents = array(); - while ($item = $result->fetchRow()) { - // Check if permissions need to be removed - if ($item['permissions'] & ~$permissions) { - // Add to list of items that need permissions removed - $ids[] = $item['id']; - $parents[] = $item['id']; - } - } - } - // Remove the permissions for all reshares of this item - if (!empty($ids)) { - $ids = "'".implode("','", $ids)."'"; - // TODO this should be done with Doctrine platform objects - if (\OC_Config::getValue( "dbtype") === 'oci') { - $andOp = 'BITAND(`permissions`, ?)'; - } else { - $andOp = '`permissions` & ?'; - } - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = '.$andOp - .' WHERE `id` IN ('.$ids.')'); - $query->execute(array($permissions)); - } - } - } - return true; - } - $message = 'Setting permissions for '.$itemSource.' failed, because the item was not found'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); + return \OC\Share\Share::setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions); } /** @@ -845,67 +284,10 @@ class Share { * @param string $itemType * @param string $itemSource * @param string $date expiration date - * @return boolean + * @return Share_Backend */ public static function setExpirationDate($itemType, $itemSource, $date) { - if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), - self::FORMAT_NONE, null, -1, false)) { - if (!empty($items)) { - if ($date == '') { - $date = null; - } else { - $date = new \DateTime($date); - } - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); - $query->bindValue(1, $date, 'datetime'); - foreach ($items as $item) { - $query->bindValue(2, (int) $item['id']); - $query->execute(); - } - return true; - } - } - return false; - } - - /** - * Checks whether a share has expired, calls unshareItem() if yes. - * @param array $item Share data (usually database row) - * @return bool True if item was expired, false otherwise. - */ - protected static function expireItem(array $item) { - if (!empty($item['expiration'])) { - $now = new \DateTime(); - $expires = new \DateTime($item['expiration']); - if ($now > $expires) { - self::unshareItem($item); - return true; - } - } - return false; - } - - /** - * Unshares a share given a share data array - * @param array $item Share data (usually database row) - * @return null - */ - protected static function unshareItem(array $item) { - // Pass all the vars we have for now, they may be useful - $hookParams = array( - 'itemType' => $item['item_type'], - 'itemSource' => $item['item_source'], - 'shareType' => $item['share_type'], - 'shareWith' => $item['share_with'], - 'itemParent' => $item['parent'], - 'uidOwner' => $item['uid_owner'], - ); - - \OC_Hook::emit('OCP\Share', 'pre_unshare', $hookParams + array( - 'fileSource' => $item['file_source'], - )); - self::delete($item['id']); - \OC_Hook::emit('OCP\Share', 'post_unshare', $hookParams); + return \OC\Share\Share::setExpirationDate($itemType, $itemSource, $date); } /** @@ -914,1018 +296,14 @@ class Share { * @return Share_Backend */ public static function getBackend($itemType) { - if (isset(self::$backends[$itemType])) { - return self::$backends[$itemType]; - } else if (isset(self::$backendTypes[$itemType]['class'])) { - $class = self::$backendTypes[$itemType]['class']; - if (class_exists($class)) { - self::$backends[$itemType] = new $class; - if (!(self::$backends[$itemType] instanceof Share_Backend)) { - $message = 'Sharing backend '.$class.' must implement the interface OCP\Share_Backend'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - return self::$backends[$itemType]; - } else { - $message = 'Sharing backend '.$class.' not found'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - $message = 'Sharing backend for '.$itemType.' not found'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - - /** - * Check if resharing is allowed - * @return boolean true if allowed or false - * - * Resharing is allowed by default if not configured - */ - private static function isResharingAllowed() { - if (!isset(self::$isResharingAllowed)) { - if (\OC_Appconfig::getValue('core', 'shareapi_allow_resharing', 'yes') == 'yes') { - self::$isResharingAllowed = true; - } else { - self::$isResharingAllowed = false; - } - } - return self::$isResharingAllowed; - } - - /** - * Get a list of collection item types for the specified item type - * @param string Item type - * @return array - */ - private static function getCollectionItemTypes($itemType) { - $collectionTypes = array($itemType); - foreach (self::$backendTypes as $type => $backend) { - if (in_array($backend['collectionOf'], $collectionTypes)) { - $collectionTypes[] = $type; - } - } - // TODO Add option for collections to be collection of themselves, only 'folder' does it now... - if (!self::getBackend($itemType) instanceof Share_Backend_Collection || $itemType != 'folder') { - unset($collectionTypes[0]); - } - // Return array if collections were found or the item type is a - // collection itself - collections can be inside collections - if (count($collectionTypes) > 0) { - return $collectionTypes; - } - return false; - } - - /** - * Get shared items from the database - * @param string Item type - * @param string Item source or target (optional) - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique - * @param string User or group the item is being shared with - * @param string User that is the owner of shared items (optional) - * @param int Format to convert items to with formatItems() - * @param mixed Parameters to pass to formatItems() - * @param int Number of items to return, -1 to return all matches (optional) - * @param bool Include collection item types (optional) - * @param bool TODO (optional) - * @prams bool check expire date - * @return mixed - * - * See public functions getItem(s)... for parameter usage - * - */ - private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, - $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, - $includeCollections = false, $itemShareWithBySource = false, $checkExpireDate = true) { - if (!self::isEnabled()) { - if ($limit == 1 || (isset($uidOwner) && isset($item))) { - return false; - } else { - return array(); - } - } - $backend = self::getBackend($itemType); - $collectionTypes = false; - // Get filesystem root to add it to the file target and remove from the - // file source, match file_source with the file cache - if ($itemType == 'file' || $itemType == 'folder') { - if(!is_null($uidOwner)) { - $root = \OC\Files\Filesystem::getRoot(); - } else { - $root = ''; - } - $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid`'; - if (!isset($item)) { - $where .= ' WHERE `file_target` IS NOT NULL'; - } - $fileDependent = true; - $queryArgs = array(); - } else { - $fileDependent = false; - $root = ''; - if ($includeCollections && !isset($item) && ($collectionTypes = self::getCollectionItemTypes($itemType))) { - // If includeCollections is true, find collections of this item type, e.g. a music album contains songs - if (!in_array($itemType, $collectionTypes)) { - $itemTypes = array_merge(array($itemType), $collectionTypes); - } else { - $itemTypes = $collectionTypes; - } - $placeholders = join(',', array_fill(0, count($itemTypes), '?')); - $where = ' WHERE `item_type` IN ('.$placeholders.'))'; - $queryArgs = $itemTypes; - } else { - $where = ' WHERE `item_type` = ?'; - $queryArgs = array($itemType); - } - } - if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') { - $where .= ' AND `share_type` != ?'; - $queryArgs[] = self::SHARE_TYPE_LINK; - } - if (isset($shareType)) { - // Include all user and group items - if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) { - $where .= ' AND `share_type` IN (?,?,?)'; - $queryArgs[] = self::SHARE_TYPE_USER; - $queryArgs[] = self::SHARE_TYPE_GROUP; - $queryArgs[] = self::$shareTypeGroupUserUnique; - $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); - $placeholders = join(',', array_fill(0, count($userAndGroups), '?')); - $where .= ' AND `share_with` IN ('.$placeholders.')'; - $queryArgs = array_merge($queryArgs, $userAndGroups); - // Don't include own group shares - $where .= ' AND `uid_owner` != ?'; - $queryArgs[] = $shareWith; - } else { - $where .= ' AND `share_type` = ?'; - $queryArgs[] = $shareType; - if (isset($shareWith)) { - $where .= ' AND `share_with` = ?'; - $queryArgs[] = $shareWith; - } - } - } - if (isset($uidOwner)) { - $where .= ' AND `uid_owner` = ?'; - $queryArgs[] = $uidOwner; - if (!isset($shareType)) { - // Prevent unique user targets for group shares from being selected - $where .= ' AND `share_type` != ?'; - $queryArgs[] = self::$shareTypeGroupUserUnique; - } - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'file_source'; - } else { - $column = 'item_source'; - } - } else { - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'file_target'; - } else { - $column = 'item_target'; - } - } - if (isset($item)) { - if ($includeCollections && $collectionTypes = self::getCollectionItemTypes($itemType)) { - $where .= ' AND ('; - } else { - $where .= ' AND'; - } - // If looking for own shared items, check item_source else check item_target - if (isset($uidOwner) || $itemShareWithBySource) { - // If item type is a file, file source needs to be checked in case the item was converted - if ($itemType == 'file' || $itemType == 'folder') { - $where .= ' `file_source` = ?'; - $column = 'file_source'; - } else { - $where .= ' `item_source` = ?'; - $column = 'item_source'; - } - } else { - if ($itemType == 'file' || $itemType == 'folder') { - $where .= ' `file_target` = ?'; - $item = \OC\Files\Filesystem::normalizePath($item); - } else { - $where .= ' `item_target` = ?'; - } - } - $queryArgs[] = $item; - if ($includeCollections && $collectionTypes) { - $placeholders = join(',', array_fill(0, count($collectionTypes), '?')); - $where .= ' OR `item_type` IN ('.$placeholders.'))'; - $queryArgs = array_merge($queryArgs, $collectionTypes); - } - } - if ($limit != -1 && !$includeCollections) { - if ($shareType == self::$shareTypeUserAndGroups) { - // Make sure the unique user target is returned if it exists, - // unique targets should follow the group share in the database - // If the limit is not 1, the filtering can be done later - $where .= ' ORDER BY `*PREFIX*share`.`id` DESC'; - } - // The limit must be at least 3, because filtering needs to be done - if ($limit < 3) { - $queryLimit = 3; - } else { - $queryLimit = $limit; - } - } else { - $queryLimit = null; - } - // TODO Optimize selects - if ($format == self::FORMAT_STATUSES) { - if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `*PREFIX*share`.`parent`,' - .' `share_type`, `file_source`, `path`, `expiration`, `storage`, `share_with`, `mail_send`, `uid_owner`'; - } else { - $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `expiration`, `mail_send`, `uid_owner`'; - } - } else { - if (isset($uidOwner)) { - if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `*PREFIX*share`.`parent`,' - .' `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`,' - .' `expiration`, `token`, `storage`, `mail_send`, `uid_owner`'; - } else { - $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`,' - .' `stime`, `file_source`, `expiration`, `token`, `mail_send`, `uid_owner`'; - } - } else { - if ($fileDependent) { - if (($itemType == 'file' || $itemType == 'folder') - && $format == \OC_Share_Backend_File::FORMAT_GET_FOLDER_CONTENTS - || $format == \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT - ) { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `*PREFIX*share`.`parent`, `uid_owner`, ' - .'`share_type`, `share_with`, `file_source`, `path`, `file_target`, ' - .'`permissions`, `expiration`, `storage`, `*PREFIX*filecache`.`parent` as `file_parent`, ' - .'`name`, `mtime`, `mimetype`, `mimepart`, `size`, `unencrypted_size`, `encrypted`, `etag`, `mail_send`'; - } else { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, - `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, - `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`, `token`, `storage`, `mail_send`'; - } - } else { - $select = '*'; - } - } - } - $root = strlen($root); - $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); - $result = $query->execute($queryArgs); - if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', - \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, - \OC_Log::ERROR); - } - $items = array(); - $targets = array(); - $switchedItems = array(); - $mounts = array(); - while ($row = $result->fetchRow()) { - if (isset($row['id'])) { - $row['id']=(int)$row['id']; - } - if (isset($row['share_type'])) { - $row['share_type']=(int)$row['share_type']; - } - if (isset($row['parent'])) { - $row['parent']=(int)$row['parent']; - } - if (isset($row['file_parent'])) { - $row['file_parent']=(int)$row['file_parent']; - } - if (isset($row['file_source'])) { - $row['file_source']=(int)$row['file_source']; - } - if (isset($row['permissions'])) { - $row['permissions']=(int)$row['permissions']; - } - if (isset($row['storage'])) { - $row['storage']=(int)$row['storage']; - } - if (isset($row['stime'])) { - $row['stime']=(int)$row['stime']; - } - // Filter out duplicate group shares for users with unique targets - if ($row['share_type'] == self::$shareTypeGroupUserUnique && isset($items[$row['parent']])) { - $row['share_type'] = self::SHARE_TYPE_GROUP; - $row['share_with'] = $items[$row['parent']]['share_with']; - // Remove the parent group share - unset($items[$row['parent']]); - if ($row['permissions'] == 0) { - continue; - } - } else if (!isset($uidOwner)) { - // Check if the same target already exists - if (isset($targets[$row[$column]])) { - // Check if the same owner shared with the user twice - // through a group and user share - this is allowed - $id = $targets[$row[$column]]; - if (isset($items[$id]) && $items[$id]['uid_owner'] == $row['uid_owner']) { - // Switch to group share type to ensure resharing conditions aren't bypassed - if ($items[$id]['share_type'] != self::SHARE_TYPE_GROUP) { - $items[$id]['share_type'] = self::SHARE_TYPE_GROUP; - $items[$id]['share_with'] = $row['share_with']; - } - // Switch ids if sharing permission is granted on only - // one share to ensure correct parent is used if resharing - if (~(int)$items[$id]['permissions'] & PERMISSION_SHARE - && (int)$row['permissions'] & PERMISSION_SHARE) { - $items[$row['id']] = $items[$id]; - $switchedItems[$id] = $row['id']; - unset($items[$id]); - $id = $row['id']; - } - // Combine the permissions for the item - $items[$id]['permissions'] |= (int)$row['permissions']; - continue; - } - } else { - $targets[$row[$column]] = $row['id']; - } - } - // Remove root from file source paths if retrieving own shared items - if (isset($uidOwner) && isset($row['path'])) { - if (isset($row['parent'])) { - // FIXME: Doesn't always construct the correct path, example: - // Folder '/a/b', share '/a' and '/a/b' to user2 - // user2 reshares /Shared/b and ask for share status of /Shared/a/b - // expected result: path=/Shared/a/b; actual result /Shared/b because of the parent - $query = \OC_DB::prepare('SELECT `file_target` FROM `*PREFIX*share` WHERE `id` = ?'); - $parentResult = $query->execute(array($row['parent'])); - if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', 'Can\'t select parent: ' . - \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, - \OC_Log::ERROR); - } else { - $parentRow = $parentResult->fetchRow(); - $tmpPath = '/Shared' . $parentRow['file_target']; - // find the right position where the row path continues from the target path - $pos = strrpos($row['path'], $parentRow['file_target']); - $subPath = substr($row['path'], $pos); - $splitPath = explode('/', $subPath); - foreach (array_slice($splitPath, 2) as $pathPart) { - $tmpPath = $tmpPath . '/' . $pathPart; - } - $row['path'] = $tmpPath; - } - } else { - if (!isset($mounts[$row['storage']])) { - $mountPoints = \OC\Files\Filesystem::getMountByNumericId($row['storage']); - if (is_array($mountPoints)) { - $mounts[$row['storage']] = current($mountPoints); - } - } - if ($mounts[$row['storage']]) { - $path = $mounts[$row['storage']]->getMountPoint().$row['path']; - $row['path'] = substr($path, $root); - } - } - } - if($checkExpireDate) { - if (self::expireItem($row)) { - continue; - } - } - // Check if resharing is allowed, if not remove share permission - if (isset($row['permissions']) && !self::isResharingAllowed()) { - $row['permissions'] &= ~PERMISSION_SHARE; - } - // Add display names to result - if ( isset($row['share_with']) && $row['share_with'] != '') { - $row['share_with_displayname'] = \OCP\User::getDisplayName($row['share_with']); - } - if ( isset($row['uid_owner']) && $row['uid_owner'] != '') { - $row['displayname_owner'] = \OCP\User::getDisplayName($row['uid_owner']); - } - - $items[$row['id']] = $row; - } - if (!empty($items)) { - $collectionItems = array(); - foreach ($items as &$row) { - // Return only the item instead of a 2-dimensional array - if ($limit == 1 && $row[$column] == $item && ($row['item_type'] == $itemType || $itemType == 'file')) { - if ($format == self::FORMAT_NONE) { - return $row; - } else { - break; - } - } - // Check if this is a collection of the requested item type - if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) { - if (($collectionBackend = self::getBackend($row['item_type'])) - && $collectionBackend instanceof Share_Backend_Collection) { - // Collections can be inside collections, check if the item is a collection - if (isset($item) && $row['item_type'] == $itemType && $row[$column] == $item) { - $collectionItems[] = $row; - } else { - $collection = array(); - $collection['item_type'] = $row['item_type']; - if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { - $collection['path'] = basename($row['path']); - } - $row['collection'] = $collection; - // Fetch all of the children sources - $children = $collectionBackend->getChildren($row[$column]); - foreach ($children as $child) { - $childItem = $row; - $childItem['item_type'] = $itemType; - if ($row['item_type'] != 'file' && $row['item_type'] != 'folder') { - $childItem['item_source'] = $child['source']; - $childItem['item_target'] = $child['target']; - } - if ($backend instanceof Share_Backend_File_Dependent) { - if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { - $childItem['file_source'] = $child['source']; - } else { - $meta = \OC\Files\Filesystem::getFileInfo($child['file_path']); - $childItem['file_source'] = $meta['fileid']; - } - $childItem['file_target'] = - \OC\Files\Filesystem::normalizePath($child['file_path']); - } - if (isset($item)) { - if ($childItem[$column] == $item) { - // Return only the item instead of a 2-dimensional array - if ($limit == 1) { - if ($format == self::FORMAT_NONE) { - return $childItem; - } else { - // Unset the items array and break out of both loops - $items = array(); - $items[] = $childItem; - break 2; - } - } else { - $collectionItems[] = $childItem; - } - } - } else { - $collectionItems[] = $childItem; - } - } - } - } - // Remove collection item - $toRemove = $row['id']; - if (array_key_exists($toRemove, $switchedItems)) { - $toRemove = $switchedItems[$toRemove]; - } - unset($items[$toRemove]); - } - } - if (!empty($collectionItems)) { - $items = array_merge($items, $collectionItems); - } - if (empty($items) && $limit == 1) { - return false; - } - if ($format == self::FORMAT_NONE) { - return $items; - } else if ($format == self::FORMAT_STATUSES) { - $statuses = array(); - foreach ($items as $item) { - if ($item['share_type'] == self::SHARE_TYPE_LINK) { - $statuses[$item[$column]]['link'] = true; - } else if (!isset($statuses[$item[$column]])) { - $statuses[$item[$column]]['link'] = false; - } - if ($itemType == 'file' || $itemType == 'folder') { - $statuses[$item[$column]]['path'] = $item['path']; - } - } - return $statuses; - } else { - return $backend->formatItems($items, $format, $parameters); - } - } else if ($limit == 1 || (isset($uidOwner) && isset($item))) { - return false; - } - return array(); - } - - /** - * Put shared item into the database - * @param string $itemType Item type - * @param string $itemSource Item source - * @param integer $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string $shareWith User or group the item is being shared with - * @param string $uidOwner User that is the owner of shared item - * @param int $permissions CRUDS permissions - * @param bool|array, $parentFolder Parent folder target (optional) - * @param string $token (optional) - * @param string $itemSourceName name of the source item (optional) - * @return bool Returns true on success or false on failure - */ - private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, - $permissions, $parentFolder = null, $token = null, $itemSourceName = null) { - $backend = self::getBackend($itemType); - - // Check if this is a reshare - if ($checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true)) { - - // Check if attempting to share back to owner - if ($checkReshare['uid_owner'] == $shareWith && $shareType == self::SHARE_TYPE_USER) { - $message = 'Sharing '.$itemSourceName.' failed, because the user '.$shareWith.' is the original sharer'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - // Check if share permissions is granted - if (self::isResharingAllowed() && (int)$checkReshare['permissions'] & PERMISSION_SHARE) { - if (~(int)$checkReshare['permissions'] & $permissions) { - $message = 'Sharing '.$itemSourceName - .' failed, because the permissions exceed permissions granted to '.$uidOwner; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } else { - // TODO Don't check if inside folder - $parent = $checkReshare['id']; - $itemSource = $checkReshare['item_source']; - $fileSource = $checkReshare['file_source']; - $suggestedItemTarget = $checkReshare['item_target']; - $suggestedFileTarget = $checkReshare['file_target']; - $filePath = $checkReshare['file_target']; - } - } else { - $message = 'Sharing '.$itemSourceName.' failed, because resharing is not allowed'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } else { - $parent = null; - $suggestedItemTarget = null; - $suggestedFileTarget = null; - if (!$backend->isValidSource($itemSource, $uidOwner)) { - $message = 'Sharing '.$itemSource.' failed, because the sharing backend for ' - .$itemType.' could not find its source'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - $parent = null; - if ($backend instanceof Share_Backend_File_Dependent) { - $filePath = $backend->getFilePath($itemSource, $uidOwner); - if ($itemType == 'file' || $itemType == 'folder') { - $fileSource = $itemSource; - } else { - $meta = \OC\Files\Filesystem::getFileInfo($filePath); - $fileSource = $meta['fileid']; - } - if ($fileSource == -1) { - $message = 'Sharing '.$itemSource.' failed, because the file could not be found in the file cache'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } else { - $filePath = null; - $fileSource = null; - } - } - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`,' - .' `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,' - .' `file_target`, `token`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); - // Share with a group - if ($shareType == self::SHARE_TYPE_GROUP) { - $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], - $uidOwner, $suggestedItemTarget); - $run = true; - $error = ''; - \OC_Hook::emit('OCP\Share', 'pre_shared', array( - 'itemType' => $itemType, - 'itemSource' => $itemSource, - 'itemTarget' => $groupItemTarget, - 'shareType' => $shareType, - 'shareWith' => $shareWith['group'], - 'uidOwner' => $uidOwner, - 'permissions' => $permissions, - 'fileSource' => $fileSource, - 'token' => $token, - 'run' => &$run, - 'error' => &$error - )); - - if ($run === false) { - throw new \Exception($error); - } - - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $groupFileTarget = self::generateTarget('file', $filePath, $shareType, - $shareWith['group'], $uidOwner, $suggestedFileTarget); - // Set group default file target for future use - $parentFolders[0]['folder'] = $groupFileTarget; - } else { - // Get group default file target - $groupFileTarget = $parentFolder[0]['folder'].$itemSource; - $parent = $parentFolder[0]['id']; - } - } else { - $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], - $uidOwner, $suggestedFileTarget); - } - } else { - $groupFileTarget = null; - } - $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, - $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); - // Save this id, any extra rows for this group share will need to reference it - $parent = \OC_DB::insertid('*PREFIX*share'); - // Loop through all users of this group in case we need to add an extra row - foreach ($shareWith['users'] as $uid) { - $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, - $uidOwner, $suggestedItemTarget, $parent); - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, - $uidOwner, $suggestedFileTarget, $parent); - if ($fileTarget != $groupFileTarget) { - $parentFolders[$uid]['folder'] = $fileTarget; - } - } else if (isset($parentFolder[$uid])) { - $fileTarget = $parentFolder[$uid]['folder'].$itemSource; - $parent = $parentFolder[$uid]['id']; - } - } else { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, - $uid, $uidOwner, $suggestedFileTarget, $parent); - } - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, - self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), - $fileSource, $fileTarget, $token)); - $id = \OC_DB::insertid('*PREFIX*share'); - } - } - \OC_Hook::emit('OCP\Share', 'post_shared', array( - 'itemType' => $itemType, - 'itemSource' => $itemSource, - 'itemTarget' => $groupItemTarget, - 'parent' => $parent, - 'shareType' => $shareType, - 'shareWith' => $shareWith['group'], - 'uidOwner' => $uidOwner, - 'permissions' => $permissions, - 'fileSource' => $fileSource, - 'fileTarget' => $groupFileTarget, - 'id' => $parent, - 'token' => $token - )); - - if ($parentFolder === true) { - // Return parent folders to preserve file target paths for potential children - return $parentFolders; - } - } else { - $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, - $suggestedItemTarget); - $run = true; - $error = ''; - \OC_Hook::emit('OCP\Share', 'pre_shared', array( - 'itemType' => $itemType, - 'itemSource' => $itemSource, - 'itemTarget' => $itemTarget, - 'shareType' => $shareType, - 'shareWith' => $shareWith, - 'uidOwner' => $uidOwner, - 'permissions' => $permissions, - 'fileSource' => $fileSource, - 'token' => $token, - 'run' => &$run, - 'error' => &$error - )); - - if ($run === false) { - throw new \Exception($error); - } - - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, - $uidOwner, $suggestedFileTarget); - $parentFolders['folder'] = $fileTarget; - } else { - $fileTarget = $parentFolder['folder'].$itemSource; - $parent = $parentFolder['id']; - } - } else { - $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, - $suggestedFileTarget); - } - } else { - $fileTarget = null; - } - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, - $permissions, time(), $fileSource, $fileTarget, $token)); - $id = \OC_DB::insertid('*PREFIX*share'); - \OC_Hook::emit('OCP\Share', 'post_shared', array( - 'itemType' => $itemType, - 'itemSource' => $itemSource, - 'itemTarget' => $itemTarget, - 'parent' => $parent, - 'shareType' => $shareType, - 'shareWith' => $shareWith, - 'uidOwner' => $uidOwner, - 'permissions' => $permissions, - 'fileSource' => $fileSource, - 'fileTarget' => $fileTarget, - 'id' => $id, - 'token' => $token - )); - if ($parentFolder === true) { - $parentFolders['id'] = $id; - // Return parent folder to preserve file target paths for potential children - return $parentFolders; - } - } - return true; - } - - /** - * Generate a unique target for the item - * @param string Item type - * @param string Item source - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string User or group the item is being shared with - * @param string User that is the owner of shared item - * @param string The suggested target originating from a reshare (optional) - * @param int The id of the parent group share (optional) - * @param integer $shareType - * @return string Item target - */ - private static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, - $suggestedTarget = null, $groupParent = null) { - $backend = self::getBackend($itemType); - if ($shareType == self::SHARE_TYPE_LINK) { - if (isset($suggestedTarget)) { - return $suggestedTarget; - } - return $backend->generateTarget($itemSource, false); - } else { - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'file_target'; - $columnSource = 'file_source'; - } else { - $column = 'item_target'; - $columnSource = 'item_source'; - } - if ($shareType == self::SHARE_TYPE_USER) { - // Share with is a user, so set share type to user and groups - $shareType = self::$shareTypeUserAndGroups; - $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); - } else { - $userAndGroups = false; - } - $exclude = null; - // Backend has 3 opportunities to generate a unique target - for ($i = 0; $i < 2; $i++) { - // Check if suggested target exists first - if ($i == 0 && isset($suggestedTarget)) { - $target = $suggestedTarget; - } else { - if ($shareType == self::SHARE_TYPE_GROUP) { - $target = $backend->generateTarget($itemSource, false, $exclude); - } else { - $target = $backend->generateTarget($itemSource, $shareWith, $exclude); - } - if (is_array($exclude) && in_array($target, $exclude)) { - break; - } - } - // Check if target already exists - $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); - if (!empty($checkTarget)) { - foreach ($checkTarget as $item) { - // Skip item if it is the group parent row - if (isset($groupParent) && $item['id'] == $groupParent) { - if (count($checkTarget) == 1) { - return $target; - } else { - continue; - } - } - if ($item['uid_owner'] == $uidOwner) { - if ($itemType == 'file' || $itemType == 'folder') { - $meta = \OC\Files\Filesystem::getFileInfo($itemSource); - if ($item['file_source'] == $meta['fileid']) { - return $target; - } - } else if ($item['item_source'] == $itemSource) { - return $target; - } - } - } - if (!isset($exclude)) { - $exclude = array(); - } - // Find similar targets to improve backend's chances to generate a unqiue target - if ($userAndGroups) { - if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' - .' WHERE `item_type` IN (\'file\', \'folder\')' - .' AND `share_type` IN (?,?,?)' - .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, - self::$shareTypeGroupUserUnique)); - } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' - .' WHERE `item_type` = ? AND `share_type` IN (?,?,?)' - .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, - self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); - } - } else { - if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' - .' WHERE `item_type` IN (\'file\', \'folder\')' - .' AND `share_type` = ? AND `share_with` = ?'); - $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); - } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' - .' WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); - } - } - while ($row = $result->fetchRow()) { - $exclude[] = $row[$column]; - } - } else { - return $target; - } - } - } - $message = 'Sharing backend registered for '.$itemType.' did not generate a unique target for '.$itemSource; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - - /** - * Delete all reshares of an item - * @param int Id of item to delete - * @param bool If true, exclude the parent from the delete (optional) - * @param string The user that the parent was shared with (optinal) - */ - private static function delete($parent, $excludeParent = false, $uidOwner = null) { - $ids = array($parent); - $parents = array($parent); - while (!empty($parents)) { - $parents = "'".implode("','", $parents)."'"; - // Check the owner on the first search of reshares, useful for - // finding and deleting the reshares by a single user of a group share - if (count($ids) == 1 && isset($uidOwner)) { - $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent`' - .' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); - $result = $query->execute(array($uidOwner)); - } else { - $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner`' - .' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); - $result = $query->execute(); - } - // Reset parents array, only go through loop again if items are found - $parents = array(); - while ($item = $result->fetchRow()) { - // Search for a duplicate parent share, this occurs when an - // item is shared to the same user through a group and user or the - // same item is shared by different users - $userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner'])); - $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`' - .' WHERE `item_type` = ?' - .' AND `item_target` = ?' - .' AND `share_type` IN (?,?,?)' - .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')' - .' AND `uid_owner` != ? AND `id` != ?'); - $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], - self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, - $item['uid_owner'], $item['parent']))->fetchRow(); - if ($duplicateParent) { - // Change the parent to the other item id if share permission is granted - if ($duplicateParent['permissions'] & PERMISSION_SHARE) { - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `parent` = ? WHERE `id` = ?'); - $query->execute(array($duplicateParent['id'], $item['id'])); - continue; - } - } - $ids[] = $item['id']; - $parents[] = $item['id']; - } - } - if ($excludeParent) { - unset($ids[0]); - } - if (!empty($ids)) { - $ids = "'".implode("','", $ids)."'"; - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `id` IN ('.$ids.')'); - $query->execute(); - } + return \OC\Share\Share::getBackend($itemType); } /** * Delete all shares with type SHARE_TYPE_LINK */ public static function removeAllLinkShares() { - // Delete any link shares - $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `share_type` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_LINK)); - while ($item = $result->fetchRow()) { - self::delete($item['id']); - } - } - - /** - * Hook Listeners - */ - - /** - * Function that is called after a user is deleted. Cleans up the shares of that user. - * @param array arguments - */ - public static function post_deleteUser($arguments) { - // Delete any items shared with the deleted user - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`' - .' WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); - $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); - // Delete any items the deleted user shared - $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); - $result = $query->execute(array($arguments['uid'])); - while ($item = $result->fetchRow()) { - self::delete($item['id']); - } - } - - /** - * Function that is called after a user is added to a group. - * TODO what does it do? - * @param array arguments - */ - public static function post_addToGroup($arguments) { - // Find the group shares and check if the user needs a unique target - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' - .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' - .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - while ($item = $result->fetchRow()) { - if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { - $itemTarget = null; - } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); - } - if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], - self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], - $item['stime'], $item['file_source'], $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); - } - } - } - - /** - * Function that is called after a user is removed from a group. Shares are cleaned up. - * @param array arguments - */ - public static function post_removeFromGroup($arguments) { - // TODO Don't call if user deleted? - $sql = 'SELECT `id`, `share_type` FROM `*PREFIX*share`' - .' WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'; - $result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid'], - self::$shareTypeGroupUserUnique, $arguments['uid'])); - while ($item = $result->fetchRow()) { - if ($item['share_type'] == self::SHARE_TYPE_GROUP) { - // Delete all reshares by this user of the group share - self::delete($item['id'], true, $arguments['uid']); - } else { - self::delete($item['id']); - } - } - } - - /** - * Function that is called after a group is removed. Cleans up the shares to that group. - * @param array arguments - */ - public static function post_deleteGroup($arguments) { - $sql = 'SELECT `id` FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'; - $result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - while ($item = $result->fetchRow()) { - self::delete($item['id']); - } + return \OC\Share\Share::removeAllLinkShares(); } /** @@ -1935,26 +313,7 @@ class Share { * @return bool */ public static function checkPasswordProtectedShare(array $linkItem) { - if (!isset($linkItem['share_with'])) { - return true; - } - if (!isset($linkItem['share_type'])) { - return true; - } - if (!isset($linkItem['id'])) { - return true; - } - - if ($linkItem['share_type'] != \OCP\Share::SHARE_TYPE_LINK) { - return true; - } - - if ( \OC::$session->exists('public_link_authenticated') - && \OC::$session->get('public_link_authenticated') === $linkItem['id'] ) { - return true; - } - - return false; + return \OC\Share\Share::checkPasswordProtectedShare($linkItem); } } @@ -1967,9 +326,7 @@ interface Share_Backend { * Get the source of the item to be stored in the database * @param string Item source * @param string Owner of the item - * @param string $itemSource - * @param string $uidOwner - * @return boolean Source + * @return mixed|array|false Source * * Return an array if the item is file dependent, the array needs two keys: 'item' and 'file' * Return false if the item does not exist for the user @@ -1992,8 +349,8 @@ interface Share_Backend { /** * Converts the shared item sources back into the item in the specified format - * @param array $items Shared items - * @param integer $format + * @param array Shared items + * @param int Format * @return TODO * * The items array is a 3-dimensional array with the item_source as the @@ -2025,9 +382,6 @@ interface Share_Backend_File_Dependent extends Share_Backend { * Get the file path of the item * @param string Item source * @param string User that is the owner of shared item - * @param string $itemSource - * @param string $uidOwner - * @return boolean */ public function getFilePath($itemSource, $uidOwner); diff --git a/ocs/v1.php b/ocs/v1.php index 5d360c530a9..62a3511e611 100644 --- a/ocs/v1.php +++ b/ocs/v1.php @@ -21,11 +21,15 @@ * */ -require_once('../lib/base.php'); +require_once '../lib/base.php'; + use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\Exception\MethodNotAllowedException; try { + // load all apps to get all api routes properly setup + OC_App::loadApps(); + OC::$server->getRouter()->match('/ocs'.OC_Request::getRawPathInfo()); } catch (ResourceNotFoundException $e) { OC_API::setContentType(); diff --git a/public.php b/public.php index 767295b98db..e072db93d29 100644 --- a/public.php +++ b/public.php @@ -1,5 +1,4 @@ <?php -$RUNTIME_NOAPPS = true; try { diff --git a/remote.php b/remote.php index 9e18c8f80a9..15dfa8256ff 100644 --- a/remote.php +++ b/remote.php @@ -1,5 +1,4 @@ <?php -$RUNTIME_NOAPPS = true; try { diff --git a/search/ajax/search.php b/search/ajax/search.php index f0ca5752b9a..0cc1f9d30cd 100644 --- a/search/ajax/search.php +++ b/search/ajax/search.php @@ -23,7 +23,6 @@ // Check if we are a user OC_JSON::checkLoggedIn(); -OC_App::loadApps(); $query=(isset($_GET['query']))?$_GET['query']:''; if($query) { diff --git a/settings/admin.php b/settings/admin.php index 23b3a2d5a0e..ea8aa7af5d0 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -6,7 +6,6 @@ */ OC_Util::checkAdminUser(); -OC_App::loadApps(); OC_Util::addStyle( "settings", "settings" ); OC_Util::addScript( "settings", "admin" ); diff --git a/settings/apps.php b/settings/apps.php index 96b6d21b502..6fd2efc2018 100644 --- a/settings/apps.php +++ b/settings/apps.php @@ -22,7 +22,6 @@ */ OC_Util::checkAdminUser(); -OC_App::loadApps(); // Load the files we need OC_Util::addStyle( "settings", "settings" ); diff --git a/settings/changepassword/controller.php b/settings/changepassword/controller.php index e8c2a1943f3..9f1e7329964 100644 --- a/settings/changepassword/controller.php +++ b/settings/changepassword/controller.php @@ -8,9 +8,6 @@ class Controller { \OC_JSON::callCheck(); \OC_JSON::checkLoggedIn(); - // Manually load apps to ensure hooks work correctly (workaround for issue 1503) - \OC_App::loadApps(); - $username = \OC_User::getUser(); $password = isset($_POST['personal-password']) ? $_POST['personal-password'] : null; $oldPassword = isset($_POST['oldpassword']) ? $_POST['oldpassword'] : ''; @@ -32,9 +29,6 @@ class Controller { \OC_JSON::callCheck(); \OC_JSON::checkLoggedIn(); - // Manually load apps to ensure hooks work correctly (workaround for issue 1503) - \OC_App::loadApps(); - if (isset($_POST['username'])) { $username = $_POST['username']; } else { diff --git a/settings/css/settings.css b/settings/css/settings.css index 280d022af4e..b2c09571404 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -12,11 +12,6 @@ input#openid, input#webdav { width:20em; } display: block; } -.personalblock input[type="checkbox"] { - position: relative; - top: 2px; -} - /* Sync clients */ .clientsbox { margin:12px; } .clientsbox h1 { font-size:40px; font-weight:bold; margin:50px 0 20px; } @@ -62,13 +57,7 @@ tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:point tr:hover>td.remove>a, tr:hover>td.password>img,tr:hover>td.displayName>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; } tr:hover>td.remove>a { float:right; } -li.selected, -#leftcontent li.selected { - background-color: #ddd; -} - table.grid { width:100%; } -#rightcontent { padding-left: 10px; } div.quota { float: right; display: block; @@ -106,30 +95,21 @@ select.quota.active { background: #fff; } /* APPS */ .appinfo { margin: 1em 40px; } h3 { font-size: 1.4em; font-weight: bold; } -ul.applist a { - height: 2.2em; - padding: 0.2em 0.2em 0.2em 0.8em !important; -} -ul.applist .app-external { - width: 100%; +#app-navigation { + padding-bottom: 0px; } -li { color:#888; } -li.active { color:#000; } -#leftcontent .appwarning { +#app-navigation .appwarning { background: #fcc; } -#leftcontent .appwarning:hover { +#app-navigation.appwarning:hover { background: #fbb; } small.externalapp { color:#FFF; background-color:#BBB; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 4px;} -small.externalapp.list { float: right; } small.recommendedapp { color:#FFF; background-color:#888; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 4px;} -small.recommendedapp.list { float: right; } +small.externalapp.list, small.recommendedapp.list { position: absolute; right: 10px; top: 12px; } span.version { margin-left:1em; margin-right:1em; color:#555; } -.app { position: relative; display: inline-block; padding: 0.2em 0 0.2em 0 !important; text-overflow: hidden; overflow: hidden; white-space: nowrap; /*transition: .2s max-width linear; -o-transition: .2s max-width linear; -moz-transition: .2s max-width linear; -webkit-transition: .2s max-width linear; -ms-transition: .2s max-width linear;*/ } -.app.externalapp { max-width: 12.5em; } -.app.recommendedapp { max-width: 12.5em; } + /* Transition to complete width! */ .app:hover, .app:active { max-width: inherit; } @@ -152,7 +132,6 @@ table.grid td.date{ /* ADMIN */ span.securitywarning {color:#C33; font-weight:bold; } span.connectionwarning {color:#933; font-weight:bold; } -input[type=radio] { width:1em; } table.shareAPI td { padding-bottom: 0.8em; } #mail_settings p label:first-child { diff --git a/settings/help.php b/settings/help.php index 88693939b84..301f50592ae 100644 --- a/settings/help.php +++ b/settings/help.php @@ -6,7 +6,6 @@ */ OC_Util::checkLoggedIn(); -OC_App::loadApps(); // Load the files we need OC_Util::addStyle( "settings", "settings" ); diff --git a/settings/js/apps.js b/settings/js/apps.js index 3dbc8a2f7c2..05db4c9a048 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -8,7 +8,7 @@ OC.Settings = OC.Settings || {}; OC.Settings.Apps = OC.Settings.Apps || { loadApp:function(app) { - var page = $('#rightcontent'); + var page = $('#app-content'); page.find('p.license').show(); page.find('span.name').text(app.name); page.find('small.externalapp').text(app.internallabel); @@ -82,16 +82,16 @@ OC.Settings.Apps = OC.Settings.Apps || { page.find('p.appslink').hide(); page.find('span.score').hide(); } - if (typeof($('#leftcontent li[data-id="'+app.id+'"]').data('errormsg')) !== "undefined") { + if (typeof($('#app-navigation ul li[data-id="'+app.id+'"]').data('errormsg')) !== "undefined") { page.find(".warning").show(); - page.find(".warning").text($('#leftcontent li[data-id="'+app.id+'"]').data('errormsg')); + page.find(".warning").text($('#app-navigation ul li[data-id="'+app.id+'"]').data('errormsg')); } else { page.find(".warning").hide(); } }, enableApp:function(appid, active, element) { console.log('enableApp:', appid, active, element); - var appitem=$('#leftcontent li[data-id="'+appid+'"]'); + var appitem=$('#app-navigation ul li[data-id="'+appid+'"]'); element.val(t('settings','Please wait....')); if(active) { $.post(OC.filePath('settings','ajax','disableapp.php'),{appid:appid},function(result) { @@ -160,7 +160,7 @@ OC.Settings.Apps = OC.Settings.Apps || { }, insertApp:function(appdata) { - var applist = $('#leftcontent li'); + var applist = $('#app-navigation ul li'); var app = $('<li data-id="' + appdata.id + '" data-type="external" data-installed="0">' + '<a class="app externalapp" href="' + OC.filePath('settings', 'apps', 'index.php') + '&appid=' + appdata.id+'">' @@ -242,30 +242,30 @@ OC.Settings.Apps = OC.Settings.Apps || { }; $(document).ready(function(){ - $('#leftcontent li').each(function(index,li){ + $('#app-navigation ul li').each(function(index,li){ var app = OC.get('appData_'+$(li).data('id')); $(li).data('app',app); $(this).find('span.hidden').remove(); }); - $('#leftcontent li').keydown(function(event) { + $('#app-navigation ul li').keydown(function(event) { if (event.which === 13 || event.which === 32) { $(event.target).click(); } return false; }); - $(document).on('click', '#leftcontent', function(event){ + $(document).on('click', '#app-navigation', function(event){ var tgt = $(event.target); if (tgt.is('li') || tgt.is('a')) { var item = tgt.is('li') ? $(tgt) : $(tgt).parent(); var app = item.data('app'); OC.Settings.Apps.loadApp(app); - $('#leftcontent .selected').removeClass('selected'); + $('#app-navigation .selected').removeClass('selected'); item.addClass('selected'); } return false; }); - $('#rightcontent input.enable').click(function(){ + $('#app-content input.enable').click(function(){ var element = $(this); var appid=$(this).data('appid'); var active=$(this).data('active'); @@ -273,7 +273,7 @@ $(document).ready(function(){ OC.Settings.Apps.enableApp(appid, active, element); } }); - $('#rightcontent input.update').click(function(){ + $('#app-content input.update').click(function(){ var element = $(this); var appid=$(this).data('appid'); if(appid) { @@ -282,11 +282,11 @@ $(document).ready(function(){ }); if(appid) { - var item = $('#leftcontent li[data-id="'+appid+'"]'); + var item = $('#app-navigation ul li[data-id="'+appid+'"]'); if(item) { item.trigger('click'); item.addClass('active'); - $('#leftcontent').animate({scrollTop: $(item).offset().top-70}, 'slow','swing'); + $('#app-navigation').animate({scrollTop: $(item).offset().top-70}, 'slow','swing'); } } }); diff --git a/settings/js/users.js b/settings/js/users.js index 284976d3bad..eef3c237277 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -226,7 +226,7 @@ var UserList = { $('table+.loading').css('visibility', 'visible'); UserList.updating = true; var query = $.param({ offset: UserList.offset, limit: UserList.usersToLoad }); - $.get(OC.generateUrl('/settings/ajax/userlist') + query, function (result) { + $.get(OC.generateUrl('/settings/ajax/userlist') + '?' + query, function (result) { var loadedUsers = 0; var trs = []; if (result.status === 'success') { diff --git a/settings/l10n/ca.php b/settings/l10n/ca.php index 92c5450b7dc..54fe0bbcf39 100644 --- a/settings/l10n/ca.php +++ b/settings/l10n/ca.php @@ -93,6 +93,7 @@ $TRANSLATIONS = array( "Internet connection not working" => "La connexió a internet no funciona", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Aquest servidor no té cap connexió a internet que funcioni. Això significa que algunes de les característiques com el muntatge d'emmagatzemament extern, les notificacions quant a actualitzacions o la instal·lació d'aplicacions de tercers no funcionarà. L'accés remot a fitxers i l'enviament de correus electrònics podria tampoc no funcionar. Us suggerim que habiliteu la connexió a internet per aquest servidor si voleu tenir totes les característiques.", "Cron" => "Cron", +"Last cron was executed at %s." => "L'últim cron s'ha executat el %s", "Execute one task with each page loaded" => "Executa una tasca per cada paquet carregat", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php està registrat en un servei webcron que fa una crida a cron.php cada 15 minuts a través de http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Utilitza el servei cron del sistema per fer una crida al fitxer cron.php cada 15 minuts.", diff --git a/settings/l10n/cs_CZ.php b/settings/l10n/cs_CZ.php index 09bfe89d8af..960938b1c68 100644 --- a/settings/l10n/cs_CZ.php +++ b/settings/l10n/cs_CZ.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Připojení k internetu nefunguje", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Server nemá funkční připojení k internetu. Některé moduly jako např. externí úložiště, oznámení o dostupných aktualizacích nebo instalace aplikací třetích stran nebudou fungovat. Přístup k souborům z jiných míst a odesílání oznamovacích e-mailů také nemusí fungovat. Pokud si přejete využívat všech vlastností ownCloud, doporučujeme povolit připojení k internetu tomuto serveru.", "Cron" => "Cron", +"Last cron was executed at %s." => "Poslední cron byl spuštěn v %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Poslední cron byl spuštěn v %s. To se stalo před více než hodinu. Vypadá to, že není něco v pořádku.", +"Cron was not executed yet!" => "Cron ještě nebyl spuštěn!", "Execute one task with each page loaded" => "Spustit jednu úlohu s každým načtením stránky", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Použít systémovou službu cron pro volání cron.php každých 15 minut.", diff --git a/settings/l10n/da.php b/settings/l10n/da.php index 42c99b2fc26..df8d2c419b9 100644 --- a/settings/l10n/da.php +++ b/settings/l10n/da.php @@ -1,6 +1,7 @@ <?php $TRANSLATIONS = array( "Saved" => "Gemt", +"test email settings" => "test email indstillinger", "Email sent" => "E-mail afsendt", "Encryption" => "Kryptering", "Unable to load list from App Store" => "Kunne ikke indlæse listen fra App Store", @@ -65,6 +66,9 @@ $TRANSLATIONS = array( "Fatal issues only" => "Kun alvorlige fejl", "None" => "Ingen", "Login" => "Login", +"NT LAN Manager" => "NT LAN Manager", +"SSL" => "SSL", +"TLS" => "TLS", "Security Warning" => "Sikkerhedsadvarsel", "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS.", "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ", @@ -102,8 +106,16 @@ $TRANSLATIONS = array( "Enforce HTTPS" => "Gennemtving HTTPS", "Forces the clients to connect to %s via an encrypted connection." => "Tving klienten til at forbinde til %s via en kryptetet forbindelse.", "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Forbind venligst til din %s via HTTPS for at aktivere eller deaktivere SSL tvang.", +"Email Server" => "Email Server", +"From address" => "Fra adresse", +"Authentication required" => "Godkendelse påkrævet", "Server address" => "Serveradresse", "Port" => "Port", +"Credentials" => "Brugeroplysninger", +"SMTP Username" => "SMTP Brugernavn", +"SMTP Password" => "SMTP Kodeord", +"Test email settings" => "Test email indstillinger", +"Send email" => "Send email", "Log" => "Log", "Log level" => "Log niveau", "More" => "Mere", @@ -113,6 +125,7 @@ $TRANSLATIONS = array( "Add your App" => "Tilføj din App", "More Apps" => "Flere Apps", "Select an App" => "Vælg en App", +"Documentation:" => "Dokumentation:", "See application page at apps.owncloud.com" => "Se applikationens side på apps.owncloud.com", "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-licenseret af <span class=\"author\"></span>", "Administrator Documentation" => "Administrator Dokumentation", diff --git a/settings/l10n/de.php b/settings/l10n/de.php index cd87ac6db26..ffbda893018 100644 --- a/settings/l10n/de.php +++ b/settings/l10n/de.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Keine Netzwerkverbindung", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet das einige Funktionen wie z.B. das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren wenn Sie alle Funktionen nutzen wollen.", "Cron" => "Cron", +"Last cron was executed at %s." => "Letzter Cron wurde um %s ausgeführt.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.", +"Cron was not executed yet!" => "Cron wurde bis jetzt noch nicht ausgeführt!", "Execute one task with each page loaded" => "Führe eine Aufgabe mit jeder geladenen Seite aus", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use systems cron service to call the cron.php file every 15 minutes." => "Benutze den System-Crondienst um die cron.php alle 15 Minuten aufzurufen.", diff --git a/settings/l10n/de_DE.php b/settings/l10n/de_DE.php index 8884afcbc3c..0b30cc0c191 100644 --- a/settings/l10n/de_DE.php +++ b/settings/l10n/de_DE.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Keine Internetverbindung", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie z.B. das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Versenden von Mail-Benachrichtigungen funktionieren eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren, wenn Sie alle Funktionen nutzen wollen.", "Cron" => "Cron", +"Last cron was executed at %s." => "Letzter Cron wurde um %s ausgeführt.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.", +"Cron was not executed yet!" => "Cron wurde bis jetzt noch nicht ausgeführt!", "Execute one task with each page loaded" => "Eine Aufgabe bei jedem Laden der Seite ausführen", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use systems cron service to call the cron.php file every 15 minutes." => "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.", diff --git a/settings/l10n/el.php b/settings/l10n/el.php index c438fa0f997..0b6ee6a2983 100644 --- a/settings/l10n/el.php +++ b/settings/l10n/el.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Invalid value supplied for %s" => "Άκυρη τιμή για το %s", "Saved" => "Αποθηκεύτηκαν", "test email settings" => "δοκιμή ρυθμίσεων email", "If you received this email, the settings seem to be correct." => "Εάν λάβατε αυτό το email, οι ρυθμίσεις δείχνουν να είναι σωστές.", @@ -48,6 +49,7 @@ $TRANSLATIONS = array( "Select a profile picture" => "Επιλογή εικόνας προφίλ", "Very weak password" => "Πολύ αδύναμο συνθηματικό", "Weak password" => "Αδύναμο συνθηματικό", +"So-so password" => "Μέτριο συνθηματικό", "Good password" => "Καλό συνθηματικό", "Strong password" => "Δυνατό συνθηματικό", "Decrypting files... Please wait, this can take some time." => "Αποκρυπτογράφηση αρχείων... Παρακαλώ περιμένετε, αυτό μπορεί να πάρει κάποιο χρόνο.", @@ -70,6 +72,7 @@ $TRANSLATIONS = array( "Fatal issues only" => "Καίρια ζητήματα μόνο", "None" => "Τίποτα", "Login" => "Σύνδεση", +"Plain" => "Απλό", "NT LAN Manager" => "Διαχειριστης NT LAN", "SSL" => "SSL", "TLS" => "TLS", @@ -90,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Η σύνδεση στο διαδίκτυο δεν δουλεύει", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Αυτός ο διακομιστής δεν έχει ενεργή σύνδεση στο διαδίκτυο. Αυτό σημαίνει ότι κάποιες υπηρεσίες όπως η σύνδεση με εξωτερικούς αποθηκευτικούς χώρους, ειδοποιήσεις περί ενημερώσεων ή η εγκατάσταση 3ων εφαρμογών δεν θα είναι διαθέσιμες. Η πρόσβαση απομακρυσμένων αρχείων και η αποστολή ειδοποιήσεων μέσω ηλεκτρονικού ταχυδρομείου μπορεί επίσης να μην είναι διαθέσιμες. Προτείνουμε να ενεργοποιήσετε την πρόσβαση στο διαδίκτυο για αυτόν το διακομιστή εάν θέλετε να χρησιμοποιήσετε όλες τις υπηρεσίες.", "Cron" => "Cron", +"Last cron was executed at %s." => "Η τελευταία εκτέλεση του cron ήταν στις %s", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Η τελευταία εκτέλεση του cron ήταν στις %s. Αυτό είναι πάνω από μια ώρα πριν, ίσως κάτι δεν πάει καλά.", +"Cron was not executed yet!" => "Η διεργασία cron δεν εκτελέστηκε ακόμα!", "Execute one task with each page loaded" => "Εκτέλεση μιας διεργασίας με κάθε σελίδα που φορτώνεται", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Χρήση της υπηρεσίας cron του συστήματος για να καλεστεί το αρχείο cron.php κάθε 15 λεπτά.", diff --git a/settings/l10n/en_GB.php b/settings/l10n/en_GB.php index 2315586b187..b377a6b3381 100644 --- a/settings/l10n/en_GB.php +++ b/settings/l10n/en_GB.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Internet connection not working", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don't work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features.", "Cron" => "Cron", +"Last cron was executed at %s." => "Last cron was executed at %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Last cron was executed at %s. This is more than an hour ago, something seems wrong.", +"Cron was not executed yet!" => "Cron was not executed yet!", "Execute one task with each page loaded" => "Execute one task with each page loaded", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Use system's cron service to call the cron.php file every 15 minutes.", diff --git a/settings/l10n/es.php b/settings/l10n/es.php index 734149034b9..ec6e3b3bd65 100644 --- a/settings/l10n/es.php +++ b/settings/l10n/es.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "La conexión a Internet no está funcionando", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Este servidor no tiene conexión a Internet. Esto significa que algunas de las características no funcionarán, como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones, la instalación de aplicaciones de terceros, el acceso a los archivos de forma remota o el envío de correos electrónicos de notificación. Sugerimos habilitar una conexión a Internet en este servidor para disfrutar de todas las funciones.", "Cron" => "Cron", +"Last cron was executed at %s." => "Cron fue ejecutado por última vez a las %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Cron fue ejecutado por última vez a las %s. Esto fue hace más de una hora, algo anda mal.", +"Cron was not executed yet!" => "¡Cron aún no ha sido ejecutado!", "Execute one task with each page loaded" => "Ejecutar una tarea con cada página cargada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", "Use systems cron service to call the cron.php file every 15 minutes." => "Utiliza el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.", diff --git a/settings/l10n/fi_FI.php b/settings/l10n/fi_FI.php index 284c47e0806..7bef4092a43 100644 --- a/settings/l10n/fi_FI.php +++ b/settings/l10n/fi_FI.php @@ -83,6 +83,9 @@ $TRANSLATIONS = array( "We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Suosittelemme vahvasti asentamaan vaaditut paketit järjestelmään, jotta jotain seuraavista maa-asetuksista on mahdollista tukea: %s.", "Internet connection not working" => "Internet-yhteys ei toimi", "Cron" => "Cron", +"Last cron was executed at %s." => "Viimeisin cron suoritettiin %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Viimeisin cron suoritettiin %s. Siitä on yli tunti aikaa, joten jokin näyttää olevan pielessä.", +"Cron was not executed yet!" => "Cronia ei suoritettu vielä!", "Use systems cron service to call the cron.php file every 15 minutes." => "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumiseen 15 minuutin välein", "Sharing" => "Jakaminen", "Enable Share API" => "Käytä jakamisen ohjelmointirajapintaa", diff --git a/settings/l10n/gl.php b/settings/l10n/gl.php index d98d812d944..2d23efd96a3 100644 --- a/settings/l10n/gl.php +++ b/settings/l10n/gl.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "A conexión á Internet non funciona", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Este servidor non ten conexión a Internet. Isto significa que algunhas das funcionalidades como a montaxe de almacenamento externo, as notificacións sobre actualizacións ou instalación de aplicativos de terceiros non funcionan. O acceso aos ficheiros de forma remota e o envío de mensaxes de notificación poderían non funcionar. Suxerímoslle que active a conexión a Internet deste servidor se quere dispor de todas as funcionalidades.", "Cron" => "Cron", +"Last cron was executed at %s." => "O último «cron» executouse ás %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "O último «cron» executouse ás %s. Isto supón que pasou máis dunha hora. polo que semella que algo vai mal.", +"Cron was not executed yet!" => "«Cron» aínda non foi executado!", "Execute one task with each page loaded" => "Executar unha tarefa con cada páxina cargada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.", "Use systems cron service to call the cron.php file every 15 minutes." => "Use o servizo de sistema cron para chamar ao ficheiro cron.php cada 15 minutos.", diff --git a/settings/l10n/it.php b/settings/l10n/it.php index 181fd11f972..10151a0a1e1 100644 --- a/settings/l10n/it.php +++ b/settings/l10n/it.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Concessione Internet non funzionante", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Questo server ownCloud non ha una connessione a Internet funzionante. Ciò significa che alcune delle funzionalità come il montaggio di archivi esterni, le notifiche degli aggiornamenti o l'installazione di applicazioni di terze parti non funzioneranno. L'accesso remoto ai file e l'invio di email di notifica potrebbero non funzionare. Ti suggeriamo di abilitare la connessione a Internet del server se desideri disporre di tutte le funzionalità.", "Cron" => "Cron", +"Last cron was executed at %s." => "L'ultimo cron è stato eseguito alle %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "L'ultimo cron è stato eseguito alle %s. È più di un ora fa, qualcosa sembra sbagliato.", +"Cron was not executed yet!" => "Cron non è ancora stato eseguito!", "Execute one task with each page loaded" => "Esegui un'operazione con ogni pagina caricata", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.", diff --git a/settings/l10n/nl.php b/settings/l10n/nl.php index 826a6a77e00..c497eb12a68 100644 --- a/settings/l10n/nl.php +++ b/settings/l10n/nl.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Internet verbinding werkt niet", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Deze server heeft geen actieve internetverbinding. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van 3e partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.", "Cron" => "Cron", +"Last cron was executed at %s." => "Laatst uitgevoerde cron op %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Laatst uitgevoerde cron op %s. Dat is langer dan een uur geleden, er is iets fout gegaan.", +"Cron was not executed yet!" => "Cron is nog niet uitgevoerd!", "Execute one task with each page loaded" => "Bij laden van elke pagina één taak uitvoeren", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.", "Use systems cron service to call the cron.php file every 15 minutes." => "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.", diff --git a/settings/l10n/pl.php b/settings/l10n/pl.php index 33b22a147dc..640e1df9585 100644 --- a/settings/l10n/pl.php +++ b/settings/l10n/pl.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Połączenie internetowe nie działa", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Ten serwer OwnCloud nie ma połączenia z Internetem. Oznacza to, że niektóre z funkcji, takich jak montowanie zewnętrznych zasobów, powiadomienia o aktualizacji lub 3-cie aplikacje mogą nie działać. Dostęp do plików z zewnątrz i wysyłanie powiadomienia e-mail nie może również działać. Sugerujemy, aby włączyć połączenia internetowego dla tego serwera, jeśli chcesz mieć wszystkie opcje.", "Cron" => "Cron", +"Last cron was executed at %s." => "Ostatni cron był uruchomiony %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Ostatni cron był uruchomiony %s. To jest więcej niż godzinę temu, wygląda na to, że coś jest nie tak.", +"Cron was not executed yet!" => "Cron nie został jeszcze uruchomiony!", "Execute one task with each page loaded" => "Wykonuj jedno zadanie wraz z każdą wczytaną stroną", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Użyj systemowego cron-a do uruchamiania cron.php raz na 15 minut.", diff --git a/settings/l10n/pl_PL.php b/settings/l10n/pl_PL.php deleted file mode 100644 index 91ae517f236..00000000000 --- a/settings/l10n/pl_PL.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Update" => "Uaktualnienie", -"Email" => "Email" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/settings/l10n/pt_BR.php b/settings/l10n/pt_BR.php index 4a7554499d5..dad6773d6af 100644 --- a/settings/l10n/pt_BR.php +++ b/settings/l10n/pt_BR.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "Sem conexão com a internet", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Este servidor não tem conexão com a internet. Isso significa que algumas das características como a montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de 3ºs terceiros não funcionam. Acessar arquivos remotamente e envio de e-mails de notificação também não podem funcionar. Sugerimos permitir conexão com a internet para esse servidor, se você deseja ter todas as funcionalidades.", "Cron" => "Cron", +"Last cron was executed at %s." => "Último cron foi executado em %s.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Última cron foi executado em %s. Isso é, mais do que uma hora atrás, algo parece errado.", +"Cron was not executed yet!" => "Cron não foi executado ainda!", "Execute one task with each page loaded" => "Execute uma tarefa com cada página carregada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.", "Use systems cron service to call the cron.php file every 15 minutes." => "Use o sistema de serviço cron para chamar o arquivo cron.php a cada 15 minutos.", diff --git a/settings/l10n/ru.php b/settings/l10n/ru.php index 49f3aeeb65d..9cbdeee2c23 100644 --- a/settings/l10n/ru.php +++ b/settings/l10n/ru.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Saved" => "Сохранено", "Email sent" => "Письмо отправлено", "Encryption" => "Шифрование", "Unable to load list from App Store" => "Не удалось загрузить список из App Store", @@ -37,6 +38,11 @@ $TRANSLATIONS = array( "Update" => "Обновить", "Updated" => "Обновлено", "Select a profile picture" => "Выберите картинку профиля", +"Very weak password" => "Очень слабый пароль", +"Weak password" => "Слабый пароль", +"So-so password" => "Так себе пароль", +"Good password" => "Хороший пароль", +"Strong password" => "Устойчивый к взлому пароль", "Decrypting files... Please wait, this can take some time." => "Расшифровка файлов... Пожалуйста, подождите, это может занять некоторое время.", "deleted" => "удален", "undo" => "отмена", diff --git a/settings/l10n/sk_SK.php b/settings/l10n/sk_SK.php index eaa8552f9cf..e613b5b04c7 100644 --- a/settings/l10n/sk_SK.php +++ b/settings/l10n/sk_SK.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Saved" => "Uložené", "Email sent" => "Email odoslaný", "Encryption" => "Šifrovanie", "Unable to load list from App Store" => "Nie je možné nahrať zoznam z App Store", @@ -24,6 +25,7 @@ $TRANSLATIONS = array( "Wrong admin recovery password. Please check the password and try again." => "Chybné administrátorské heslo pre obnovu. Skontrolujte správnosť hesla a skúste to znovu.", "Back-end doesn't support password change, but the users encryption key was successfully updated." => "Úložisko nepodporuje zmenu hesla, ale šifrovací kľúč používateľov bol úspešne zmenený.", "Unable to change password" => "Zmena hesla sa nepodarila", +"Sending..." => "Odosielam...", "User Documentation" => "Príručka používateľa", "Update to {appversion}" => "Aktualizovať na {appversion}", "Disable" => "Zakázať", @@ -57,6 +59,8 @@ $TRANSLATIONS = array( "Fatal issues only" => "Len fatálne problémy", "None" => "Žiadny", "Login" => "Prihlásenie", +"SSL" => "SSL", +"TLS" => "TLS", "Security Warning" => "Bezpečnostné upozornenie", "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Do %s máte prístup cez HTTP. Dôrazne odporúčame nakonfigurovať server tak, aby namiesto toho vyžadoval použitie HTTPS.", "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný, alebo presunúť priečinok s dátami mimo priestor sprístupňovaný webovým serverom.", @@ -94,9 +98,13 @@ $TRANSLATIONS = array( "Enforce HTTPS" => "Vynútiť HTTPS", "Forces the clients to connect to %s via an encrypted connection." => "Vynúti pripájanie klientov k %s šifrovaným pripojením.", "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Pripojte sa k %s cez HTTPS pre povolenie alebo zakázanie vynútenia SSL.", +"Email Server" => "Email server", "Server address" => "Adresa servera", "Port" => "Port", "Credentials" => "Prihlasovanie údaje", +"SMTP Username" => "SMTP používateľské meno", +"SMTP Password" => "SMTP heslo", +"Send email" => "Odoslať email", "Log" => "Záznam", "Log level" => "Úroveň záznamu", "More" => "Viac", diff --git a/settings/l10n/sl.php b/settings/l10n/sl.php index fea2d4cc3ad..414f46712e3 100644 --- a/settings/l10n/sl.php +++ b/settings/l10n/sl.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Invalid value supplied for %s" => "Navedena je napačna vrednost za %s", "Saved" => "Shranjeno", "Email sent" => "Elektronska pošta je poslana", "Send mode" => "Način pošiljanja", diff --git a/settings/l10n/tr.php b/settings/l10n/tr.php index e02c6701a98..68b464a5cc2 100644 --- a/settings/l10n/tr.php +++ b/settings/l10n/tr.php @@ -93,6 +93,9 @@ $TRANSLATIONS = array( "Internet connection not working" => "İnternet bağlantısı çalışmıyor", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Bu sunucunun çalışan bir internet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya 3. parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için internet bağlantısını etkinleştirmenizi öneriyoruz.", "Cron" => "Cron", +"Last cron was executed at %s." => "Son cron %s zamanında çalıştırıldı.", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Son cron %s zamanında çalıştırıldı. Bu bir saatten daha uzun bir süre, bir şeyler yanlış gibi görünüyor.", +"Cron was not executed yet!" => "Cron henüz çalıştırılmadı!", "Execute one task with each page loaded" => "Yüklenen her sayfa ile bir görev çalıştır", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.", "Use systems cron service to call the cron.php file every 15 minutes." => "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.", diff --git a/settings/personal.php b/settings/personal.php index cf1a496bdf0..be1aa6400bf 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -6,7 +6,6 @@ */ OC_Util::checkLoggedIn(); -OC_App::loadApps(); $defaults = new OC_Defaults(); // initialize themable default strings and urls diff --git a/settings/settings.php b/settings/settings.php index 1e05452ec4d..c08732fcf66 100644 --- a/settings/settings.php +++ b/settings/settings.php @@ -6,7 +6,6 @@ */ OC_Util::checkLoggedIn(); -OC_App::loadApps(); OC_Util::addStyle( 'settings', 'settings' ); OC_App::setActiveNavigationEntry( 'settings' ); diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 9092d2833fd..10f19b8891e 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -43,35 +43,35 @@ if ($_['mail_smtpmode'] == 'qmail') { // is ssl working ? if (!$_['isConnectedViaHTTPS']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Security Warning'));?></h2> <span class="securitywarning"> <?php p($l->t('You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.', $theme->getTitle())); ?> </span> -</fieldset> +</div> <?php } // is htaccess working ? if (!$_['htaccessworking']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Security Warning'));?></h2> <span class="securitywarning"> <?php p($l->t('Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.')); ?> </span> -</fieldset> +</div> <?php } // is WebDAV working ? if (!$_['isWebDavWorking']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Setup Warning'));?></h2> <span class="securitywarning"> @@ -79,42 +79,42 @@ if (!$_['isWebDavWorking']) { <?php print_unescaped($l->t('Please double check the <a href="%s">installation guides</a>.', link_to_docs('admin-install'))); ?> </span> -</fieldset> +</div> <?php } // if module fileinfo available? if (!$_['has_fileinfo']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Module \'fileinfo\' missing'));?></h2> <span class="connectionwarning"> <?php p($l->t('The PHP module \'fileinfo\' is missing. We strongly recommend to enable this module to get best results with mime-type detection.')); ?> </span> -</fieldset> +</div> <?php } // is PHP at least at 5.3.8? if ($_['old_php']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Your PHP version is outdated'));?></h2> <span class="connectionwarning"> <?php p($l->t('Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly.')); ?> </span> -</fieldset> +</div> <?php } // is locale working ? if (!$_['isLocaleWorking']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Locale not working'));?></h2> <span class="connectionwarning"> @@ -132,21 +132,21 @@ if (!$_['isLocaleWorking']) { ?> </span> -</fieldset> +</div> <?php } // is internet connection working ? if (!$_['internetconnectionworking']) { ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Internet connection not working'));?></h2> <span class="connectionwarning"> <?php p($l->t('This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features.')); ?> </span> -</fieldset> +</div> <?php } ?> @@ -156,7 +156,7 @@ if (!$_['internetconnectionworking']) { } ;?> -<fieldset class="personalblock" id="backgroundjobs"> +<div class="section" id="backgroundjobs"> <h2 class="inlineblock"><?php p($l->t('Cron'));?></h2> <?php if ($_['cron_log']): ?> <p class="cronlog inlineblock"> @@ -199,9 +199,9 @@ if (!$_['internetconnectionworking']) { <label for="backgroundjobs_cron">Cron</label><br/> <em><?php p($l->t("Use systems cron service to call the cron.php file every 15 minutes.")); ?></em> </p> -</fieldset> +</div> -<fieldset class="personalblock" id="shareAPI"> +<div class="section" id="shareAPI"> <h2><?php p($l->t('Sharing'));?></h2> <table class="shareAPI"> <tr> @@ -255,9 +255,9 @@ if (!$_['internetconnectionworking']) { </td> </tr> </table> -</fieldset> +</div> -<fieldset class="personalblock" id="security"> +<div class="section" id="security"> <h2><?php p($l->t('Security'));?></h2> <table> <tr> @@ -288,9 +288,9 @@ if (!$_['internetconnectionworking']) { </td> </tr> </table> -</fieldset> +</div> -<fieldset id="mail_settings" class="personalblock"> +<div id="mail_settings" class="section"> <h2><?php p($l->t('Email Server'));?> <span id="mail_settings_msg" class="msg"></span></h2> <p><?php p($l->t('This is used for sending out notifications.')); ?></p> @@ -370,9 +370,9 @@ if (!$_['internetconnectionworking']) { <em><?php p($l->t( 'Test email settings' )); ?></em> <input type="submit" name="sendtestemail" id="sendtestemail" value="<?php p($l->t( 'Send email' )); ?>"/> <span id="sendtestmail_msg" class="msg"></span> -</fieldset> +</div> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Log'));?></h2> <?php p($l->t('Log level'));?> <select name='loglevel' id='loglevel'> <?php for ($i = 0; $i < 5; $i++): @@ -410,9 +410,9 @@ if (!$_['internetconnectionworking']) { <input id="lessLog" type="button" value="<?php p($l->t('Less'));?>..."> <?php endif; ?> -</fieldset> +</div> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Version'));?></h2> <strong><?php p($theme->getTitle()); ?></strong> <?php p(OC_Util::getHumanVersion()) ?> <?php if (OC_Util::getEditionString() === ''): ?> @@ -420,9 +420,8 @@ if (!$_['internetconnectionworking']) { <?php print_unescaped($l->t('Developed by the <a href="http://ownCloud.org/contact" target="_blank">ownCloud community</a>, the <a href="https://github.com/owncloud" target="_blank">source code</a> is licensed under the <a href="http://www.gnu.org/licenses/agpl-3.0.html" target="_blank"><abbr title="Affero General Public License">AGPL</abbr></a>.')); ?> </p> <?php endif; ?> -</fieldset> -<fieldset class="personalblock credits-footer"> -<p> - <?php print_unescaped($theme->getShortFooter()); ?> -</p> -</fieldset> +</div> + +<div class="section credits-footer"> + <p><?php print_unescaped($theme->getShortFooter()); ?></p> +</div> diff --git a/settings/templates/apps.php b/settings/templates/apps.php index 4c77c62f511..b7f3b6121ad 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -7,32 +7,33 @@ src="<?php print_unescaped(OC_Helper::linkToRoute('apps_custom'));?>?appid=<?php p($_['appid']); ?>"></script> <script type="text/javascript" src="<?php print_unescaped(OC_Helper::linkTo('settings/js', 'apps.js'));?>"></script> +<div id="app-navigation"> + <ul class="applist"> + <?php if(OC_Config::getValue('appstoreenabled', true) === true): ?> + <li> + <a class="app-external" target="_blank" href="http://owncloud.org/dev"><?php p($l->t('Add your App'));?> …</a> + </li> + <?php endif; ?> -<ul id="leftcontent" class="applist"> - <?php if(OC_Config::getValue('appstoreenabled', true) === true): ?> - <li> - <a class="app-external" target="_blank" href="http://owncloud.org/dev"><?php p($l->t('Add your App'));?> …</a> - </li> - <?php endif; ?> + <?php foreach($_['apps'] as $app):?> + <li <?php if($app['active']) print_unescaped('class="active"')?> data-id="<?php p($app['id']) ?>" + <?php if ( isset( $app['ocs_id'] ) ) { print_unescaped("data-id-ocs=\"{".OC_Util::sanitizeHTML($app['ocs_id'])."}\""); } ?> + data-type="<?php p($app['internal'] ? 'internal' : 'external') ?>" data-installed="1"> + <a class="app<?php if(!$app['internal']) p(' externalapp') ?>" + href="?appid=<?php p($app['id']) ?>"><?php p($app['name']) ?></a> + <?php if(!$app['internal']) + print_unescaped('<small class="'.OC_Util::sanitizeHTML($app['internalclass']).' list">'.OC_Util::sanitizeHTML($app['internallabel']).'</small>') ?> + </li> + <?php endforeach;?> - <?php foreach($_['apps'] as $app):?> - <li <?php if($app['active']) print_unescaped('class="active"')?> data-id="<?php p($app['id']) ?>" - <?php if ( isset( $app['ocs_id'] ) ) { print_unescaped("data-id-ocs=\"{".OC_Util::sanitizeHTML($app['ocs_id'])."}\""); } ?> - data-type="<?php p($app['internal'] ? 'internal' : 'external') ?>" data-installed="1"> - <a class="app<?php if(!$app['internal']) p(' externalapp') ?>" - href="?appid=<?php p($app['id']) ?>"><?php p($app['name']) ?></a> - <?php if(!$app['internal']) - print_unescaped('<small class="'.OC_Util::sanitizeHTML($app['internalclass']).' list">'.OC_Util::sanitizeHTML($app['internallabel']).'</small>') ?> - </li> - <?php endforeach;?> - - <?php if(OC_Config::getValue('appstoreenabled', true) === true): ?> - <li> - <a class="app-external" target="_blank" href="http://apps.owncloud.com"><?php p($l->t('More Apps'));?> …</a> - </li> - <?php endif; ?> -</ul> -<div id="rightcontent"> + <?php if(OC_Config::getValue('appstoreenabled', true) === true): ?> + <li> + <a class="app-external" target="_blank" href="http://apps.owncloud.com"><?php p($l->t('More Apps'));?> …</a> + </li> + <?php endif; ?> + </ul> +</div> +<div id="app-content"> <div class="appinfo"> <h3><strong><span class="name"><?php p($l->t('Select an App'));?></span></strong><span class="version"></span><small class="externalapp" style="visibility:hidden;"></small></h3> diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 9024f435657..cc1fce88c9f 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -21,7 +21,7 @@ </div> -<div id="quota" class="personalblock"> +<div id="quota" class="section"> <div style="width:<?php p($_['usage_relative']);?>%;"> <p id="quotatext"> <?php print_unescaped($l->t('You have used <strong>%s</strong> of the available <strong>%s</strong>', @@ -34,23 +34,21 @@ <?php if($_['passwordChangeSupported']) { ?> -<form id="passwordform"> - <fieldset class="personalblock"> - <h2><?php p($l->t('Password'));?></h2> - <div id="passwordchanged"><?php echo $l->t('Your password was changed');?></div> - <div id="passworderror"><?php echo $l->t('Unable to change your password');?></div> - <input type="password" id="pass1" name="oldpassword" - placeholder="<?php echo $l->t('Current password');?>" - autocomplete="off" autocapitalize="off" autocorrect="off" /> - <input type="password" id="pass2" name="personal-password" - placeholder="<?php echo $l->t('New password');?>" - data-typetoggle="#personal-show" - autocomplete="off" autocapitalize="off" autocorrect="off" /> - <input type="checkbox" id="personal-show" name="show" /><label for="personal-show"></label> - <input id="passwordbutton" type="submit" value="<?php echo $l->t('Change password');?>" /> - <br/> - <div class="strengthify-wrapper"></div> - </fieldset> +<form id="passwordform" class="section"> + <h2><?php p($l->t('Password'));?></h2> + <div id="passwordchanged"><?php echo $l->t('Your password was changed');?></div> + <div id="passworderror"><?php echo $l->t('Unable to change your password');?></div> + <input type="password" id="pass1" name="oldpassword" + placeholder="<?php echo $l->t('Current password');?>" + autocomplete="off" autocapitalize="off" autocorrect="off" /> + <input type="password" id="pass2" name="personal-password" + placeholder="<?php echo $l->t('New password');?>" + data-typetoggle="#personal-show" + autocomplete="off" autocapitalize="off" autocorrect="off" /> + <input type="checkbox" id="personal-show" name="show" /><label for="personal-show"></label> + <input id="passwordbutton" type="submit" value="<?php echo $l->t('Change password');?>" /> + <br/> + <div class="strengthify-wrapper"></div> </form> <?php } @@ -59,15 +57,13 @@ if($_['passwordChangeSupported']) { <?php if($_['displayNameChangeSupported']) { ?> -<form id="displaynameform"> - <fieldset class="personalblock"> - <h2><?php echo $l->t('Full Name');?></h2> - <input type="text" id="displayName" name="displayName" - value="<?php p($_['displayName'])?>" - autocomplete="on" autocapitalize="off" autocorrect="off" /> - <span class="msg"></span> - <input type="hidden" id="oldDisplayName" name="oldDisplayName" value="<?php p($_['displayName'])?>" /> - </fieldset> +<form id="displaynameform" class="section"> + <h2><?php echo $l->t('Full Name');?></h2> + <input type="text" id="displayName" name="displayName" + value="<?php p($_['displayName'])?>" + autocomplete="on" autocapitalize="off" autocorrect="off" /> + <span class="msg"></span> + <input type="hidden" id="oldDisplayName" name="oldDisplayName" value="<?php p($_['displayName'])?>" /> </form> <?php } @@ -76,85 +72,79 @@ if($_['displayNameChangeSupported']) { <?php if($_['passwordChangeSupported']) { ?> -<form id="lostpassword"> - <fieldset class="personalblock"> - <h2><?php p($l->t('Email'));?></h2> - <input type="text" name="email" id="email" value="<?php p($_['email']); ?>" - placeholder="<?php p($l->t('Your email address'));?>" - autocomplete="on" autocapitalize="off" autocorrect="off" /> - <span class="msg"></span><br /> - <em><?php p($l->t('Fill in an email address to enable password recovery and receive notifications'));?></em> - </fieldset> +<form id="lostpassword" class="section"> + <h2><?php p($l->t('Email'));?></h2> + <input type="text" name="email" id="email" value="<?php p($_['email']); ?>" + placeholder="<?php p($l->t('Your email address'));?>" + autocomplete="on" autocapitalize="off" autocorrect="off" /> + <span class="msg"></span><br /> + <em><?php p($l->t('Fill in an email address to enable password recovery and receive notifications'));?></em> </form> <?php } ?> <?php if ($_['enableAvatars']): ?> -<form id="avatar" method="post" action="<?php p(\OC_Helper::linkToRoute('core_avatar_post')); ?>"> - <fieldset class="personalblock"> - <h2><?php p($l->t('Profile picture')); ?></h2> - <div id="displayavatar"> - <div class="avatardiv"></div><br> - <div class="warning hidden"></div> - <?php if ($_['avatarChangeSupported']): ?> - <div class="inlineblock button" id="uploadavatarbutton"><?php p($l->t('Upload new')); ?></div> - <input type="file" class="hidden" name="files[]" id="uploadavatar"> - <div class="inlineblock button" id="selectavatar"><?php p($l->t('Select new from Files')); ?></div> - <div class="inlineblock button" id="removeavatar"><?php p($l->t('Remove image')); ?></div><br> - <?php p($l->t('Either png or jpg. Ideally square but you will be able to crop it.')); ?> - <?php else: ?> - <?php p($l->t('Your avatar is provided by your original account.')); ?> - <?php endif; ?> - </div> - <div id="cropper" class="hidden"> - <div class="inlineblock button" id="abortcropperbutton"><?php p($l->t('Cancel')); ?></div> - <div class="inlineblock button primary" id="sendcropperbutton"><?php p($l->t('Choose as profile image')); ?></div> - </div> - </fieldset> +<form id="avatar" class="section" method="post" action="<?php p(\OC_Helper::linkToRoute('core_avatar_post')); ?>"> + <h2><?php p($l->t('Profile picture')); ?></h2> + <div id="displayavatar"> + <div class="avatardiv"></div><br> + <div class="warning hidden"></div> + <?php if ($_['avatarChangeSupported']): ?> + <div class="inlineblock button" id="uploadavatarbutton"><?php p($l->t('Upload new')); ?></div> + <input type="file" class="hidden" name="files[]" id="uploadavatar"> + <div class="inlineblock button" id="selectavatar"><?php p($l->t('Select new from Files')); ?></div> + <div class="inlineblock button" id="removeavatar"><?php p($l->t('Remove image')); ?></div><br> + <?php p($l->t('Either png or jpg. Ideally square but you will be able to crop it.')); ?> + <?php else: ?> + <?php p($l->t('Your avatar is provided by your original account.')); ?> + <?php endif; ?> + </div> + <div id="cropper" class="hidden"> + <div class="inlineblock button" id="abortcropperbutton"><?php p($l->t('Cancel')); ?></div> + <div class="inlineblock button primary" id="sendcropperbutton"><?php p($l->t('Choose as profile image')); ?></div> + </div> </form> <?php endif; ?> -<form> - <fieldset class="personalblock"> - <h2><?php p($l->t('Language'));?></h2> - <select id="languageinput" name="lang" data-placeholder="<?php p($l->t('Language'));?>"> - <option value="<?php p($_['activelanguage']['code']);?>"> - <?php p($_['activelanguage']['name']);?> +<form class="section"> + <h2><?php p($l->t('Language'));?></h2> + <select id="languageinput" name="lang" data-placeholder="<?php p($l->t('Language'));?>"> + <option value="<?php p($_['activelanguage']['code']);?>"> + <?php p($_['activelanguage']['name']);?> + </option> + <?php foreach($_['commonlanguages'] as $language):?> + <option value="<?php p($language['code']);?>"> + <?php p($language['name']);?> </option> - <?php foreach($_['commonlanguages'] as $language):?> - <option value="<?php p($language['code']);?>"> - <?php p($language['name']);?> - </option> - <?php endforeach;?> - <optgroup label="––––––––––"></optgroup> - <?php foreach($_['languages'] as $language):?> - <option value="<?php p($language['code']);?>"> - <?php p($language['name']);?> - </option> - <?php endforeach;?> - </select> - <?php if (OC_Util::getEditionString() === ''): ?> - <a href="https://www.transifex.com/projects/p/owncloud/team/<?php p($_['activelanguage']['code']);?>/" - target="_blank"> - <em><?php p($l->t('Help translate'));?></em> - </a> - <?php endif; ?> - </fieldset> + <?php endforeach;?> + <optgroup label="––––––––––"></optgroup> + <?php foreach($_['languages'] as $language):?> + <option value="<?php p($language['code']);?>"> + <?php p($language['name']);?> + </option> + <?php endforeach;?> + </select> + <?php if (OC_Util::getEditionString() === ''): ?> + <a href="https://www.transifex.com/projects/p/owncloud/team/<?php p($_['activelanguage']['code']);?>/" + target="_blank"> + <em><?php p($l->t('Help translate'));?></em> + </a> + <?php endif; ?> </form> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('WebDAV'));?></h2> <code><?php print_unescaped(OC_Helper::linkToRemote('webdav')); ?></code><br /> <em><?php print_unescaped($l->t('Use this address to <a href="%s" target="_blank">access your Files via WebDAV</a>', array(link_to_docs('user-webdav'))));?></em> -</fieldset> +</div> <?php foreach($_['forms'] as $form) { print_unescaped($form); };?> <?php if($_['enableDecryptAll']): ?> -<fieldset class="personalblock" id="decryptAll"> +<div class="section" id="decryptAll"> <h2> <?php p( $l->t( 'Encryption' ) ); ?> </h2> @@ -174,18 +164,17 @@ if($_['passwordChangeSupported']) { <span class="msg"></span> </p> <br /> -</fieldset> +</div> <?php endif; ?> -<fieldset class="personalblock"> +<div class="section"> <h2><?php p($l->t('Version'));?></h2> <strong><?php p($theme->getName()); ?></strong> <?php p(OC_Util::getHumanVersion()) ?><br /> <?php if (OC_Util::getEditionString() === ''): ?> <?php print_unescaped($l->t('Developed by the <a href="http://ownCloud.org/contact" target="_blank">ownCloud community</a>, the <a href="https://github.com/owncloud" target="_blank">source code</a> is licensed under the <a href="http://www.gnu.org/licenses/agpl-3.0.html" target="_blank"><abbr title="Affero General Public License">AGPL</abbr></a>.')); ?> <?php endif; ?> -</fieldset> -<fieldset class="personalblock credits-footer"> -<p> - <?php print_unescaped($theme->getShortFooter()); ?> -</p> -</fieldset> +</div> + +<div class="section credits-footer"> + <p><?php print_unescaped($theme->getShortFooter()); ?></p> +</div> diff --git a/settings/users.php b/settings/users.php index 2f1c63a0b59..f09d0e90d3c 100644 --- a/settings/users.php +++ b/settings/users.php @@ -6,7 +6,6 @@ */ OC_Util::checkSubAdminUser(); -OC_App::loadApps(); // We have some javascript foo! OC_Util::addScript( 'settings', 'users' ); diff --git a/status.php b/status.php index 88422100f14..861eaed9cd2 100644 --- a/status.php +++ b/status.php @@ -21,8 +21,6 @@ * */ -$RUNTIME_NOAPPS = true; //no apps, yet - try { require_once 'lib/base.php'; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 70de7cd1c44..99374d68a5c 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -16,3 +16,4 @@ if (!class_exists('PHPUnit_Framework_TestCase')) { OC_Hook::clear(); OC_Log::$enabled = false; +OC_FileProxy::clearProxies(); diff --git a/tests/lib/files/filesystem.php b/tests/lib/files/filesystem.php index 90f1dfe581b..53f528af793 100644 --- a/tests/lib/files/filesystem.php +++ b/tests/lib/files/filesystem.php @@ -226,4 +226,55 @@ class Filesystem extends \PHPUnit_Framework_TestCase { $path = $arguments['path']; $this->assertEquals($path, \OC\Files\Filesystem::normalizePath($path)); //the path passed to the hook should already be normalized } + + /** + * Test that the default cache dir is part of the user's home + */ + public function testMountDefaultCacheDir() { + $userId = uniqid('user_'); + $oldCachePath = \OC_Config::getValue('cache_path', ''); + // no cache path configured + \OC_Config::setValue('cache_path', ''); + + \OC_User::createUser($userId, $userId); + \OC\Files\Filesystem::initMountPoints($userId); + + $this->assertEquals( + '/' . $userId . '/', + \OC\Files\Filesystem::getMountPoint('/' . $userId . '/cache') + ); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath('/' . $userId . '/cache'); + $this->assertInstanceOf('\OC\Files\Storage\Home', $storage); + $this->assertEquals('cache', $internalPath); + \OC_User::deleteUser($userId); + + \OC_Config::setValue('cache_path', $oldCachePath); + } + + /** + * Test that an external cache is mounted into + * the user's home + */ + public function testMountExternalCacheDir() { + $userId = uniqid('user_'); + + $oldCachePath = \OC_Config::getValue('cache_path', ''); + // set cache path to temp dir + $cachePath = \OC_Helper::tmpFolder() . '/extcache'; + \OC_Config::setValue('cache_path', $cachePath); + + \OC_User::createUser($userId, $userId); + \OC\Files\Filesystem::initMountPoints($userId); + + $this->assertEquals( + '/' . $userId . '/cache/', + \OC\Files\Filesystem::getMountPoint('/' . $userId . '/cache') + ); + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath('/' . $userId . '/cache'); + $this->assertInstanceOf('\OC\Files\Storage\Local', $storage); + $this->assertEquals('', $internalPath); + \OC_User::deleteUser($userId); + + \OC_Config::setValue('cache_path', $oldCachePath); + } } diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php index f9291758606..f3bfba3feb8 100644 --- a/tests/lib/files/storage/storage.php +++ b/tests/lib/files/storage/storage.php @@ -64,17 +64,17 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { * @dataProvider directoryProvider */ public function testDirectories($directory) { - $this->assertFalse($this->instance->file_exists('/'.$directory)); + $this->assertFalse($this->instance->file_exists('/' . $directory)); - $this->assertTrue($this->instance->mkdir('/'.$directory)); + $this->assertTrue($this->instance->mkdir('/' . $directory)); - $this->assertTrue($this->instance->file_exists('/'.$directory)); - $this->assertTrue($this->instance->is_dir('/'.$directory)); - $this->assertFalse($this->instance->is_file('/'.$directory)); - $this->assertEquals('dir', $this->instance->filetype('/'.$directory)); - $this->assertEquals(0, $this->instance->filesize('/'.$directory)); - $this->assertTrue($this->instance->isReadable('/'.$directory)); - $this->assertTrue($this->instance->isUpdatable('/'.$directory)); + $this->assertTrue($this->instance->file_exists('/' . $directory)); + $this->assertTrue($this->instance->is_dir('/' . $directory)); + $this->assertFalse($this->instance->is_file('/' . $directory)); + $this->assertEquals('dir', $this->instance->filetype('/' . $directory)); + $this->assertEquals(0, $this->instance->filesize('/' . $directory)); + $this->assertTrue($this->instance->isReadable('/' . $directory)); + $this->assertTrue($this->instance->isUpdatable('/' . $directory)); $dh = $this->instance->opendir('/'); $content = array(); @@ -85,13 +85,13 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { } $this->assertEquals(array($directory), $content); - $this->assertFalse($this->instance->mkdir('/'.$directory)); //cant create existing folders - $this->assertTrue($this->instance->rmdir('/'.$directory)); + $this->assertFalse($this->instance->mkdir('/' . $directory)); //cant create existing folders + $this->assertTrue($this->instance->rmdir('/' . $directory)); $this->wait(); - $this->assertFalse($this->instance->file_exists('/'.$directory)); + $this->assertFalse($this->instance->file_exists('/' . $directory)); - $this->assertFalse($this->instance->rmdir('/'.$directory)); //cant remove non existing folders + $this->assertFalse($this->instance->rmdir('/' . $directory)); //cant remove non existing folders $dh = $this->instance->opendir('/'); $content = array(); @@ -103,8 +103,7 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { $this->assertEquals(array(), $content); } - public function directoryProvider() - { + public function directoryProvider() { return array( array('folder'), array(' folder'), @@ -113,6 +112,7 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { array('spéciäl földer'), ); } + /** * test the various uses of file_get_contents and file_put_contents */ @@ -298,4 +298,21 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { $this->assertFalse($this->instance->file_exists('folder/bar')); $this->assertFalse($this->instance->file_exists('folder')); } + + public function hashProvider(){ + return array( + array('Foobar', 'md5'), + array('Foobar', 'sha1'), + array('Foobar', 'sha256'), + ); + } + + /** + * @dataProvider hashProvider + */ + public function testHash($data, $type) { + $this->instance->file_put_contents('hash.txt', $data); + $this->assertEquals(hash($type, $data), $this->instance->hash($type, 'hash.txt')); + $this->assertEquals(hash($type, $data, true), $this->instance->hash($type, 'hash.txt', true)); + } } diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php index b5cba9430aa..aae91fa1087 100644 --- a/tests/lib/share/share.php +++ b/tests/lib/share/share.php @@ -282,7 +282,7 @@ class Test_Share extends PHPUnit_Framework_TestCase { OC_User::setUserId($this->user2); $this->assertEquals(array(OCP\PERMISSION_READ), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_PERMISSIONS)); OC_User::setUserId($this->user3); - $this->assertFalse(OCP\Share::getItemSharedWith('test', 'test.txt')); + $this->assertSame(array(), OCP\Share::getItemSharedWith('test', 'test.txt')); // Reshare again, and then have owner unshare OC_User::setUserId($this->user1); @@ -292,9 +292,9 @@ class Test_Share extends PHPUnit_Framework_TestCase { OC_User::setUserId($this->user1); $this->assertTrue(OCP\Share::unshare('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2)); OC_User::setUserId($this->user2); - $this->assertFalse(OCP\Share::getItemSharedWith('test', 'test.txt')); + $this->assertSame(array(), OCP\Share::getItemSharedWith('test', 'test.txt')); OC_User::setUserId($this->user3); - $this->assertFalse(OCP\Share::getItemSharedWith('test', 'test.txt')); + $this->assertSame(array(), OCP\Share::getItemSharedWith('test', 'test.txt')); // Attempt target conflict OC_User::setUserId($this->user1); @@ -325,7 +325,7 @@ class Test_Share extends PHPUnit_Framework_TestCase { ); OC_User::setUserId($this->user2); - $this->assertFalse( + $this->assertSame(array(), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE), 'Failed asserting that user 2 no longer has access to test.txt after expiration.' ); @@ -526,13 +526,13 @@ class Test_Share extends PHPUnit_Framework_TestCase { ); OC_User::setUserId($this->user2); - $this->assertFalse( + $this->assertSame(array(), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE), 'Failed asserting that user 2 no longer has access to test.txt after expiration.' ); OC_User::setUserId($this->user3); - $this->assertFalse( + $this->assertSame(array(), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE), 'Failed asserting that user 3 no longer has access to test.txt after expiration.' ); diff --git a/tests/lib/urlgenerator.php b/tests/lib/urlgenerator.php index 875a7f06580..8e605d88f32 100644 --- a/tests/lib/urlgenerator.php +++ b/tests/lib/urlgenerator.php @@ -12,17 +12,32 @@ class Test_Urlgenerator extends PHPUnit_Framework_TestCase { /** * @small * @brief test absolute URL construction - * @dataProvider provideURLs + * @dataProvider provideDocRootURLs */ - function testGetAbsoluteURL($url, $expectedResult) { + function testGetAbsoluteURLDocRoot($url, $expectedResult) { + \OC::$WEBROOT = ''; $urlGenerator = new \OC\URLGenerator(null); $result = $urlGenerator->getAbsoluteURL($url); $this->assertEquals($expectedResult, $result); } - public function provideURLs() { + /** + * @small + * @brief test absolute URL construction + * @dataProvider provideSubDirURLs + */ + function testGetAbsoluteURLSubDir($url, $expectedResult) { + + \OC::$WEBROOT = '/owncloud'; + $urlGenerator = new \OC\URLGenerator(null); + $result = $urlGenerator->getAbsoluteURL($url); + + $this->assertEquals($expectedResult, $result); + } + + public function provideDocRootURLs() { return array( array("index.php", "http://localhost/index.php"), array("/index.php", "http://localhost/index.php"), @@ -30,5 +45,14 @@ class Test_Urlgenerator extends PHPUnit_Framework_TestCase { array("apps/index.php", "http://localhost/apps/index.php"), ); } + + public function provideSubDirURLs() { + return array( + array("index.php", "http://localhost/owncloud/index.php"), + array("/index.php", "http://localhost/owncloud/index.php"), + array("/apps/index.php", "http://localhost/owncloud/apps/index.php"), + array("apps/index.php", "http://localhost/owncloud/apps/index.php"), + ); + } } |