diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000000000000000000000000000000000000..107785fb3eedd250fb4cb87d75d2493cde6ae1a8 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "core/vendor" +} diff --git a/.gitignore b/.gitignore index a36fd98b79f1186d7793290c63090fbfff537068..93bacf9b07ea8250c30b45fb56d005fd788ef680 100644 --- a/.gitignore +++ b/.gitignore @@ -89,8 +89,15 @@ nbproject # nodejs /build/lib/ +/build/jsdocs/ /npm-debug.log +# puphpet +puphpet + +# vagrant +.vagrant +Vagrantfile # Tests - auto-generated files /data-autotest diff --git a/.htaccess b/.htaccess index ee4d5af1d85b28be6fe177d27b8638311ec41829..e45810d0a0549c0f536cf1ed21cb51a41bdcc361 100644 --- a/.htaccess +++ b/.htaccess @@ -38,3 +38,8 @@ Options -Indexes ModPagespeed Off + + + Header set Cache-Control "max-age=7200, public" + + diff --git a/.jshintrc b/.jshintrc index d5da3e30828193581ecb113f423a69ab83e02bf6..0b055afde3d78bc03ca67136ec21b3ef79bc3bef 100644 --- a/.jshintrc +++ b/.jshintrc @@ -14,6 +14,7 @@ "maxlen": 120, "indent": 4, "browser": true, + "laxbreak": true, "globals": { "console": true, "it": true, diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 8ce8822d99f11538b2582c8f55ed8ec89236d3e3..f66c1b86eac6fbf7aeff33d485a044085f521606 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -2,25 +2,18 @@ filter: excluded_paths: - '3rdparty/*' - 'apps/*/3rdparty/*' + - 'apps/*/vendor/*' - 'l10n/*' - 'core/l10n/*' - 'apps/*/l10n/*' - 'lib/l10n/*' + - 'core/vendor/*' - 'core/js/tests/lib/*.js' - 'core/js/tests/specs/*.js' - - 'core/js/jquery-1.10.0.js' - - 'core/js/jquery-1.10.0.min.js' - - 'core/js/jquery-migrate-1.2.1.js' - - 'core/js/jquery-migrate-1.2.1.min.js' - 'core/js/jquery-showpassword.js' - 'core/js/jquery-tipsy.js' - 'core/js/jquery-ui-1.10.0.custom.js' - - 'core/js/jquery.inview.js' - 'core/js/placeholders.js' - - 'core/js/underscore.js' - - 'core/js/jquery.multiselect.js' - - 'core/js/snap.js' - - 'core/js/jquery.placeholder.js' imports: diff --git a/3rdparty b/3rdparty index 5db359cb710c51747d3fb78b605f8b8cdcd1e605..dd0e7b6dcec142c790a6325b74a7c4fd3c6d7233 160000 --- a/3rdparty +++ b/3rdparty @@ -1 +1 @@ -Subproject commit 5db359cb710c51747d3fb78b605f8b8cdcd1e605 +Subproject commit dd0e7b6dcec142c790a6325b74a7c4fd3c6d7233 diff --git a/README.md b/README.md index 0b13f11e76803e46019218525941e769a8f8d9fe..6a95e329962fde7730b56a3060a90dc182160a1d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ A personal cloud which runs on your own server. ### Build Status on [Jenkins CI](https://ci.owncloud.org/) Git master: [![Build Status](https://ci.owncloud.org/job/server-master-linux/badge/icon)](https://ci.owncloud.org/job/server-master-linux/) -Quality: [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/owncloud/core/badges/quality-score.png?s=ce2f5ded03d4ac628e9ee5c767243fa7412e644f)](https://scrutinizer-ci.com/g/owncloud/core/) +Quality: + - Scrutinizer: [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/owncloud/core/badges/quality-score.png?s=ce2f5ded03d4ac628e9ee5c767243fa7412e644f)](https://scrutinizer-ci.com/g/owncloud/core/) + - CodeClimate: [![Code Climate](https://codeclimate.com/github/owncloud/core/badges/gpa.svg)](https://codeclimate.com/github/owncloud/core) ### Installation instructions http://doc.owncloud.org/server/7.0/developer_manual/app/index.html diff --git a/apps/files/ajax/delete.php b/apps/files/ajax/delete.php index 323b70706ce1dda148944c3504a2c020bbad0159..4d4232e872e4de0ae5a51552cd7c9084f9da88fe 100644 --- a/apps/files/ajax/delete.php +++ b/apps/files/ajax/delete.php @@ -27,7 +27,9 @@ $success = true; //Now delete foreach ($files as $file) { if (\OC\Files\Filesystem::file_exists($dir . '/' . $file) && - !\OC\Files\Filesystem::unlink($dir . '/' . $file)) { + !(\OC\Files\Filesystem::isDeletable($dir . '/' . $file) && + \OC\Files\Filesystem::unlink($dir . '/' . $file)) + ) { $filesWithError .= $file . "\n"; $success = false; } diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 392fc5bd1c8d72c1153c3344b8cdb43623bccbf4..b4d91514a2aa7fb6fc89658ab6311daf899c5341 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -33,7 +33,7 @@ function progress($notification_code, $severity, $message, $message_code, $bytes case STREAM_NOTIFY_PROGRESS: if ($bytes_transferred > 0) { - if (!isset($filesize)) { + if (!isset($filesize) || $filesize === 0) { } else { $progress = (int)(($bytes_transferred/$filesize)*100); if($progress>$lastsize) { //limit the number or messages send diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index b960e02ced741c0eecd0a5535eb963bd386195f7..eb99d0644f7c312a52e6956ee35161a9f9df6ba5 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -1,5 +1,7 @@ getSession()->close(); + // Firefox and Konqueror tries to download application/json for me. --Arthur OCP\JSON::setContentTypeHeader('text/plain'); @@ -7,7 +9,7 @@ OCP\JSON::setContentTypeHeader('text/plain'); // If not, check the login. // If no token is sent along, rely on login only -$allowedPermissions = OCP\PERMISSION_ALL; +$allowedPermissions = \OCP\Constants::PERMISSION_ALL; $errorCode = null; $l = \OC::$server->getL10N('files'); @@ -27,7 +29,7 @@ if (empty($_POST['dirToken'])) { \OC_User::setIncognitoMode(true); // return only read permissions for public upload - $allowedPermissions = OCP\PERMISSION_READ; + $allowedPermissions = \OCP\Constants::PERMISSION_READ; $publicDirectory = !empty($_POST['subdir']) ? $_POST['subdir'] : '/'; $linkItem = OCP\Share::getShareByToken($_POST['dirToken']); @@ -36,7 +38,7 @@ if (empty($_POST['dirToken'])) { die(); } - if (!($linkItem['permissions'] & OCP\PERMISSION_CREATE)) { + if (!($linkItem['permissions'] & \OCP\Constants::PERMISSION_CREATE)) { OCP\JSON::checkLoggedIn(); } else { // resolve reshares @@ -64,13 +66,7 @@ if (empty($_POST['dirToken'])) { } } - OCP\JSON::callCheck(); -if (!\OCP\App::isEnabled('files_encryption')) { - // encryption app need to create keys later, so can't close too early - \OC::$server->getSession()->close(); -} - // get array with current storage stats (e.g. max file size) $storageStats = \OCA\Files\Helper::buildFileStorageStatistics($dir); diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index 7f222c0cc7d60c7fa301580f9326c4d9bcb7c0e5..8586c6794f2b0c36bc4fbe441d41d26da8e0c9d3 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -16,4 +16,7 @@ appinfo/remote.php appinfo/remote.php + + user-files + diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php index 3ba25085bad3a0499091f7f57127256804ca9fdd..26bef966f798e7d7e32ddf5f0a29229ff20cdeb8 100644 --- a/apps/files/appinfo/remote.php +++ b/apps/files/appinfo/remote.php @@ -38,7 +38,7 @@ $server->setBaseUri($baseuri); $defaults = new OC_Defaults(); $server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, $defaults->getName())); $server->addPlugin(new \Sabre\DAV\Locks\Plugin($lockBackend)); -$server->addPlugin(new \Sabre\DAV\Browser\Plugin(false)); // Show something in the Browser, but no upload +$server->addPlugin(new \Sabre\DAV\Browser\Plugin(false, false)); // Show something in the Browser, but no upload $server->addPlugin(new OC_Connector_Sabre_FilesPlugin()); $server->addPlugin(new OC_Connector_Sabre_MaintenancePlugin()); $server->addPlugin(new OC_Connector_Sabre_ExceptionLoggerPlugin('webdav')); diff --git a/apps/files/controller/apicontroller.php b/apps/files/controller/apicontroller.php index 01f9086c27d636b4e509ee143986158eb1075ffd..89d24a5c47f02c5cf92725ef89e1d114e3dd0c79 100644 --- a/apps/files/controller/apicontroller.php +++ b/apps/files/controller/apicontroller.php @@ -32,7 +32,7 @@ class ApiController extends Controller { * * @param int $x * @param int $y - * @param string $file + * @param string $file URL-encoded filename * @return JSONResponse|DownloadResponse */ public function getThumbnail($x, $y, $file) { @@ -41,9 +41,9 @@ class ApiController extends Controller { } try { - $preview = new Preview('', 'files', $file, $x, $y, true); + $preview = new Preview('', 'files', urldecode($file), $x, $y, true); echo($preview->showPreview('image/png')); - return new DownloadResponse($file.'.png', 'image/png'); + return new DownloadResponse(urldecode($file).'.png', 'image/png'); } catch (\Exception $e) { return new JSONResponse('File not found.', Http::STATUS_NOT_FOUND); } diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 00b1ded9b303c6f868a51061b4c7033055c67f3d..60afcf9b5795395c52e44be6318d6a6a746f4112 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -6,7 +6,11 @@ .actions { padding:5px; height:32px; display: inline-block; float: left; } .actions input, .actions button, .actions .button { margin:0; float:left; } .actions .button a { color: #555; } -.actions .button a:hover, .actions .button a:active { color: #333; } +.actions .button a:hover, +.actions .button a:focus, +.actions .button a:active { + color: #333; +} .actions.hidden { display: none; } #new { @@ -99,7 +103,9 @@ } #filestable tbody tr { background-color:#fff; height:40px; } -#filestable tbody tr:hover, tbody tr:active { +#filestable tbody tr:hover, +#filestable tbody tr:focus, +#filestable tbody tr:active { background-color: rgb(240,240,240); } #filestable tbody tr.selected { @@ -123,7 +129,8 @@ span.extension { transition: opacity 300ms; vertical-align: top; } -tr:hover span.extension { +tr:hover span.extension, +tr:focus span.extension { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter: alpha(opacity=100); opacity: 1; @@ -166,7 +173,8 @@ table th .sort-indicator { .sort-indicator.hidden { visibility: hidden; } -table th:hover .sort-indicator.hidden { +table th:hover .sort-indicator.hidden, +table th:focus .sort-indicator.hidden { visibility: visible; } @@ -236,7 +244,6 @@ table td.filename a.name { line-height: 50px; padding: 0; } -table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } table td.filename input.filename { width: 70%; margin-top: 1px; @@ -253,8 +260,10 @@ table td.filename .nametext, .uploadtext, .modified, .column-last>span:first-chi width: 90%; } /* ellipsize long modified dates to make room for showing delete button */ -#fileList tr:hover .modified, #fileList tr:hover .column-last>span:first-child, -#fileList tr:focus .modified, #fileList tr:focus .column-last>span:first-child { +#fileList tr:hover .modified, +#fileList tr:focus .modified, +#fileList tr:hover .column-last>span:first-child, +#fileList tr:focus .column-last>span:first-child { width: 75%; } @@ -281,7 +290,8 @@ table td.filename .nametext .innernametext { max-width: 760px; } - table tr:hover td.filename .nametext .innernametext { + table tr:hover td.filename .nametext .innernametext, + table tr:focus td.filename .nametext .innernametext { max-width: 480px; } } @@ -291,7 +301,8 @@ table td.filename .nametext .innernametext { max-width: 600px; } - table tr:hover td.filename .nametext .innernametext { + table tr:hover td.filename .nametext .innernametext, + table tr:focus td.filename .nametext .innernametext { max-width: 320px; } } @@ -301,7 +312,8 @@ table td.filename .nametext .innernametext { max-width: 400px; } - table tr:hover td.filename .nametext .innernametext { + table tr:hover td.filename .nametext .innernametext, + table tr:focus td.filename .nametext .innernametext { max-width: 120px; } } @@ -311,7 +323,8 @@ table td.filename .nametext .innernametext { max-width: 320px; } - table tr:hover td.filename .nametext .innernametext { + table tr:hover td.filename .nametext .innernametext, + table tr:focus td.filename .nametext .innernametext { max-width: 40px; } } @@ -345,11 +358,13 @@ table td.filename .uploadtext { } /* Show checkbox when hovering, checked, or selected */ #fileList tr:hover td.filename>input[type="checkbox"]:first-child, +#fileList tr:focus td.filename>input[type="checkbox"]:first-child, #fileList tr td.filename>input[type="checkbox"]:checked:first-child, #fileList tr.selected td.filename>input[type="checkbox"]:first-child { opacity: 1; } .lte9 #fileList tr:hover td.filename>input[type="checkbox"]:first-child, +.lte9 #fileList tr:focus td.filename>input[type="checkbox"]:first-child, .lte9 #fileList tr td.filename>input[type="checkbox"][checked=checked]:first-child, .lte9 #fileList tr.selected td.filename>input[type="checkbox"]:first-child { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; @@ -470,13 +485,15 @@ a.action>img { position: relative; top: -21px; } -#fileList tr:hover a.action, #fileList a.action.permanent { +#fileList tr:hover a.action, #fileList a.action.permanent +#fileList tr:focus a.action, #fileList a.action.permanent { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter: alpha(opacity=50); opacity: .5; display:inline; } -#fileList tr:hover a.action:hover { +#fileList tr:hover a.action:hover, +#fileList tr:focus a.action:focus { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter: alpha(opacity=100); opacity: 1; @@ -490,7 +507,10 @@ a.action>img { height: 70px; } -.summary:hover, .summary, table tr.summary td { +.summary:hover, +.summary:focus, +.summary, +table tr.summary td { background-color: transparent; } diff --git a/apps/files/index.php b/apps/files/index.php index bc74e17aee131b9ea429c6d502646c154591477d..4142a02b97e04f17627d2dd0d851ce53216f42c7 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -28,6 +28,7 @@ OCP\User::checkLoggedIn(); OCP\Util::addStyle('files', 'files'); OCP\Util::addStyle('files', 'upload'); OCP\Util::addStyle('files', 'mobile'); +OCP\Util::addTranslations('files'); OCP\Util::addscript('files', 'app'); OCP\Util::addscript('files', 'file-upload'); OCP\Util::addscript('files', 'jquery.iframe-transport'); diff --git a/apps/files/js/app.js b/apps/files/js/app.js index 89098e3a8a3bf00e486d9db5bc5737bc0cd6be3a..ee5330485e7052db2943ab5016a994de83adc0cc 100644 --- a/apps/files/js/app.js +++ b/apps/files/js/app.js @@ -15,12 +15,34 @@ (function() { if (!OCA.Files) { + /** + * Namespace for the files app + * @namespace OCA.Files + */ OCA.Files = {}; } - var App = { + /** + * @namespace OCA.Files.App + */ + OCA.Files.App = { + /** + * Navigation control + * + * @member {OCA.Files.Navigation} + */ navigation: null, + /** + * File list for the "All files" section. + * + * @member {OCA.Files.FileList} + */ + fileList: null, + + /** + * Initializes the files app + */ initialize: function() { this.navigation = new OCA.Files.Navigation($('#app-navigation')); @@ -191,7 +213,6 @@ OC.Util.History.pushState(params); } }; - OCA.Files.App = App; })(); $(document).ready(function() { diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js index 8df9b7ee6fe0742546323cfd08b55956da84ecb7..af4e48c8f8c4aaa0057f3c27e9c3d166b647b210 100644 --- a/apps/files/js/breadcrumb.js +++ b/apps/files/js/breadcrumb.js @@ -19,10 +19,17 @@ * */ -/* global OC */ (function() { /** - * Creates an breadcrumb element in the given container + * @class BreadCrumb + * @memberof OCA.Files + * @classdesc Breadcrumbs that represent the current path. + * + * @param {Object} [options] options + * @param {Function} [options.onClick] click event handler + * @param {Function} [options.onDrop] drop event handler + * @param {Function} [options.getCrumbUrl] callback that returns + * the URL of a given breadcrumb */ var BreadCrumb = function(options){ this.$el = $(''); @@ -37,12 +44,17 @@ this.getCrumbUrl = options.getCrumbUrl; } }; + /** + * @memberof OCA.Files + */ BreadCrumb.prototype = { $el: null, dir: null, /** * Total width of all breadcrumbs + * @type int + * @private */ totalWidth: 0, breadcrumbs: [], @@ -64,8 +76,9 @@ /** * Returns the full URL to the given directory - * @param part crumb data as map - * @param index crumb index + * + * @param {Object.} part crumb data as map + * @param {int} index crumb index * @return full URL */ getCrumbUrl: function(part, index) { @@ -121,8 +134,9 @@ /** * Makes a breadcrumb structure based on the given path - * @param dir path to split into a breadcrumb structure - * @return array of map {dir: path, name: displayName} + * + * @param {String} dir path to split into a breadcrumb structure + * @return {Object.} map of {dir: path, name: displayName} */ _makeCrumbs: function(dir) { var crumbs = []; @@ -166,6 +180,8 @@ /** * Show/hide breadcrumbs to fit the given width + * + * @param {int} availableWidth available width */ setMaxWidth: function (availableWidth) { if (this.availableWidth !== availableWidth) { diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 460c2435642c76299282720bfead161b1e62ad70..ab450dc5cac2134a8f808c22a405d911271da8cd 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -49,7 +49,7 @@ function supportAjaxUploadWithProgress() { /** * keeps track of uploads in progress and implements callbacks for the conflicts dialog - * @type {OC.Upload} + * @namespace */ OC.Upload = { _uploads: [], diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 8ae0d8f1b2ec58b32909b3d46a995dee4bd82838..5bf1618b0b8daba39ec19333af0e4864780dfefc 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -13,11 +13,14 @@ /** * Construct a new FileActions instance + * @constructs FileActions + * @memberof OCA.Files */ var FileActions = function() { this.initialize(); - } + }; FileActions.prototype = { + /** @lends FileActions.prototype */ actions: {}, defaults: {}, icons: {}, @@ -31,9 +34,14 @@ /** * List of handlers to be notified whenever a register() or * setDefault() was called. + * + * @member {Function[]} */ _updateListeners: {}, + /** + * @private + */ initialize: function() { this.clear(); // abusing jquery for events until we get a real event lib @@ -45,7 +53,7 @@ * Adds an event handler * * @param {String} eventName event name - * @param Function callback + * @param {Function} callback */ on: function(eventName, callback) { this.$el.on(eventName, callback); @@ -75,7 +83,7 @@ * Merges the actions from the given fileActions into * this instance. * - * @param fileActions instance of OCA.Files.FileActions + * @param {OCA.Files.FileActions} fileActions instance of OCA.Files.FileActions */ merge: function(fileActions) { var self = this; @@ -113,8 +121,9 @@ * to the name given in action.name * @param {String} action.mime mime type * @param {int} action.permissions permissions - * @param {(Function|String)} action.icon icon - * @param {Function} action.actionHandler function that performs the action + * @param {(Function|String)} action.icon icon path to the icon or function + * that returns it + * @param {OCA.Files.FileActions~actionHandler} action.actionHandler action handler function */ registerAction: function (action) { var mime = action.mime; @@ -130,6 +139,9 @@ this.icons[name] = action.icon; this._notifyUpdateListeners('registerAction', {action: action}); }, + /** + * Clears all registered file actions. + */ clear: function() { this.actions = {}; this.defaults = {}; @@ -137,6 +149,12 @@ this.currentFile = null; this._updateListeners = []; }, + /** + * Sets the default action for a given mime type. + * + * @param {String} mime mime type + * @param {String} name action name + */ setDefault: function (mime, name) { this.defaults[mime] = name; this._notifyUpdateListeners('setDefault', {defaultAction: {mime: mime, name: name}}); @@ -261,7 +279,7 @@ } var html = ''; if (img) { - html += ''; + html += ''; } html += ' ' + actionText + ''; @@ -370,6 +388,18 @@ OCA.Files.FileActions = FileActions; + /** + * Action handler function for file actions + * + * @callback OCA.Files.FileActions~actionHandler + * @param {String} fileName name of the clicked file + * @param context context + * @param {String} context.dir directory of the file + * @param context.$file jQuery element of the file + * @param {OCA.Files.FileList} context.fileList the FileList instance on which the action occurred + * @param {OCA.Files.FileActions} context.fileActions the FileActions instance on which the action occurred + */ + // global file actions to be used by all lists OCA.Files.fileActions = new OCA.Files.FileActions(); OCA.Files.legacyFileActions = new OCA.Files.FileActions(); @@ -380,6 +410,7 @@ // their actions on. Since legacy apps are very likely to break with other // FileList views than the main one ("All files"), actions registered // through window.FileActions will be limited to the main file list. + // @deprecated use OCA.Files.FileActions instead window.FileActions = OCA.Files.legacyFileActions; window.FileActions.register = function (mime, name, permissions, icon, action, displayName) { console.warn('FileActions.register() is deprecated, please use OCA.Files.fileActions.register() instead', arguments); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 86cba29e76c96d1a5bf02e6d9a36f7f1cae9fcb9..6ffc10cdcbdbed96cca4dfa429e75632336e4a4a 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -10,13 +10,26 @@ (function() { /** + * @class OCA.Files.FileList + * @classdesc + * * The FileList class manages a file list view. * A file list view consists of a controls bar and * a file list table. + * + * @param $el container element with existing markup for the #controls + * and a table + * @param [options] map of options, see other parameters + * @param [options.scrollContainer] scrollable container, defaults to $(window) + * @param [options.dragOptions] drag options, disabled by default + * @param [options.folderDropOptions] folder drop options, disabled by default */ var FileList = function($el, options) { this.initialize($el, options); }; + /** + * @memberof OCA.Files + */ FileList.prototype = { SORT_INDICATOR_ASC_CLASS: 'icon-triangle-n', SORT_INDICATOR_DESC_CLASS: 'icon-triangle-s', @@ -41,51 +54,72 @@ */ $fileList: null, + /** + * @type OCA.Files.BreadCrumb + */ breadcrumb: null, /** - * Instance of FileSummary + * @type OCA.Files.FileSummary */ fileSummary: null, + + /** + * Whether the file list was initialized already. + * @type boolean + */ initialized: false, - // number of files per page - pageSize: 20, + /** + * Number of files per page + * + * @return {int} page size + */ + pageSize: function() { + return Math.ceil(this.$container.height() / 50); + }, /** * Array of files in the current folder. * The entries are of file data. + * + * @type Array. */ files: [], /** * File actions handler, defaults to OCA.Files.FileActions + * @type OCA.Files.FileActions */ fileActions: null, /** * Map of file id to file data + * @type Object. */ _selectedFiles: {}, /** * Summary of selected files. - * Instance of FileSummary. + * @type OCA.Files.FileSummary */ _selectionSummary: null, /** * Sort attribute + * @type String */ _sort: 'name', /** * Sort direction: 'asc' or 'desc' + * @type String */ _sortDirection: 'asc', /** * Sort comparator function for the current sort + * @type Function */ _sortComparator: null, @@ -98,6 +132,7 @@ /** * Current directory + * @type String */ _currentDirectory: null, @@ -114,6 +149,7 @@ * @param options.dragOptions drag options, disabled by default * @param options.folderDropOptions folder drop options, disabled by default * @param options.scrollTo name of file to scroll to after the first load + * @private */ initialize: function($el, options) { var self = this; @@ -190,6 +226,11 @@ this.fileActions.off('setDefault', this._onFileActionsUpdated); }, + /** + * Initializes the file actions, set up listeners. + * + * @param {OCA.Files.FileActions} fileActions file actions + */ _initFileActions: function(fileActions) { this.fileActions = fileActions; if (!this.fileActions) { @@ -485,7 +526,8 @@ mimetype: $el.attr('data-mime'), type: $el.attr('data-type'), size: parseInt($el.attr('data-size'), 10), - etag: $el.attr('data-etag') + etag: $el.attr('data-etag'), + permissions: parseInt($el.attr('data-permissions'), 10) }; }, @@ -496,7 +538,7 @@ */ _nextPage: function(animate) { var index = this.$fileList.children().length, - count = this.pageSize, + count = this.pageSize(), tr, fileData, newTrs = [], @@ -586,8 +628,8 @@ }, /** * Creates a new table row element using the given file data. - * @param fileData map of file attributes - * @param options map of attribute "loading" whether the entry is currently loading + * @param {OCA.Files.FileInfo} fileData file info attributes + * @param options map of attributes * @return new tr element (not appended to the table) */ _createRow: function(fileData, options) { @@ -726,12 +768,14 @@ * Adds an entry to the files array and also into the DOM * in a sorted manner. * - * @param fileData map of file attributes - * @param options map of attributes: - * @param options.updateSummary true to update the summary after adding (default), false otherwise - * @param options.silent true to prevent firing events like "fileActionsReady" - * @param options.animate true to animate preview loading (defaults to true here) - * @param options.scrollTo true to automatically scroll to the file's location + * @param {OCA.Files.FileInfo} fileData map of file attributes + * @param {Object} [options] map of attributes + * @param {boolean} [options.updateSummary] true to update the summary + * after adding (default), false otherwise. Defaults to true. + * @param {boolean} [options.silent] true to prevent firing events like "fileActionsReady", + * defaults to false. + * @param {boolean} [options.animate] true to animate the thumbnail image after load + * defaults to true. * @return new tr element (not appended to the table) */ add: function(fileData, options) { @@ -797,11 +841,13 @@ * Creates a new row element based on the given attributes * and returns it. * - * @param fileData map of file attributes - * @param options map of attributes: - * - "index" optional index at which to insert the element - * - "updateSummary" true to update the summary after adding (default), false otherwise - * - "animate" true to animate the preview rendering + * @param {OCA.Files.FileInfo} fileData map of file attributes + * @param {Object} [options] map of attributes + * @param {int} [options.index] index at which to insert the element + * @param {boolean} [options.updateSummary] true to update the summary + * after adding (default), false otherwise. Defaults to true. + * @param {boolean} [options.animate] true to animate the thumbnail image after load + * defaults to true. * @return new tr element (not appended to the table) */ _renderRow: function(fileData, options) { @@ -868,6 +914,7 @@ }, /** * Returns the current directory + * @method getCurrentDirectory * @return current directory */ getCurrentDirectory: function(){ @@ -1049,7 +1096,10 @@ /** * Generates a preview URL based on the URL space. - * @param urlSpec map with {x: width, y: height, file: file path} + * @param urlSpec attributes for the URL + * @param {int} urlSpec.x width + * @param {int} urlSpec.y height + * @param {String} urlSpec.file path to the file * @return preview URL */ generatePreviewUrl: function(urlSpec) { @@ -1156,8 +1206,9 @@ /** * Removes a file entry from the list * @param name name of the file to remove - * @param options optional options as map: - * "updateSummary": true to update the summary (default), false otherwise + * @param {Object} [options] map of attributes + * @param {boolean} [options.updateSummary] true to update the summary + * after removing, false otherwise. Defaults to true. * @return deleted element */ remove: function(name, options){ @@ -1189,7 +1240,7 @@ // if there are less elements visible than one page // but there are still pending elements in the array, // then directly append the next page - if (lastIndex < this.files.length && lastIndex < this.pageSize) { + if (lastIndex < this.files.length && lastIndex < this.pageSize()) { this._nextPage(true); } @@ -1199,6 +1250,8 @@ * Finds the index of the row before which the given * fileData should be inserted, considering the current * sorting + * + * @param {OCA.Files.FileInfo} fileData file info */ _findInsertionIndex: function(fileData) { var index = 0; @@ -1513,7 +1566,7 @@ /** * Shows the loading mask. * - * @see #hideMask + * @see OCA.Files.FileList#hideMask */ showMask: function() { // in case one was shown before @@ -1534,7 +1587,7 @@ }, /** * Hide the loading mask. - * @see #showMask + * @see OCA.Files.FileList#showMask */ hideMask: function() { this.$el.find('.mask').remove(); @@ -1584,7 +1637,7 @@ this.$el.find('.selectedActions').addClass('hidden'); } else { - canDelete = (this.getDirectoryPermissions() & OC.PERMISSION_DELETE); + canDelete = (this.getDirectoryPermissions() & OC.PERMISSION_DELETE) && this.isSelectedDeletable(); this.$el.find('.selectedActions').removeClass('hidden'); this.$el.find('#headerSize a>span:first').text(OC.Util.humanFileSize(summary.totalSize)); var selection = ''; @@ -1604,6 +1657,15 @@ } }, + /** + * Check whether all selected files are deletable + */ + isSelectedDeletable: function() { + return _.reduce(this.getSelectedFiles(), function(deletable, file) { + return deletable && (file.permissions & OC.PERMISSION_DELETE); + }, true); + }, + /** * Returns whether all files are selected * @return true if all files are selected, false otherwise @@ -1919,7 +1981,13 @@ // Animation var _this = this; - this.$container.animate({ + var $scrollContainer = this.$container; + if ($scrollContainer[0] === window) { + // need to use "body" to animate scrolling + // when the scroll container is the window + $scrollContainer = $('body'); + } + $scrollContainer.animate({ // Scrolling to the top of the new element scrollTop: currentOffset + $fileRow.offset().top - $fileRow.height() * 2 - additionalOffset }, { @@ -1953,15 +2021,17 @@ /** * Sort comparators. + * @namespace OCA.Files.FileList.Comparators + * @private */ FileList.Comparators = { /** * Compares two file infos by name, making directories appear * first. * - * @param fileInfo1 file info - * @param fileInfo2 file info - * @return -1 if the first file must appear before the second one, + * @param {OCA.Files.FileInfo} fileInfo1 file info + * @param {OCA.Files.FileInfo} fileInfo2 file info + * @return {int} -1 if the first file must appear before the second one, * 0 if they are identify, 1 otherwise. */ name: function(fileInfo1, fileInfo2) { @@ -1976,9 +2046,9 @@ /** * Compares two file infos by size. * - * @param fileInfo1 file info - * @param fileInfo2 file info - * @return -1 if the first file must appear before the second one, + * @param {OCA.Files.FileInfo} fileInfo1 file info + * @param {OCA.Files.FileInfo} fileInfo2 file info + * @return {int} -1 if the first file must appear before the second one, * 0 if they are identify, 1 otherwise. */ size: function(fileInfo1, fileInfo2) { @@ -1987,9 +2057,9 @@ /** * Compares two file infos by timestamp. * - * @param fileInfo1 file info - * @param fileInfo2 file info - * @return -1 if the first file must appear before the second one, + * @param {OCA.Files.FileInfo} fileInfo1 file info + * @param {OCA.Files.FileInfo} fileInfo2 file info + * @return {int} -1 if the first file must appear before the second one, * 0 if they are identify, 1 otherwise. */ mtime: function(fileInfo1, fileInfo2) { @@ -1997,6 +2067,27 @@ } }; + /** + * File info attributes. + * + * @todo make this a real class in the future + * @typedef {Object} OCA.Files.FileInfo + * + * @property {int} id file id + * @property {String} name file name + * @property {String} [path] file path, defaults to the list's current path + * @property {String} mimetype mime type + * @property {String} type "file" for files or "dir" for directories + * @property {int} permissions file permissions + * @property {int} mtime modification time in milliseconds + * @property {boolean} [isShareMountPoint] whether the file is a share mount + * point + * @property {boolean} [isPreviewAvailable] whether a preview is available + * for the given file type + * @property {String} [icon] path to the mime type icon + * @property {String} etag etag of the file + */ + OCA.Files.FileList = FileList; })(); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 5fcf99d24af3a02591992bf02b84027a2099c19b..b11ef03eab24823e3f2eb0f27d5d5752f1477973 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -195,7 +195,10 @@ /** * Generates a preview URL based on the URL space. - * @param urlSpec map with {x: width, y: height, file: file path} + * @param urlSpec attributes for the URL + * @param {int} urlSpec.x width + * @param {int} urlSpec.y height + * @param {String} urlSpec.file path to the file * @return preview URL * @deprecated used OCA.Files.FileList.generatePreviewUrl instead */ @@ -350,7 +353,7 @@ var createDragShadow = function(event) { } // do not show drag shadow for too many files - var selectedFiles = _.first(FileList.getSelectedFiles(), FileList.pageSize); + var selectedFiles = _.first(FileList.getSelectedFiles(), FileList.pageSize()); selectedFiles = _.sortBy(selectedFiles, FileList._fileInfoCompare); if (!isDragSelected && selectedFiles.length === 1) { diff --git a/apps/files/js/filesummary.js b/apps/files/js/filesummary.js index ca70259335cde1d24fe30b5dabd79e69d243dae0..f83eb54678b51e5cd8bb5c8eb65da192944b2854 100644 --- a/apps/files/js/filesummary.js +++ b/apps/files/js/filesummary.js @@ -19,14 +19,15 @@ * */ -/* global OC, n, t */ - (function() { /** * The FileSummary class encapsulates the file summary values and * the logic to render it in the given container + * + * @constructs FileSummary + * @memberof OCA.Files + * * @param $tr table row element - * $param summary optional initial summary value */ var FileSummary = function($tr) { this.$el = $tr; diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index b959e016e8cda76afa741ad49115ac2a2c365767..be385f21f50ad4c368aca636ecc64a6c232f18f6 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -13,10 +13,19 @@ (function() { + /** + * @class OCA.Files.Navigation + * @classdesc Navigation control for the files app sidebar. + * + * @param $el element containing the navigation + */ var Navigation = function($el) { this.initialize($el); }; + /** + * @memberof OCA.Files + */ Navigation.prototype = { /** @@ -31,6 +40,8 @@ /** * Initializes the navigation from the given container + * + * @private * @param $el element containing the navigation */ initialize: function($el) { diff --git a/apps/files/js/upload.js b/apps/files/js/upload.js index 617cf4b1c1d4555f584547a309f473a7eff91b8c..518608615e06d00808a146864718076fbf55ae71 100644 --- a/apps/files/js/upload.js +++ b/apps/files/js/upload.js @@ -8,7 +8,6 @@ * */ -/* global OC */ function Upload(fileSelector) { if ($.support.xhrFileUpload) { return new XHRUpload(fileSelector.target.files); diff --git a/apps/files/l10n/ach.js b/apps/files/l10n/ach.js new file mode 100644 index 0000000000000000000000000000000000000000..f085469f7317d44d6cbd5222227202b322fe5dcb --- /dev/null +++ b/apps/files/l10n/ach.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/ach.json b/apps/files/l10n/ach.json new file mode 100644 index 0000000000000000000000000000000000000000..ba9792477cd03d9f6dc76e4722b7e629162b8e06 --- /dev/null +++ b/apps/files/l10n/ach.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ach.php b/apps/files/l10n/ach.php deleted file mode 100644 index 3c711e6b78a257d953a010dc2feba5ae4d139369..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ach.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/ady.js b/apps/files/l10n/ady.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/ady.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ady.json b/apps/files/l10n/ady.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/ady.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ady.php b/apps/files/l10n/ady.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ady.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/af.js b/apps/files/l10n/af.js new file mode 100644 index 0000000000000000000000000000000000000000..5bdf101699a3793aa67a8e299b040875aa61d79b --- /dev/null +++ b/apps/files/l10n/af.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : "[ ,]", + "_%n file_::_%n files_" : "[ ,]", + "_Uploading %n file_::_Uploading %n files_" : "[ ,]" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/af.json b/apps/files/l10n/af.json new file mode 100644 index 0000000000000000000000000000000000000000..26e5833738ba039e8a954e9e6de61948777f740a --- /dev/null +++ b/apps/files/l10n/af.json @@ -0,0 +1 @@ +{"translations":{"_%n folder_::_%n folders_":["",""],"_%n file_::_%n files_":["",""],"_Uploading %n file_::_Uploading %n files_":["",""]},"pluralForm":"nplurals=2; plural=(n != 1);"} \ No newline at end of file diff --git a/apps/files/l10n/af.php b/apps/files/l10n/af.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/af.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/af_ZA.js b/apps/files/l10n/af_ZA.js new file mode 100644 index 0000000000000000000000000000000000000000..8671027db6e6fcfe20f9d48e47faabfd66abe6b3 --- /dev/null +++ b/apps/files/l10n/af_ZA.js @@ -0,0 +1,12 @@ +OC.L10N.register( + "files", + { + "Share" : "Deel", + "Unshare" : "Deel terug neem", + "Error" : "Fout", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Folder" : "Omslag" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/af_ZA.json b/apps/files/l10n/af_ZA.json new file mode 100644 index 0000000000000000000000000000000000000000..cd3182e3f69ea044ec165e4205532af46c16e38b --- /dev/null +++ b/apps/files/l10n/af_ZA.json @@ -0,0 +1,10 @@ +{ "translations": { + "Share" : "Deel", + "Unshare" : "Deel terug neem", + "Error" : "Fout", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Folder" : "Omslag" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/af_ZA.php b/apps/files/l10n/af_ZA.php deleted file mode 100644 index 9f9a82dbc331aaa190824cbbbdbe4bf78ddace7a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/af_ZA.php +++ /dev/null @@ -1,10 +0,0 @@ - "Deel", -"Unshare" => "Deel terug neem", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Folder" => "Omslag" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ak.js b/apps/files/l10n/ak.js new file mode 100644 index 0000000000000000000000000000000000000000..8ffacdcf2f3e2d680ca3e6deb66b226703190e99 --- /dev/null +++ b/apps/files/l10n/ak.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=n > 1;"); diff --git a/apps/files/l10n/ak.json b/apps/files/l10n/ak.json new file mode 100644 index 0000000000000000000000000000000000000000..63d087f769b0db8aa55e4a8127d9eb2104fc94bf --- /dev/null +++ b/apps/files/l10n/ak.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=n > 1;" +} \ No newline at end of file diff --git a/apps/files/l10n/ak.php b/apps/files/l10n/ak.php deleted file mode 100644 index f229792722d7d464a1dc330eb51ab777d8c95e99..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ak.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=n > 1;"; diff --git a/apps/files/l10n/am_ET.js b/apps/files/l10n/am_ET.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/am_ET.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/am_ET.json b/apps/files/l10n/am_ET.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/am_ET.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/am_ET.php b/apps/files/l10n/am_ET.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/am_ET.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js new file mode 100644 index 0000000000000000000000000000000000000000..aaa4f1aa2bec590a833c57b8eb86585ccecb0df4 --- /dev/null +++ b/apps/files/l10n/ar.js @@ -0,0 +1,67 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "خطأ غير معروف. ", + "Could not move %s - File with this name already exists" : "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم", + "Could not move %s" : "فشل في نقل %s", + "File name cannot be empty." : "اسم الملف لا يجوز أن يكون فارغا", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها", + "Unable to set upload directory." : "غير قادر على تحميل المجلد", + "Invalid Token" : "علامة غير صالحة", + "No file was uploaded. Unknown error" : "لم يتم رفع أي ملف , خطأ غير معروف", + "There is no error, the file uploaded with success" : "تم ترفيع الملفات بنجاح.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "حجم الملف المرفوع تجاوز قيمة upload_max_filesize الموجودة في ملف php.ini ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.", + "The uploaded file was only partially uploaded" : "تم ترفيع جزء من الملفات الذي تريد ترفيعها فقط", + "No file was uploaded" : "لم يتم ترفيع أي من الملفات", + "Missing a temporary folder" : "المجلد المؤقت غير موجود", + "Failed to write to disk" : "خطأ في الكتابة على القرص الصلب", + "Not enough storage available" : "لا يوجد مساحة تخزينية كافية", + "Upload failed. Could not find uploaded file" : "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله.", + "Upload failed. Could not get file info." : "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.", + "Invalid directory." : "مسار غير صحيح.", + "Files" : "الملفات", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت", + "Upload cancelled." : "تم إلغاء عملية رفع الملفات .", + "Could not get result from server." : "تعذر الحصول على نتيجة من الخادم", + "File upload is in progress. Leaving the page now will cancel the upload." : "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.", + "{new_name} already exists" : "{new_name} موجود مسبقا", + "Share" : "شارك", + "Delete" : "إلغاء", + "Unshare" : "إلغاء المشاركة", + "Delete permanently" : "حذف بشكل دائم", + "Rename" : "إعادة تسميه", + "Pending" : "قيد الانتظار", + "Error moving file" : "حدث خطأ أثناء نقل الملف", + "Error" : "خطأ", + "Name" : "اسم", + "Size" : "حجم", + "Modified" : "معدل", + "_%n folder_::_%n folders_" : ["لا يوجد مجلدات %n","1 مجلد %n","2 مجلد %n","عدد قليل من مجلدات %n","عدد كبير من مجلدات %n","مجلدات %n"], + "_%n file_::_%n files_" : ["لا يوجد ملفات %n","ملف %n","2 ملف %n","قليل من ملفات %n","الكثير من ملفات %n"," ملفات %n"], + "_Uploading %n file_::_Uploading %n files_" : ["لا يوجد ملفات %n لتحميلها","تحميل 1 ملف %n","تحميل 2 ملف %n","يتم تحميل عدد قليل من ملفات %n","يتم تحميل عدد كبير من ملفات %n","يتم تحميل ملفات %n"], + "Your storage is full, files can not be updated or synced anymore!" : "مساحتك التخزينية ممتلئة, لا يمكم تحديث ملفاتك أو مزامنتها بعد الآن !", + "Your storage is almost full ({usedSpacePercent}%)" : "مساحتك التخزينية امتلأت تقريبا ", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.", + "{dirs} and {files}" : "{dirs} و {files}", + "%s could not be renamed" : "%s لا يمكن إعادة تسميته. ", + "File handling" : "التعامل مع الملف", + "Maximum upload size" : "الحد الأقصى لحجم الملفات التي يمكن رفعها", + "max. possible: " : "الحد الأقصى المسموح به", + "Save" : "حفظ", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "استخدم هذا العنوان لـ الدخول الى ملفاتك عن طريق WebDAV", + "New" : "جديد", + "Text file" : "ملف", + "New folder" : "مجلد جديد", + "Folder" : "مجلد", + "From link" : "من رابط", + "Nothing in here. Upload something!" : "لا يوجد شيء هنا. إرفع بعض الملفات!", + "Download" : "تحميل", + "Upload too large" : "حجم الترفيع أعلى من المسموح", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم.", + "Files are being scanned, please wait." : "يرجى الانتظار , جاري فحص الملفات ." +}, +"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json new file mode 100644 index 0000000000000000000000000000000000000000..8e6b863bb0d6f3d4864db630f5d59f33162070f4 --- /dev/null +++ b/apps/files/l10n/ar.json @@ -0,0 +1,65 @@ +{ "translations": { + "Unknown error" : "خطأ غير معروف. ", + "Could not move %s - File with this name already exists" : "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم", + "Could not move %s" : "فشل في نقل %s", + "File name cannot be empty." : "اسم الملف لا يجوز أن يكون فارغا", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها", + "Unable to set upload directory." : "غير قادر على تحميل المجلد", + "Invalid Token" : "علامة غير صالحة", + "No file was uploaded. Unknown error" : "لم يتم رفع أي ملف , خطأ غير معروف", + "There is no error, the file uploaded with success" : "تم ترفيع الملفات بنجاح.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "حجم الملف المرفوع تجاوز قيمة upload_max_filesize الموجودة في ملف php.ini ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.", + "The uploaded file was only partially uploaded" : "تم ترفيع جزء من الملفات الذي تريد ترفيعها فقط", + "No file was uploaded" : "لم يتم ترفيع أي من الملفات", + "Missing a temporary folder" : "المجلد المؤقت غير موجود", + "Failed to write to disk" : "خطأ في الكتابة على القرص الصلب", + "Not enough storage available" : "لا يوجد مساحة تخزينية كافية", + "Upload failed. Could not find uploaded file" : "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله.", + "Upload failed. Could not get file info." : "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.", + "Invalid directory." : "مسار غير صحيح.", + "Files" : "الملفات", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت", + "Upload cancelled." : "تم إلغاء عملية رفع الملفات .", + "Could not get result from server." : "تعذر الحصول على نتيجة من الخادم", + "File upload is in progress. Leaving the page now will cancel the upload." : "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.", + "{new_name} already exists" : "{new_name} موجود مسبقا", + "Share" : "شارك", + "Delete" : "إلغاء", + "Unshare" : "إلغاء المشاركة", + "Delete permanently" : "حذف بشكل دائم", + "Rename" : "إعادة تسميه", + "Pending" : "قيد الانتظار", + "Error moving file" : "حدث خطأ أثناء نقل الملف", + "Error" : "خطأ", + "Name" : "اسم", + "Size" : "حجم", + "Modified" : "معدل", + "_%n folder_::_%n folders_" : ["لا يوجد مجلدات %n","1 مجلد %n","2 مجلد %n","عدد قليل من مجلدات %n","عدد كبير من مجلدات %n","مجلدات %n"], + "_%n file_::_%n files_" : ["لا يوجد ملفات %n","ملف %n","2 ملف %n","قليل من ملفات %n","الكثير من ملفات %n"," ملفات %n"], + "_Uploading %n file_::_Uploading %n files_" : ["لا يوجد ملفات %n لتحميلها","تحميل 1 ملف %n","تحميل 2 ملف %n","يتم تحميل عدد قليل من ملفات %n","يتم تحميل عدد كبير من ملفات %n","يتم تحميل ملفات %n"], + "Your storage is full, files can not be updated or synced anymore!" : "مساحتك التخزينية ممتلئة, لا يمكم تحديث ملفاتك أو مزامنتها بعد الآن !", + "Your storage is almost full ({usedSpacePercent}%)" : "مساحتك التخزينية امتلأت تقريبا ", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.", + "{dirs} and {files}" : "{dirs} و {files}", + "%s could not be renamed" : "%s لا يمكن إعادة تسميته. ", + "File handling" : "التعامل مع الملف", + "Maximum upload size" : "الحد الأقصى لحجم الملفات التي يمكن رفعها", + "max. possible: " : "الحد الأقصى المسموح به", + "Save" : "حفظ", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "استخدم هذا العنوان لـ الدخول الى ملفاتك عن طريق WebDAV", + "New" : "جديد", + "Text file" : "ملف", + "New folder" : "مجلد جديد", + "Folder" : "مجلد", + "From link" : "من رابط", + "Nothing in here. Upload something!" : "لا يوجد شيء هنا. إرفع بعض الملفات!", + "Download" : "تحميل", + "Upload too large" : "حجم الترفيع أعلى من المسموح", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم.", + "Files are being scanned, please wait." : "يرجى الانتظار , جاري فحص الملفات ." +},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" +} \ No newline at end of file diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php deleted file mode 100644 index f4ed20e79919fd25738b9d40ce34adc12718808f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ar.php +++ /dev/null @@ -1,66 +0,0 @@ - "خطأ غير معروف. ", -"Could not move %s - File with this name already exists" => "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم", -"Could not move %s" => "فشل في نقل %s", -"File name cannot be empty." => "اسم الملف لا يجوز أن يكون فارغا", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها", -"Unable to set upload directory." => "غير قادر على تحميل المجلد", -"Invalid Token" => "علامة غير صالحة", -"No file was uploaded. Unknown error" => "لم يتم رفع أي ملف , خطأ غير معروف", -"There is no error, the file uploaded with success" => "تم ترفيع الملفات بنجاح.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "حجم الملف المرفوع تجاوز قيمة upload_max_filesize الموجودة في ملف php.ini ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.", -"The uploaded file was only partially uploaded" => "تم ترفيع جزء من الملفات الذي تريد ترفيعها فقط", -"No file was uploaded" => "لم يتم ترفيع أي من الملفات", -"Missing a temporary folder" => "المجلد المؤقت غير موجود", -"Failed to write to disk" => "خطأ في الكتابة على القرص الصلب", -"Not enough storage available" => "لا يوجد مساحة تخزينية كافية", -"Upload failed. Could not find uploaded file" => "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله.", -"Upload failed. Could not get file info." => "فشلت عملية الرفع. تعذر الحصول على معلومات الملف.", -"Invalid directory." => "مسار غير صحيح.", -"Files" => "الملفات", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت", -"Upload cancelled." => "تم إلغاء عملية رفع الملفات .", -"Could not get result from server." => "تعذر الحصول على نتيجة من الخادم", -"File upload is in progress. Leaving the page now will cancel the upload." => "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات.", -"{new_name} already exists" => "{new_name} موجود مسبقا", -"Share" => "شارك", -"Delete" => "إلغاء", -"Unshare" => "إلغاء المشاركة", -"Delete permanently" => "حذف بشكل دائم", -"Rename" => "إعادة تسميه", -"Pending" => "قيد الانتظار", -"Error moving file" => "حدث خطأ أثناء نقل الملف", -"Error" => "خطأ", -"Name" => "اسم", -"Size" => "حجم", -"Modified" => "معدل", -"_%n folder_::_%n folders_" => array("لا يوجد مجلدات %n","1 مجلد %n","2 مجلد %n","عدد قليل من مجلدات %n","عدد كبير من مجلدات %n","مجلدات %n"), -"_%n file_::_%n files_" => array("لا يوجد ملفات %n","ملف %n","2 ملف %n","قليل من ملفات %n","الكثير من ملفات %n"," ملفات %n"), -"_Uploading %n file_::_Uploading %n files_" => array("لا يوجد ملفات %n لتحميلها","تحميل 1 ملف %n","تحميل 2 ملف %n","يتم تحميل عدد قليل من ملفات %n","يتم تحميل عدد كبير من ملفات %n","يتم تحميل ملفات %n"), -"Your storage is full, files can not be updated or synced anymore!" => "مساحتك التخزينية ممتلئة, لا يمكم تحديث ملفاتك أو مزامنتها بعد الآن !", -"Your storage is almost full ({usedSpacePercent}%)" => "مساحتك التخزينية امتلأت تقريبا ", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.", -"{dirs} and {files}" => "{dirs} و {files}", -"%s could not be renamed" => "%s لا يمكن إعادة تسميته. ", -"File handling" => "التعامل مع الملف", -"Maximum upload size" => "الحد الأقصى لحجم الملفات التي يمكن رفعها", -"max. possible: " => "الحد الأقصى المسموح به", -"Save" => "حفظ", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "استخدم هذا العنوان لـ الدخول الى ملفاتك عن طريق WebDAV", -"New" => "جديد", -"Text file" => "ملف", -"New folder" => "مجلد جديد", -"Folder" => "مجلد", -"From link" => "من رابط", -"Nothing in here. Upload something!" => "لا يوجد شيء هنا. إرفع بعض الملفات!", -"Download" => "تحميل", -"Upload too large" => "حجم الترفيع أعلى من المسموح", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم.", -"Files are being scanned, please wait." => "يرجى الانتظار , جاري فحص الملفات ." -); -$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"; diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js new file mode 100644 index 0000000000000000000000000000000000000000..ae0b0731572a8980fb157e9f6d7994bf935532d5 --- /dev/null +++ b/apps/files/l10n/ast.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Almacenamientu non disponible", + "Storage invalid" : "Almacenamientu inválidu", + "Unknown error" : "Fallu desconocíu", + "Could not move %s - File with this name already exists" : "Nun pudo movese %s - Yá existe un ficheru con esi nome.", + "Could not move %s" : "Nun pudo movese %s", + "Permission denied" : "Permisu denegáu", + "File name cannot be empty." : "El nome de ficheru nun pue quedar baleru.", + "\"%s\" is an invalid file name." : "\"%s\" ye un nome de ficheru inválidu.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome inválidu, los caráuteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" nun tán permitíos.", + "The target folder has been moved or deleted." : "La carpeta oxetivu movióse o desanicióse.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nome %s yá ta n'usu na carpeta %s. Por favor, escueyi un nome diferente.", + "Not a valid source" : "Nun ye una fonte válida", + "Server is not allowed to open URLs, please check the server configuration" : "Nun se-y permite al sirvidor abrir URLs, por favor comprueba la configuración del sirvidor", + "The file exceeds your quota by %s" : "El ficheru perpasa la cuota por %s", + "Error while downloading %s to %s" : "Fallu cuando se descargaba %s a %s", + "Error when creating the file" : "Fallu cuando se creaba'l ficheru", + "Folder name cannot be empty." : "El nome la carpeta nun pue tar baleru.", + "Error when creating the folder" : "Fallu cuando se creaba la carpeta", + "Unable to set upload directory." : "Nun pue afitase la carpeta de xubida.", + "Invalid Token" : "Token inválidu", + "No file was uploaded. Unknown error" : "Nun se xubió dengún ficheru. Fallu desconocíu", + "There is no error, the file uploaded with success" : "Nun hai dengún fallu, el ficheru xubióse ensin problemes", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El ficheru xubíu perpasa la direutiva \"upload_max_filesize\" del ficheru php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML", + "The uploaded file was only partially uploaded" : "El ficheru xubióse de mou parcial", + "No file was uploaded" : "Nun se xubió dengún ficheru", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write to disk" : "Fallu al escribir al discu", + "Not enough storage available" : "Nun hai abondu espaciu disponible", + "Upload failed. Could not find uploaded file" : "Xubida fallida. Nun pudo atopase'l ficheru xubíu.", + "Upload failed. Could not get file info." : "Falló la xubida. Nun se pudo obtener la información del ficheru.", + "Invalid directory." : "Direutoriu non válidu.", + "Files" : "Ficheros", + "All files" : "Tolos ficheros", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nun pudo xubise {filename}, paez que ye un directoriu o tien 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "El tamañu de ficheru total {size1} perpasa la llende de xuba {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nun hai abondu espaciu llibre, tas xubiendo {size1} pero namái falta {size2}", + "Upload cancelled." : "Xuba encaboxada.", + "Could not get result from server." : "Nun pudo obtenese'l resultáu del sirvidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La xuba del ficheru ta en progresu. Si dexes agora la páxina, va encaboxase la xuba.", + "URL cannot be empty" : "La URL nun pue tar balera", + "{new_name} already exists" : "{new_name} yá existe", + "Could not create file" : "Nun pudo crease'l ficheru", + "Could not create folder" : "Nun pudo crease la carpeta", + "Error fetching URL" : "Fallu obteniendo URL", + "Share" : "Compartir", + "Delete" : "Desaniciar", + "Disconnect storage" : "Desconeutar almacenamientu", + "Unshare" : "Dexar de compartir", + "Delete permanently" : "Desaniciar dafechu", + "Rename" : "Renomar", + "Pending" : "Pendiente", + "Error moving file." : "Fallu moviendo'l ficheru.", + "Error moving file" : "Fallu moviendo'l ficheru", + "Error" : "Fallu", + "Could not rename file" : "Nun pudo renomase'l ficheru", + "Error deleting file." : "Fallu desaniciando'l ficheru.", + "Name" : "Nome", + "Size" : "Tamañu", + "Modified" : "Modificáu", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"], + "_%n file_::_%n files_" : ["%n ficheru","%n ficheros"], + "You don’t have permission to upload or create files here" : "Nun tienes permisu pa xubir o crear ficheros equí", + "_Uploading %n file_::_Uploading %n files_" : ["Xubiendo %n ficheru","Xubiendo %n ficheros"], + "\"{name}\" is an invalid file name." : "\"{name}\" ye un nome de ficheru inválidu.", + "Your storage is full, files can not be updated or synced anymore!" : "L'almacenamientu ta completu, ¡yá nun se pueden anovar o sincronizar ficheros!", + "Your storage is almost full ({usedSpacePercent}%)" : "L'almacenamientu ta casi completu ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.", + "{dirs} and {files}" : "{dirs} y {files}", + "%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase", + "%s could not be renamed" : "Nun se puede renomar %s ", + "Upload (max. %s)" : "Xuba (máx. %s)", + "File handling" : "Alministración de ficheros", + "Maximum upload size" : "Tamañu máximu de xubida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta direición p'acceder a los ficheros a traviés de WebDAV", + "New" : "Nuevu", + "New text file" : "Ficheru de testu nuevu", + "Text file" : "Ficheru de testu", + "New folder" : "Nueva carpeta", + "Folder" : "Carpeta", + "From link" : "Dende enllaz", + "Nothing in here. Upload something!" : "Nun hai nada equí. ¡Xubi daqué!", + "Download" : "Descargar", + "Upload too large" : "La xuba ye abondo grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los ficheros que tas intentando xubir perpasen el tamañu máximu pa les xubíes de ficheros nesti servidor.", + "Files are being scanned, please wait." : "Tan escaniándose los ficheros, espera por favor.", + "Currently scanning" : "Anguaño escaneando" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json new file mode 100644 index 0000000000000000000000000000000000000000..81d20a51c361845c2611a077dd1d3154faec0ca5 --- /dev/null +++ b/apps/files/l10n/ast.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Almacenamientu non disponible", + "Storage invalid" : "Almacenamientu inválidu", + "Unknown error" : "Fallu desconocíu", + "Could not move %s - File with this name already exists" : "Nun pudo movese %s - Yá existe un ficheru con esi nome.", + "Could not move %s" : "Nun pudo movese %s", + "Permission denied" : "Permisu denegáu", + "File name cannot be empty." : "El nome de ficheru nun pue quedar baleru.", + "\"%s\" is an invalid file name." : "\"%s\" ye un nome de ficheru inválidu.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome inválidu, los caráuteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" nun tán permitíos.", + "The target folder has been moved or deleted." : "La carpeta oxetivu movióse o desanicióse.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nome %s yá ta n'usu na carpeta %s. Por favor, escueyi un nome diferente.", + "Not a valid source" : "Nun ye una fonte válida", + "Server is not allowed to open URLs, please check the server configuration" : "Nun se-y permite al sirvidor abrir URLs, por favor comprueba la configuración del sirvidor", + "The file exceeds your quota by %s" : "El ficheru perpasa la cuota por %s", + "Error while downloading %s to %s" : "Fallu cuando se descargaba %s a %s", + "Error when creating the file" : "Fallu cuando se creaba'l ficheru", + "Folder name cannot be empty." : "El nome la carpeta nun pue tar baleru.", + "Error when creating the folder" : "Fallu cuando se creaba la carpeta", + "Unable to set upload directory." : "Nun pue afitase la carpeta de xubida.", + "Invalid Token" : "Token inválidu", + "No file was uploaded. Unknown error" : "Nun se xubió dengún ficheru. Fallu desconocíu", + "There is no error, the file uploaded with success" : "Nun hai dengún fallu, el ficheru xubióse ensin problemes", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El ficheru xubíu perpasa la direutiva \"upload_max_filesize\" del ficheru php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML", + "The uploaded file was only partially uploaded" : "El ficheru xubióse de mou parcial", + "No file was uploaded" : "Nun se xubió dengún ficheru", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write to disk" : "Fallu al escribir al discu", + "Not enough storage available" : "Nun hai abondu espaciu disponible", + "Upload failed. Could not find uploaded file" : "Xubida fallida. Nun pudo atopase'l ficheru xubíu.", + "Upload failed. Could not get file info." : "Falló la xubida. Nun se pudo obtener la información del ficheru.", + "Invalid directory." : "Direutoriu non válidu.", + "Files" : "Ficheros", + "All files" : "Tolos ficheros", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nun pudo xubise {filename}, paez que ye un directoriu o tien 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "El tamañu de ficheru total {size1} perpasa la llende de xuba {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nun hai abondu espaciu llibre, tas xubiendo {size1} pero namái falta {size2}", + "Upload cancelled." : "Xuba encaboxada.", + "Could not get result from server." : "Nun pudo obtenese'l resultáu del sirvidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La xuba del ficheru ta en progresu. Si dexes agora la páxina, va encaboxase la xuba.", + "URL cannot be empty" : "La URL nun pue tar balera", + "{new_name} already exists" : "{new_name} yá existe", + "Could not create file" : "Nun pudo crease'l ficheru", + "Could not create folder" : "Nun pudo crease la carpeta", + "Error fetching URL" : "Fallu obteniendo URL", + "Share" : "Compartir", + "Delete" : "Desaniciar", + "Disconnect storage" : "Desconeutar almacenamientu", + "Unshare" : "Dexar de compartir", + "Delete permanently" : "Desaniciar dafechu", + "Rename" : "Renomar", + "Pending" : "Pendiente", + "Error moving file." : "Fallu moviendo'l ficheru.", + "Error moving file" : "Fallu moviendo'l ficheru", + "Error" : "Fallu", + "Could not rename file" : "Nun pudo renomase'l ficheru", + "Error deleting file." : "Fallu desaniciando'l ficheru.", + "Name" : "Nome", + "Size" : "Tamañu", + "Modified" : "Modificáu", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"], + "_%n file_::_%n files_" : ["%n ficheru","%n ficheros"], + "You don’t have permission to upload or create files here" : "Nun tienes permisu pa xubir o crear ficheros equí", + "_Uploading %n file_::_Uploading %n files_" : ["Xubiendo %n ficheru","Xubiendo %n ficheros"], + "\"{name}\" is an invalid file name." : "\"{name}\" ye un nome de ficheru inválidu.", + "Your storage is full, files can not be updated or synced anymore!" : "L'almacenamientu ta completu, ¡yá nun se pueden anovar o sincronizar ficheros!", + "Your storage is almost full ({usedSpacePercent}%)" : "L'almacenamientu ta casi completu ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.", + "{dirs} and {files}" : "{dirs} y {files}", + "%s could not be renamed as it has been deleted" : "%s nun pue renomase dempués de desaniciase", + "%s could not be renamed" : "Nun se puede renomar %s ", + "Upload (max. %s)" : "Xuba (máx. %s)", + "File handling" : "Alministración de ficheros", + "Maximum upload size" : "Tamañu máximu de xubida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta direición p'acceder a los ficheros a traviés de WebDAV", + "New" : "Nuevu", + "New text file" : "Ficheru de testu nuevu", + "Text file" : "Ficheru de testu", + "New folder" : "Nueva carpeta", + "Folder" : "Carpeta", + "From link" : "Dende enllaz", + "Nothing in here. Upload something!" : "Nun hai nada equí. ¡Xubi daqué!", + "Download" : "Descargar", + "Upload too large" : "La xuba ye abondo grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los ficheros que tas intentando xubir perpasen el tamañu máximu pa les xubíes de ficheros nesti servidor.", + "Files are being scanned, please wait." : "Tan escaniándose los ficheros, espera por favor.", + "Currently scanning" : "Anguaño escaneando" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ast.php b/apps/files/l10n/ast.php deleted file mode 100644 index acac6819db46e3c2329307d756edc7990d8a98d6..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ast.php +++ /dev/null @@ -1,94 +0,0 @@ - "Almacenamientu non disponible", -"Storage invalid" => "Almacenamientu inválidu", -"Unknown error" => "Fallu desconocíu", -"Could not move %s - File with this name already exists" => "Nun pudo movese %s - Yá existe un ficheru con esi nome.", -"Could not move %s" => "Nun pudo movese %s", -"File name cannot be empty." => "El nome de ficheru nun pue quedar baleru.", -"\"%s\" is an invalid file name." => "\"%s\" ye un nome de ficheru inválidu.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválidu, los caráuteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" nun tán permitíos.", -"The target folder has been moved or deleted." => "La carpeta oxetivu movióse o desanicióse.", -"The name %s is already used in the folder %s. Please choose a different name." => "El nome %s yá ta n'usu na carpeta %s. Por favor, escueyi un nome diferente.", -"Not a valid source" => "Nun ye una fonte válida", -"Server is not allowed to open URLs, please check the server configuration" => "Nun se-y permite al sirvidor abrir URLs, por favor comprueba la configuración del sirvidor", -"The file exceeds your quota by %s" => "El ficheru perpasa la cuota por %s", -"Error while downloading %s to %s" => "Fallu cuando se descargaba %s a %s", -"Error when creating the file" => "Fallu cuando se creaba'l ficheru", -"Folder name cannot be empty." => "El nome la carpeta nun pue tar baleru.", -"Error when creating the folder" => "Fallu cuando se creaba la carpeta", -"Unable to set upload directory." => "Nun pue afitase la carpeta de xubida.", -"Invalid Token" => "Token inválidu", -"No file was uploaded. Unknown error" => "Nun se xubió dengún ficheru. Fallu desconocíu", -"There is no error, the file uploaded with success" => "Nun hai dengún fallu, el ficheru xubióse ensin problemes", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El ficheru xubíu perpasa la direutiva \"upload_max_filesize\" del ficheru php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML", -"The uploaded file was only partially uploaded" => "El ficheru xubióse de mou parcial", -"No file was uploaded" => "Nun se xubió dengún ficheru", -"Missing a temporary folder" => "Falta una carpeta temporal", -"Failed to write to disk" => "Fallu al escribir al discu", -"Not enough storage available" => "Nun hai abondu espaciu disponible", -"Upload failed. Could not find uploaded file" => "Xubida fallida. Nun pudo atopase'l ficheru xubíu.", -"Upload failed. Could not get file info." => "Falló la xubida. Nun se pudo obtener la información del ficheru.", -"Invalid directory." => "Direutoriu non válidu.", -"Files" => "Ficheros", -"All files" => "Tolos ficheros", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nun pudo xubise {filename}, paez que ye un directoriu o tien 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "El tamañu de ficheru total {size1} perpasa la llende de xuba {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nun hai abondu espaciu llibre, tas xubiendo {size1} pero namái falta {size2}", -"Upload cancelled." => "Xuba encaboxada.", -"Could not get result from server." => "Nun pudo obtenese'l resultáu del sirvidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "La xuba del ficheru ta en progresu. Si dexes agora la páxina, va encaboxase la xuba.", -"URL cannot be empty" => "La URL nun pue tar balera", -"{new_name} already exists" => "{new_name} yá existe", -"Could not create file" => "Nun pudo crease'l ficheru", -"Could not create folder" => "Nun pudo crease la carpeta", -"Error fetching URL" => "Fallu obteniendo URL", -"Share" => "Compartir", -"Delete" => "Desaniciar", -"Disconnect storage" => "Desconeutar almacenamientu", -"Unshare" => "Dexar de compartir", -"Delete permanently" => "Desaniciar dafechu", -"Rename" => "Renomar", -"Pending" => "Pendiente", -"Error moving file." => "Fallu moviendo'l ficheru.", -"Error moving file" => "Fallu moviendo'l ficheru", -"Error" => "Fallu", -"Could not rename file" => "Nun pudo renomase'l ficheru", -"Error deleting file." => "Fallu desaniciando'l ficheru.", -"Name" => "Nome", -"Size" => "Tamañu", -"Modified" => "Modificáu", -"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetes"), -"_%n file_::_%n files_" => array("%n ficheru","%n ficheros"), -"You don’t have permission to upload or create files here" => "Nun tienes permisu pa xubir o crear ficheros equí", -"_Uploading %n file_::_Uploading %n files_" => array("Xubiendo %n ficheru","Xubiendo %n ficheros"), -"\"{name}\" is an invalid file name." => "\"{name}\" ye un nome de ficheru inválidu.", -"Your storage is full, files can not be updated or synced anymore!" => "L'almacenamientu ta completu, ¡yá nun se pueden anovar o sincronizar ficheros!", -"Your storage is almost full ({usedSpacePercent}%)" => "L'almacenamientu ta casi completu ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Deshabilitose'l cifráu pero los tos ficheros tovía tán cifraos. Por favor, vete a los axustes personales pa descrifrar los tos ficheros.", -"{dirs} and {files}" => "{dirs} y {files}", -"%s could not be renamed" => "Nun se puede renomar %s ", -"Upload (max. %s)" => "Xuba (máx. %s)", -"File handling" => "Alministración de ficheros", -"Maximum upload size" => "Tamañu máximu de xubida", -"max. possible: " => "máx. posible:", -"Save" => "Guardar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Usa esta direición p'acceder a los ficheros a traviés de WebDAV", -"New" => "Nuevu", -"New text file" => "Ficheru de testu nuevu", -"Text file" => "Ficheru de testu", -"New folder" => "Nueva carpeta", -"Folder" => "Carpeta", -"From link" => "Dende enllaz", -"Nothing in here. Upload something!" => "Nun hai nada equí. ¡Xubi daqué!", -"Download" => "Descargar", -"Upload too large" => "La xuba ye abondo grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los ficheros que tas intentando xubir perpasen el tamañu máximu pa les xubíes de ficheros nesti servidor.", -"Files are being scanned, please wait." => "Tan escaniándose los ficheros, espera por favor.", -"Currently scanning" => "Anguaño escaneando" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js new file mode 100644 index 0000000000000000000000000000000000000000..08e19809811a87740467aa1b61bd1210fb6b8bec --- /dev/null +++ b/apps/files/l10n/az.js @@ -0,0 +1,64 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "İnformasiya daşıyıcısı mövcud deyil", + "Storage invalid" : "İnformasiya daşıyıcısı yalnışdır", + "Unknown error" : "Bəlli olmayan səhv baş verdi", + "Could not move %s - File with this name already exists" : "Köçürmə mümkün deyil %s - Bu adla fayl artıq mövcuddur", + "Could not move %s" : "Yerdəyişmə mükün olmadı %s", + "Permission denied" : "Yetki qadağandır", + "File name cannot be empty." : "Faylın adı boş ola bilməz.", + "\"%s\" is an invalid file name." : "\"%s\" yalnış fayl adıdır.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Yalnış ad, '\\', '/', '<', '>', ':', '\"', '|', '?' və '*' qəbul edilmir.", + "The target folder has been moved or deleted." : "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.", + "The name %s is already used in the folder %s. Please choose a different name." : "Bu ad %s artıq %s qovluğunda istifadə edilir. Xahiş olunur fərqli ad istifadə edəsiniz.", + "Not a valid source" : "Düzgün mənbə yoxdur", + "Server is not allowed to open URLs, please check the server configuration" : "URL-ləri açmaq üçün server izin vermir, xahış olunur server quraşdırmalarını yoxlayasınız", + "The file exceeds your quota by %s" : "Fayl sizə təyin edilmiş %s məhdudiyyətini aşır", + "Error while downloading %s to %s" : "%s-i %s-ə yükləmə zamanı səhv baş verdi", + "Error when creating the file" : "Fayl yaratdıqda səhv baş vermişdir", + "Folder name cannot be empty." : "Qovluğun adı boş ola bilməz", + "Error when creating the folder" : "Qovluğu yaratdıqda səhv baş vermişdir", + "Unable to set upload directory." : "Əlavələr qovluğunu təyin etmək mümkün olmadı.", + "Invalid Token" : "Yalnış token", + "No file was uploaded. Unknown error" : "Heç bir fayl uüklənilmədi. Naməlum səhv", + "There is no error, the file uploaded with success" : "Səhv yoxdur, fayl uğurla yüklənildi.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Yüklənilən faylin həcmi php.ini config faylinin upload_max_filesize direktivində göstəriləndən çoxdur.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.", + "The uploaded file was only partially uploaded" : "Yüklənilən faylın yalnız bir hissəsi yüklənildi", + "No file was uploaded" : "Heç bir fayl yüklənilmədi", + "Missing a temporary folder" : "Müvəqqəti qovluq çatışmır", + "Failed to write to disk" : "Sərt diskə yazmaq mümkün olmadı", + "Not enough storage available" : "Tələb edilən qədər yer yoxdur.", + "Upload failed. Could not find uploaded file" : "Yüklənmədə səhv oldu. Yüklənmiş faylı tapmaq olmur.", + "Upload failed. Could not get file info." : "Yüklənmədə səhv oldu. Faylın informasiyasını almaq mümkün olmadı.", + "Invalid directory." : "Yalnış qovluq.", + "Files" : "Fayllar", + "All files" : "Bütün fayllar", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Yükləmək olmur {filename} ona görə ki, ya qovluqdur yada ki, həcmi 0 baytdır ", + "Total file size {size1} exceeds upload limit {size2}" : "Ümumi fayl həcmi {size1} yüklənmə limiti {size2} -ni aşır", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Kifayət qədər boş yer yoxdur, siz yükləyirsiniz {size1} ancaq {size2} var. ", + "Upload cancelled." : "Yüklənmə dayandırıldı.", + "Could not get result from server." : "Nəticəni serverdən almaq mümkün olmur.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Faylın yüklənməsi gedir. Əgər səhifəni indi tərk etsəniz yüklənmə dayanacaq.", + "URL cannot be empty" : "URL boş ola bilməz", + "{new_name} already exists" : "{new_name} artıq mövcuddur", + "Could not create file" : "Faylı yaratmaq olmur", + "Could not create folder" : "Qovluğu yaratmaq olmur", + "Error fetching URL" : "URL-in gətirilməsində səhv baş verdi", + "Share" : "Yayımla", + "Delete" : "Sil", + "Rename" : "Adı dəyiş", + "Error" : "Səhv", + "Name" : "Ad", + "Size" : "Həcm", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Saxlamaq", + "New folder" : "Yeni qovluq", + "Folder" : "Qovluq", + "Nothing in here. Upload something!" : "Burda heçnə yoxdur. Nese yükləyin!", + "Download" : "Yüklə" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json new file mode 100644 index 0000000000000000000000000000000000000000..591ec63e31e39b7496da3f375f71826879d40683 --- /dev/null +++ b/apps/files/l10n/az.json @@ -0,0 +1,62 @@ +{ "translations": { + "Storage not available" : "İnformasiya daşıyıcısı mövcud deyil", + "Storage invalid" : "İnformasiya daşıyıcısı yalnışdır", + "Unknown error" : "Bəlli olmayan səhv baş verdi", + "Could not move %s - File with this name already exists" : "Köçürmə mümkün deyil %s - Bu adla fayl artıq mövcuddur", + "Could not move %s" : "Yerdəyişmə mükün olmadı %s", + "Permission denied" : "Yetki qadağandır", + "File name cannot be empty." : "Faylın adı boş ola bilməz.", + "\"%s\" is an invalid file name." : "\"%s\" yalnış fayl adıdır.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Yalnış ad, '\\', '/', '<', '>', ':', '\"', '|', '?' və '*' qəbul edilmir.", + "The target folder has been moved or deleted." : "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.", + "The name %s is already used in the folder %s. Please choose a different name." : "Bu ad %s artıq %s qovluğunda istifadə edilir. Xahiş olunur fərqli ad istifadə edəsiniz.", + "Not a valid source" : "Düzgün mənbə yoxdur", + "Server is not allowed to open URLs, please check the server configuration" : "URL-ləri açmaq üçün server izin vermir, xahış olunur server quraşdırmalarını yoxlayasınız", + "The file exceeds your quota by %s" : "Fayl sizə təyin edilmiş %s məhdudiyyətini aşır", + "Error while downloading %s to %s" : "%s-i %s-ə yükləmə zamanı səhv baş verdi", + "Error when creating the file" : "Fayl yaratdıqda səhv baş vermişdir", + "Folder name cannot be empty." : "Qovluğun adı boş ola bilməz", + "Error when creating the folder" : "Qovluğu yaratdıqda səhv baş vermişdir", + "Unable to set upload directory." : "Əlavələr qovluğunu təyin etmək mümkün olmadı.", + "Invalid Token" : "Yalnış token", + "No file was uploaded. Unknown error" : "Heç bir fayl uüklənilmədi. Naməlum səhv", + "There is no error, the file uploaded with success" : "Səhv yoxdur, fayl uğurla yüklənildi.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Yüklənilən faylin həcmi php.ini config faylinin upload_max_filesize direktivində göstəriləndən çoxdur.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.", + "The uploaded file was only partially uploaded" : "Yüklənilən faylın yalnız bir hissəsi yüklənildi", + "No file was uploaded" : "Heç bir fayl yüklənilmədi", + "Missing a temporary folder" : "Müvəqqəti qovluq çatışmır", + "Failed to write to disk" : "Sərt diskə yazmaq mümkün olmadı", + "Not enough storage available" : "Tələb edilən qədər yer yoxdur.", + "Upload failed. Could not find uploaded file" : "Yüklənmədə səhv oldu. Yüklənmiş faylı tapmaq olmur.", + "Upload failed. Could not get file info." : "Yüklənmədə səhv oldu. Faylın informasiyasını almaq mümkün olmadı.", + "Invalid directory." : "Yalnış qovluq.", + "Files" : "Fayllar", + "All files" : "Bütün fayllar", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Yükləmək olmur {filename} ona görə ki, ya qovluqdur yada ki, həcmi 0 baytdır ", + "Total file size {size1} exceeds upload limit {size2}" : "Ümumi fayl həcmi {size1} yüklənmə limiti {size2} -ni aşır", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Kifayət qədər boş yer yoxdur, siz yükləyirsiniz {size1} ancaq {size2} var. ", + "Upload cancelled." : "Yüklənmə dayandırıldı.", + "Could not get result from server." : "Nəticəni serverdən almaq mümkün olmur.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Faylın yüklənməsi gedir. Əgər səhifəni indi tərk etsəniz yüklənmə dayanacaq.", + "URL cannot be empty" : "URL boş ola bilməz", + "{new_name} already exists" : "{new_name} artıq mövcuddur", + "Could not create file" : "Faylı yaratmaq olmur", + "Could not create folder" : "Qovluğu yaratmaq olmur", + "Error fetching URL" : "URL-in gətirilməsində səhv baş verdi", + "Share" : "Yayımla", + "Delete" : "Sil", + "Rename" : "Adı dəyiş", + "Error" : "Səhv", + "Name" : "Ad", + "Size" : "Həcm", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Saxlamaq", + "New folder" : "Yeni qovluq", + "Folder" : "Qovluq", + "Nothing in here. Upload something!" : "Burda heçnə yoxdur. Nese yükləyin!", + "Download" : "Yüklə" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/az.php b/apps/files/l10n/az.php deleted file mode 100644 index 05e99c11543eae683f54e40ab001218aae77892a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/az.php +++ /dev/null @@ -1,63 +0,0 @@ - "İnformasiya daşıyıcısı mövcud deyil", -"Storage invalid" => "İnformasiya daşıyıcısı yalnışdır", -"Unknown error" => "Bəlli olmayan səhv baş verdi", -"Could not move %s - File with this name already exists" => "Köçürmə mümkün deyil %s - Bu adla fayl artıq mövcuddur", -"Could not move %s" => "Yerdəyişmə mükün olmadı %s", -"Permission denied" => "Yetki qadağandır", -"File name cannot be empty." => "Faylın adı boş ola bilməz.", -"\"%s\" is an invalid file name." => "\"%s\" yalnış fayl adıdır.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Yalnış ad, '\\', '/', '<', '>', ':', '\"', '|', '?' və '*' qəbul edilmir.", -"The target folder has been moved or deleted." => "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.", -"The name %s is already used in the folder %s. Please choose a different name." => "Bu ad %s artıq %s qovluğunda istifadə edilir. Xahiş olunur fərqli ad istifadə edəsiniz.", -"Not a valid source" => "Düzgün mənbə yoxdur", -"Server is not allowed to open URLs, please check the server configuration" => "URL-ləri açmaq üçün server izin vermir, xahış olunur server quraşdırmalarını yoxlayasınız", -"The file exceeds your quota by %s" => "Fayl sizə təyin edilmiş %s məhdudiyyətini aşır", -"Error while downloading %s to %s" => "%s-i %s-ə yükləmə zamanı səhv baş verdi", -"Error when creating the file" => "Fayl yaratdıqda səhv baş vermişdir", -"Folder name cannot be empty." => "Qovluğun adı boş ola bilməz", -"Error when creating the folder" => "Qovluğu yaratdıqda səhv baş vermişdir", -"Unable to set upload directory." => "Əlavələr qovluğunu təyin etmək mümkün olmadı.", -"Invalid Token" => "Yalnış token", -"No file was uploaded. Unknown error" => "Heç bir fayl uüklənilmədi. Naməlum səhv", -"There is no error, the file uploaded with success" => "Səhv yoxdur, fayl uğurla yüklənildi.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Yüklənilən faylin həcmi php.ini config faylinin upload_max_filesize direktivində göstəriləndən çoxdur.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.", -"The uploaded file was only partially uploaded" => "Yüklənilən faylın yalnız bir hissəsi yüklənildi", -"No file was uploaded" => "Heç bir fayl yüklənilmədi", -"Missing a temporary folder" => "Müvəqqəti qovluq çatışmır", -"Failed to write to disk" => "Sərt diskə yazmaq mümkün olmadı", -"Not enough storage available" => "Tələb edilən qədər yer yoxdur.", -"Upload failed. Could not find uploaded file" => "Yüklənmədə səhv oldu. Yüklənmiş faylı tapmaq olmur.", -"Upload failed. Could not get file info." => "Yüklənmədə səhv oldu. Faylın informasiyasını almaq mümkün olmadı.", -"Invalid directory." => "Yalnış qovluq.", -"Files" => "Fayllar", -"All files" => "Bütün fayllar", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Yükləmək olmur {filename} ona görə ki, ya qovluqdur yada ki, həcmi 0 baytdır ", -"Total file size {size1} exceeds upload limit {size2}" => "Ümumi fayl həcmi {size1} yüklənmə limiti {size2} -ni aşır", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Kifayət qədər boş yer yoxdur, siz yükləyirsiniz {size1} ancaq {size2} var. ", -"Upload cancelled." => "Yüklənmə dayandırıldı.", -"Could not get result from server." => "Nəticəni serverdən almaq mümkün olmur.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Faylın yüklənməsi gedir. Əgər səhifəni indi tərk etsəniz yüklənmə dayanacaq.", -"URL cannot be empty" => "URL boş ola bilməz", -"{new_name} already exists" => "{new_name} artıq mövcuddur", -"Could not create file" => "Faylı yaratmaq olmur", -"Could not create folder" => "Qovluğu yaratmaq olmur", -"Error fetching URL" => "URL-in gətirilməsində səhv baş verdi", -"Share" => "Yayımla", -"Delete" => "Sil", -"Rename" => "Adı dəyiş", -"Error" => "Səhv", -"Name" => "Ad", -"Size" => "Həcm", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "Saxlamaq", -"New folder" => "Yeni qovluq", -"Folder" => "Qovluq", -"Nothing in here. Upload something!" => "Burda heçnə yoxdur. Nese yükləyin!", -"Download" => "Yüklə" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/be.js b/apps/files/l10n/be.js new file mode 100644 index 0000000000000000000000000000000000000000..bf634ae5aef94803912cbc3e1ffe5441d0fc7a20 --- /dev/null +++ b/apps/files/l10n/be.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files", + { + "Error" : "Памылка", + "_%n folder_::_%n folders_" : ["","","",""], + "_%n file_::_%n files_" : ["","","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","","",""] +}, +"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/be.json b/apps/files/l10n/be.json new file mode 100644 index 0000000000000000000000000000000000000000..0718404760da0b32b0e135eaab9d00afd79851be --- /dev/null +++ b/apps/files/l10n/be.json @@ -0,0 +1,7 @@ +{ "translations": { + "Error" : "Памылка", + "_%n folder_::_%n folders_" : ["","","",""], + "_%n file_::_%n files_" : ["","","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","","",""] +},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/be.php b/apps/files/l10n/be.php deleted file mode 100644 index f97fc27e2d176fdb941614952e9f705e973b9859..0000000000000000000000000000000000000000 --- a/apps/files/l10n/be.php +++ /dev/null @@ -1,8 +0,0 @@ - "Памылка", -"_%n folder_::_%n folders_" => array("","","",""), -"_%n file_::_%n files_" => array("","","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","","","") -); -$PLURAL_FORMS = "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files/l10n/bg_BG.js b/apps/files/l10n/bg_BG.js new file mode 100644 index 0000000000000000000000000000000000000000..1776e7692510edfdd572ac90c128722b84e6b271 --- /dev/null +++ b/apps/files/l10n/bg_BG.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Липсва дисковото устройство.", + "Storage invalid" : "Невалидно дисково устройство.", + "Unknown error" : "Непозната грешка.", + "Could not move %s - File with this name already exists" : "Неуспешно преместване на %s - Файл със същото име вече съществува.", + "Could not move %s" : "Неуспешно преместване на %s.", + "Permission denied" : "Достъпът отказан", + "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" : "На сървърът не му е разрешно да отваря интернет адреси, моля провери настройките на сървъра.", + "The file exceeds your quota by %s" : "Файлът надвиши квотата ти с %s", + "Error while downloading %s to %s" : "Грешка при тегленето на %s от %s.", + "Error when creating the file" : "Грешка при създаването на файлът.", + "Folder name cannot be empty." : "Името на папката не може да бъде оставено празно.", + "Error when creating the folder" : "Грешка при създаването на папката.", + "Unable to set upload directory." : "Неуспешно задаване на директория за качване.", + "Invalid Token" : "Невалиеден токен.", + "No file was uploaded. Unknown error" : "Неуспешно качвачване на файл. Непозната грешка.", + "There is no error, the file uploaded with success" : "Файлът е качен успешно.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Файлът, който се опитваше да качиш надвишава зададения upload_max_filesize размер в php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Файлът, който се опитваш да качиш надвишава стойностите в MAX_FILE_SIZE в HTML формата.", + "The uploaded file was only partially uploaded" : "Файлът е качен частично.", + "No file was uploaded" : "Неуспешно качване.", + "Missing a temporary folder" : "Липсва временна папка.", + "Failed to write to disk" : "Възникна проблем при запис на диска.", + "Not enough storage available" : "Недостатъчно място.", + "Upload failed. Could not find uploaded file" : "Неуспешно качване. Не бе открит качения файл.", + "Upload failed. Could not get file info." : "Неуспешно качване. Не се получи информация за файла.", + "Invalid directory." : "Невалидна директория.", + "Files" : "Файлове", + "All files" : "Всички файлове", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Неуспешно качване на {filename}, защото е директория или е с размер от 0 байта.", + "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." : "Извършва се качване на файлове. Затварянето на тази страница ще прекъсне качването.", + "URL cannot be empty" : "Интернет адресът не може да бъде оставен празен.", + "{new_name} already exists" : "{new_name} вече съществува.", + "Could not create file" : "Несупешно създаване на файла.", + "Could not create folder" : "Неуспешно създаване на папка.", + "Error fetching URL" : "Грешка при отварянето на интернет адреса.", + "Share" : "Сподели", + "Delete" : "Изтрий", + "Disconnect storage" : "Извади дисковото устройство.", + "Unshare" : "Премахни Споделяне", + "Delete permanently" : "Изтрий завинаги", + "Rename" : "Преименуване", + "Pending" : "Чакащо", + "Error moving file." : "Грешка при местенето на файла.", + "Error moving file" : "Грешка при преместването на файла.", + "Error" : "Грешка", + "Could not rename file" : "Неуспешно преименуване на файла.", + "Error deleting file." : "Грешка при изтриването на файла.", + "Name" : "Име", + "Size" : "Размер", + "Modified" : "Променен на", + "_%n folder_::_%n folders_" : ["%n папка","%n папки"], + "_%n file_::_%n files_" : ["%n файл","%n файла"], + "You don’t have permission to upload or create files here" : "Нямаш разрешение да създаваш или качваш файлове тук.", + "_Uploading %n file_::_Uploading %n files_" : ["Качване на %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" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.", + "{dirs} and {files}" : "{dirs} и {files}", + "%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит", + "%s could not be renamed" : "%s не може да бъде преименуван.", + "Upload (max. %s)" : "Качи (макс. %s)", + "File handling" : "Операция с файла", + "Maximum upload size" : "Максимален размер", + "max. possible: " : "максимално:", + "Save" : "Запис", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Използвай този адрес, за да получиш достъп до своите файлове чрез WebDAV.", + "New" : "Създай", + "New text file" : "Нов текстов файл", + "Text file" : "Текстов файл", + "New folder" : "Нова папка", + "Folder" : "Папка", + "From link" : "От връзка", + "Nothing in here. Upload something!" : "Тук няма нищо. Качи нещо!", + "Download" : "Изтегли", + "Upload too large" : "Прекалено голям файл за качване.", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файловете, които се опитваш да качиш са по-големи от позволеното на този сървър.", + "Files are being scanned, please wait." : "Файловете се сканирват, изчакайте.", + "Currently scanning" : "В момента се търси" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/bg_BG.json b/apps/files/l10n/bg_BG.json new file mode 100644 index 0000000000000000000000000000000000000000..cd29da596db996c658d7e43d43ffd1e504c86390 --- /dev/null +++ b/apps/files/l10n/bg_BG.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Липсва дисковото устройство.", + "Storage invalid" : "Невалидно дисково устройство.", + "Unknown error" : "Непозната грешка.", + "Could not move %s - File with this name already exists" : "Неуспешно преместване на %s - Файл със същото име вече съществува.", + "Could not move %s" : "Неуспешно преместване на %s.", + "Permission denied" : "Достъпът отказан", + "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" : "На сървърът не му е разрешно да отваря интернет адреси, моля провери настройките на сървъра.", + "The file exceeds your quota by %s" : "Файлът надвиши квотата ти с %s", + "Error while downloading %s to %s" : "Грешка при тегленето на %s от %s.", + "Error when creating the file" : "Грешка при създаването на файлът.", + "Folder name cannot be empty." : "Името на папката не може да бъде оставено празно.", + "Error when creating the folder" : "Грешка при създаването на папката.", + "Unable to set upload directory." : "Неуспешно задаване на директория за качване.", + "Invalid Token" : "Невалиеден токен.", + "No file was uploaded. Unknown error" : "Неуспешно качвачване на файл. Непозната грешка.", + "There is no error, the file uploaded with success" : "Файлът е качен успешно.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Файлът, който се опитваше да качиш надвишава зададения upload_max_filesize размер в php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Файлът, който се опитваш да качиш надвишава стойностите в MAX_FILE_SIZE в HTML формата.", + "The uploaded file was only partially uploaded" : "Файлът е качен частично.", + "No file was uploaded" : "Неуспешно качване.", + "Missing a temporary folder" : "Липсва временна папка.", + "Failed to write to disk" : "Възникна проблем при запис на диска.", + "Not enough storage available" : "Недостатъчно място.", + "Upload failed. Could not find uploaded file" : "Неуспешно качване. Не бе открит качения файл.", + "Upload failed. Could not get file info." : "Неуспешно качване. Не се получи информация за файла.", + "Invalid directory." : "Невалидна директория.", + "Files" : "Файлове", + "All files" : "Всички файлове", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Неуспешно качване на {filename}, защото е директория или е с размер от 0 байта.", + "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." : "Извършва се качване на файлове. Затварянето на тази страница ще прекъсне качването.", + "URL cannot be empty" : "Интернет адресът не може да бъде оставен празен.", + "{new_name} already exists" : "{new_name} вече съществува.", + "Could not create file" : "Несупешно създаване на файла.", + "Could not create folder" : "Неуспешно създаване на папка.", + "Error fetching URL" : "Грешка при отварянето на интернет адреса.", + "Share" : "Сподели", + "Delete" : "Изтрий", + "Disconnect storage" : "Извади дисковото устройство.", + "Unshare" : "Премахни Споделяне", + "Delete permanently" : "Изтрий завинаги", + "Rename" : "Преименуване", + "Pending" : "Чакащо", + "Error moving file." : "Грешка при местенето на файла.", + "Error moving file" : "Грешка при преместването на файла.", + "Error" : "Грешка", + "Could not rename file" : "Неуспешно преименуване на файла.", + "Error deleting file." : "Грешка при изтриването на файла.", + "Name" : "Име", + "Size" : "Размер", + "Modified" : "Променен на", + "_%n folder_::_%n folders_" : ["%n папка","%n папки"], + "_%n file_::_%n files_" : ["%n файл","%n файла"], + "You don’t have permission to upload or create files here" : "Нямаш разрешение да създаваш или качваш файлове тук.", + "_Uploading %n file_::_Uploading %n files_" : ["Качване на %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" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.", + "{dirs} and {files}" : "{dirs} и {files}", + "%s could not be renamed as it has been deleted" : "%s не може да бъде преименуван, защото е вече изтрит", + "%s could not be renamed" : "%s не може да бъде преименуван.", + "Upload (max. %s)" : "Качи (макс. %s)", + "File handling" : "Операция с файла", + "Maximum upload size" : "Максимален размер", + "max. possible: " : "максимално:", + "Save" : "Запис", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Използвай този адрес, за да получиш достъп до своите файлове чрез WebDAV.", + "New" : "Създай", + "New text file" : "Нов текстов файл", + "Text file" : "Текстов файл", + "New folder" : "Нова папка", + "Folder" : "Папка", + "From link" : "От връзка", + "Nothing in here. Upload something!" : "Тук няма нищо. Качи нещо!", + "Download" : "Изтегли", + "Upload too large" : "Прекалено голям файл за качване.", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файловете, които се опитваш да качиш са по-големи от позволеното на този сървър.", + "Files are being scanned, please wait." : "Файловете се сканирват, изчакайте.", + "Currently scanning" : "В момента се търси" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php deleted file mode 100644 index 1342f4e86db69dc7368aa31d79d5b738d571c026..0000000000000000000000000000000000000000 --- a/apps/files/l10n/bg_BG.php +++ /dev/null @@ -1,96 +0,0 @@ - "Липсва дисковото устройство.", -"Storage invalid" => "Невалидно дисково устройство.", -"Unknown error" => "Непозната грешка.", -"Could not move %s - File with this name already exists" => "Неуспешно преместване на %s - Файл със същото име вече съществува.", -"Could not move %s" => "Неуспешно преместване на %s.", -"Permission denied" => "Достъпът отказан", -"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" => "На сървърът не му е разрешно да отваря интернет адреси, моля провери настройките на сървъра.", -"The file exceeds your quota by %s" => "Файлът надвиши квотата ти с %s", -"Error while downloading %s to %s" => "Грешка при тегленето на %s от %s.", -"Error when creating the file" => "Грешка при създаването на файлът.", -"Folder name cannot be empty." => "Името на папката не може да бъде оставено празно.", -"Error when creating the folder" => "Грешка при създаването на папката.", -"Unable to set upload directory." => "Неуспешно задаване на директория за качване.", -"Invalid Token" => "Невалиеден токен.", -"No file was uploaded. Unknown error" => "Неуспешно качвачване на файл. Непозната грешка.", -"There is no error, the file uploaded with success" => "Файлът е качен успешно.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файлът, който се опитваше да качиш надвишава зададения upload_max_filesize размер в php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Файлът, който се опитваш да качиш надвишава стойностите в MAX_FILE_SIZE в HTML формата.", -"The uploaded file was only partially uploaded" => "Файлът е качен частично.", -"No file was uploaded" => "Неуспешно качване.", -"Missing a temporary folder" => "Липсва временна папка.", -"Failed to write to disk" => "Възникна проблем при запис на диска.", -"Not enough storage available" => "Недостатъчно място.", -"Upload failed. Could not find uploaded file" => "Неуспешно качване. Не бе открит качения файл.", -"Upload failed. Could not get file info." => "Неуспешно качване. Не се получи информация за файла.", -"Invalid directory." => "Невалидна директория.", -"Files" => "Файлове", -"All files" => "Всички файлове", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Неуспешно качване на {filename}, защото е директория или е с размер от 0 байта.", -"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." => "Извършва се качване на файлове. Затварянето на тази страница ще прекъсне качването.", -"URL cannot be empty" => "Интернет адресът не може да бъде оставен празен.", -"{new_name} already exists" => "{new_name} вече съществува.", -"Could not create file" => "Несупешно създаване на файла.", -"Could not create folder" => "Неуспешно създаване на папка.", -"Error fetching URL" => "Грешка при отварянето на интернет адреса.", -"Share" => "Сподели", -"Delete" => "Изтрий", -"Disconnect storage" => "Извади дисковото устройство.", -"Unshare" => "Премахни Споделяне", -"Delete permanently" => "Изтрий завинаги", -"Rename" => "Преименуване", -"Pending" => "Чакащо", -"Error moving file." => "Грешка при местенето на файла.", -"Error moving file" => "Грешка при преместването на файла.", -"Error" => "Грешка", -"Could not rename file" => "Неуспешно преименуване на файла.", -"Error deleting file." => "Грешка при изтриването на файла.", -"Name" => "Име", -"Size" => "Размер", -"Modified" => "Променен на", -"_%n folder_::_%n folders_" => array("%n папка","%n папки"), -"_%n file_::_%n files_" => array("%n файл","%n файла"), -"You don’t have permission to upload or create files here" => "Нямаш разрешение да създаваш или качваш файлове тук.", -"_Uploading %n file_::_Uploading %n files_" => array("Качване на %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" => "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Криптирането е изключено, но файлове ти са все още защитени. Моля, отиди на лични найстройки, за да разшфроваш файловете.", -"{dirs} and {files}" => "{dirs} и {files}", -"%s could not be renamed as it has been deleted" => "%s не може да бъде преименуван, защото е вече изтрит", -"%s could not be renamed" => "%s не може да бъде преименуван.", -"Upload (max. %s)" => "Качи (макс. %s)", -"File handling" => "Операция с файла", -"Maximum upload size" => "Максимален размер", -"max. possible: " => "максимално:", -"Save" => "Запис", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Използвай този адрес, за да получиш достъп до своите файлове чрез WebDAV.", -"New" => "Създай", -"New text file" => "Нов текстов файл", -"Text file" => "Текстов файл", -"New folder" => "Нова папка", -"Folder" => "Папка", -"From link" => "От връзка", -"Nothing in here. Upload something!" => "Тук няма нищо. Качи нещо!", -"Download" => "Изтегли", -"Upload too large" => "Прекалено голям файл за качване.", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файловете, които се опитваш да качиш са по-големи от позволеното на този сървър.", -"Files are being scanned, please wait." => "Файловете се сканирват, изчакайте.", -"Currently scanning" => "В момента се сканирва." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js new file mode 100644 index 0000000000000000000000000000000000000000..bf2ecc2f6600e88764ebcd9202a36f65ec98c9a7 --- /dev/null +++ b/apps/files/l10n/bn_BD.js @@ -0,0 +1,68 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "সংরক্ষণের স্থান নেই", + "Storage invalid" : "সংরক্ষণাগার বৈধ নয়", + "Unknown error" : "অজানা জটিলতা", + "Could not move %s - File with this name already exists" : "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", + "Could not move %s" : "%s কে স্থানান্তর করা সম্ভব হলো না", + "Permission denied" : "অনুমতি দেয়া হয়নি", + "File name cannot be empty." : "ফাইলের নামটি ফাঁকা রাখা যাবে না।", + "\"%s\" is an invalid file name." : "\"%s\" টি একটি অননুমোদিত ফাইল নাম।", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।", + "Not a valid source" : "বৈধ উৎস নয়", + "The file exceeds your quota by %s" : "এই ফাইলটি %s আপনার নির্দিষ্ট কোটা ছাড়িয়ে যাচ্ছে", + "Error while downloading %s to %s" : "%s হতে %s ডাউনলোড করতে সমস্যা হচ্ছে", + "Error when creating the file" : "ফাইলটি তৈরী করতে যেয়ে সমস্যা হলো", + "Folder name cannot be empty." : "ফোল্ডার নামটি ফাঁকা রাখা যাবে না।", + "Error when creating the folder" : "ফোল্ডার তৈরী করতে যেয়ে সমস্যা হলো", + "Unable to set upload directory." : "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।", + "No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।", + "There is no error, the file uploaded with success" : "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ", + "The uploaded file was only partially uploaded" : "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে", + "No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি", + "Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে", + "Failed to write to disk" : "ডিস্কে লিখতে ব্যর্থ", + "Not enough storage available" : "সংরক্ষণের যথেষ্ট জায়গা প্রাপ্তব্য নয়", + "Invalid directory." : "ভুল ডিরেক্টরি", + "Files" : "ফাইল", + "All files" : "সব ফাইল", + "Upload cancelled." : "আপলোড বাতিল করা হয়েছে।", + "File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।", + "{new_name} already exists" : "{new_name} টি বিদ্যমান", + "Share" : "ভাগাভাগি কর", + "Delete" : "মুছে", + "Unshare" : "ভাগাভাগি বাতিল ", + "Rename" : "পূনঃনামকরণ", + "Pending" : "মুলতুবি", + "Error moving file." : "ফাইল সরাতে সমস্যা হলো।", + "Error moving file" : "ফাইল সরাতে সমস্যা হলো", + "Error" : "সমস্যা", + "Could not rename file" : "ফাইলের পূণঃনামকরণ করা গেলনা", + "Name" : "রাম", + "Size" : "আকার", + "Modified" : "পরিবর্তিত", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"], + "\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।", + "Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ", + "File handling" : "ফাইল হ্যার্ডলিং", + "Maximum upload size" : "আপলোডের সর্বোচ্চ আকার", + "max. possible: " : "অনুমোদিত সর্বোচ্চ আকার", + "Save" : "সংরক্ষণ", + "WebDAV" : "WebDAV", + "New" : "নতুন", + "Text file" : "টেক্সট ফাইল", + "New folder" : "নব ফােলডার", + "Folder" : "ফোল্ডার", + "From link" : " লিংক থেকে", + "Nothing in here. Upload something!" : "এখানে কিছুই নেই। কিছু আপলোড করুন !", + "Download" : "ডাউনলোড", + "Upload too large" : "আপলোডের আকারটি অনেক বড়", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ", + "Files are being scanned, please wait." : "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json new file mode 100644 index 0000000000000000000000000000000000000000..35db36b61faf2b81ca1410b683e047ec1b4ef6f2 --- /dev/null +++ b/apps/files/l10n/bn_BD.json @@ -0,0 +1,66 @@ +{ "translations": { + "Storage not available" : "সংরক্ষণের স্থান নেই", + "Storage invalid" : "সংরক্ষণাগার বৈধ নয়", + "Unknown error" : "অজানা জটিলতা", + "Could not move %s - File with this name already exists" : "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", + "Could not move %s" : "%s কে স্থানান্তর করা সম্ভব হলো না", + "Permission denied" : "অনুমতি দেয়া হয়নি", + "File name cannot be empty." : "ফাইলের নামটি ফাঁকা রাখা যাবে না।", + "\"%s\" is an invalid file name." : "\"%s\" টি একটি অননুমোদিত ফাইল নাম।", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।", + "Not a valid source" : "বৈধ উৎস নয়", + "The file exceeds your quota by %s" : "এই ফাইলটি %s আপনার নির্দিষ্ট কোটা ছাড়িয়ে যাচ্ছে", + "Error while downloading %s to %s" : "%s হতে %s ডাউনলোড করতে সমস্যা হচ্ছে", + "Error when creating the file" : "ফাইলটি তৈরী করতে যেয়ে সমস্যা হলো", + "Folder name cannot be empty." : "ফোল্ডার নামটি ফাঁকা রাখা যাবে না।", + "Error when creating the folder" : "ফোল্ডার তৈরী করতে যেয়ে সমস্যা হলো", + "Unable to set upload directory." : "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।", + "No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।", + "There is no error, the file uploaded with success" : "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ", + "The uploaded file was only partially uploaded" : "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে", + "No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি", + "Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে", + "Failed to write to disk" : "ডিস্কে লিখতে ব্যর্থ", + "Not enough storage available" : "সংরক্ষণের যথেষ্ট জায়গা প্রাপ্তব্য নয়", + "Invalid directory." : "ভুল ডিরেক্টরি", + "Files" : "ফাইল", + "All files" : "সব ফাইল", + "Upload cancelled." : "আপলোড বাতিল করা হয়েছে।", + "File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।", + "{new_name} already exists" : "{new_name} টি বিদ্যমান", + "Share" : "ভাগাভাগি কর", + "Delete" : "মুছে", + "Unshare" : "ভাগাভাগি বাতিল ", + "Rename" : "পূনঃনামকরণ", + "Pending" : "মুলতুবি", + "Error moving file." : "ফাইল সরাতে সমস্যা হলো।", + "Error moving file" : "ফাইল সরাতে সমস্যা হলো", + "Error" : "সমস্যা", + "Could not rename file" : "ফাইলের পূণঃনামকরণ করা গেলনা", + "Name" : "রাম", + "Size" : "আকার", + "Modified" : "পরিবর্তিত", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"], + "\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।", + "Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ", + "File handling" : "ফাইল হ্যার্ডলিং", + "Maximum upload size" : "আপলোডের সর্বোচ্চ আকার", + "max. possible: " : "অনুমোদিত সর্বোচ্চ আকার", + "Save" : "সংরক্ষণ", + "WebDAV" : "WebDAV", + "New" : "নতুন", + "Text file" : "টেক্সট ফাইল", + "New folder" : "নব ফােলডার", + "Folder" : "ফোল্ডার", + "From link" : " লিংক থেকে", + "Nothing in here. Upload something!" : "এখানে কিছুই নেই। কিছু আপলোড করুন !", + "Download" : "ডাউনলোড", + "Upload too large" : "আপলোডের আকারটি অনেক বড়", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ", + "Files are being scanned, please wait." : "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php deleted file mode 100644 index 826f36a452e8be20bca2cc6da1b2656aec3e7266..0000000000000000000000000000000000000000 --- a/apps/files/l10n/bn_BD.php +++ /dev/null @@ -1,67 +0,0 @@ - "সংরক্ষণের স্থান নেই", -"Storage invalid" => "সংরক্ষণাগার বৈধ নয়", -"Unknown error" => "অজানা জটিলতা", -"Could not move %s - File with this name already exists" => "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", -"Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না", -"Permission denied" => "অনুমতি দেয়া হয়নি", -"File name cannot be empty." => "ফাইলের নামটি ফাঁকা রাখা যাবে না।", -"\"%s\" is an invalid file name." => "\"%s\" টি একটি অননুমোদিত ফাইল নাম।", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।", -"Not a valid source" => "বৈধ উৎস নয়", -"The file exceeds your quota by %s" => "এই ফাইলটি %s আপনার নির্দিষ্ট কোটা ছাড়িয়ে যাচ্ছে", -"Error while downloading %s to %s" => "%s হতে %s ডাউনলোড করতে সমস্যা হচ্ছে", -"Error when creating the file" => "ফাইলটি তৈরী করতে যেয়ে সমস্যা হলো", -"Folder name cannot be empty." => "ফোল্ডার নামটি ফাঁকা রাখা যাবে না।", -"Error when creating the folder" => "ফোল্ডার তৈরী করতে যেয়ে সমস্যা হলো", -"Unable to set upload directory." => "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।", -"No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।", -"There is no error, the file uploaded with success" => "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ", -"The uploaded file was only partially uploaded" => "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে", -"No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি", -"Missing a temporary folder" => "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে", -"Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ", -"Not enough storage available" => "সংরক্ষণের যথেষ্ট জায়গা প্রাপ্তব্য নয়", -"Invalid directory." => "ভুল ডিরেক্টরি", -"Files" => "ফাইল", -"All files" => "সব ফাইল", -"Upload cancelled." => "আপলোড বাতিল করা হয়েছে।", -"File upload is in progress. Leaving the page now will cancel the upload." => "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।", -"{new_name} already exists" => "{new_name} টি বিদ্যমান", -"Share" => "ভাগাভাগি কর", -"Delete" => "মুছে", -"Unshare" => "ভাগাভাগি বাতিল ", -"Rename" => "পূনঃনামকরণ", -"Pending" => "মুলতুবি", -"Error moving file." => "ফাইল সরাতে সমস্যা হলো।", -"Error moving file" => "ফাইল সরাতে সমস্যা হলো", -"Error" => "সমস্যা", -"Could not rename file" => "ফাইলের পূণঃনামকরণ করা গেলনা", -"Name" => "রাম", -"Size" => "আকার", -"Modified" => "পরিবর্তিত", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"), -"\"{name}\" is an invalid file name." => "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।", -"Your storage is almost full ({usedSpacePercent}%)" => "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ", -"File handling" => "ফাইল হ্যার্ডলিং", -"Maximum upload size" => "আপলোডের সর্বোচ্চ আকার", -"max. possible: " => "অনুমোদিত সর্বোচ্চ আকার", -"Save" => "সংরক্ষণ", -"WebDAV" => "WebDAV", -"New" => "নতুন", -"Text file" => "টেক্সট ফাইল", -"New folder" => "নব ফােলডার", -"Folder" => "ফোল্ডার", -"From link" => " লিংক থেকে", -"Nothing in here. Upload something!" => "এখানে কিছুই নেই। কিছু আপলোড করুন !", -"Download" => "ডাউনলোড", -"Upload too large" => "আপলোডের আকারটি অনেক বড়", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ", -"Files are being scanned, please wait." => "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/bn_IN.js b/apps/files/l10n/bn_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..320ef37a8f9537f956c0d8281b0058033d96c960 --- /dev/null +++ b/apps/files/l10n/bn_IN.js @@ -0,0 +1,33 @@ +OC.L10N.register( + "files", + { + "Could not move %s - File with this name already exists" : "%s সরানো যায়নি-এই নামে আগে থেকেই ফাইল আছে", + "Could not move %s" : "%s সরানো যায়নি", + "No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি।অজানা ত্রুটি", + "There is no error, the file uploaded with success" : "কোন ত্রুটি নেই,ফাইল সাফল্যের সঙ্গে আপলোড করা হয়েছে", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "আপলোড করা ফাইল-php.ini মধ্যে upload_max_filesize নির্দেশ অতিক্রম করে:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইল HTML ফর্মের জন্য MAX_FILE_SIZE নির্দেশ অতিক্রম করে", + "The uploaded file was only partially uploaded" : "আপলোড করা ফাইল শুধুমাত্র আংশিকভাবে আপলোড করা হয়েছে", + "No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি", + "Missing a temporary folder" : "একটি অস্থায়ী ফোল্ডার পাওয়া যাচ্ছেনা", + "Failed to write to disk" : "ডিস্কে লিখতে ব্যর্থ", + "Not enough storage available" : "যথেষ্ট স্টোরেজ পাওয়া যায় না", + "Invalid directory." : "অবৈধ ডিরেক্টরি।", + "Files" : "ফাইলস", + "Share" : "শেয়ার", + "Delete" : "মুছে ফেলা", + "Delete permanently" : "স্থায়ীভাবে মুছে দিন", + "Rename" : "পুনঃনামকরণ", + "Pending" : "মুলতুবি", + "Error" : "ভুল", + "Name" : "নাম", + "Size" : "আকার", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "সেভ", + "New folder" : "নতুন ফোল্ডার", + "Folder" : "ফোল্ডার", + "Download" : "ডাউনলোড করুন" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/bn_IN.json b/apps/files/l10n/bn_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..7b6528c38a997f37cf380ac75f8de11fd51de3bc --- /dev/null +++ b/apps/files/l10n/bn_IN.json @@ -0,0 +1,31 @@ +{ "translations": { + "Could not move %s - File with this name already exists" : "%s সরানো যায়নি-এই নামে আগে থেকেই ফাইল আছে", + "Could not move %s" : "%s সরানো যায়নি", + "No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি।অজানা ত্রুটি", + "There is no error, the file uploaded with success" : "কোন ত্রুটি নেই,ফাইল সাফল্যের সঙ্গে আপলোড করা হয়েছে", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "আপলোড করা ফাইল-php.ini মধ্যে upload_max_filesize নির্দেশ অতিক্রম করে:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইল HTML ফর্মের জন্য MAX_FILE_SIZE নির্দেশ অতিক্রম করে", + "The uploaded file was only partially uploaded" : "আপলোড করা ফাইল শুধুমাত্র আংশিকভাবে আপলোড করা হয়েছে", + "No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি", + "Missing a temporary folder" : "একটি অস্থায়ী ফোল্ডার পাওয়া যাচ্ছেনা", + "Failed to write to disk" : "ডিস্কে লিখতে ব্যর্থ", + "Not enough storage available" : "যথেষ্ট স্টোরেজ পাওয়া যায় না", + "Invalid directory." : "অবৈধ ডিরেক্টরি।", + "Files" : "ফাইলস", + "Share" : "শেয়ার", + "Delete" : "মুছে ফেলা", + "Delete permanently" : "স্থায়ীভাবে মুছে দিন", + "Rename" : "পুনঃনামকরণ", + "Pending" : "মুলতুবি", + "Error" : "ভুল", + "Name" : "নাম", + "Size" : "আকার", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "সেভ", + "New folder" : "নতুন ফোল্ডার", + "Folder" : "ফোল্ডার", + "Download" : "ডাউনলোড করুন" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/bn_IN.php b/apps/files/l10n/bn_IN.php deleted file mode 100644 index ae53a11b8ec23ce74dd205bd96c8b8e06e2d1b90..0000000000000000000000000000000000000000 --- a/apps/files/l10n/bn_IN.php +++ /dev/null @@ -1,32 +0,0 @@ - "%s সরানো যায়নি-এই নামে আগে থেকেই ফাইল আছে", -"Could not move %s" => "%s সরানো যায়নি", -"No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি।অজানা ত্রুটি", -"There is no error, the file uploaded with success" => "কোন ত্রুটি নেই,ফাইল সাফল্যের সঙ্গে আপলোড করা হয়েছে", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইল-php.ini মধ্যে upload_max_filesize নির্দেশ অতিক্রম করে:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "আপলোড করা ফাইল HTML ফর্মের জন্য MAX_FILE_SIZE নির্দেশ অতিক্রম করে", -"The uploaded file was only partially uploaded" => "আপলোড করা ফাইল শুধুমাত্র আংশিকভাবে আপলোড করা হয়েছে", -"No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি", -"Missing a temporary folder" => "একটি অস্থায়ী ফোল্ডার পাওয়া যাচ্ছেনা", -"Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ", -"Not enough storage available" => "যথেষ্ট স্টোরেজ পাওয়া যায় না", -"Invalid directory." => "অবৈধ ডিরেক্টরি।", -"Files" => "ফাইলস", -"Share" => "শেয়ার", -"Delete" => "মুছে ফেলা", -"Delete permanently" => "স্থায়ীভাবে মুছে দিন", -"Rename" => "পুনঃনামকরণ", -"Pending" => "মুলতুবি", -"Error" => "ভুল", -"Name" => "নাম", -"Size" => "আকার", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "সেভ", -"New folder" => "নতুন ফোল্ডার", -"Folder" => "ফোল্ডার", -"Download" => "ডাউনলোড করুন" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/bs.js b/apps/files/l10n/bs.js new file mode 100644 index 0000000000000000000000000000000000000000..1ce26f916a2fb8e26c8f79221c7bed4d13ced468 --- /dev/null +++ b/apps/files/l10n/bs.js @@ -0,0 +1,14 @@ +OC.L10N.register( + "files", + { + "Share" : "Podijeli", + "Name" : "Ime", + "Size" : "Veličina", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Save" : "Spasi", + "New folder" : "Nova fascikla", + "Folder" : "Fasikla" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/bs.json b/apps/files/l10n/bs.json new file mode 100644 index 0000000000000000000000000000000000000000..7c2d782d01c662dedce9309ed6d8f701d5723569 --- /dev/null +++ b/apps/files/l10n/bs.json @@ -0,0 +1,12 @@ +{ "translations": { + "Share" : "Podijeli", + "Name" : "Ime", + "Size" : "Veličina", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Save" : "Spasi", + "New folder" : "Nova fascikla", + "Folder" : "Fasikla" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/bs.php b/apps/files/l10n/bs.php deleted file mode 100644 index 89ff91da0311abefb470917d664f273112a624df..0000000000000000000000000000000000000000 --- a/apps/files/l10n/bs.php +++ /dev/null @@ -1,13 +0,0 @@ - "Podijeli", -"Name" => "Ime", -"Size" => "Veličina", -"_%n folder_::_%n folders_" => array("","",""), -"_%n file_::_%n files_" => array("","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","",""), -"Save" => "Spasi", -"New folder" => "Nova fascikla", -"Folder" => "Fasikla" -); -$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);"; diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js new file mode 100644 index 0000000000000000000000000000000000000000..0885794ea43f085187b9b5a5f8b839fa413d794b --- /dev/null +++ b/apps/files/l10n/ca.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Emmagatzemament no disponible", + "Storage invalid" : "Emmagatzemament no vàlid", + "Unknown error" : "Error desconegut", + "Could not move %s - File with this name already exists" : "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom", + "Could not move %s" : " No s'ha pogut moure %s", + "Permission denied" : "Permís denegat", + "File name cannot be empty." : "El nom del fitxer no pot ser buit.", + "\"%s\" is an invalid file name." : "\"%s\" no es un fitxer vàlid.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "El nóm no és vàlid, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' no estan permesos.", + "The target folder has been moved or deleted." : "La carpeta de destí s'ha mogut o eliminat.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nom %s ja s'usa en la carpeta %s. Indiqueu un nom diferent.", + "Not a valid source" : "No és un origen vàlid", + "Server is not allowed to open URLs, please check the server configuration" : "El servidor no té autorització per obrir URLs, comproveu la configuració del servidor", + "The file exceeds your quota by %s" : "El fitxer excedeix de la teva quota per %s", + "Error while downloading %s to %s" : "S'ha produït un error en baixar %s a %s", + "Error when creating the file" : "S'ha produït un error en crear el fitxer", + "Folder name cannot be empty." : "El nom de la carpeta no pot ser buit.", + "Error when creating the folder" : "S'ha produït un error en crear la carpeta", + "Unable to set upload directory." : "No es pot establir la carpeta de pujada.", + "Invalid Token" : "Testimoni no vàlid", + "No file was uploaded. Unknown error" : "No s'ha carregat cap fitxer. Error desconegut", + "There is no error, the file uploaded with success" : "No hi ha errors, el fitxer s'ha carregat correctament", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat supera la directiva MAX_FILE_SIZE especificada al formulari HTML", + "The uploaded file was only partially uploaded" : "El fitxer només s'ha carregat parcialment", + "No file was uploaded" : "No s'ha carregat cap fitxer", + "Missing a temporary folder" : "Falta un fitxer temporal", + "Failed to write to disk" : "Ha fallat en escriure al disc", + "Not enough storage available" : "No hi ha prou espai disponible", + "Upload failed. Could not find uploaded file" : "La pujada ha fallat. El fitxer pujat no s'ha trobat.", + "Upload failed. Could not get file info." : "La pujada ha fallat. No s'ha pogut obtenir informació del fitxer.", + "Invalid directory." : "Directori no vàlid.", + "Files" : "Fitxers", + "All files" : "Tots els fitxers", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No es pot pujar {filename} perquè és una carpeta o té 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "Mida total del fitxer {size1} excedeix el límit de pujada {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}", + "Upload cancelled." : "La pujada s'ha cancel·lat.", + "Could not get result from server." : "No hi ha resposta del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", + "URL cannot be empty" : "L'URL no pot ser buit", + "{new_name} already exists" : "{new_name} ja existeix", + "Could not create file" : "No s'ha pogut crear el fitxer", + "Could not create folder" : "No s'ha pogut crear la carpeta", + "Error fetching URL" : "Error en obtenir la URL", + "Share" : "Comparteix", + "Delete" : "Esborra", + "Disconnect storage" : "Desonnecta l'emmagatzematge", + "Unshare" : "Deixa de compartir", + "Delete permanently" : "Esborra permanentment", + "Rename" : "Reanomena", + "Pending" : "Pendent", + "Error moving file." : "Error en moure el fitxer.", + "Error moving file" : "Error en moure el fitxer", + "Error" : "Error", + "Could not rename file" : "No es pot canviar el nom de fitxer", + "Error deleting file." : "Error en esborrar el fitxer.", + "Name" : "Nom", + "Size" : "Mida", + "Modified" : "Modificat", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"], + "_%n file_::_%n files_" : ["%n fitxer","%n fitxers"], + "You don’t have permission to upload or create files here" : "No teniu permisos per a pujar o crear els fitxers aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Pujant %n fitxer","Pujant %n fitxers"], + "\"{name}\" is an invalid file name." : "\"{name}\" no es un fitxer vàlid.", + "Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!", + "Your storage is almost full ({usedSpacePercent}%)" : "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.", + "{dirs} and {files}" : "{dirs} i {files}", + "%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat", + "%s could not be renamed" : "%s no es pot canviar el nom", + "Upload (max. %s)" : "Pujada (màx. %s)", + "File handling" : "Gestió de fitxers", + "Maximum upload size" : "Mida màxima de pujada", + "max. possible: " : "màxim possible:", + "Save" : "Desa", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Useu aquesta adreça per accedir als fitxers via WebDAV", + "New" : "Nou", + "New text file" : "Nou fitxer de text", + "Text file" : "Fitxer de text", + "New folder" : "Carpeta nova", + "Folder" : "Carpeta", + "From link" : "Des d'enllaç", + "Nothing in here. Upload something!" : "Res per aquí. Pugeu alguna cosa!", + "Download" : "Baixa", + "Upload too large" : "La pujada és massa gran", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor", + "Files are being scanned, please wait." : "S'estan escanejant els fitxers, espereu", + "Currently scanning" : "Actualment escanejant" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json new file mode 100644 index 0000000000000000000000000000000000000000..2b767a9aaed39745011406f41ae25bb1b383dedb --- /dev/null +++ b/apps/files/l10n/ca.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Emmagatzemament no disponible", + "Storage invalid" : "Emmagatzemament no vàlid", + "Unknown error" : "Error desconegut", + "Could not move %s - File with this name already exists" : "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom", + "Could not move %s" : " No s'ha pogut moure %s", + "Permission denied" : "Permís denegat", + "File name cannot be empty." : "El nom del fitxer no pot ser buit.", + "\"%s\" is an invalid file name." : "\"%s\" no es un fitxer vàlid.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "El nóm no és vàlid, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' no estan permesos.", + "The target folder has been moved or deleted." : "La carpeta de destí s'ha mogut o eliminat.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nom %s ja s'usa en la carpeta %s. Indiqueu un nom diferent.", + "Not a valid source" : "No és un origen vàlid", + "Server is not allowed to open URLs, please check the server configuration" : "El servidor no té autorització per obrir URLs, comproveu la configuració del servidor", + "The file exceeds your quota by %s" : "El fitxer excedeix de la teva quota per %s", + "Error while downloading %s to %s" : "S'ha produït un error en baixar %s a %s", + "Error when creating the file" : "S'ha produït un error en crear el fitxer", + "Folder name cannot be empty." : "El nom de la carpeta no pot ser buit.", + "Error when creating the folder" : "S'ha produït un error en crear la carpeta", + "Unable to set upload directory." : "No es pot establir la carpeta de pujada.", + "Invalid Token" : "Testimoni no vàlid", + "No file was uploaded. Unknown error" : "No s'ha carregat cap fitxer. Error desconegut", + "There is no error, the file uploaded with success" : "No hi ha errors, el fitxer s'ha carregat correctament", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat supera la directiva MAX_FILE_SIZE especificada al formulari HTML", + "The uploaded file was only partially uploaded" : "El fitxer només s'ha carregat parcialment", + "No file was uploaded" : "No s'ha carregat cap fitxer", + "Missing a temporary folder" : "Falta un fitxer temporal", + "Failed to write to disk" : "Ha fallat en escriure al disc", + "Not enough storage available" : "No hi ha prou espai disponible", + "Upload failed. Could not find uploaded file" : "La pujada ha fallat. El fitxer pujat no s'ha trobat.", + "Upload failed. Could not get file info." : "La pujada ha fallat. No s'ha pogut obtenir informació del fitxer.", + "Invalid directory." : "Directori no vàlid.", + "Files" : "Fitxers", + "All files" : "Tots els fitxers", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No es pot pujar {filename} perquè és una carpeta o té 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "Mida total del fitxer {size1} excedeix el límit de pujada {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}", + "Upload cancelled." : "La pujada s'ha cancel·lat.", + "Could not get result from server." : "No hi ha resposta del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", + "URL cannot be empty" : "L'URL no pot ser buit", + "{new_name} already exists" : "{new_name} ja existeix", + "Could not create file" : "No s'ha pogut crear el fitxer", + "Could not create folder" : "No s'ha pogut crear la carpeta", + "Error fetching URL" : "Error en obtenir la URL", + "Share" : "Comparteix", + "Delete" : "Esborra", + "Disconnect storage" : "Desonnecta l'emmagatzematge", + "Unshare" : "Deixa de compartir", + "Delete permanently" : "Esborra permanentment", + "Rename" : "Reanomena", + "Pending" : "Pendent", + "Error moving file." : "Error en moure el fitxer.", + "Error moving file" : "Error en moure el fitxer", + "Error" : "Error", + "Could not rename file" : "No es pot canviar el nom de fitxer", + "Error deleting file." : "Error en esborrar el fitxer.", + "Name" : "Nom", + "Size" : "Mida", + "Modified" : "Modificat", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"], + "_%n file_::_%n files_" : ["%n fitxer","%n fitxers"], + "You don’t have permission to upload or create files here" : "No teniu permisos per a pujar o crear els fitxers aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Pujant %n fitxer","Pujant %n fitxers"], + "\"{name}\" is an invalid file name." : "\"{name}\" no es un fitxer vàlid.", + "Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!", + "Your storage is almost full ({usedSpacePercent}%)" : "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.", + "{dirs} and {files}" : "{dirs} i {files}", + "%s could not be renamed as it has been deleted" : "No s'ha pogut renombrar %s ja que ha estat borrat", + "%s could not be renamed" : "%s no es pot canviar el nom", + "Upload (max. %s)" : "Pujada (màx. %s)", + "File handling" : "Gestió de fitxers", + "Maximum upload size" : "Mida màxima de pujada", + "max. possible: " : "màxim possible:", + "Save" : "Desa", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Useu aquesta adreça per accedir als fitxers via WebDAV", + "New" : "Nou", + "New text file" : "Nou fitxer de text", + "Text file" : "Fitxer de text", + "New folder" : "Carpeta nova", + "Folder" : "Carpeta", + "From link" : "Des d'enllaç", + "Nothing in here. Upload something!" : "Res per aquí. Pugeu alguna cosa!", + "Download" : "Baixa", + "Upload too large" : "La pujada és massa gran", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor", + "Files are being scanned, please wait." : "S'estan escanejant els fitxers, espereu", + "Currently scanning" : "Actualment escanejant" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php deleted file mode 100644 index 534235284c83dcca3ea8110cda59e7c75cc2b04e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ca.php +++ /dev/null @@ -1,95 +0,0 @@ - "Emmagatzemament no disponible", -"Storage invalid" => "Emmagatzemament no vàlid", -"Unknown error" => "Error desconegut", -"Could not move %s - File with this name already exists" => "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom", -"Could not move %s" => " No s'ha pogut moure %s", -"File name cannot be empty." => "El nom del fitxer no pot ser buit.", -"\"%s\" is an invalid file name." => "\"%s\" no es un fitxer vàlid.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "El nóm no és vàlid, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' no estan permesos.", -"The target folder has been moved or deleted." => "La carpeta de destí s'ha mogut o eliminat.", -"The name %s is already used in the folder %s. Please choose a different name." => "El nom %s ja s'usa en la carpeta %s. Indiqueu un nom diferent.", -"Not a valid source" => "No és un origen vàlid", -"Server is not allowed to open URLs, please check the server configuration" => "El servidor no té autorització per obrir URLs, comproveu la configuració del servidor", -"The file exceeds your quota by %s" => "El fitxer excedeix de la teva quota per %s", -"Error while downloading %s to %s" => "S'ha produït un error en baixar %s a %s", -"Error when creating the file" => "S'ha produït un error en crear el fitxer", -"Folder name cannot be empty." => "El nom de la carpeta no pot ser buit.", -"Error when creating the folder" => "S'ha produït un error en crear la carpeta", -"Unable to set upload directory." => "No es pot establir la carpeta de pujada.", -"Invalid Token" => "Testimoni no vàlid", -"No file was uploaded. Unknown error" => "No s'ha carregat cap fitxer. Error desconegut", -"There is no error, the file uploaded with success" => "No hi ha errors, el fitxer s'ha carregat correctament", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El fitxer carregat supera la directiva MAX_FILE_SIZE especificada al formulari HTML", -"The uploaded file was only partially uploaded" => "El fitxer només s'ha carregat parcialment", -"No file was uploaded" => "No s'ha carregat cap fitxer", -"Missing a temporary folder" => "Falta un fitxer temporal", -"Failed to write to disk" => "Ha fallat en escriure al disc", -"Not enough storage available" => "No hi ha prou espai disponible", -"Upload failed. Could not find uploaded file" => "La pujada ha fallat. El fitxer pujat no s'ha trobat.", -"Upload failed. Could not get file info." => "La pujada ha fallat. No s'ha pogut obtenir informació del fitxer.", -"Invalid directory." => "Directori no vàlid.", -"Files" => "Fitxers", -"All files" => "Tots els fitxers", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "No es pot pujar {filename} perquè és una carpeta o té 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "Mida total del fitxer {size1} excedeix el límit de pujada {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}", -"Upload cancelled." => "La pujada s'ha cancel·lat.", -"Could not get result from server." => "No hi ha resposta del servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", -"URL cannot be empty" => "L'URL no pot ser buit", -"{new_name} already exists" => "{new_name} ja existeix", -"Could not create file" => "No s'ha pogut crear el fitxer", -"Could not create folder" => "No s'ha pogut crear la carpeta", -"Error fetching URL" => "Error en obtenir la URL", -"Share" => "Comparteix", -"Delete" => "Esborra", -"Disconnect storage" => "Desonnecta l'emmagatzematge", -"Unshare" => "Deixa de compartir", -"Delete permanently" => "Esborra permanentment", -"Rename" => "Reanomena", -"Pending" => "Pendent", -"Error moving file." => "Error en moure el fitxer.", -"Error moving file" => "Error en moure el fitxer", -"Error" => "Error", -"Could not rename file" => "No es pot canviar el nom de fitxer", -"Error deleting file." => "Error en esborrar el fitxer.", -"Name" => "Nom", -"Size" => "Mida", -"Modified" => "Modificat", -"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetes"), -"_%n file_::_%n files_" => array("%n fitxer","%n fitxers"), -"You don’t have permission to upload or create files here" => "No teniu permisos per a pujar o crear els fitxers aquí", -"_Uploading %n file_::_Uploading %n files_" => array("Pujant %n fitxer","Pujant %n fitxers"), -"\"{name}\" is an invalid file name." => "\"{name}\" no es un fitxer vàlid.", -"Your storage is full, files can not be updated or synced anymore!" => "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!", -"Your storage is almost full ({usedSpacePercent}%)" => "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "L'encriptació s'ha desactivat però els vostres fitxers segueixen encriptats. Aneu a la vostra configuració personal per desencriptar els vostres fitxers.", -"{dirs} and {files}" => "{dirs} i {files}", -"%s could not be renamed as it has been deleted" => "No s'ha pogut renombrar %s ja que ha estat borrat", -"%s could not be renamed" => "%s no es pot canviar el nom", -"Upload (max. %s)" => "Pujada (màx. %s)", -"File handling" => "Gestió de fitxers", -"Maximum upload size" => "Mida màxima de pujada", -"max. possible: " => "màxim possible:", -"Save" => "Desa", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Useu aquesta adreça per accedir als fitxers via WebDAV", -"New" => "Nou", -"New text file" => "Nou fitxer de text", -"Text file" => "Fitxer de text", -"New folder" => "Carpeta nova", -"Folder" => "Carpeta", -"From link" => "Des d'enllaç", -"Nothing in here. Upload something!" => "Res per aquí. Pugeu alguna cosa!", -"Download" => "Baixa", -"Upload too large" => "La pujada és massa gran", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor", -"Files are being scanned, please wait." => "S'estan escanejant els fitxers, espereu", -"Currently scanning" => "Actualment escanejant" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ca@valencia.js b/apps/files/l10n/ca@valencia.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/ca@valencia.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ca@valencia.json b/apps/files/l10n/ca@valencia.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/ca@valencia.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ca@valencia.php b/apps/files/l10n/ca@valencia.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ca@valencia.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..58467d9c68f1ad43fead29d0cd6ad1f6add67f92 --- /dev/null +++ b/apps/files/l10n/cs_CZ.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Úložiště není dostupné", + "Storage invalid" : "Neplatné úložiště", + "Unknown error" : "Neznámá chyba", + "Could not move %s - File with this name already exists" : "Nelze přesunout %s - již existuje soubor se stejným názvem", + "Could not move %s" : "Nelze přesunout %s", + "Permission denied" : "Přístup odepřen", + "File name cannot be empty." : "Název souboru nemůže být prázdný řetězec.", + "\"%s\" is an invalid file name." : "\"%s\" je neplatným názvem souboru.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny.", + "The target folder has been moved or deleted." : "Cílová složka byla přesunuta nebo smazána.", + "The name %s is already used in the folder %s. Please choose a different name." : "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno.", + "Not a valid source" : "Neplatný zdroj", + "Server is not allowed to open URLs, please check the server configuration" : "Server není oprávněn otevírat adresy URL. Ověřte, prosím, konfiguraci serveru.", + "The file exceeds your quota by %s" : "Soubor překračuje povolenou kvótu o %s", + "Error while downloading %s to %s" : "Chyba při stahování %s do %s", + "Error when creating the file" : "Chyba při vytváření souboru", + "Folder name cannot be empty." : "Název složky nemůže být prázdný.", + "Error when creating the folder" : "Chyba při vytváření složky", + "Unable to set upload directory." : "Nelze nastavit adresář pro nahrané soubory.", + "Invalid Token" : "Neplatný token", + "No file was uploaded. Unknown error" : "Žádný soubor nebyl odeslán. Neznámá chyba", + "There is no error, the file uploaded with success" : "Soubor byl odeslán úspěšně", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML", + "The uploaded file was only partially uploaded" : "Soubor byl odeslán pouze částečně", + "No file was uploaded" : "Žádný soubor nebyl odeslán", + "Missing a temporary folder" : "Chybí adresář pro dočasné soubory", + "Failed to write to disk" : "Zápis na disk selhal", + "Not enough storage available" : "Nedostatek dostupného úložného prostoru", + "Upload failed. Could not find uploaded file" : "Nahrávání selhalo. Nepodařilo se nalézt nahraný soubor.", + "Upload failed. Could not get file info." : "Nahrávání selhalo. Nepodařilo se získat informace o souboru.", + "Invalid directory." : "Neplatný adresář", + "Files" : "Soubory", + "All files" : "Všechny soubory", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nelze nahrát soubor {filename}, protože je to buď adresář nebo má velikost 0 bytů", + "Total file size {size1} exceeds upload limit {size2}" : "Celková velikost souboru {size1} překračuje povolenou velikost pro nahrávání {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", + "Upload cancelled." : "Odesílání zrušeno.", + "Could not get result from server." : "Nepodařilo se získat výsledek ze serveru.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Probíhá odesílání souboru. Opuštění stránky způsobí zrušení nahrávání.", + "URL cannot be empty" : "URL nemůže zůstat prázdná", + "{new_name} already exists" : "{new_name} již existuje", + "Could not create file" : "Nepodařilo se vytvořit soubor", + "Could not create folder" : "Nepodařilo se vytvořit složku", + "Error fetching URL" : "Chyba při načítání URL", + "Share" : "Sdílet", + "Delete" : "Smazat", + "Disconnect storage" : "Odpojit úložiště", + "Unshare" : "Zrušit sdílení", + "Delete permanently" : "Trvale odstranit", + "Rename" : "Přejmenovat", + "Pending" : "Nevyřízené", + "Error moving file." : "Chyba při přesunu souboru.", + "Error moving file" : "Chyba při přesunu souboru", + "Error" : "Chyba", + "Could not rename file" : "Nepodařilo se přejmenovat soubor", + "Error deleting file." : "Chyba při mazání souboru.", + "Name" : "Název", + "Size" : "Velikost", + "Modified" : "Upraveno", + "_%n folder_::_%n folders_" : ["%n složka","%n složky","%n složek"], + "_%n file_::_%n files_" : ["%n soubor","%n soubory","%n souborů"], + "You don’t have permission to upload or create files here" : "Nemáte oprávnění sem nahrávat nebo vytvářet soubory", + "_Uploading %n file_::_Uploading %n files_" : ["Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neplatným názvem souboru.", + "Your storage is full, files can not be updated or synced anymore!" : "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.", + "Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložiště je téměř plné ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.", + "{dirs} and {files}" : "{dirs} a {files}", + "%s could not be renamed as it has been deleted" : "%s nelze přejmenovat, protože byl smazán", + "%s could not be renamed" : "%s nemůže být přejmenován", + "Upload (max. %s)" : "Nahrát (max. %s)", + "File handling" : "Zacházení se soubory", + "Maximum upload size" : "Maximální velikost pro odesílání", + "max. possible: " : "největší možná: ", + "Save" : "Uložit", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Použijte tuto adresu pro přístup k vašim souborům přes WebDAV", + "New" : "Nový", + "New text file" : "Nový textový soubor", + "Text file" : "Textový soubor", + "New folder" : "Nová složka", + "Folder" : "Složka", + "From link" : "Z odkazu", + "Nothing in here. Upload something!" : "Žádný obsah. Nahrajte něco.", + "Download" : "Stáhnout", + "Upload too large" : "Odesílaný soubor je příliš velký", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.", + "Files are being scanned, please wait." : "Soubory se prohledávají, prosím čekejte.", + "Currently scanning" : "Prohledává se" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json new file mode 100644 index 0000000000000000000000000000000000000000..98cad1c70f5568f4667c41c073ee3b5057525a8b --- /dev/null +++ b/apps/files/l10n/cs_CZ.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Úložiště není dostupné", + "Storage invalid" : "Neplatné úložiště", + "Unknown error" : "Neznámá chyba", + "Could not move %s - File with this name already exists" : "Nelze přesunout %s - již existuje soubor se stejným názvem", + "Could not move %s" : "Nelze přesunout %s", + "Permission denied" : "Přístup odepřen", + "File name cannot be empty." : "Název souboru nemůže být prázdný řetězec.", + "\"%s\" is an invalid file name." : "\"%s\" je neplatným názvem souboru.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny.", + "The target folder has been moved or deleted." : "Cílová složka byla přesunuta nebo smazána.", + "The name %s is already used in the folder %s. Please choose a different name." : "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno.", + "Not a valid source" : "Neplatný zdroj", + "Server is not allowed to open URLs, please check the server configuration" : "Server není oprávněn otevírat adresy URL. Ověřte, prosím, konfiguraci serveru.", + "The file exceeds your quota by %s" : "Soubor překračuje povolenou kvótu o %s", + "Error while downloading %s to %s" : "Chyba při stahování %s do %s", + "Error when creating the file" : "Chyba při vytváření souboru", + "Folder name cannot be empty." : "Název složky nemůže být prázdný.", + "Error when creating the folder" : "Chyba při vytváření složky", + "Unable to set upload directory." : "Nelze nastavit adresář pro nahrané soubory.", + "Invalid Token" : "Neplatný token", + "No file was uploaded. Unknown error" : "Žádný soubor nebyl odeslán. Neznámá chyba", + "There is no error, the file uploaded with success" : "Soubor byl odeslán úspěšně", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML", + "The uploaded file was only partially uploaded" : "Soubor byl odeslán pouze částečně", + "No file was uploaded" : "Žádný soubor nebyl odeslán", + "Missing a temporary folder" : "Chybí adresář pro dočasné soubory", + "Failed to write to disk" : "Zápis na disk selhal", + "Not enough storage available" : "Nedostatek dostupného úložného prostoru", + "Upload failed. Could not find uploaded file" : "Nahrávání selhalo. Nepodařilo se nalézt nahraný soubor.", + "Upload failed. Could not get file info." : "Nahrávání selhalo. Nepodařilo se získat informace o souboru.", + "Invalid directory." : "Neplatný adresář", + "Files" : "Soubory", + "All files" : "Všechny soubory", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nelze nahrát soubor {filename}, protože je to buď adresář nebo má velikost 0 bytů", + "Total file size {size1} exceeds upload limit {size2}" : "Celková velikost souboru {size1} překračuje povolenou velikost pro nahrávání {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", + "Upload cancelled." : "Odesílání zrušeno.", + "Could not get result from server." : "Nepodařilo se získat výsledek ze serveru.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Probíhá odesílání souboru. Opuštění stránky způsobí zrušení nahrávání.", + "URL cannot be empty" : "URL nemůže zůstat prázdná", + "{new_name} already exists" : "{new_name} již existuje", + "Could not create file" : "Nepodařilo se vytvořit soubor", + "Could not create folder" : "Nepodařilo se vytvořit složku", + "Error fetching URL" : "Chyba při načítání URL", + "Share" : "Sdílet", + "Delete" : "Smazat", + "Disconnect storage" : "Odpojit úložiště", + "Unshare" : "Zrušit sdílení", + "Delete permanently" : "Trvale odstranit", + "Rename" : "Přejmenovat", + "Pending" : "Nevyřízené", + "Error moving file." : "Chyba při přesunu souboru.", + "Error moving file" : "Chyba při přesunu souboru", + "Error" : "Chyba", + "Could not rename file" : "Nepodařilo se přejmenovat soubor", + "Error deleting file." : "Chyba při mazání souboru.", + "Name" : "Název", + "Size" : "Velikost", + "Modified" : "Upraveno", + "_%n folder_::_%n folders_" : ["%n složka","%n složky","%n složek"], + "_%n file_::_%n files_" : ["%n soubor","%n soubory","%n souborů"], + "You don’t have permission to upload or create files here" : "Nemáte oprávnění sem nahrávat nebo vytvářet soubory", + "_Uploading %n file_::_Uploading %n files_" : ["Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neplatným názvem souboru.", + "Your storage is full, files can not be updated or synced anymore!" : "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.", + "Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložiště je téměř plné ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.", + "{dirs} and {files}" : "{dirs} a {files}", + "%s could not be renamed as it has been deleted" : "%s nelze přejmenovat, protože byl smazán", + "%s could not be renamed" : "%s nemůže být přejmenován", + "Upload (max. %s)" : "Nahrát (max. %s)", + "File handling" : "Zacházení se soubory", + "Maximum upload size" : "Maximální velikost pro odesílání", + "max. possible: " : "největší možná: ", + "Save" : "Uložit", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Použijte tuto adresu pro přístup k vašim souborům přes WebDAV", + "New" : "Nový", + "New text file" : "Nový textový soubor", + "Text file" : "Textový soubor", + "New folder" : "Nová složka", + "Folder" : "Složka", + "From link" : "Z odkazu", + "Nothing in here. Upload something!" : "Žádný obsah. Nahrajte něco.", + "Download" : "Stáhnout", + "Upload too large" : "Odesílaný soubor je příliš velký", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.", + "Files are being scanned, please wait." : "Soubory se prohledávají, prosím čekejte.", + "Currently scanning" : "Prohledává se" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php deleted file mode 100644 index d2bf781b9440c9bcc776b5c9fad8f673860396fc..0000000000000000000000000000000000000000 --- a/apps/files/l10n/cs_CZ.php +++ /dev/null @@ -1,96 +0,0 @@ - "Úložiště není dostupné", -"Storage invalid" => "Neplatné úložiště", -"Unknown error" => "Neznámá chyba", -"Could not move %s - File with this name already exists" => "Nelze přesunout %s - již existuje soubor se stejným názvem", -"Could not move %s" => "Nelze přesunout %s", -"Permission denied" => "Přístup odepřen", -"File name cannot be empty." => "Název souboru nemůže být prázdný řetězec.", -"\"%s\" is an invalid file name." => "\"%s\" je neplatným názvem souboru.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny.", -"The target folder has been moved or deleted." => "Cílová složka byla přesunuta nebo smazána.", -"The name %s is already used in the folder %s. Please choose a different name." => "Název %s ve složce %s již existuje. Vyberte prosím jiné jméno.", -"Not a valid source" => "Neplatný zdroj", -"Server is not allowed to open URLs, please check the server configuration" => "Server není oprávněn otevírat adresy URL. Ověřte, prosím, konfiguraci serveru.", -"The file exceeds your quota by %s" => "Soubor překračuje povolenou kvótu o %s", -"Error while downloading %s to %s" => "Chyba při stahování %s do %s", -"Error when creating the file" => "Chyba při vytváření souboru", -"Folder name cannot be empty." => "Název složky nemůže být prázdný.", -"Error when creating the folder" => "Chyba při vytváření složky", -"Unable to set upload directory." => "Nelze nastavit adresář pro nahrané soubory.", -"Invalid Token" => "Neplatný token", -"No file was uploaded. Unknown error" => "Žádný soubor nebyl odeslán. Neznámá chyba", -"There is no error, the file uploaded with success" => "Soubor byl odeslán úspěšně", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML", -"The uploaded file was only partially uploaded" => "Soubor byl odeslán pouze částečně", -"No file was uploaded" => "Žádný soubor nebyl odeslán", -"Missing a temporary folder" => "Chybí adresář pro dočasné soubory", -"Failed to write to disk" => "Zápis na disk selhal", -"Not enough storage available" => "Nedostatek dostupného úložného prostoru", -"Upload failed. Could not find uploaded file" => "Nahrávání selhalo. Nepodařilo se nalézt nahraný soubor.", -"Upload failed. Could not get file info." => "Nahrávání selhalo. Nepodařilo se získat informace o souboru.", -"Invalid directory." => "Neplatný adresář", -"Files" => "Soubory", -"All files" => "Všechny soubory", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nelze nahrát soubor {filename}, protože je to buď adresář nebo má velikost 0 bytů", -"Total file size {size1} exceeds upload limit {size2}" => "Celková velikost souboru {size1} překračuje povolenou velikost pro nahrávání {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", -"Upload cancelled." => "Odesílání zrušeno.", -"Could not get result from server." => "Nepodařilo se získat výsledek ze serveru.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Probíhá odesílání souboru. Opuštění stránky způsobí zrušení nahrávání.", -"URL cannot be empty" => "URL nemůže zůstat prázdná", -"{new_name} already exists" => "{new_name} již existuje", -"Could not create file" => "Nepodařilo se vytvořit soubor", -"Could not create folder" => "Nepodařilo se vytvořit složku", -"Error fetching URL" => "Chyba při načítání URL", -"Share" => "Sdílet", -"Delete" => "Smazat", -"Disconnect storage" => "Odpojit úložiště", -"Unshare" => "Zrušit sdílení", -"Delete permanently" => "Trvale odstranit", -"Rename" => "Přejmenovat", -"Pending" => "Nevyřízené", -"Error moving file." => "Chyba při přesunu souboru.", -"Error moving file" => "Chyba při přesunu souboru", -"Error" => "Chyba", -"Could not rename file" => "Nepodařilo se přejmenovat soubor", -"Error deleting file." => "Chyba při mazání souboru.", -"Name" => "Název", -"Size" => "Velikost", -"Modified" => "Upraveno", -"_%n folder_::_%n folders_" => array("%n složka","%n složky","%n složek"), -"_%n file_::_%n files_" => array("%n soubor","%n soubory","%n souborů"), -"You don’t have permission to upload or create files here" => "Nemáte oprávnění zde nahrávat či vytvářet soubory", -"_Uploading %n file_::_Uploading %n files_" => array("Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"), -"\"{name}\" is an invalid file name." => "\"{name}\" je neplatným názvem souboru.", -"Your storage is full, files can not be updated or synced anymore!" => "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.", -"Your storage is almost full ({usedSpacePercent}%)" => "Vaše úložiště je téměř plné ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifrování bylo vypnuto, vaše soubory jsou však stále zašifrované. Běžte prosím do osobního nastavení, kde soubory odšifrujete.", -"{dirs} and {files}" => "{dirs} a {files}", -"%s could not be renamed as it has been deleted" => "%s nelze přejmenovat, protože byl smazán", -"%s could not be renamed" => "%s nemůže být přejmenován", -"Upload (max. %s)" => "Nahrát (max. %s)", -"File handling" => "Zacházení se soubory", -"Maximum upload size" => "Maximální velikost pro odesílání", -"max. possible: " => "největší možná: ", -"Save" => "Uložit", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Použijte tuto adresu pro přístup k vašim souborům přes WebDAV", -"New" => "Nový", -"New text file" => "Nový textový soubor", -"Text file" => "Textový soubor", -"New folder" => "Nová složka", -"Folder" => "Složka", -"From link" => "Z odkazu", -"Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.", -"Download" => "Stáhnout", -"Upload too large" => "Odesílaný soubor je příliš velký", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.", -"Files are being scanned, please wait." => "Soubory se prohledávají, prosím čekejte.", -"Currently scanning" => "Prohledává se" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files/l10n/cy_GB.js b/apps/files/l10n/cy_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..a9c4ddeba2801f5ddedcc57ae6b72232c220dc72 --- /dev/null +++ b/apps/files/l10n/cy_GB.js @@ -0,0 +1,51 @@ +OC.L10N.register( + "files", + { + "Could not move %s - File with this name already exists" : "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli", + "Could not move %s" : "Methwyd symud %s", + "File name cannot be empty." : "Does dim hawl cael enw ffeil gwag.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Enw annilys, ni chaniateir, '\\', '/', '<', '>', ':', '\"', '|', '?' na '*'.", + "No file was uploaded. Unknown error" : "Ni lwythwyd ffeil i fyny. Gwall anhysbys.", + "There is no error, the file uploaded with success" : "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML", + "The uploaded file was only partially uploaded" : "Dim ond yn rhannol y llwythwyd y ffeil i fyny", + "No file was uploaded" : "Ni lwythwyd ffeil i fyny", + "Missing a temporary folder" : "Plygell dros dro yn eisiau", + "Failed to write to disk" : "Methwyd ysgrifennu i'r ddisg", + "Not enough storage available" : "Dim digon o le storio ar gael", + "Invalid directory." : "Cyfeiriadur annilys.", + "Files" : "Ffeiliau", + "Upload cancelled." : "Diddymwyd llwytho i fyny.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.", + "{new_name} already exists" : "{new_name} yn bodoli'n barod", + "Share" : "Rhannu", + "Delete" : "Dileu", + "Unshare" : "Dad-rannu", + "Delete permanently" : "Dileu'n barhaol", + "Rename" : "Ailenwi", + "Pending" : "I ddod", + "Error" : "Gwall", + "Name" : "Enw", + "Size" : "Maint", + "Modified" : "Addaswyd", + "_%n folder_::_%n folders_" : ["","","",""], + "_%n file_::_%n files_" : ["","","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","","",""], + "Your storage is full, files can not be updated or synced anymore!" : "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!", + "Your storage is almost full ({usedSpacePercent}%)" : "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)", + "File handling" : "Trafod ffeiliau", + "Maximum upload size" : "Maint mwyaf llwytho i fyny", + "max. possible: " : "mwyaf. posib:", + "Save" : "Cadw", + "New" : "Newydd", + "Text file" : "Ffeil destun", + "Folder" : "Plygell", + "From link" : "Dolen o", + "Nothing in here. Upload something!" : "Does dim byd fan hyn. Llwythwch rhywbeth i fyny!", + "Download" : "Llwytho i lawr", + "Upload too large" : "Maint llwytho i fyny'n rhy fawr", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn.", + "Files are being scanned, please wait." : "Arhoswch, mae ffeiliau'n cael eu sganio." +}, +"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/files/l10n/cy_GB.json b/apps/files/l10n/cy_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..dc583d0a33368581f294e727c97fb3dd87849b47 --- /dev/null +++ b/apps/files/l10n/cy_GB.json @@ -0,0 +1,49 @@ +{ "translations": { + "Could not move %s - File with this name already exists" : "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli", + "Could not move %s" : "Methwyd symud %s", + "File name cannot be empty." : "Does dim hawl cael enw ffeil gwag.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Enw annilys, ni chaniateir, '\\', '/', '<', '>', ':', '\"', '|', '?' na '*'.", + "No file was uploaded. Unknown error" : "Ni lwythwyd ffeil i fyny. Gwall anhysbys.", + "There is no error, the file uploaded with success" : "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML", + "The uploaded file was only partially uploaded" : "Dim ond yn rhannol y llwythwyd y ffeil i fyny", + "No file was uploaded" : "Ni lwythwyd ffeil i fyny", + "Missing a temporary folder" : "Plygell dros dro yn eisiau", + "Failed to write to disk" : "Methwyd ysgrifennu i'r ddisg", + "Not enough storage available" : "Dim digon o le storio ar gael", + "Invalid directory." : "Cyfeiriadur annilys.", + "Files" : "Ffeiliau", + "Upload cancelled." : "Diddymwyd llwytho i fyny.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.", + "{new_name} already exists" : "{new_name} yn bodoli'n barod", + "Share" : "Rhannu", + "Delete" : "Dileu", + "Unshare" : "Dad-rannu", + "Delete permanently" : "Dileu'n barhaol", + "Rename" : "Ailenwi", + "Pending" : "I ddod", + "Error" : "Gwall", + "Name" : "Enw", + "Size" : "Maint", + "Modified" : "Addaswyd", + "_%n folder_::_%n folders_" : ["","","",""], + "_%n file_::_%n files_" : ["","","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","","",""], + "Your storage is full, files can not be updated or synced anymore!" : "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!", + "Your storage is almost full ({usedSpacePercent}%)" : "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)", + "File handling" : "Trafod ffeiliau", + "Maximum upload size" : "Maint mwyaf llwytho i fyny", + "max. possible: " : "mwyaf. posib:", + "Save" : "Cadw", + "New" : "Newydd", + "Text file" : "Ffeil destun", + "Folder" : "Plygell", + "From link" : "Dolen o", + "Nothing in here. Upload something!" : "Does dim byd fan hyn. Llwythwch rhywbeth i fyny!", + "Download" : "Llwytho i lawr", + "Upload too large" : "Maint llwytho i fyny'n rhy fawr", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn.", + "Files are being scanned, please wait." : "Arhoswch, mae ffeiliau'n cael eu sganio." +},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" +} \ No newline at end of file diff --git a/apps/files/l10n/cy_GB.php b/apps/files/l10n/cy_GB.php deleted file mode 100644 index bf739c875620619b27b7a9f6102b01589204ec5d..0000000000000000000000000000000000000000 --- a/apps/files/l10n/cy_GB.php +++ /dev/null @@ -1,50 +0,0 @@ - "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli", -"Could not move %s" => "Methwyd symud %s", -"File name cannot be empty." => "Does dim hawl cael enw ffeil gwag.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Enw annilys, ni chaniateir, '\\', '/', '<', '>', ':', '\"', '|', '?' na '*'.", -"No file was uploaded. Unknown error" => "Ni lwythwyd ffeil i fyny. Gwall anhysbys.", -"There is no error, the file uploaded with success" => "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML", -"The uploaded file was only partially uploaded" => "Dim ond yn rhannol y llwythwyd y ffeil i fyny", -"No file was uploaded" => "Ni lwythwyd ffeil i fyny", -"Missing a temporary folder" => "Plygell dros dro yn eisiau", -"Failed to write to disk" => "Methwyd ysgrifennu i'r ddisg", -"Not enough storage available" => "Dim digon o le storio ar gael", -"Invalid directory." => "Cyfeiriadur annilys.", -"Files" => "Ffeiliau", -"Upload cancelled." => "Diddymwyd llwytho i fyny.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.", -"{new_name} already exists" => "{new_name} yn bodoli'n barod", -"Share" => "Rhannu", -"Delete" => "Dileu", -"Unshare" => "Dad-rannu", -"Delete permanently" => "Dileu'n barhaol", -"Rename" => "Ailenwi", -"Pending" => "I ddod", -"Error" => "Gwall", -"Name" => "Enw", -"Size" => "Maint", -"Modified" => "Addaswyd", -"_%n folder_::_%n folders_" => array("","","",""), -"_%n file_::_%n files_" => array("","","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","","",""), -"Your storage is full, files can not be updated or synced anymore!" => "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!", -"Your storage is almost full ({usedSpacePercent}%)" => "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)", -"File handling" => "Trafod ffeiliau", -"Maximum upload size" => "Maint mwyaf llwytho i fyny", -"max. possible: " => "mwyaf. posib:", -"Save" => "Cadw", -"New" => "Newydd", -"Text file" => "Ffeil destun", -"Folder" => "Plygell", -"From link" => "Dolen o", -"Nothing in here. Upload something!" => "Does dim byd fan hyn. Llwythwch rhywbeth i fyny!", -"Download" => "Llwytho i lawr", -"Upload too large" => "Maint llwytho i fyny'n rhy fawr", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn.", -"Files are being scanned, please wait." => "Arhoswch, mae ffeiliau'n cael eu sganio." -); -$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"; diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js new file mode 100644 index 0000000000000000000000000000000000000000..7b636c634090b324fb1553af2a10f20b8b63e8d4 --- /dev/null +++ b/apps/files/l10n/da.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Lagerplads er ikke tilgængeligt", + "Storage invalid" : "Lagerplads er ugyldig", + "Unknown error" : "Ukendt fejl", + "Could not move %s - File with this name already exists" : "Kunne ikke flytte %s - der findes allerede en fil med dette navn", + "Could not move %s" : "Kunne ikke flytte %s", + "Permission denied" : "Adgang nægtet", + "File name cannot be empty." : "Filnavnet kan ikke stå tomt.", + "\"%s\" is an invalid file name." : "\"%s\" er et ugyldigt filnavn.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", + "The target folder has been moved or deleted." : "Mappen er blevet slettet eller fjernet.", + "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn.", + "Not a valid source" : "Ikke en gyldig kilde", + "Server is not allowed to open URLs, please check the server configuration" : "Server har ikke tilladelse til at åbne URL'er. Kontroller venligst serverens indstillinger", + "The file exceeds your quota by %s" : "Denne fil overskrider dit kvota med %s", + "Error while downloading %s to %s" : "Fejl ved hentning af %s til %s", + "Error when creating the file" : "Fejl ved oprettelse af fil", + "Folder name cannot be empty." : "Mappenavnet kan ikke være tomt.", + "Error when creating the folder" : "Fejl ved oprettelse af mappen", + "Unable to set upload directory." : "Ude af stand til at vælge upload mappe.", + "Invalid Token" : "Ugyldig Token ", + "No file was uploaded. Unknown error" : "Ingen fil blev uploadet. Ukendt fejl.", + "There is no error, the file uploaded with success" : "Der skete ingen fejl, filen blev succesfuldt uploadet", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen", + "The uploaded file was only partially uploaded" : "Filen blev kun delvist uploadet.", + "No file was uploaded" : "Ingen fil uploadet", + "Missing a temporary folder" : "Manglende midlertidig mappe.", + "Failed to write to disk" : "Fejl ved skrivning til disk.", + "Not enough storage available" : "Der er ikke nok plads til rådlighed", + "Upload failed. Could not find uploaded file" : "Upload fejlede. Kunne ikke finde den uploadede fil.", + "Upload failed. Could not get file info." : "Upload fejlede. Kunne ikke hente filinformation.", + "Invalid directory." : "Ugyldig mappe.", + "Files" : "Filer", + "All files" : "Alle filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.", + "Total file size {size1} exceeds upload limit {size2}" : "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", + "Upload cancelled." : "Upload afbrudt.", + "Could not get result from server." : "Kunne ikke hente resultat fra server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", + "URL cannot be empty" : "URL kan ikke være tom", + "{new_name} already exists" : "{new_name} eksisterer allerede", + "Could not create file" : "Kunne ikke oprette fil", + "Could not create folder" : "Kunne ikke oprette mappe", + "Error fetching URL" : "Fejl ved URL", + "Share" : "Del", + "Delete" : "Slet", + "Disconnect storage" : "Frakobl lager", + "Unshare" : "Fjern deling", + "Delete permanently" : "Slet permanent", + "Rename" : "Omdøb", + "Pending" : "Afventer", + "Error moving file." : "Fejl ved flytning af fil", + "Error moving file" : "Fejl ved flytning af fil", + "Error" : "Fejl", + "Could not rename file" : "Kunne ikke omdøbe filen", + "Error deleting file." : "Fejl ved sletnign af fil.", + "Name" : "Navn", + "Size" : "Størrelse", + "Modified" : "Ændret", + "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "You don’t have permission to upload or create files here" : "Du har ikke tilladelse til at uploade eller oprette filer her", + "_Uploading %n file_::_Uploading %n files_" : ["Uploader %n fil","Uploader %n filer"], + "\"{name}\" is an invalid file name." : "'{name}' er et ugyldigt filnavn.", + "Your storage is full, files can not be updated or synced anymore!" : "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!", + "Your storage is almost full ({usedSpacePercent}%)" : "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ", + "{dirs} and {files}" : "{dirs} og {files}", + "%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet", + "%s could not be renamed" : "%s kunne ikke omdøbes", + "Upload (max. %s)" : "Upload (max. %s)", + "File handling" : "Filhåndtering", + "Maximum upload size" : "Maksimal upload-størrelse", + "max. possible: " : "max. mulige: ", + "Save" : "Gem", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Brug denne adresse for at tilgå dine filer via WebDAV", + "New" : "Ny", + "New text file" : "Ny tekstfil", + "Text file" : "Tekstfil", + "New folder" : "Ny Mappe", + "Folder" : "Mappe", + "From link" : "Fra link", + "Nothing in here. Upload something!" : "Her er tomt. Upload noget!", + "Download" : "Download", + "Upload too large" : "Upload er for stor", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.", + "Files are being scanned, please wait." : "Filerne bliver indlæst, vent venligst.", + "Currently scanning" : "Indlæser" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json new file mode 100644 index 0000000000000000000000000000000000000000..81b658bef2ee154ffb0ecce68d69ad52ca38c9f6 --- /dev/null +++ b/apps/files/l10n/da.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Lagerplads er ikke tilgængeligt", + "Storage invalid" : "Lagerplads er ugyldig", + "Unknown error" : "Ukendt fejl", + "Could not move %s - File with this name already exists" : "Kunne ikke flytte %s - der findes allerede en fil med dette navn", + "Could not move %s" : "Kunne ikke flytte %s", + "Permission denied" : "Adgang nægtet", + "File name cannot be empty." : "Filnavnet kan ikke stå tomt.", + "\"%s\" is an invalid file name." : "\"%s\" er et ugyldigt filnavn.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", + "The target folder has been moved or deleted." : "Mappen er blevet slettet eller fjernet.", + "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn.", + "Not a valid source" : "Ikke en gyldig kilde", + "Server is not allowed to open URLs, please check the server configuration" : "Server har ikke tilladelse til at åbne URL'er. Kontroller venligst serverens indstillinger", + "The file exceeds your quota by %s" : "Denne fil overskrider dit kvota med %s", + "Error while downloading %s to %s" : "Fejl ved hentning af %s til %s", + "Error when creating the file" : "Fejl ved oprettelse af fil", + "Folder name cannot be empty." : "Mappenavnet kan ikke være tomt.", + "Error when creating the folder" : "Fejl ved oprettelse af mappen", + "Unable to set upload directory." : "Ude af stand til at vælge upload mappe.", + "Invalid Token" : "Ugyldig Token ", + "No file was uploaded. Unknown error" : "Ingen fil blev uploadet. Ukendt fejl.", + "There is no error, the file uploaded with success" : "Der skete ingen fejl, filen blev succesfuldt uploadet", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen", + "The uploaded file was only partially uploaded" : "Filen blev kun delvist uploadet.", + "No file was uploaded" : "Ingen fil uploadet", + "Missing a temporary folder" : "Manglende midlertidig mappe.", + "Failed to write to disk" : "Fejl ved skrivning til disk.", + "Not enough storage available" : "Der er ikke nok plads til rådlighed", + "Upload failed. Could not find uploaded file" : "Upload fejlede. Kunne ikke finde den uploadede fil.", + "Upload failed. Could not get file info." : "Upload fejlede. Kunne ikke hente filinformation.", + "Invalid directory." : "Ugyldig mappe.", + "Files" : "Filer", + "All files" : "Alle filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.", + "Total file size {size1} exceeds upload limit {size2}" : "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", + "Upload cancelled." : "Upload afbrudt.", + "Could not get result from server." : "Kunne ikke hente resultat fra server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", + "URL cannot be empty" : "URL kan ikke være tom", + "{new_name} already exists" : "{new_name} eksisterer allerede", + "Could not create file" : "Kunne ikke oprette fil", + "Could not create folder" : "Kunne ikke oprette mappe", + "Error fetching URL" : "Fejl ved URL", + "Share" : "Del", + "Delete" : "Slet", + "Disconnect storage" : "Frakobl lager", + "Unshare" : "Fjern deling", + "Delete permanently" : "Slet permanent", + "Rename" : "Omdøb", + "Pending" : "Afventer", + "Error moving file." : "Fejl ved flytning af fil", + "Error moving file" : "Fejl ved flytning af fil", + "Error" : "Fejl", + "Could not rename file" : "Kunne ikke omdøbe filen", + "Error deleting file." : "Fejl ved sletnign af fil.", + "Name" : "Navn", + "Size" : "Størrelse", + "Modified" : "Ændret", + "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "You don’t have permission to upload or create files here" : "Du har ikke tilladelse til at uploade eller oprette filer her", + "_Uploading %n file_::_Uploading %n files_" : ["Uploader %n fil","Uploader %n filer"], + "\"{name}\" is an invalid file name." : "'{name}' er et ugyldigt filnavn.", + "Your storage is full, files can not be updated or synced anymore!" : "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!", + "Your storage is almost full ({usedSpacePercent}%)" : "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ", + "{dirs} and {files}" : "{dirs} og {files}", + "%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet", + "%s could not be renamed" : "%s kunne ikke omdøbes", + "Upload (max. %s)" : "Upload (max. %s)", + "File handling" : "Filhåndtering", + "Maximum upload size" : "Maksimal upload-størrelse", + "max. possible: " : "max. mulige: ", + "Save" : "Gem", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Brug denne adresse for at tilgå dine filer via WebDAV", + "New" : "Ny", + "New text file" : "Ny tekstfil", + "Text file" : "Tekstfil", + "New folder" : "Ny Mappe", + "Folder" : "Mappe", + "From link" : "Fra link", + "Nothing in here. Upload something!" : "Her er tomt. Upload noget!", + "Download" : "Download", + "Upload too large" : "Upload er for stor", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.", + "Files are being scanned, please wait." : "Filerne bliver indlæst, vent venligst.", + "Currently scanning" : "Indlæser" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php deleted file mode 100644 index ca2b16059dada8e080a9af28d33cd525326fb94f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/da.php +++ /dev/null @@ -1,96 +0,0 @@ - "Lagerplads er ikke tilgængeligt", -"Storage invalid" => "Lagerplads er ugyldig", -"Unknown error" => "Ukendt fejl", -"Could not move %s - File with this name already exists" => "Kunne ikke flytte %s - der findes allerede en fil med dette navn", -"Could not move %s" => "Kunne ikke flytte %s", -"Permission denied" => "Adgang nægtet", -"File name cannot be empty." => "Filnavnet kan ikke stå tomt.", -"\"%s\" is an invalid file name." => "\"%s\" er et ugyldigt filnavn.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", -"The target folder has been moved or deleted." => "Mappen er blevet slettet eller fjernet.", -"The name %s is already used in the folder %s. Please choose a different name." => "Navnet %s er allerede i brug i mappen %s. Vælg venligst et andet navn.", -"Not a valid source" => "Ikke en gyldig kilde", -"Server is not allowed to open URLs, please check the server configuration" => "Server har ikke tilladelse til at åbne URL'er. Kontroller venligst serverens indstillinger", -"The file exceeds your quota by %s" => "Denne fil overskrider dit kvota med %s", -"Error while downloading %s to %s" => "Fejl ved hentning af %s til %s", -"Error when creating the file" => "Fejl ved oprettelse af fil", -"Folder name cannot be empty." => "Mappenavnet kan ikke være tomt.", -"Error when creating the folder" => "Fejl ved oprettelse af mappen", -"Unable to set upload directory." => "Ude af stand til at vælge upload mappe.", -"Invalid Token" => "Ugyldig Token ", -"No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.", -"There is no error, the file uploaded with success" => "Der skete ingen fejl, filen blev succesfuldt uploadet", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen", -"The uploaded file was only partially uploaded" => "Filen blev kun delvist uploadet.", -"No file was uploaded" => "Ingen fil uploadet", -"Missing a temporary folder" => "Manglende midlertidig mappe.", -"Failed to write to disk" => "Fejl ved skrivning til disk.", -"Not enough storage available" => "Der er ikke nok plads til rådlighed", -"Upload failed. Could not find uploaded file" => "Upload fejlede. Kunne ikke finde den uploadede fil.", -"Upload failed. Could not get file info." => "Upload fejlede. Kunne ikke hente filinformation.", -"Invalid directory." => "Ugyldig mappe.", -"Files" => "Filer", -"All files" => "Alle filer", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.", -"Total file size {size1} exceeds upload limit {size2}" => "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", -"Upload cancelled." => "Upload afbrudt.", -"Could not get result from server." => "Kunne ikke hente resultat fra server.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", -"URL cannot be empty" => "URL kan ikke være tom", -"{new_name} already exists" => "{new_name} eksisterer allerede", -"Could not create file" => "Kunne ikke oprette fil", -"Could not create folder" => "Kunne ikke oprette mappe", -"Error fetching URL" => "Fejl ved URL", -"Share" => "Del", -"Delete" => "Slet", -"Disconnect storage" => "Frakobl lager", -"Unshare" => "Fjern deling", -"Delete permanently" => "Slet permanent", -"Rename" => "Omdøb", -"Pending" => "Afventer", -"Error moving file." => "Fejl ved flytning af fil", -"Error moving file" => "Fejl ved flytning af fil", -"Error" => "Fejl", -"Could not rename file" => "Kunne ikke omdøbe filen", -"Error deleting file." => "Fejl ved sletnign af fil.", -"Name" => "Navn", -"Size" => "Størrelse", -"Modified" => "Ændret", -"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"), -"_%n file_::_%n files_" => array("%n fil","%n filer"), -"You don’t have permission to upload or create files here" => "Du har ikke tilladelse til at uploade eller oprette filer her", -"_Uploading %n file_::_Uploading %n files_" => array("Uploader %n fil","Uploader %n filer"), -"\"{name}\" is an invalid file name." => "'{name}' er et ugyldigt filnavn.", -"Your storage is full, files can not be updated or synced anymore!" => "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!", -"Your storage is almost full ({usedSpacePercent}%)" => "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Krypteringen blev deaktiveret, men dine filer er stadig krypteret. Gå venligst til dine personlige indstillinger for at dekryptere dine filer. ", -"{dirs} and {files}" => "{dirs} og {files}", -"%s could not be renamed as it has been deleted" => "%s kunne ikke omdøbes, da den er blevet slettet", -"%s could not be renamed" => "%s kunne ikke omdøbes", -"Upload (max. %s)" => "Upload (max. %s)", -"File handling" => "Filhåndtering", -"Maximum upload size" => "Maksimal upload-størrelse", -"max. possible: " => "max. mulige: ", -"Save" => "Gem", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Brug denne adresse for at tilgå dine filer via WebDAV", -"New" => "Ny", -"New text file" => "Ny tekstfil", -"Text file" => "Tekstfil", -"New folder" => "Ny Mappe", -"Folder" => "Mappe", -"From link" => "Fra link", -"Nothing in here. Upload something!" => "Her er tomt. Upload noget!", -"Download" => "Download", -"Upload too large" => "Upload er for stor", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.", -"Files are being scanned, please wait." => "Filerne bliver indlæst, vent venligst.", -"Currently scanning" => "Indlæser" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js new file mode 100644 index 0000000000000000000000000000000000000000..b4ffa90c89beeedc0572a58a2f92b0f795aca0a2 --- /dev/null +++ b/apps/files/l10n/de.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Speicher nicht verfügbar", + "Storage invalid" : "Speicher ungültig", + "Unknown error" : "Unbekannter Fehler", + "Could not move %s - File with this name already exists" : "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits", + "Could not move %s" : "Konnte %s nicht verschieben", + "Permission denied" : "Zugriff verweigert", + "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", + "\"%s\" is an invalid file name." : "»%s« ist kein gültiger Dateiname.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", + "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.", + "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen anderen Namen.", + "Not a valid source" : "Keine gültige Quelle", + "Server is not allowed to open URLs, please check the server configuration" : "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen", + "The file exceeds your quota by %s" : "Die Datei überschreitet Dein Limit um %s", + "Error while downloading %s to %s" : "Fehler beim Herunterladen von %s nach %s", + "Error when creating the file" : "Fehler beim Erstellen der Datei", + "Folder name cannot be empty." : "Der Ordner-Name darf nicht leer sein.", + "Error when creating the folder" : "Fehler beim Erstellen des Ordners", + "Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.", + "Invalid Token" : "Ungültiges Merkmal", + "No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Keine Datei konnte übertragen werden.", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte", + "Not enough storage available" : "Nicht genug Speicher vorhanden.", + "Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden.", + "Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden.", + "Invalid directory." : "Ungültiges Verzeichnis.", + "Files" : "Dateien", + "All files" : "Alle Dateien", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist", + "Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, du möchtest {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", + "Upload cancelled." : "Upload abgebrochen.", + "Could not get result from server." : "Ergebnis konnte nicht vom Server abgerufen werden.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.", + "URL cannot be empty" : "Die URL darf nicht leer sein", + "{new_name} already exists" : "{new_name} existiert bereits", + "Could not create file" : "Die Datei konnte nicht erstellt werden", + "Could not create folder" : "Der Ordner konnte nicht erstellt werden", + "Error fetching URL" : "Fehler beim Abrufen der URL", + "Share" : "Teilen", + "Delete" : "Löschen", + "Disconnect storage" : "Speicher trennen", + "Unshare" : "Freigabe aufheben", + "Delete permanently" : "Endgültig löschen", + "Rename" : "Umbenennen", + "Pending" : "Ausstehend", + "Error moving file." : "Fehler beim Verschieben der Datei.", + "Error moving file" : "Fehler beim Verschieben der Datei", + "Error" : "Fehler", + "Could not rename file" : "Die Datei konnte nicht umbenannt werden", + "Error deleting file." : "Fehler beim Löschen der Datei.", + "Name" : "Name", + "Size" : "Größe", + "Modified" : "Geändert", + "_%n folder_::_%n folders_" : ["%n Ordner","%n Ordner"], + "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], + "You don’t have permission to upload or create files here" : "Du besitzt hier keine Berechtigung, um Dateien hochzuladen oder zu erstellen", + "_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hochgeladen","%n Dateien werden hochgeladen"], + "\"{name}\" is an invalid file name." : "»{name}« ist kein gültiger Dateiname.", + "Your storage is full, files can not be updated or synced anymore!" : "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", + "Your storage is almost full ({usedSpacePercent}%)" : "Dein Speicher ist fast voll ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.", + "{dirs} and {files}" : "{dirs} und {files}", + "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde", + "%s could not be renamed" : "%s konnte nicht umbenannt werden", + "Upload (max. %s)" : "Hochladen (max. %s)", + "File handling" : "Dateibehandlung", + "Maximum upload size" : "Maximale Upload-Größe", + "max. possible: " : "maximal möglich:", + "Save" : "Speichern", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf Ihre Dateien zuzugreifen", + "New" : "Neu", + "New text file" : "Neue Textdatei", + "Text file" : "Textdatei", + "New folder" : "Neuer Ordner", + "Folder" : "Ordner", + "From link" : "Von einem Link", + "Nothing in here. Upload something!" : "Alles leer. Lade etwas hoch!", + "Download" : "Herunterladen", + "Upload too large" : "Der Upload ist zu groß", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", + "Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.", + "Currently scanning" : "Durchsuchen läuft" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..600a60ddfd7f3d22aa0b3cc28dadf1169d986783 --- /dev/null +++ b/apps/files/l10n/de.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Speicher nicht verfügbar", + "Storage invalid" : "Speicher ungültig", + "Unknown error" : "Unbekannter Fehler", + "Could not move %s - File with this name already exists" : "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits", + "Could not move %s" : "Konnte %s nicht verschieben", + "Permission denied" : "Zugriff verweigert", + "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", + "\"%s\" is an invalid file name." : "»%s« ist kein gültiger Dateiname.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", + "The target folder has been moved or deleted." : "Der Zielordner wurde verschoben oder gelöscht.", + "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen anderen Namen.", + "Not a valid source" : "Keine gültige Quelle", + "Server is not allowed to open URLs, please check the server configuration" : "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen", + "The file exceeds your quota by %s" : "Die Datei überschreitet Dein Limit um %s", + "Error while downloading %s to %s" : "Fehler beim Herunterladen von %s nach %s", + "Error when creating the file" : "Fehler beim Erstellen der Datei", + "Folder name cannot be empty." : "Der Ordner-Name darf nicht leer sein.", + "Error when creating the folder" : "Fehler beim Erstellen des Ordners", + "Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.", + "Invalid Token" : "Ungültiges Merkmal", + "No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Keine Datei konnte übertragen werden.", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte", + "Not enough storage available" : "Nicht genug Speicher vorhanden.", + "Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden.", + "Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden.", + "Invalid directory." : "Ungültiges Verzeichnis.", + "Files" : "Dateien", + "All files" : "Alle Dateien", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist", + "Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, du möchtest {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", + "Upload cancelled." : "Upload abgebrochen.", + "Could not get result from server." : "Ergebnis konnte nicht vom Server abgerufen werden.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.", + "URL cannot be empty" : "Die URL darf nicht leer sein", + "{new_name} already exists" : "{new_name} existiert bereits", + "Could not create file" : "Die Datei konnte nicht erstellt werden", + "Could not create folder" : "Der Ordner konnte nicht erstellt werden", + "Error fetching URL" : "Fehler beim Abrufen der URL", + "Share" : "Teilen", + "Delete" : "Löschen", + "Disconnect storage" : "Speicher trennen", + "Unshare" : "Freigabe aufheben", + "Delete permanently" : "Endgültig löschen", + "Rename" : "Umbenennen", + "Pending" : "Ausstehend", + "Error moving file." : "Fehler beim Verschieben der Datei.", + "Error moving file" : "Fehler beim Verschieben der Datei", + "Error" : "Fehler", + "Could not rename file" : "Die Datei konnte nicht umbenannt werden", + "Error deleting file." : "Fehler beim Löschen der Datei.", + "Name" : "Name", + "Size" : "Größe", + "Modified" : "Geändert", + "_%n folder_::_%n folders_" : ["%n Ordner","%n Ordner"], + "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], + "You don’t have permission to upload or create files here" : "Du besitzt hier keine Berechtigung, um Dateien hochzuladen oder zu erstellen", + "_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hochgeladen","%n Dateien werden hochgeladen"], + "\"{name}\" is an invalid file name." : "»{name}« ist kein gültiger Dateiname.", + "Your storage is full, files can not be updated or synced anymore!" : "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", + "Your storage is almost full ({usedSpacePercent}%)" : "Dein Speicher ist fast voll ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.", + "{dirs} and {files}" : "{dirs} und {files}", + "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde", + "%s could not be renamed" : "%s konnte nicht umbenannt werden", + "Upload (max. %s)" : "Hochladen (max. %s)", + "File handling" : "Dateibehandlung", + "Maximum upload size" : "Maximale Upload-Größe", + "max. possible: " : "maximal möglich:", + "Save" : "Speichern", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf Ihre Dateien zuzugreifen", + "New" : "Neu", + "New text file" : "Neue Textdatei", + "Text file" : "Textdatei", + "New folder" : "Neuer Ordner", + "Folder" : "Ordner", + "From link" : "Von einem Link", + "Nothing in here. Upload something!" : "Alles leer. Lade etwas hoch!", + "Download" : "Herunterladen", + "Upload too large" : "Der Upload ist zu groß", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", + "Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.", + "Currently scanning" : "Durchsuchen läuft" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php deleted file mode 100644 index c8191f82b0c61180b6840b78d4c071f2062fdb3e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/de.php +++ /dev/null @@ -1,96 +0,0 @@ - "Speicher nicht verfügbar", -"Storage invalid" => "Speicher ungültig", -"Unknown error" => "Unbekannter Fehler", -"Could not move %s - File with this name already exists" => "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits", -"Could not move %s" => "Konnte %s nicht verschieben", -"Permission denied" => "Zugriff verweigert", -"File name cannot be empty." => "Der Dateiname darf nicht leer sein.", -"\"%s\" is an invalid file name." => "»%s« ist kein gültiger Dateiname.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", -"The target folder has been moved or deleted." => "Der Zielordner wurde verschoben oder gelöscht.", -"The name %s is already used in the folder %s. Please choose a different name." => "Der Name %s wird bereits im Ordner %s benutzt. Bitte wähle einen anderen Namen.", -"Not a valid source" => "Keine gültige Quelle", -"Server is not allowed to open URLs, please check the server configuration" => "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen", -"The file exceeds your quota by %s" => "Die Datei überschreitet Dein Limit um %s", -"Error while downloading %s to %s" => "Fehler beim Herunterladen von %s nach %s", -"Error when creating the file" => "Fehler beim Erstellen der Datei", -"Folder name cannot be empty." => "Der Ordner-Name darf nicht leer sein.", -"Error when creating the folder" => "Fehler beim Erstellen des Ordners", -"Unable to set upload directory." => "Das Upload-Verzeichnis konnte nicht gesetzt werden.", -"Invalid Token" => "Ungültiges Merkmal", -"No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", -"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", -"The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", -"No file was uploaded" => "Keine Datei konnte übertragen werden.", -"Missing a temporary folder" => "Kein temporärer Ordner vorhanden", -"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough storage available" => "Nicht genug Speicher vorhanden.", -"Upload failed. Could not find uploaded file" => "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden.", -"Upload failed. Could not get file info." => "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden.", -"Invalid directory." => "Ungültiges Verzeichnis.", -"Files" => "Dateien", -"All files" => "Alle Dateien", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist", -"Total file size {size1} exceeds upload limit {size2}" => "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nicht genügend freier Speicherplatz, du möchtest {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", -"Upload cancelled." => "Upload abgebrochen.", -"Could not get result from server." => "Ergebnis konnte nicht vom Server abgerufen werden.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.", -"URL cannot be empty" => "Die URL darf nicht leer sein", -"{new_name} already exists" => "{new_name} existiert bereits", -"Could not create file" => "Die Datei konnte nicht erstellt werden", -"Could not create folder" => "Der Ordner konnte nicht erstellt werden", -"Error fetching URL" => "Fehler beim Abrufen der URL", -"Share" => "Teilen", -"Delete" => "Löschen", -"Disconnect storage" => "Speicher trennen", -"Unshare" => "Freigabe aufheben", -"Delete permanently" => "Endgültig löschen", -"Rename" => "Umbenennen", -"Pending" => "Ausstehend", -"Error moving file." => "Fehler beim Verschieben der Datei.", -"Error moving file" => "Fehler beim Verschieben der Datei", -"Error" => "Fehler", -"Could not rename file" => "Die Datei konnte nicht umbenannt werden", -"Error deleting file." => "Fehler beim Löschen der Datei.", -"Name" => "Name", -"Size" => "Größe", -"Modified" => "Geändert", -"_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"), -"_%n file_::_%n files_" => array("%n Datei","%n Dateien"), -"You don’t have permission to upload or create files here" => "Du besitzt hier keine Berechtigung, um Dateien hochzuladen oder zu erstellen", -"_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hochgeladen","%n Dateien werden hochgeladen"), -"\"{name}\" is an invalid file name." => "»{name}« ist kein gültiger Dateiname.", -"Your storage is full, files can not be updated or synced anymore!" => "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", -"Your storage is almost full ({usedSpacePercent}%)" => "Dein Speicher ist fast voll ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Die Verschlüsselung wurde deaktiviert, jedoch sind Deine Dateien nach wie vor verschlüsselt. Bitte gehe zu Deinen persönlichen Einstellungen, um Deine Dateien zu entschlüsseln.", -"{dirs} and {files}" => "{dirs} und {files}", -"%s could not be renamed as it has been deleted" => "%s konnte nicht umbenannt werden, da es gelöscht wurde", -"%s could not be renamed" => "%s konnte nicht umbenannt werden", -"Upload (max. %s)" => "Hochladen (max. %s)", -"File handling" => "Dateibehandlung", -"Maximum upload size" => "Maximale Upload-Größe", -"max. possible: " => "maximal möglich:", -"Save" => "Speichern", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Diese Adresse benutzen, um über WebDAV auf Ihre Dateien zuzugreifen", -"New" => "Neu", -"New text file" => "Neue Textdatei", -"Text file" => "Textdatei", -"New folder" => "Neuer Ordner", -"Folder" => "Ordner", -"From link" => "Von einem Link", -"Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!", -"Download" => "Herunterladen", -"Upload too large" => "Der Upload ist zu groß", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", -"Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", -"Currently scanning" => "Durchsuchen läuft" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js new file mode 100644 index 0000000000000000000000000000000000000000..00e929683cc4f397190bcb95f4ace5d43dec0737 --- /dev/null +++ b/apps/files/l10n/de_AT.js @@ -0,0 +1,15 @@ +OC.L10N.register( + "files", + { + "Files" : "Dateien", + "Share" : "Freigeben", + "Delete" : "Löschen", + "Unshare" : "Teilung zurücknehmen", + "Error" : "Fehler", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Speichern", + "Download" : "Herunterladen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json new file mode 100644 index 0000000000000000000000000000000000000000..190e5c1d3b110e8969f6b2fc9baa8d45aeb1daa2 --- /dev/null +++ b/apps/files/l10n/de_AT.json @@ -0,0 +1,13 @@ +{ "translations": { + "Files" : "Dateien", + "Share" : "Freigeben", + "Delete" : "Löschen", + "Unshare" : "Teilung zurücknehmen", + "Error" : "Fehler", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Speichern", + "Download" : "Herunterladen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/de_AT.php b/apps/files/l10n/de_AT.php deleted file mode 100644 index 5f9459c2f07da0c8716dc5062ee8591c1bc5097e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/de_AT.php +++ /dev/null @@ -1,14 +0,0 @@ - "Dateien", -"Share" => "Freigeben", -"Delete" => "Löschen", -"Unshare" => "Teilung zurücknehmen", -"Error" => "Fehler", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "Speichern", -"Download" => "Herunterladen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/de_CH.js b/apps/files/l10n/de_CH.js new file mode 100644 index 0000000000000000000000000000000000000000..05cec407e0bc6c24faf4f887281086dcba08841b --- /dev/null +++ b/apps/files/l10n/de_CH.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Unbekannter Fehler", + "Could not move %s - File with this name already exists" : "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", + "Could not move %s" : "Konnte %s nicht verschieben", + "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ungültiger Name, «\\», «/», «<», «>», «:», «\"», «|», «?» und «*» sind nicht zulässig.", + "Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.", + "Invalid Token" : "Ungültiges Merkmal", + "No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist grösser, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Keine Datei konnte übertragen werden.", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte", + "Not enough storage available" : "Nicht genug Speicher vorhanden.", + "Invalid directory." : "Ungültiges Verzeichnis.", + "Files" : "Dateien", + "Upload cancelled." : "Upload abgebrochen.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", + "{new_name} already exists" : "{new_name} existiert bereits", + "Share" : "Teilen", + "Delete" : "Löschen", + "Unshare" : "Teilung aufheben", + "Delete permanently" : "Endgültig löschen", + "Rename" : "Umbenennen", + "Pending" : "Ausstehend", + "Error" : "Fehler", + "Name" : "Name", + "Size" : "Grösse", + "Modified" : "Geändert", + "_%n folder_::_%n folders_" : ["","%n Ordner"], + "_%n file_::_%n files_" : ["","%n Dateien"], + "_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hochgeladen","%n Dateien werden hochgeladen"], + "Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ihr Speicher ist fast voll ({usedSpacePercent}%)", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", + "%s could not be renamed" : "%s konnte nicht umbenannt werden", + "File handling" : "Dateibehandlung", + "Maximum upload size" : "Maximale Upload-Grösse", + "max. possible: " : "maximal möglich:", + "Save" : "Speichern", + "WebDAV" : "WebDAV", + "New" : "Neu", + "Text file" : "Textdatei", + "New folder" : "Neues Verzeichnis", + "Folder" : "Ordner", + "From link" : "Von einem Link", + "Nothing in here. Upload something!" : "Alles leer. Laden Sie etwas hoch!", + "Download" : "Herunterladen", + "Upload too large" : "Der Upload ist zu gross", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgrösse für Uploads auf diesem Server.", + "Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/de_CH.json b/apps/files/l10n/de_CH.json new file mode 100644 index 0000000000000000000000000000000000000000..9ef3585f72230cb2ebd12d8ccb1228732c080bce --- /dev/null +++ b/apps/files/l10n/de_CH.json @@ -0,0 +1,56 @@ +{ "translations": { + "Unknown error" : "Unbekannter Fehler", + "Could not move %s - File with this name already exists" : "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", + "Could not move %s" : "Konnte %s nicht verschieben", + "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ungültiger Name, «\\», «/», «<», «>», «:», «\"», «|», «?» und «*» sind nicht zulässig.", + "Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.", + "Invalid Token" : "Ungültiges Merkmal", + "No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist grösser, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Keine Datei konnte übertragen werden.", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte", + "Not enough storage available" : "Nicht genug Speicher vorhanden.", + "Invalid directory." : "Ungültiges Verzeichnis.", + "Files" : "Dateien", + "Upload cancelled." : "Upload abgebrochen.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", + "{new_name} already exists" : "{new_name} existiert bereits", + "Share" : "Teilen", + "Delete" : "Löschen", + "Unshare" : "Teilung aufheben", + "Delete permanently" : "Endgültig löschen", + "Rename" : "Umbenennen", + "Pending" : "Ausstehend", + "Error" : "Fehler", + "Name" : "Name", + "Size" : "Grösse", + "Modified" : "Geändert", + "_%n folder_::_%n folders_" : ["","%n Ordner"], + "_%n file_::_%n files_" : ["","%n Dateien"], + "_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hochgeladen","%n Dateien werden hochgeladen"], + "Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ihr Speicher ist fast voll ({usedSpacePercent}%)", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", + "%s could not be renamed" : "%s konnte nicht umbenannt werden", + "File handling" : "Dateibehandlung", + "Maximum upload size" : "Maximale Upload-Grösse", + "max. possible: " : "maximal möglich:", + "Save" : "Speichern", + "WebDAV" : "WebDAV", + "New" : "Neu", + "Text file" : "Textdatei", + "New folder" : "Neues Verzeichnis", + "Folder" : "Ordner", + "From link" : "Von einem Link", + "Nothing in here. Upload something!" : "Alles leer. Laden Sie etwas hoch!", + "Download" : "Herunterladen", + "Upload too large" : "Der Upload ist zu gross", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgrösse für Uploads auf diesem Server.", + "Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/de_CH.php b/apps/files/l10n/de_CH.php deleted file mode 100644 index 1fb8e7e61239c90e68720d9610e0431a60b881c6..0000000000000000000000000000000000000000 --- a/apps/files/l10n/de_CH.php +++ /dev/null @@ -1,57 +0,0 @@ - "Unbekannter Fehler", -"Could not move %s - File with this name already exists" => "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", -"Could not move %s" => "Konnte %s nicht verschieben", -"File name cannot be empty." => "Der Dateiname darf nicht leer sein.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, «\\», «/», «<», «>», «:», «\"», «|», «?» und «*» sind nicht zulässig.", -"Unable to set upload directory." => "Das Upload-Verzeichnis konnte nicht gesetzt werden.", -"Invalid Token" => "Ungültiges Merkmal", -"No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", -"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist grösser, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", -"The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", -"No file was uploaded" => "Keine Datei konnte übertragen werden.", -"Missing a temporary folder" => "Kein temporärer Ordner vorhanden", -"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough storage available" => "Nicht genug Speicher vorhanden.", -"Invalid directory." => "Ungültiges Verzeichnis.", -"Files" => "Dateien", -"Upload cancelled." => "Upload abgebrochen.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", -"{new_name} already exists" => "{new_name} existiert bereits", -"Share" => "Teilen", -"Delete" => "Löschen", -"Unshare" => "Teilung aufheben", -"Delete permanently" => "Endgültig löschen", -"Rename" => "Umbenennen", -"Pending" => "Ausstehend", -"Error" => "Fehler", -"Name" => "Name", -"Size" => "Grösse", -"Modified" => "Geändert", -"_%n folder_::_%n folders_" => array("","%n Ordner"), -"_%n file_::_%n files_" => array("","%n Dateien"), -"_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hochgeladen","%n Dateien werden hochgeladen"), -"Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", -"Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicher ist fast voll ({usedSpacePercent}%)", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", -"%s could not be renamed" => "%s konnte nicht umbenannt werden", -"File handling" => "Dateibehandlung", -"Maximum upload size" => "Maximale Upload-Grösse", -"max. possible: " => "maximal möglich:", -"Save" => "Speichern", -"WebDAV" => "WebDAV", -"New" => "Neu", -"Text file" => "Textdatei", -"New folder" => "Neues Verzeichnis", -"Folder" => "Ordner", -"From link" => "Von einem Link", -"Nothing in here. Upload something!" => "Alles leer. Laden Sie etwas hoch!", -"Download" => "Herunterladen", -"Upload too large" => "Der Upload ist zu gross", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgrösse für Uploads auf diesem Server.", -"Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js new file mode 100644 index 0000000000000000000000000000000000000000..3e64aa3c990225b4606e85d46ed3f170f3ec80ba --- /dev/null +++ b/apps/files/l10n/de_DE.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Speicher nicht verfügbar", + "Storage invalid" : "Speicher ungültig", + "Unknown error" : "Unbekannter Fehler", + "Could not move %s - File with this name already exists" : "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", + "Could not move %s" : "Konnte %s nicht verschieben", + "Permission denied" : "Zugriff verweigert", + "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", + "\"%s\" is an invalid file name." : "\"%s\" ist kein gültiger Dateiname.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", + "The target folder has been moved or deleted." : "Der Ziel-Ordner wurde verschoben oder gelöscht.", + "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen anderen Namen.", + "Not a valid source" : "Keine gültige Quelle", + "Server is not allowed to open URLs, please check the server configuration" : "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen", + "The file exceeds your quota by %s" : "Die Datei überschreitet Ihr Limit um %s", + "Error while downloading %s to %s" : "Fehler beim Herunterladen von %s nach %s", + "Error when creating the file" : "Fehler beim Erstellen der Datei", + "Folder name cannot be empty." : "Der Ordner-Name darf nicht leer sein.", + "Error when creating the folder" : "Fehler beim Erstellen des Ordners", + "Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.", + "Invalid Token" : "Ungültiges Merkmal", + "No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Keine Datei konnte übertragen werden.", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte", + "Not enough storage available" : "Nicht genug Speicher vorhanden.", + "Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden.", + "Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden.", + "Invalid directory." : "Ungültiges Verzeichnis.", + "Files" : "Dateien", + "All files" : "Alle Dateien", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist", + "Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", + "Upload cancelled." : "Upload abgebrochen.", + "Could not get result from server." : "Ergebnis konnte nicht vom Server abgerufen werden.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", + "URL cannot be empty" : "Die URL darf nicht leer sein", + "{new_name} already exists" : "{new_name} existiert bereits", + "Could not create file" : "Die Datei konnte nicht erstellt werden", + "Could not create folder" : "Der Ordner konnte nicht erstellt werden", + "Error fetching URL" : "Fehler beim Abrufen der URL", + "Share" : "Teilen", + "Delete" : "Löschen", + "Disconnect storage" : "Speicher trennen", + "Unshare" : "Freigabe aufheben", + "Delete permanently" : "Endgültig löschen", + "Rename" : "Umbenennen", + "Pending" : "Ausstehend", + "Error moving file." : "Fehler beim Verschieben der Datei.", + "Error moving file" : "Fehler beim Verschieben der Datei", + "Error" : "Fehler", + "Could not rename file" : "Die Datei konnte nicht umbenannt werden", + "Error deleting file." : "Fehler beim Löschen der Datei.", + "Name" : "Name", + "Size" : "Größe", + "Modified" : "Geändert", + "_%n folder_::_%n folders_" : ["%n Ordner","%n Ordner"], + "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], + "You don’t have permission to upload or create files here" : "Sie besitzen hier keine Berechtigung Dateien hochzuladen oder zu erstellen", + "_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hoch geladen","%n Dateien werden hoch geladen"], + "\"{name}\" is an invalid file name." : "»{name}« ist kein gültiger Dateiname.", + "Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ihr Speicher ist fast voll ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselungs-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden Sie sich nochmals ab und wieder an.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", + "{dirs} and {files}" : "{dirs} und {files}", + "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde", + "%s could not be renamed" : "%s konnte nicht umbenannt werden", + "Upload (max. %s)" : "Hochladen (max. %s)", + "File handling" : "Dateibehandlung", + "Maximum upload size" : "Maximale Upload-Größe", + "max. possible: " : "maximal möglich:", + "Save" : "Speichern", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf Ihre Dateien zuzugreifen", + "New" : "Neu", + "New text file" : "Neue Textdatei", + "Text file" : "Textdatei", + "New folder" : "Neuer Ordner", + "Folder" : "Ordner", + "From link" : "Von einem Link", + "Nothing in here. Upload something!" : "Alles leer. Laden Sie etwas hoch!", + "Download" : "Herunterladen", + "Upload too large" : "Der Upload ist zu groß", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", + "Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.", + "Currently scanning" : "Durchsuchen läuft" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json new file mode 100644 index 0000000000000000000000000000000000000000..df3433251c67adb158740c54afe40d6c342f425b --- /dev/null +++ b/apps/files/l10n/de_DE.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Speicher nicht verfügbar", + "Storage invalid" : "Speicher ungültig", + "Unknown error" : "Unbekannter Fehler", + "Could not move %s - File with this name already exists" : "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", + "Could not move %s" : "Konnte %s nicht verschieben", + "Permission denied" : "Zugriff verweigert", + "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", + "\"%s\" is an invalid file name." : "\"%s\" ist kein gültiger Dateiname.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", + "The target folder has been moved or deleted." : "Der Ziel-Ordner wurde verschoben oder gelöscht.", + "The name %s is already used in the folder %s. Please choose a different name." : "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen anderen Namen.", + "Not a valid source" : "Keine gültige Quelle", + "Server is not allowed to open URLs, please check the server configuration" : "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen", + "The file exceeds your quota by %s" : "Die Datei überschreitet Ihr Limit um %s", + "Error while downloading %s to %s" : "Fehler beim Herunterladen von %s nach %s", + "Error when creating the file" : "Fehler beim Erstellen der Datei", + "Folder name cannot be empty." : "Der Ordner-Name darf nicht leer sein.", + "Error when creating the folder" : "Fehler beim Erstellen des Ordners", + "Unable to set upload directory." : "Das Upload-Verzeichnis konnte nicht gesetzt werden.", + "Invalid Token" : "Ungültiges Merkmal", + "No file was uploaded. Unknown error" : "Keine Datei hochgeladen. Unbekannter Fehler", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Keine Datei konnte übertragen werden.", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write to disk" : "Fehler beim Schreiben auf die Festplatte", + "Not enough storage available" : "Nicht genug Speicher vorhanden.", + "Upload failed. Could not find uploaded file" : "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden.", + "Upload failed. Could not get file info." : "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden.", + "Invalid directory." : "Ungültiges Verzeichnis.", + "Files" : "Dateien", + "All files" : "Alle Dateien", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist", + "Total file size {size1} exceeds upload limit {size2}" : "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", + "Upload cancelled." : "Upload abgebrochen.", + "Could not get result from server." : "Ergebnis konnte nicht vom Server abgerufen werden.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", + "URL cannot be empty" : "Die URL darf nicht leer sein", + "{new_name} already exists" : "{new_name} existiert bereits", + "Could not create file" : "Die Datei konnte nicht erstellt werden", + "Could not create folder" : "Der Ordner konnte nicht erstellt werden", + "Error fetching URL" : "Fehler beim Abrufen der URL", + "Share" : "Teilen", + "Delete" : "Löschen", + "Disconnect storage" : "Speicher trennen", + "Unshare" : "Freigabe aufheben", + "Delete permanently" : "Endgültig löschen", + "Rename" : "Umbenennen", + "Pending" : "Ausstehend", + "Error moving file." : "Fehler beim Verschieben der Datei.", + "Error moving file" : "Fehler beim Verschieben der Datei", + "Error" : "Fehler", + "Could not rename file" : "Die Datei konnte nicht umbenannt werden", + "Error deleting file." : "Fehler beim Löschen der Datei.", + "Name" : "Name", + "Size" : "Größe", + "Modified" : "Geändert", + "_%n folder_::_%n folders_" : ["%n Ordner","%n Ordner"], + "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], + "You don’t have permission to upload or create files here" : "Sie besitzen hier keine Berechtigung Dateien hochzuladen oder zu erstellen", + "_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hoch geladen","%n Dateien werden hoch geladen"], + "\"{name}\" is an invalid file name." : "»{name}« ist kein gültiger Dateiname.", + "Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ihr Speicher ist fast voll ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselungs-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden Sie sich nochmals ab und wieder an.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", + "{dirs} and {files}" : "{dirs} und {files}", + "%s could not be renamed as it has been deleted" : "%s konnte nicht umbenannt werden, da es gelöscht wurde", + "%s could not be renamed" : "%s konnte nicht umbenannt werden", + "Upload (max. %s)" : "Hochladen (max. %s)", + "File handling" : "Dateibehandlung", + "Maximum upload size" : "Maximale Upload-Größe", + "max. possible: " : "maximal möglich:", + "Save" : "Speichern", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf Ihre Dateien zuzugreifen", + "New" : "Neu", + "New text file" : "Neue Textdatei", + "Text file" : "Textdatei", + "New folder" : "Neuer Ordner", + "Folder" : "Ordner", + "From link" : "Von einem Link", + "Nothing in here. Upload something!" : "Alles leer. Laden Sie etwas hoch!", + "Download" : "Herunterladen", + "Upload too large" : "Der Upload ist zu groß", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", + "Files are being scanned, please wait." : "Dateien werden gescannt, bitte warten.", + "Currently scanning" : "Durchsuchen läuft" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php deleted file mode 100644 index 1b37aaa78e00d37ed50053dd6bf3f86d6811afaf..0000000000000000000000000000000000000000 --- a/apps/files/l10n/de_DE.php +++ /dev/null @@ -1,96 +0,0 @@ - "Speicher nicht verfügbar", -"Storage invalid" => "Speicher ungültig", -"Unknown error" => "Unbekannter Fehler", -"Could not move %s - File with this name already exists" => "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", -"Could not move %s" => "Konnte %s nicht verschieben", -"Permission denied" => "Zugriff verweigert", -"File name cannot be empty." => "Der Dateiname darf nicht leer sein.", -"\"%s\" is an invalid file name." => "\"%s\" ist kein gültiger Dateiname.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", -"The target folder has been moved or deleted." => "Der Ziel-Ordner wurde verschoben oder gelöscht.", -"The name %s is already used in the folder %s. Please choose a different name." => "Der Name %s wird bereits im Ordner %s benutzt. Bitte wählen Sie einen anderen Namen.", -"Not a valid source" => "Keine gültige Quelle", -"Server is not allowed to open URLs, please check the server configuration" => "Dem Server ist das Öffnen von URLs nicht erlaubt, bitte die Serverkonfiguration prüfen", -"The file exceeds your quota by %s" => "Die Datei überschreitet Ihr Limit um %s", -"Error while downloading %s to %s" => "Fehler beim Herunterladen von %s nach %s", -"Error when creating the file" => "Fehler beim Erstellen der Datei", -"Folder name cannot be empty." => "Der Ordner-Name darf nicht leer sein.", -"Error when creating the folder" => "Fehler beim Erstellen des Ordners", -"Unable to set upload directory." => "Das Upload-Verzeichnis konnte nicht gesetzt werden.", -"Invalid Token" => "Ungültiges Merkmal", -"No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", -"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", -"The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", -"No file was uploaded" => "Keine Datei konnte übertragen werden.", -"Missing a temporary folder" => "Kein temporärer Ordner vorhanden", -"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough storage available" => "Nicht genug Speicher vorhanden.", -"Upload failed. Could not find uploaded file" => "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden.", -"Upload failed. Could not get file info." => "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden.", -"Invalid directory." => "Ungültiges Verzeichnis.", -"Files" => "Dateien", -"All files" => "Alle Dateien", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist", -"Total file size {size1} exceeds upload limit {size2}" => "Die Gesamt-Größe {size1} überschreitet die Upload-Begrenzung {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", -"Upload cancelled." => "Upload abgebrochen.", -"Could not get result from server." => "Ergebnis konnte nicht vom Server abgerufen werden.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", -"URL cannot be empty" => "Die URL darf nicht leer sein", -"{new_name} already exists" => "{new_name} existiert bereits", -"Could not create file" => "Die Datei konnte nicht erstellt werden", -"Could not create folder" => "Der Ordner konnte nicht erstellt werden", -"Error fetching URL" => "Fehler beim Abrufen der URL", -"Share" => "Teilen", -"Delete" => "Löschen", -"Disconnect storage" => "Speicher trennen", -"Unshare" => "Freigabe aufheben", -"Delete permanently" => "Endgültig löschen", -"Rename" => "Umbenennen", -"Pending" => "Ausstehend", -"Error moving file." => "Fehler beim Verschieben der Datei.", -"Error moving file" => "Fehler beim Verschieben der Datei", -"Error" => "Fehler", -"Could not rename file" => "Die Datei konnte nicht umbenannt werden", -"Error deleting file." => "Fehler beim Löschen der Datei.", -"Name" => "Name", -"Size" => "Größe", -"Modified" => "Geändert", -"_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"), -"_%n file_::_%n files_" => array("%n Datei","%n Dateien"), -"You don’t have permission to upload or create files here" => "Sie besitzen hier keine Berechtigung Dateien hochzuladen oder zu erstellen", -"_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hoch geladen","%n Dateien werden hoch geladen"), -"\"{name}\" is an invalid file name." => "»{name}« ist kein gültiger Dateiname.", -"Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", -"Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicher ist fast voll ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Verschlüsselungs-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden Sie sich nochmals ab und wieder an.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.", -"{dirs} and {files}" => "{dirs} und {files}", -"%s could not be renamed as it has been deleted" => "%s konnte nicht umbenannt werden, da es gelöscht wurde", -"%s could not be renamed" => "%s konnte nicht umbenannt werden", -"Upload (max. %s)" => "Hochladen (max. %s)", -"File handling" => "Dateibehandlung", -"Maximum upload size" => "Maximale Upload-Größe", -"max. possible: " => "maximal möglich:", -"Save" => "Speichern", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Diese Adresse benutzen, um über WebDAV auf Ihre Dateien zuzugreifen", -"New" => "Neu", -"New text file" => "Neue Textdatei", -"Text file" => "Textdatei", -"New folder" => "Neuer Ordner", -"Folder" => "Ordner", -"From link" => "Von einem Link", -"Nothing in here. Upload something!" => "Alles leer. Laden Sie etwas hoch!", -"Download" => "Herunterladen", -"Upload too large" => "Der Upload ist zu groß", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", -"Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", -"Currently scanning" => "Durchsuchen läuft" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js new file mode 100644 index 0000000000000000000000000000000000000000..eaf4eb65ebd53c329bddf79f2dd94aa321227146 --- /dev/null +++ b/apps/files/l10n/el.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος", + "Storage invalid" : "Μη έγκυρος αποθηκευτικός χώρος", + "Unknown error" : "Άγνωστο σφάλμα", + "Could not move %s - File with this name already exists" : "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", + "Could not move %s" : "Αδυναμία μετακίνησης του %s", + "Permission denied" : "Η πρόσβαση απορρίφθηκε", + "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, παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή", + "The file exceeds your quota by %s" : "Ο φάκελλος ξεπερνάει το όριό σας κατά %s", + "Error while downloading %s to %s" : "Σφάλμα κατά τη λήψη του %s στο %s", + "Error when creating the file" : "Σφάλμα κατά τη δημιουργία του αρχείου", + "Folder name cannot be empty." : "Το όνομα φακέλου δεν μπορεί να είναι κενό.", + "Error when creating the folder" : "Σφάλμα δημιουργίας φακέλου", + "Unable to set upload directory." : "Αδυναμία ορισμού καταλόγου αποστολής.", + "Invalid Token" : "Μη έγκυρο Token", + "No file was uploaded. Unknown error" : "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", + "There is no error, the file uploaded with success" : "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Το αρχείο που εστάλει υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"upload_max_filesize\" του php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Το ανεβασμένο αρχείο υπερβαίνει το MAX_FILE_SIZE που ορίζεται στην HTML φόρμα", + "The uploaded file was only partially uploaded" : "Το αρχείο εστάλει μόνο εν μέρει", + "No file was uploaded" : "Κανένα αρχείο δεν στάλθηκε", + "Missing a temporary folder" : "Λείπει ο προσωρινός φάκελος", + "Failed to write to disk" : "Αποτυχία εγγραφής στο δίσκο", + "Not enough storage available" : "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος", + "Upload failed. Could not find uploaded file" : "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση.", + "Upload failed. Could not get file info." : "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων.", + "Invalid directory." : "Μη έγκυρος φάκελος.", + "Files" : "Αρχεία", + "All 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." : "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", + "URL cannot be empty" : "Η URL δεν πρέπει να είναι κενή", + "{new_name} already exists" : "{new_name} υπάρχει ήδη", + "Could not create file" : "Αδυναμία δημιουργίας αρχείου", + "Could not create folder" : "Αδυναμία δημιουργίας φακέλου", + "Error fetching URL" : "Σφάλμα φόρτωσης URL", + "Share" : "Διαμοιρασμός", + "Delete" : "Διαγραφή", + "Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος", + "Unshare" : "Διακοπή διαμοιρασμού", + "Delete permanently" : "Μόνιμη διαγραφή", + "Rename" : "Μετονομασία", + "Pending" : "Εκκρεμεί", + "Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.", + "Error moving file" : "Σφάλμα κατά τη μετακίνηση του αρχείου", + "Error" : "Σφάλμα", + "Could not rename file" : "Αδυναμία μετονομασίας αρχείου", + "Error deleting file." : "Σφάλμα διαγραφής αρχείου.", + "Name" : "Όνομα", + "Size" : "Μέγεθος", + "Modified" : "Τροποποιήθηκε", + "_%n folder_::_%n folders_" : ["%n φάκελος","%n φάκελοι"], + "_%n file_::_%n files_" : ["%n αρχείο","%n αρχεία"], + "You don’t have permission to upload or create files here" : "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ", + "_Uploading %n file_::_Uploading %n files_" : ["Ανέβασμα %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" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις", + "{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}", + "%s could not be renamed as it has been deleted" : "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί", + "%s could not be renamed" : "Αδυναμία μετονομασίας του %s", + "Upload (max. %s)" : "Διαμοιρασμός (max. %s)", + "File handling" : "Διαχείριση αρχείων", + "Maximum upload size" : "Μέγιστο μέγεθος αποστολής", + "max. possible: " : "μέγιστο δυνατό:", + "Save" : "Αποθήκευση", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Χρησιμοποιήστε αυτήν την διεύθυνση για να αποκτήσετε πρόσβαση στα αρχεία σας μέσω WebDAV", + "New" : "Νέο", + "New text file" : "Νέο αρχείο κειμένου", + "Text file" : "Αρχείο κειμένου", + "New folder" : "Νέος κατάλογος", + "Folder" : "Φάκελος", + "From link" : "Από σύνδεσμο", + "Nothing in here. Upload something!" : "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!", + "Download" : "Λήψη", + "Upload too large" : "Πολύ μεγάλο αρχείο προς αποστολή", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", + "Files are being scanned, please wait." : "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε.", + "Currently scanning" : "Σάρωση σε εξέλιξη" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json new file mode 100644 index 0000000000000000000000000000000000000000..5c9b763b5e15d1538ab010abc73d14d103b05955 --- /dev/null +++ b/apps/files/l10n/el.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος", + "Storage invalid" : "Μη έγκυρος αποθηκευτικός χώρος", + "Unknown error" : "Άγνωστο σφάλμα", + "Could not move %s - File with this name already exists" : "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", + "Could not move %s" : "Αδυναμία μετακίνησης του %s", + "Permission denied" : "Η πρόσβαση απορρίφθηκε", + "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, παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή", + "The file exceeds your quota by %s" : "Ο φάκελλος ξεπερνάει το όριό σας κατά %s", + "Error while downloading %s to %s" : "Σφάλμα κατά τη λήψη του %s στο %s", + "Error when creating the file" : "Σφάλμα κατά τη δημιουργία του αρχείου", + "Folder name cannot be empty." : "Το όνομα φακέλου δεν μπορεί να είναι κενό.", + "Error when creating the folder" : "Σφάλμα δημιουργίας φακέλου", + "Unable to set upload directory." : "Αδυναμία ορισμού καταλόγου αποστολής.", + "Invalid Token" : "Μη έγκυρο Token", + "No file was uploaded. Unknown error" : "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", + "There is no error, the file uploaded with success" : "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Το αρχείο που εστάλει υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"upload_max_filesize\" του php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Το ανεβασμένο αρχείο υπερβαίνει το MAX_FILE_SIZE που ορίζεται στην HTML φόρμα", + "The uploaded file was only partially uploaded" : "Το αρχείο εστάλει μόνο εν μέρει", + "No file was uploaded" : "Κανένα αρχείο δεν στάλθηκε", + "Missing a temporary folder" : "Λείπει ο προσωρινός φάκελος", + "Failed to write to disk" : "Αποτυχία εγγραφής στο δίσκο", + "Not enough storage available" : "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος", + "Upload failed. Could not find uploaded file" : "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση.", + "Upload failed. Could not get file info." : "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων.", + "Invalid directory." : "Μη έγκυρος φάκελος.", + "Files" : "Αρχεία", + "All 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." : "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", + "URL cannot be empty" : "Η URL δεν πρέπει να είναι κενή", + "{new_name} already exists" : "{new_name} υπάρχει ήδη", + "Could not create file" : "Αδυναμία δημιουργίας αρχείου", + "Could not create folder" : "Αδυναμία δημιουργίας φακέλου", + "Error fetching URL" : "Σφάλμα φόρτωσης URL", + "Share" : "Διαμοιρασμός", + "Delete" : "Διαγραφή", + "Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος", + "Unshare" : "Διακοπή διαμοιρασμού", + "Delete permanently" : "Μόνιμη διαγραφή", + "Rename" : "Μετονομασία", + "Pending" : "Εκκρεμεί", + "Error moving file." : "Σφάλμα κατά τη μετακίνηση του αρχείου.", + "Error moving file" : "Σφάλμα κατά τη μετακίνηση του αρχείου", + "Error" : "Σφάλμα", + "Could not rename file" : "Αδυναμία μετονομασίας αρχείου", + "Error deleting file." : "Σφάλμα διαγραφής αρχείου.", + "Name" : "Όνομα", + "Size" : "Μέγεθος", + "Modified" : "Τροποποιήθηκε", + "_%n folder_::_%n folders_" : ["%n φάκελος","%n φάκελοι"], + "_%n file_::_%n files_" : ["%n αρχείο","%n αρχεία"], + "You don’t have permission to upload or create files here" : "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ", + "_Uploading %n file_::_Uploading %n files_" : ["Ανέβασμα %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" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις", + "{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}", + "%s could not be renamed as it has been deleted" : "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί", + "%s could not be renamed" : "Αδυναμία μετονομασίας του %s", + "Upload (max. %s)" : "Διαμοιρασμός (max. %s)", + "File handling" : "Διαχείριση αρχείων", + "Maximum upload size" : "Μέγιστο μέγεθος αποστολής", + "max. possible: " : "μέγιστο δυνατό:", + "Save" : "Αποθήκευση", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Χρησιμοποιήστε αυτήν την διεύθυνση για να αποκτήσετε πρόσβαση στα αρχεία σας μέσω WebDAV", + "New" : "Νέο", + "New text file" : "Νέο αρχείο κειμένου", + "Text file" : "Αρχείο κειμένου", + "New folder" : "Νέος κατάλογος", + "Folder" : "Φάκελος", + "From link" : "Από σύνδεσμο", + "Nothing in here. Upload something!" : "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!", + "Download" : "Λήψη", + "Upload too large" : "Πολύ μεγάλο αρχείο προς αποστολή", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", + "Files are being scanned, please wait." : "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε.", + "Currently scanning" : "Σάρωση σε εξέλιξη" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php deleted file mode 100644 index 4b51fa4ba005fe1663deb9490a77ddd5f11bd787..0000000000000000000000000000000000000000 --- a/apps/files/l10n/el.php +++ /dev/null @@ -1,96 +0,0 @@ - "Μη διαθέσιμος αποθηκευτικός χώρος", -"Storage invalid" => "Μη έγκυρος αποθηκευτικός χώρος", -"Unknown error" => "Άγνωστο σφάλμα", -"Could not move %s - File with this name already exists" => "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", -"Could not move %s" => "Αδυναμία μετακίνησης του %s", -"Permission denied" => "Η πρόσβαση απορρίφθηκε", -"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, παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή", -"The file exceeds your quota by %s" => "Ο φάκελλος ξεπερνάει το όριό σας κατά %s", -"Error while downloading %s to %s" => "Σφάλμα κατά τη λήψη του %s στο %s", -"Error when creating the file" => "Σφάλμα κατά τη δημιουργία του αρχείου", -"Folder name cannot be empty." => "Το όνομα φακέλου δεν μπορεί να είναι κενό.", -"Error when creating the folder" => "Σφάλμα δημιουργίας φακέλου", -"Unable to set upload directory." => "Αδυναμία ορισμού καταλόγου αποστολής.", -"Invalid Token" => "Μη έγκυρο Token", -"No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", -"There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Το αρχείο που εστάλει υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"upload_max_filesize\" του php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Το ανεβασμένο αρχείο υπερβαίνει το MAX_FILE_SIZE που ορίζεται στην HTML φόρμα", -"The uploaded file was only partially uploaded" => "Το αρχείο εστάλει μόνο εν μέρει", -"No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε", -"Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος", -"Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο", -"Not enough storage available" => "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος", -"Upload failed. Could not find uploaded file" => "Η φόρτωση απέτυχε. Αδυναμία εύρεσης αρχείου προς φόρτωση.", -"Upload failed. Could not get file info." => "Η φόρτωση απέτυχε. Αδυναμία λήψης πληροφοριών αρχείων.", -"Invalid directory." => "Μη έγκυρος φάκελος.", -"Files" => "Αρχεία", -"All 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." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", -"URL cannot be empty" => "Η URL δεν πρέπει να είναι κενή", -"{new_name} already exists" => "{new_name} υπάρχει ήδη", -"Could not create file" => "Αδυναμία δημιουργίας αρχείου", -"Could not create folder" => "Αδυναμία δημιουργίας φακέλου", -"Error fetching URL" => "Σφάλμα φόρτωσης URL", -"Share" => "Διαμοιρασμός", -"Delete" => "Διαγραφή", -"Disconnect storage" => "Αποσυνδεδεμένος αποθηκευτικός χώρος", -"Unshare" => "Διακοπή διαμοιρασμού", -"Delete permanently" => "Μόνιμη διαγραφή", -"Rename" => "Μετονομασία", -"Pending" => "Εκκρεμεί", -"Error moving file." => "Σφάλμα κατά τη μετακίνηση του αρχείου.", -"Error moving file" => "Σφάλμα κατά τη μετακίνηση του αρχείου", -"Error" => "Σφάλμα", -"Could not rename file" => "Αδυναμία μετονομασίας αρχείου", -"Error deleting file." => "Σφάλμα διαγραφής αρχείου.", -"Name" => "Όνομα", -"Size" => "Μέγεθος", -"Modified" => "Τροποποιήθηκε", -"_%n folder_::_%n folders_" => array("%n φάκελος","%n φάκελοι"), -"_%n file_::_%n files_" => array("%n αρχείο","%n αρχεία"), -"You don’t have permission to upload or create files here" => "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ", -"_Uploading %n file_::_Uploading %n files_" => array("Ανέβασμα %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" => "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις", -"{dirs} and {files}" => "{Κατάλογοι αρχείων} και {αρχεία}", -"%s could not be renamed as it has been deleted" => "%s δεν μπορούσε να μετονομαστεί εφόσον είχε διαγραφεί", -"%s could not be renamed" => "Αδυναμία μετονομασίας του %s", -"Upload (max. %s)" => "Διαμοιρασμός (max. %s)", -"File handling" => "Διαχείριση αρχείων", -"Maximum upload size" => "Μέγιστο μέγεθος αποστολής", -"max. possible: " => "μέγιστο δυνατό:", -"Save" => "Αποθήκευση", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Χρησιμοποιήστε αυτήν την διεύθυνση για να αποκτήσετε πρόσβαση στα αρχεία σας μέσω WebDAV", -"New" => "Νέο", -"New text file" => "Νέο αρχείο κειμένου", -"Text file" => "Αρχείο κειμένου", -"New folder" => "Νέος κατάλογος", -"Folder" => "Φάκελος", -"From link" => "Από σύνδεσμο", -"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!", -"Download" => "Λήψη", -"Upload too large" => "Πολύ μεγάλο αρχείο προς αποστολή", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", -"Files are being scanned, please wait." => "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε.", -"Currently scanning" => "Σάρωση σε εξέλιξη" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/en@pirate.js b/apps/files/l10n/en@pirate.js new file mode 100644 index 0000000000000000000000000000000000000000..92b310a0964dff76dd5c914035d405c19a69e73c --- /dev/null +++ b/apps/files/l10n/en@pirate.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Download" : "Download" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/en@pirate.json b/apps/files/l10n/en@pirate.json new file mode 100644 index 0000000000000000000000000000000000000000..9d489a2982930a373ab2d361345a2cecd50932c5 --- /dev/null +++ b/apps/files/l10n/en@pirate.json @@ -0,0 +1,7 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Download" : "Download" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/en@pirate.php b/apps/files/l10n/en@pirate.php deleted file mode 100644 index 128f527aef186c5afc9d7418d1ff130f10a9b22f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/en@pirate.php +++ /dev/null @@ -1,8 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Download" => "Download" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..494358d33636021fb2ab61761cd6e5874a30e2cb --- /dev/null +++ b/apps/files/l10n/en_GB.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Storage not available", + "Storage invalid" : "Storage invalid", + "Unknown error" : "Unknown error", + "Could not move %s - File with this name already exists" : "Could not move %s - File with this name already exists", + "Could not move %s" : "Could not move %s", + "Permission denied" : "Permission denied", + "File name cannot be empty." : "File name cannot be empty.", + "\"%s\" is an invalid file name." : "\"%s\" is an invalid file name.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Invalid name: '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.", + "The target folder has been moved or deleted." : "The target folder has been moved or deleted.", + "The name %s is already used in the folder %s. Please choose a different name." : "The name %s is already used in the folder %s. Please choose a different name.", + "Not a valid source" : "Not a valid source", + "Server is not allowed to open URLs, please check the server configuration" : "Server is not allowed to open URLs, please check the server configuration", + "The file exceeds your quota by %s" : "The file exceeds your quota by %s", + "Error while downloading %s to %s" : "Error whilst downloading %s to %s", + "Error when creating the file" : "Error when creating the file", + "Folder name cannot be empty." : "Folder name cannot be empty.", + "Error when creating the folder" : "Error when creating the folder", + "Unable to set upload directory." : "Unable to set upload directory.", + "Invalid Token" : "Invalid Token", + "No file was uploaded. Unknown error" : "No file was uploaded. Unknown error", + "There is no error, the file uploaded with success" : "There is no error, the file uploaded successfully", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form", + "The uploaded file was only partially uploaded" : "The uploaded file was only partially uploaded", + "No file was uploaded" : "No file was uploaded", + "Missing a temporary folder" : "Missing a temporary folder", + "Failed to write to disk" : "Failed to write to disk", + "Not enough storage available" : "Not enough storage available", + "Upload failed. Could not find uploaded file" : "Upload failed. Could not find uploaded file", + "Upload failed. Could not get file info." : "Upload failed. Could not get file info.", + "Invalid directory." : "Invalid directory.", + "Files" : "Files", + "All files" : "All files", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Unable to upload {filename} as it is a directory or has 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "Total file size {size1} exceeds upload limit {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Not enough free space, you are uploading {size1} but only {size2} is left", + "Upload cancelled." : "Upload cancelled.", + "Could not get result from server." : "Could not get result from server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "File upload is in progress. Leaving the page now will cancel the upload.", + "URL cannot be empty" : "URL cannot be empty", + "{new_name} already exists" : "{new_name} already exists", + "Could not create file" : "Could not create file", + "Could not create folder" : "Could not create folder", + "Error fetching URL" : "Error fetching URL", + "Share" : "Share", + "Delete" : "Delete", + "Disconnect storage" : "Disconnect storage", + "Unshare" : "Unshare", + "Delete permanently" : "Delete permanently", + "Rename" : "Rename", + "Pending" : "Pending", + "Error moving file." : "Error moving file.", + "Error moving file" : "Error moving file", + "Error" : "Error", + "Could not rename file" : "Could not rename file", + "Error deleting file." : "Error deleting file.", + "Name" : "Name", + "Size" : "Size", + "Modified" : "Modified", + "_%n folder_::_%n folders_" : ["%n folder","%n folders"], + "_%n file_::_%n files_" : ["%n file","%n files"], + "You don’t have permission to upload or create files here" : "You don’t have permission to upload or create files here", + "_Uploading %n file_::_Uploading %n files_" : ["Uploading %n file","Uploading %n files"], + "\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.", + "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", + "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.", + "{dirs} and {files}" : "{dirs} and {files}", + "%s could not be renamed as it has been deleted" : "%s could not be renamed as it has been deleted", + "%s could not be renamed" : "%s could not be renamed", + "Upload (max. %s)" : "Upload (max. %s)", + "File handling" : "File handling", + "Maximum upload size" : "Maximum upload size", + "max. possible: " : "max. possible: ", + "Save" : "Save", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Use this address to access your Files via WebDAV", + "New" : "New", + "New text file" : "New text file", + "Text file" : "Text file", + "New folder" : "New folder", + "Folder" : "Folder", + "From link" : "From link", + "Nothing in here. Upload something!" : "Nothing in here. Upload something!", + "Download" : "Download", + "Upload too large" : "Upload too large", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "The files you are trying to upload exceed the maximum size for file uploads on this server.", + "Files are being scanned, please wait." : "Files are being scanned, please wait.", + "Currently scanning" : "Currently scanning" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..bdda9bf4faf62952aa395a159efe1ba115b1a84b --- /dev/null +++ b/apps/files/l10n/en_GB.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Storage not available", + "Storage invalid" : "Storage invalid", + "Unknown error" : "Unknown error", + "Could not move %s - File with this name already exists" : "Could not move %s - File with this name already exists", + "Could not move %s" : "Could not move %s", + "Permission denied" : "Permission denied", + "File name cannot be empty." : "File name cannot be empty.", + "\"%s\" is an invalid file name." : "\"%s\" is an invalid file name.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Invalid name: '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.", + "The target folder has been moved or deleted." : "The target folder has been moved or deleted.", + "The name %s is already used in the folder %s. Please choose a different name." : "The name %s is already used in the folder %s. Please choose a different name.", + "Not a valid source" : "Not a valid source", + "Server is not allowed to open URLs, please check the server configuration" : "Server is not allowed to open URLs, please check the server configuration", + "The file exceeds your quota by %s" : "The file exceeds your quota by %s", + "Error while downloading %s to %s" : "Error whilst downloading %s to %s", + "Error when creating the file" : "Error when creating the file", + "Folder name cannot be empty." : "Folder name cannot be empty.", + "Error when creating the folder" : "Error when creating the folder", + "Unable to set upload directory." : "Unable to set upload directory.", + "Invalid Token" : "Invalid Token", + "No file was uploaded. Unknown error" : "No file was uploaded. Unknown error", + "There is no error, the file uploaded with success" : "There is no error, the file uploaded successfully", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form", + "The uploaded file was only partially uploaded" : "The uploaded file was only partially uploaded", + "No file was uploaded" : "No file was uploaded", + "Missing a temporary folder" : "Missing a temporary folder", + "Failed to write to disk" : "Failed to write to disk", + "Not enough storage available" : "Not enough storage available", + "Upload failed. Could not find uploaded file" : "Upload failed. Could not find uploaded file", + "Upload failed. Could not get file info." : "Upload failed. Could not get file info.", + "Invalid directory." : "Invalid directory.", + "Files" : "Files", + "All files" : "All files", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Unable to upload {filename} as it is a directory or has 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "Total file size {size1} exceeds upload limit {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Not enough free space, you are uploading {size1} but only {size2} is left", + "Upload cancelled." : "Upload cancelled.", + "Could not get result from server." : "Could not get result from server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "File upload is in progress. Leaving the page now will cancel the upload.", + "URL cannot be empty" : "URL cannot be empty", + "{new_name} already exists" : "{new_name} already exists", + "Could not create file" : "Could not create file", + "Could not create folder" : "Could not create folder", + "Error fetching URL" : "Error fetching URL", + "Share" : "Share", + "Delete" : "Delete", + "Disconnect storage" : "Disconnect storage", + "Unshare" : "Unshare", + "Delete permanently" : "Delete permanently", + "Rename" : "Rename", + "Pending" : "Pending", + "Error moving file." : "Error moving file.", + "Error moving file" : "Error moving file", + "Error" : "Error", + "Could not rename file" : "Could not rename file", + "Error deleting file." : "Error deleting file.", + "Name" : "Name", + "Size" : "Size", + "Modified" : "Modified", + "_%n folder_::_%n folders_" : ["%n folder","%n folders"], + "_%n file_::_%n files_" : ["%n file","%n files"], + "You don’t have permission to upload or create files here" : "You don’t have permission to upload or create files here", + "_Uploading %n file_::_Uploading %n files_" : ["Uploading %n file","Uploading %n files"], + "\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.", + "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", + "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.", + "{dirs} and {files}" : "{dirs} and {files}", + "%s could not be renamed as it has been deleted" : "%s could not be renamed as it has been deleted", + "%s could not be renamed" : "%s could not be renamed", + "Upload (max. %s)" : "Upload (max. %s)", + "File handling" : "File handling", + "Maximum upload size" : "Maximum upload size", + "max. possible: " : "max. possible: ", + "Save" : "Save", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Use this address to access your Files via WebDAV", + "New" : "New", + "New text file" : "New text file", + "Text file" : "Text file", + "New folder" : "New folder", + "Folder" : "Folder", + "From link" : "From link", + "Nothing in here. Upload something!" : "Nothing in here. Upload something!", + "Download" : "Download", + "Upload too large" : "Upload too large", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "The files you are trying to upload exceed the maximum size for file uploads on this server.", + "Files are being scanned, please wait." : "Files are being scanned, please wait.", + "Currently scanning" : "Currently scanning" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/en_GB.php b/apps/files/l10n/en_GB.php deleted file mode 100644 index e2589923341cb05b17d01d6a9523f97c64841e67..0000000000000000000000000000000000000000 --- a/apps/files/l10n/en_GB.php +++ /dev/null @@ -1,96 +0,0 @@ - "Storage not available", -"Storage invalid" => "Storage invalid", -"Unknown error" => "Unknown error", -"Could not move %s - File with this name already exists" => "Could not move %s - File with this name already exists", -"Could not move %s" => "Could not move %s", -"Permission denied" => "Permission denied", -"File name cannot be empty." => "File name cannot be empty.", -"\"%s\" is an invalid file name." => "\"%s\" is an invalid file name.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Invalid name: '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.", -"The target folder has been moved or deleted." => "The target folder has been moved or deleted.", -"The name %s is already used in the folder %s. Please choose a different name." => "The name %s is already used in the folder %s. Please choose a different name.", -"Not a valid source" => "Not a valid source", -"Server is not allowed to open URLs, please check the server configuration" => "Server is not allowed to open URLs, please check the server configuration", -"The file exceeds your quota by %s" => "The file exceeds your quota by %s", -"Error while downloading %s to %s" => "Error whilst downloading %s to %s", -"Error when creating the file" => "Error when creating the file", -"Folder name cannot be empty." => "Folder name cannot be empty.", -"Error when creating the folder" => "Error when creating the folder", -"Unable to set upload directory." => "Unable to set upload directory.", -"Invalid Token" => "Invalid Token", -"No file was uploaded. Unknown error" => "No file was uploaded. Unknown error", -"There is no error, the file uploaded with success" => "There is no error, the file uploaded successfully", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form", -"The uploaded file was only partially uploaded" => "The uploaded file was only partially uploaded", -"No file was uploaded" => "No file was uploaded", -"Missing a temporary folder" => "Missing a temporary folder", -"Failed to write to disk" => "Failed to write to disk", -"Not enough storage available" => "Not enough storage available", -"Upload failed. Could not find uploaded file" => "Upload failed. Could not find uploaded file", -"Upload failed. Could not get file info." => "Upload failed. Could not get file info.", -"Invalid directory." => "Invalid directory.", -"Files" => "Files", -"All files" => "All files", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Unable to upload {filename} as it is a directory or has 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "Total file size {size1} exceeds upload limit {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Not enough free space, you are uploading {size1} but only {size2} is left", -"Upload cancelled." => "Upload cancelled.", -"Could not get result from server." => "Could not get result from server.", -"File upload is in progress. Leaving the page now will cancel the upload." => "File upload is in progress. Leaving the page now will cancel the upload.", -"URL cannot be empty" => "URL cannot be empty", -"{new_name} already exists" => "{new_name} already exists", -"Could not create file" => "Could not create file", -"Could not create folder" => "Could not create folder", -"Error fetching URL" => "Error fetching URL", -"Share" => "Share", -"Delete" => "Delete", -"Disconnect storage" => "Disconnect storage", -"Unshare" => "Unshare", -"Delete permanently" => "Delete permanently", -"Rename" => "Rename", -"Pending" => "Pending", -"Error moving file." => "Error moving file.", -"Error moving file" => "Error moving file", -"Error" => "Error", -"Could not rename file" => "Could not rename file", -"Error deleting file." => "Error deleting file.", -"Name" => "Name", -"Size" => "Size", -"Modified" => "Modified", -"_%n folder_::_%n folders_" => array("%n folder","%n folders"), -"_%n file_::_%n files_" => array("%n file","%n files"), -"You don’t have permission to upload or create files here" => "You don’t have permission to upload or create files here", -"_Uploading %n file_::_Uploading %n files_" => array("Uploading %n file","Uploading %n files"), -"\"{name}\" is an invalid file name." => "\"{name}\" is an invalid file name.", -"Your storage is full, files can not be updated or synced anymore!" => "Your storage is full, files can not be updated or synced anymore!", -"Your storage is almost full ({usedSpacePercent}%)" => "Your storage is almost full ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.", -"{dirs} and {files}" => "{dirs} and {files}", -"%s could not be renamed as it has been deleted" => "%s could not be renamed as it has been deleted", -"%s could not be renamed" => "%s could not be renamed", -"Upload (max. %s)" => "Upload (max. %s)", -"File handling" => "File handling", -"Maximum upload size" => "Maximum upload size", -"max. possible: " => "max. possible: ", -"Save" => "Save", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Use this address to access your Files via WebDAV", -"New" => "New", -"New text file" => "New text file", -"Text file" => "Text file", -"New folder" => "New folder", -"Folder" => "Folder", -"From link" => "From link", -"Nothing in here. Upload something!" => "Nothing in here. Upload something!", -"Download" => "Download", -"Upload too large" => "Upload too large", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "The files you are trying to upload exceed the maximum size for file uploads on this server.", -"Files are being scanned, please wait." => "Files are being scanned, please wait.", -"Currently scanning" => "Currently scanning" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/en_NZ.js b/apps/files/l10n/en_NZ.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/en_NZ.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/en_NZ.json b/apps/files/l10n/en_NZ.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/en_NZ.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/en_NZ.php b/apps/files/l10n/en_NZ.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/en_NZ.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js new file mode 100644 index 0000000000000000000000000000000000000000..43acaae6ba428965ac6638bdab5129576671c532 --- /dev/null +++ b/apps/files/l10n/eo.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Nekonata eraro", + "Could not move %s - File with this name already exists" : "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas", + "Could not move %s" : "Ne eblis movi %s", + "File name cannot be empty." : "Dosiernomo devas ne malpleni.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nevalida nomo: “\\”, “/”, “<”, “>”, “:”, “\"”, “|”, “?” kaj “*” ne permesatas.", + "The name %s is already used in the folder %s. Please choose a different name." : "La nomo %s jam uziĝas en la dosierujo %s. Bonvolu elekti malsaman nomon.", + "Not a valid source" : "Nevalida fonto", + "Error while downloading %s to %s" : "Eraris elŝuto de %s al %s", + "Error when creating the file" : "Eraris la kreo de la dosiero", + "Folder name cannot be empty." : "La dosierujnomo ne povas malpleni.", + "Error when creating the folder" : "Eraris la kreo de la dosierujo", + "Unable to set upload directory." : "Ne povis agordiĝi la alŝuta dosierujo.", + "No file was uploaded. Unknown error" : "Neniu dosiero alŝutiĝis. Nekonata eraro.", + "There is no error, the file uploaded with success" : "Ne estas eraro, la dosiero alŝutiĝis sukcese.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo", + "The uploaded file was only partially uploaded" : "la alŝutita dosiero nur parte alŝutiĝis", + "No file was uploaded" : "Neniu dosiero alŝutiĝis.", + "Missing a temporary folder" : "Mankas provizora dosierujo.", + "Failed to write to disk" : "Malsukcesis skribo al disko", + "Not enough storage available" : "Ne haveblas sufiĉa memoro", + "Upload failed. Could not find uploaded file" : "La alŝuto malsukcesis. Ne troviĝis alŝutota dosiero.", + "Upload failed. Could not get file info." : "La alŝuto malsukcesis. Ne povis ekhaviĝi informo pri dosiero.", + "Invalid directory." : "Nevalida dosierujo.", + "Files" : "Dosieroj", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne povis alŝutiĝi {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 duumokojn", + "Upload cancelled." : "La alŝuto nuliĝis.", + "Could not get result from server." : "Ne povis ekhaviĝi rezulto el la servilo.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton.", + "URL cannot be empty" : "La URL ne povas malpleni", + "{new_name} already exists" : "{new_name} jam ekzistas", + "Could not create file" : "Ne povis kreiĝi dosiero", + "Could not create folder" : "Ne povis kreiĝi dosierujo", + "Share" : "Kunhavigi", + "Delete" : "Forigi", + "Unshare" : "Malkunhavigi", + "Delete permanently" : "Forigi por ĉiam", + "Rename" : "Alinomigi", + "Pending" : "Traktotaj", + "Error moving file" : "Eraris movo de dosiero", + "Error" : "Eraro", + "Could not rename file" : "Ne povis alinomiĝi dosiero", + "Name" : "Nomo", + "Size" : "Grando", + "Modified" : "Modifita", + "_%n folder_::_%n folders_" : ["%n dosierujo","%n dosierujoj"], + "_%n file_::_%n files_" : ["%n dosiero","%n dosieroj"], + "You don’t have permission to upload or create files here" : "Vi ne havas permeson alŝuti aŭ krei dosierojn ĉi tie", + "_Uploading %n file_::_Uploading %n files_" : ["Alŝutatas %n dosiero","Alŝutatas %n dosieroj"], + "Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!", + "Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)", + "{dirs} and {files}" : "{dirs} kaj {files}", + "%s could not be renamed" : "%s ne povis alinomiĝi", + "Upload (max. %s)" : "Alŝuti (maks. %s)", + "File handling" : "Dosieradministro", + "Maximum upload size" : "Maksimuma alŝutogrando", + "max. possible: " : "maks. ebla: ", + "Save" : "Konservi", + "WebDAV" : "WebDAV", + "New" : "Nova", + "Text file" : "Tekstodosiero", + "New folder" : "Nova dosierujo", + "Folder" : "Dosierujo", + "From link" : "El ligilo", + "Nothing in here. Upload something!" : "Nenio estas ĉi tie. Alŝutu ion!", + "Download" : "Elŝuti", + "Upload too large" : "Alŝuto tro larĝa", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.", + "Files are being scanned, please wait." : "Dosieroj estas skanataj, bonvolu atendi." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json new file mode 100644 index 0000000000000000000000000000000000000000..96338a90c1197f6989e8888fba2cf683f3f8b47c --- /dev/null +++ b/apps/files/l10n/eo.json @@ -0,0 +1,72 @@ +{ "translations": { + "Unknown error" : "Nekonata eraro", + "Could not move %s - File with this name already exists" : "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas", + "Could not move %s" : "Ne eblis movi %s", + "File name cannot be empty." : "Dosiernomo devas ne malpleni.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nevalida nomo: “\\”, “/”, “<”, “>”, “:”, “\"”, “|”, “?” kaj “*” ne permesatas.", + "The name %s is already used in the folder %s. Please choose a different name." : "La nomo %s jam uziĝas en la dosierujo %s. Bonvolu elekti malsaman nomon.", + "Not a valid source" : "Nevalida fonto", + "Error while downloading %s to %s" : "Eraris elŝuto de %s al %s", + "Error when creating the file" : "Eraris la kreo de la dosiero", + "Folder name cannot be empty." : "La dosierujnomo ne povas malpleni.", + "Error when creating the folder" : "Eraris la kreo de la dosierujo", + "Unable to set upload directory." : "Ne povis agordiĝi la alŝuta dosierujo.", + "No file was uploaded. Unknown error" : "Neniu dosiero alŝutiĝis. Nekonata eraro.", + "There is no error, the file uploaded with success" : "Ne estas eraro, la dosiero alŝutiĝis sukcese.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo", + "The uploaded file was only partially uploaded" : "la alŝutita dosiero nur parte alŝutiĝis", + "No file was uploaded" : "Neniu dosiero alŝutiĝis.", + "Missing a temporary folder" : "Mankas provizora dosierujo.", + "Failed to write to disk" : "Malsukcesis skribo al disko", + "Not enough storage available" : "Ne haveblas sufiĉa memoro", + "Upload failed. Could not find uploaded file" : "La alŝuto malsukcesis. Ne troviĝis alŝutota dosiero.", + "Upload failed. Could not get file info." : "La alŝuto malsukcesis. Ne povis ekhaviĝi informo pri dosiero.", + "Invalid directory." : "Nevalida dosierujo.", + "Files" : "Dosieroj", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne povis alŝutiĝi {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 duumokojn", + "Upload cancelled." : "La alŝuto nuliĝis.", + "Could not get result from server." : "Ne povis ekhaviĝi rezulto el la servilo.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton.", + "URL cannot be empty" : "La URL ne povas malpleni", + "{new_name} already exists" : "{new_name} jam ekzistas", + "Could not create file" : "Ne povis kreiĝi dosiero", + "Could not create folder" : "Ne povis kreiĝi dosierujo", + "Share" : "Kunhavigi", + "Delete" : "Forigi", + "Unshare" : "Malkunhavigi", + "Delete permanently" : "Forigi por ĉiam", + "Rename" : "Alinomigi", + "Pending" : "Traktotaj", + "Error moving file" : "Eraris movo de dosiero", + "Error" : "Eraro", + "Could not rename file" : "Ne povis alinomiĝi dosiero", + "Name" : "Nomo", + "Size" : "Grando", + "Modified" : "Modifita", + "_%n folder_::_%n folders_" : ["%n dosierujo","%n dosierujoj"], + "_%n file_::_%n files_" : ["%n dosiero","%n dosieroj"], + "You don’t have permission to upload or create files here" : "Vi ne havas permeson alŝuti aŭ krei dosierojn ĉi tie", + "_Uploading %n file_::_Uploading %n files_" : ["Alŝutatas %n dosiero","Alŝutatas %n dosieroj"], + "Your storage is full, files can not be updated or synced anymore!" : "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!", + "Your storage is almost full ({usedSpacePercent}%)" : "Via memoro preskaŭ plenas ({usedSpacePercent}%)", + "{dirs} and {files}" : "{dirs} kaj {files}", + "%s could not be renamed" : "%s ne povis alinomiĝi", + "Upload (max. %s)" : "Alŝuti (maks. %s)", + "File handling" : "Dosieradministro", + "Maximum upload size" : "Maksimuma alŝutogrando", + "max. possible: " : "maks. ebla: ", + "Save" : "Konservi", + "WebDAV" : "WebDAV", + "New" : "Nova", + "Text file" : "Tekstodosiero", + "New folder" : "Nova dosierujo", + "Folder" : "Dosierujo", + "From link" : "El ligilo", + "Nothing in here. Upload something!" : "Nenio estas ĉi tie. Alŝutu ion!", + "Download" : "Elŝuti", + "Upload too large" : "Alŝuto tro larĝa", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.", + "Files are being scanned, please wait." : "Dosieroj estas skanataj, bonvolu atendi." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php deleted file mode 100644 index e8538e47acfdbc8c4e4f37286c07b1f03161edcc..0000000000000000000000000000000000000000 --- a/apps/files/l10n/eo.php +++ /dev/null @@ -1,73 +0,0 @@ - "Nekonata eraro", -"Could not move %s - File with this name already exists" => "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas", -"Could not move %s" => "Ne eblis movi %s", -"File name cannot be empty." => "Dosiernomo devas ne malpleni.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nevalida nomo: “\\”, “/”, “<”, “>”, “:”, “\"”, “|”, “?” kaj “*” ne permesatas.", -"The name %s is already used in the folder %s. Please choose a different name." => "La nomo %s jam uziĝas en la dosierujo %s. Bonvolu elekti malsaman nomon.", -"Not a valid source" => "Nevalida fonto", -"Error while downloading %s to %s" => "Eraris elŝuto de %s al %s", -"Error when creating the file" => "Eraris la kreo de la dosiero", -"Folder name cannot be empty." => "La dosierujnomo ne povas malpleni.", -"Error when creating the folder" => "Eraris la kreo de la dosierujo", -"Unable to set upload directory." => "Ne povis agordiĝi la alŝuta dosierujo.", -"No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.", -"There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo", -"The uploaded file was only partially uploaded" => "la alŝutita dosiero nur parte alŝutiĝis", -"No file was uploaded" => "Neniu dosiero alŝutiĝis.", -"Missing a temporary folder" => "Mankas provizora dosierujo.", -"Failed to write to disk" => "Malsukcesis skribo al disko", -"Not enough storage available" => "Ne haveblas sufiĉa memoro", -"Upload failed. Could not find uploaded file" => "La alŝuto malsukcesis. Ne troviĝis alŝutota dosiero.", -"Upload failed. Could not get file info." => "La alŝuto malsukcesis. Ne povis ekhaviĝi informo pri dosiero.", -"Invalid directory." => "Nevalida dosierujo.", -"Files" => "Dosieroj", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Ne povis alŝutiĝi {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 duumokojn", -"Upload cancelled." => "La alŝuto nuliĝis.", -"Could not get result from server." => "Ne povis ekhaviĝi rezulto el la servilo.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton.", -"URL cannot be empty" => "La URL ne povas malpleni", -"{new_name} already exists" => "{new_name} jam ekzistas", -"Could not create file" => "Ne povis kreiĝi dosiero", -"Could not create folder" => "Ne povis kreiĝi dosierujo", -"Share" => "Kunhavigi", -"Delete" => "Forigi", -"Unshare" => "Malkunhavigi", -"Delete permanently" => "Forigi por ĉiam", -"Rename" => "Alinomigi", -"Pending" => "Traktotaj", -"Error moving file" => "Eraris movo de dosiero", -"Error" => "Eraro", -"Could not rename file" => "Ne povis alinomiĝi dosiero", -"Name" => "Nomo", -"Size" => "Grando", -"Modified" => "Modifita", -"_%n folder_::_%n folders_" => array("%n dosierujo","%n dosierujoj"), -"_%n file_::_%n files_" => array("%n dosiero","%n dosieroj"), -"You don’t have permission to upload or create files here" => "Vi ne havas permeson alŝuti aŭ krei dosierojn ĉi tie", -"_Uploading %n file_::_Uploading %n files_" => array("Alŝutatas %n dosiero","Alŝutatas %n dosieroj"), -"Your storage is full, files can not be updated or synced anymore!" => "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!", -"Your storage is almost full ({usedSpacePercent}%)" => "Via memoro preskaŭ plenas ({usedSpacePercent}%)", -"{dirs} and {files}" => "{dirs} kaj {files}", -"%s could not be renamed" => "%s ne povis alinomiĝi", -"Upload (max. %s)" => "Alŝuti (maks. %s)", -"File handling" => "Dosieradministro", -"Maximum upload size" => "Maksimuma alŝutogrando", -"max. possible: " => "maks. ebla: ", -"Save" => "Konservi", -"WebDAV" => "WebDAV", -"New" => "Nova", -"Text file" => "Tekstodosiero", -"New folder" => "Nova dosierujo", -"Folder" => "Dosierujo", -"From link" => "El ligilo", -"Nothing in here. Upload something!" => "Nenio estas ĉi tie. Alŝutu ion!", -"Download" => "Elŝuti", -"Upload too large" => "Alŝuto tro larĝa", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.", -"Files are being scanned, please wait." => "Dosieroj estas skanataj, bonvolu atendi." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js new file mode 100644 index 0000000000000000000000000000000000000000..0e1ac9aede9b54366c58c3674eac610fbd03b91a --- /dev/null +++ b/apps/files/l10n/es.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Almacenamiento no disponible", + "Storage invalid" : "Almacenamiento inválido", + "Unknown error" : "Error desconocido", + "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.", + "Could not move %s" : "No se pudo mover %s", + "Permission denied" : "Permiso denegado", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"%s\" is an invalid file name." : "\"%s\" es un nombre de archivo inválido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", + "The target folder has been moved or deleted." : "La carpeta destino fue movida o eliminada.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.", + "Not a valid source" : "No es una fuente válida", + "Server is not allowed to open URLs, please check the server configuration" : "La configuración del servidor no le permite abrir URLs, revísela.", + "The file exceeds your quota by %s" : "El archivo sobrepasa su cuota por %s", + "Error while downloading %s to %s" : "Error mientras se descargaba %s a %s", + "Error when creating the file" : "Error al crear el archivo", + "Folder name cannot be empty." : "El nombre de la carpeta no puede estar vacío.", + "Error when creating the folder" : "Error al crear la carpeta.", + "Unable to set upload directory." : "Incapaz de crear directorio de subida.", + "Invalid Token" : "Token Inválido", + "No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido", + "There is no error, the file uploaded with success" : "No hubo ningún problema, el archivo se subió con éxito", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo subido fue sólo subido parcialmente", + "No file was uploaded" : "No se subió ningún archivo", + "Missing a temporary folder" : "Falta la carpeta temporal", + "Failed to write to disk" : "Falló al escribir al disco", + "Not enough storage available" : "No hay suficiente espacio disponible", + "Upload failed. Could not find uploaded file" : "Actualización fallida. No se pudo encontrar el archivo subido", + "Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.", + "Invalid directory." : "Directorio inválido.", + "Files" : "Archivos", + "All files" : "Todos los archivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "El tamaño total del archivo {size1} excede el límite {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}", + "Upload cancelled." : "Subida cancelada.", + "Could not get result from server." : "No se pudo obtener respuesta del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.", + "URL cannot be empty" : "La dirección URL no puede estar vacía", + "{new_name} already exists" : "{new_name} ya existe", + "Could not create file" : "No se pudo crear el archivo", + "Could not create folder" : "No se pudo crear la carpeta", + "Error fetching URL" : "Error al descargar URL.", + "Share" : "Compartir", + "Delete" : "Eliminar", + "Disconnect storage" : "Desconectar almacenamiento", + "Unshare" : "Dejar de compartir", + "Delete permanently" : "Eliminar permanentemente", + "Rename" : "Renombrar", + "Pending" : "Pendiente", + "Error moving file." : "Error al mover el archivo.", + "Error moving file" : "Error moviendo archivo", + "Error" : "Error", + "Could not rename file" : "No se pudo renombrar el archivo", + "Error deleting file." : "Error al borrar el archivo", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "You don’t have permission to upload or create files here" : "No tienes permisos para subir o crear archivos aquí.", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], + "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", + "Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", + "Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", + "{dirs} and {files}" : "{dirs} y {files}", + "%s could not be renamed as it has been deleted" : "%s no se pudo renombrar pues ha sido eliminado", + "%s could not be renamed" : "%s no pudo ser renombrado", + "Upload (max. %s)" : "Subida (máx. %s)", + "File handling" : "Administración de archivos", + "Maximum upload size" : "Tamaño máximo de subida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Use esta URL para acceder via WebDAV", + "New" : "Nuevo", + "New text file" : "Nuevo archivo de texto", + "Text file" : "Archivo de texto", + "New folder" : "Nueva carpeta", + "Folder" : "Carpeta", + "From link" : "Desde enlace", + "Nothing in here. Upload something!" : "No hay nada aquí. ¡Suba algo!", + "Download" : "Descargar", + "Upload too large" : "Subida demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.", + "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere.", + "Currently scanning" : "Escaneando en este momento" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json new file mode 100644 index 0000000000000000000000000000000000000000..5b45a869b54d1cebeda33b912ccff5641a3ee9f0 --- /dev/null +++ b/apps/files/l10n/es.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Almacenamiento no disponible", + "Storage invalid" : "Almacenamiento inválido", + "Unknown error" : "Error desconocido", + "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.", + "Could not move %s" : "No se pudo mover %s", + "Permission denied" : "Permiso denegado", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"%s\" is an invalid file name." : "\"%s\" es un nombre de archivo inválido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", + "The target folder has been moved or deleted." : "La carpeta destino fue movida o eliminada.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.", + "Not a valid source" : "No es una fuente válida", + "Server is not allowed to open URLs, please check the server configuration" : "La configuración del servidor no le permite abrir URLs, revísela.", + "The file exceeds your quota by %s" : "El archivo sobrepasa su cuota por %s", + "Error while downloading %s to %s" : "Error mientras se descargaba %s a %s", + "Error when creating the file" : "Error al crear el archivo", + "Folder name cannot be empty." : "El nombre de la carpeta no puede estar vacío.", + "Error when creating the folder" : "Error al crear la carpeta.", + "Unable to set upload directory." : "Incapaz de crear directorio de subida.", + "Invalid Token" : "Token Inválido", + "No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido", + "There is no error, the file uploaded with success" : "No hubo ningún problema, el archivo se subió con éxito", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo subido fue sólo subido parcialmente", + "No file was uploaded" : "No se subió ningún archivo", + "Missing a temporary folder" : "Falta la carpeta temporal", + "Failed to write to disk" : "Falló al escribir al disco", + "Not enough storage available" : "No hay suficiente espacio disponible", + "Upload failed. Could not find uploaded file" : "Actualización fallida. No se pudo encontrar el archivo subido", + "Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.", + "Invalid directory." : "Directorio inválido.", + "Files" : "Archivos", + "All files" : "Todos los archivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "El tamaño total del archivo {size1} excede el límite {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}", + "Upload cancelled." : "Subida cancelada.", + "Could not get result from server." : "No se pudo obtener respuesta del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.", + "URL cannot be empty" : "La dirección URL no puede estar vacía", + "{new_name} already exists" : "{new_name} ya existe", + "Could not create file" : "No se pudo crear el archivo", + "Could not create folder" : "No se pudo crear la carpeta", + "Error fetching URL" : "Error al descargar URL.", + "Share" : "Compartir", + "Delete" : "Eliminar", + "Disconnect storage" : "Desconectar almacenamiento", + "Unshare" : "Dejar de compartir", + "Delete permanently" : "Eliminar permanentemente", + "Rename" : "Renombrar", + "Pending" : "Pendiente", + "Error moving file." : "Error al mover el archivo.", + "Error moving file" : "Error moviendo archivo", + "Error" : "Error", + "Could not rename file" : "No se pudo renombrar el archivo", + "Error deleting file." : "Error al borrar el archivo", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "You don’t have permission to upload or create files here" : "No tienes permisos para subir o crear archivos aquí.", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], + "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", + "Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", + "Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", + "{dirs} and {files}" : "{dirs} y {files}", + "%s could not be renamed as it has been deleted" : "%s no se pudo renombrar pues ha sido eliminado", + "%s could not be renamed" : "%s no pudo ser renombrado", + "Upload (max. %s)" : "Subida (máx. %s)", + "File handling" : "Administración de archivos", + "Maximum upload size" : "Tamaño máximo de subida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Use esta URL para acceder via WebDAV", + "New" : "Nuevo", + "New text file" : "Nuevo archivo de texto", + "Text file" : "Archivo de texto", + "New folder" : "Nueva carpeta", + "Folder" : "Carpeta", + "From link" : "Desde enlace", + "Nothing in here. Upload something!" : "No hay nada aquí. ¡Suba algo!", + "Download" : "Descargar", + "Upload too large" : "Subida demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.", + "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere.", + "Currently scanning" : "Escaneando en este momento" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php deleted file mode 100644 index fd0d55ef3e73be1529e1272fcc5cff79fcee25ff..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es.php +++ /dev/null @@ -1,96 +0,0 @@ - "Almacenamiento no disponible", -"Storage invalid" => "Almacenamiento inválido", -"Unknown error" => "Error desconocido", -"Could not move %s - File with this name already exists" => "No se pudo mover %s - Ya existe un archivo con ese nombre.", -"Could not move %s" => "No se pudo mover %s", -"Permission denied" => "Permiso denegado", -"File name cannot be empty." => "El nombre de archivo no puede estar vacío.", -"\"%s\" is an invalid file name." => "\"%s\" es un nombre de archivo inválido.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", -"The target folder has been moved or deleted." => "La carpeta destino fue movida o eliminada.", -"The name %s is already used in the folder %s. Please choose a different name." => "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.", -"Not a valid source" => "No es una fuente válida", -"Server is not allowed to open URLs, please check the server configuration" => "La configuración del servidor no le permite abrir URLs, revísela.", -"The file exceeds your quota by %s" => "El archivo sobrepasa su cuota por %s", -"Error while downloading %s to %s" => "Error mientras se descargaba %s a %s", -"Error when creating the file" => "Error al crear el archivo", -"Folder name cannot be empty." => "El nombre de la carpeta no puede estar vacío.", -"Error when creating the folder" => "Error al crear la carpeta.", -"Unable to set upload directory." => "Incapaz de crear directorio de subida.", -"Invalid Token" => "Token Inválido", -"No file was uploaded. Unknown error" => "No se subió ningún archivo. Error desconocido", -"There is no error, the file uploaded with success" => "No hubo ningún problema, el archivo se subió con éxito", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML", -"The uploaded file was only partially uploaded" => "El archivo subido fue sólo subido parcialmente", -"No file was uploaded" => "No se subió ningún archivo", -"Missing a temporary folder" => "Falta la carpeta temporal", -"Failed to write to disk" => "Falló al escribir al disco", -"Not enough storage available" => "No hay suficiente espacio disponible", -"Upload failed. Could not find uploaded file" => "Actualización fallida. No se pudo encontrar el archivo subido", -"Upload failed. Could not get file info." => "Actualización fallida. No se pudo obtener información del archivo.", -"Invalid directory." => "Directorio inválido.", -"Files" => "Archivos", -"All files" => "Todos los archivos", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "El tamaño total del archivo {size1} excede el límite {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}", -"Upload cancelled." => "Subida cancelada.", -"Could not get result from server." => "No se pudo obtener respuesta del servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.", -"URL cannot be empty" => "La dirección URL no puede estar vacía", -"{new_name} already exists" => "{new_name} ya existe", -"Could not create file" => "No se pudo crear el archivo", -"Could not create folder" => "No se pudo crear la carpeta", -"Error fetching URL" => "Error al descargar URL.", -"Share" => "Compartir", -"Delete" => "Eliminar", -"Disconnect storage" => "Desconectar almacenamiento", -"Unshare" => "Dejar de compartir", -"Delete permanently" => "Eliminar permanentemente", -"Rename" => "Renombrar", -"Pending" => "Pendiente", -"Error moving file." => "Error al mover el archivo.", -"Error moving file" => "Error moviendo archivo", -"Error" => "Error", -"Could not rename file" => "No se pudo renombrar el archivo", -"Error deleting file." => "Error al borrar el archivo", -"Name" => "Nombre", -"Size" => "Tamaño", -"Modified" => "Modificado", -"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"), -"_%n file_::_%n files_" => array("%n archivo","%n archivos"), -"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.", -"_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"), -"\"{name}\" is an invalid file name." => "\"{name}\" es un nombre de archivo inválido.", -"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", -"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento está casi lleno ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", -"{dirs} and {files}" => "{dirs} y {files}", -"%s could not be renamed as it has been deleted" => "%s no se pudo renombrar pues ha sido eliminado", -"%s could not be renamed" => "%s no pudo ser renombrado", -"Upload (max. %s)" => "Subida (máx. %s)", -"File handling" => "Administración de archivos", -"Maximum upload size" => "Tamaño máximo de subida", -"max. possible: " => "máx. posible:", -"Save" => "Guardar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Use esta URL para acceder via WebDAV", -"New" => "Nuevo", -"New text file" => "Nuevo archivo de texto", -"Text file" => "Archivo de texto", -"New folder" => "Nueva carpeta", -"Folder" => "Carpeta", -"From link" => "Desde enlace", -"Nothing in here. Upload something!" => "No hay nada aquí. ¡Suba algo!", -"Download" => "Descargar", -"Upload too large" => "Subida demasido grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.", -"Files are being scanned, please wait." => "Los archivos están siendo escaneados, por favor espere.", -"Currently scanning" => "Escaneando en este momento" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js new file mode 100644 index 0000000000000000000000000000000000000000..fd9f9bd05e1418e8a25865b3fee27d0dfa5b034b --- /dev/null +++ b/apps/files/l10n/es_AR.js @@ -0,0 +1,82 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Error desconocido", + "Could not move %s - File with this name already exists" : "No se pudo mover %s - Un archivo con este nombre ya existe", + "Could not move %s" : "No se pudo mover %s ", + "File name cannot be empty." : "El nombre del archivo no puede quedar vacío.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s está en uso en el directorio %s. Por favor elija un otro nombre.", + "Not a valid source" : "No es una fuente válida", + "Server is not allowed to open URLs, please check the server configuration" : "El servidor no está permitido abrir las URLs, por favor chequee la configuración del servidor", + "Error while downloading %s to %s" : "Error mientras se descargaba %s a %s", + "Error when creating the file" : "Error al crear el archivo", + "Folder name cannot be empty." : "El nombre del directorio no puede estar vacío.", + "Error when creating the folder" : "Error al crear el directorio", + "Unable to set upload directory." : "No fue posible crear el directorio de subida.", + "Invalid Token" : "Token Inválido", + "No file was uploaded. Unknown error" : "El archivo no fue subido. Error desconocido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo fue subido con éxito", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo fue subido parcialmente", + "No file was uploaded" : "No se subió ningún archivo ", + "Missing a temporary folder" : "Falta un directorio temporal", + "Failed to write to disk" : "Error al escribir en el disco", + "Not enough storage available" : "No hay suficiente almacenamiento", + "Upload failed. Could not find uploaded file" : "Falló la carga. No se pudo encontrar el archivo subido.", + "Upload failed. Could not get file info." : "Falló la carga. No se pudo obtener la información del archivo.", + "Invalid directory." : "Directorio inválido.", + "Files" : "Archivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.", + "Upload cancelled." : "La subida fue cancelada", + "Could not get result from server." : "No se pudo obtener resultados del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.", + "URL cannot be empty" : "La URL no puede estar vacía", + "{new_name} already exists" : "{new_name} ya existe", + "Could not create file" : "No se pudo crear el archivo", + "Could not create folder" : "No se pudo crear el directorio", + "Error fetching URL" : "Error al obtener la URL", + "Share" : "Compartir", + "Delete" : "Borrar", + "Unshare" : "Dejar de compartir", + "Delete permanently" : "Borrar permanentemente", + "Rename" : "Cambiar nombre", + "Pending" : "Pendientes", + "Error moving file" : "Error moviendo el archivo", + "Error" : "Error", + "Could not rename file" : "No se pudo renombrar el archivo", + "Error deleting file." : "Error al borrar el archivo.", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "You don’t have permission to upload or create files here" : "No tienes permisos para subir o crear archivos aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], + "Your storage is full, files can not be updated or synced anymore!" : "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando", + "Your storage is almost full ({usedSpacePercent}%)" : "El almacenamiento está casi lleno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.", + "{dirs} and {files}" : "{carpetas} y {archivos}", + "%s could not be renamed" : "No se pudo renombrar %s", + "File handling" : "Tratamiento de archivos", + "Maximum upload size" : "Tamaño máximo de subida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usar esta dirección para acceder a tus archivos vía WebDAV", + "New" : "Nuevo", + "New text file" : "Nuevo archivo de texto", + "Text file" : "Archivo de texto", + "New folder" : "Nueva Carpeta", + "Folder" : "Carpeta", + "From link" : "Desde enlace", + "Nothing in here. Upload something!" : "No hay nada. ¡Subí contenido!", + "Download" : "Descargar", + "Upload too large" : "El tamaño del archivo que querés subir es demasiado grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que intentás subir sobrepasan el tamaño máximo ", + "Files are being scanned, please wait." : "Se están escaneando los archivos, por favor esperá." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json new file mode 100644 index 0000000000000000000000000000000000000000..aa701390e6829f3201ddca37a2ceb7bc04ed103a --- /dev/null +++ b/apps/files/l10n/es_AR.json @@ -0,0 +1,80 @@ +{ "translations": { + "Unknown error" : "Error desconocido", + "Could not move %s - File with this name already exists" : "No se pudo mover %s - Un archivo con este nombre ya existe", + "Could not move %s" : "No se pudo mover %s ", + "File name cannot be empty." : "El nombre del archivo no puede quedar vacío.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.", + "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s está en uso en el directorio %s. Por favor elija un otro nombre.", + "Not a valid source" : "No es una fuente válida", + "Server is not allowed to open URLs, please check the server configuration" : "El servidor no está permitido abrir las URLs, por favor chequee la configuración del servidor", + "Error while downloading %s to %s" : "Error mientras se descargaba %s a %s", + "Error when creating the file" : "Error al crear el archivo", + "Folder name cannot be empty." : "El nombre del directorio no puede estar vacío.", + "Error when creating the folder" : "Error al crear el directorio", + "Unable to set upload directory." : "No fue posible crear el directorio de subida.", + "Invalid Token" : "Token Inválido", + "No file was uploaded. Unknown error" : "El archivo no fue subido. Error desconocido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo fue subido con éxito", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo fue subido parcialmente", + "No file was uploaded" : "No se subió ningún archivo ", + "Missing a temporary folder" : "Falta un directorio temporal", + "Failed to write to disk" : "Error al escribir en el disco", + "Not enough storage available" : "No hay suficiente almacenamiento", + "Upload failed. Could not find uploaded file" : "Falló la carga. No se pudo encontrar el archivo subido.", + "Upload failed. Could not get file info." : "Falló la carga. No se pudo obtener la información del archivo.", + "Invalid directory." : "Directorio inválido.", + "Files" : "Archivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.", + "Upload cancelled." : "La subida fue cancelada", + "Could not get result from server." : "No se pudo obtener resultados del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.", + "URL cannot be empty" : "La URL no puede estar vacía", + "{new_name} already exists" : "{new_name} ya existe", + "Could not create file" : "No se pudo crear el archivo", + "Could not create folder" : "No se pudo crear el directorio", + "Error fetching URL" : "Error al obtener la URL", + "Share" : "Compartir", + "Delete" : "Borrar", + "Unshare" : "Dejar de compartir", + "Delete permanently" : "Borrar permanentemente", + "Rename" : "Cambiar nombre", + "Pending" : "Pendientes", + "Error moving file" : "Error moviendo el archivo", + "Error" : "Error", + "Could not rename file" : "No se pudo renombrar el archivo", + "Error deleting file." : "Error al borrar el archivo.", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "You don’t have permission to upload or create files here" : "No tienes permisos para subir o crear archivos aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], + "Your storage is full, files can not be updated or synced anymore!" : "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando", + "Your storage is almost full ({usedSpacePercent}%)" : "El almacenamiento está casi lleno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.", + "{dirs} and {files}" : "{carpetas} y {archivos}", + "%s could not be renamed" : "No se pudo renombrar %s", + "File handling" : "Tratamiento de archivos", + "Maximum upload size" : "Tamaño máximo de subida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usar esta dirección para acceder a tus archivos vía WebDAV", + "New" : "Nuevo", + "New text file" : "Nuevo archivo de texto", + "Text file" : "Archivo de texto", + "New folder" : "Nueva Carpeta", + "Folder" : "Carpeta", + "From link" : "Desde enlace", + "Nothing in here. Upload something!" : "No hay nada. ¡Subí contenido!", + "Download" : "Descargar", + "Upload too large" : "El tamaño del archivo que querés subir es demasiado grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que intentás subir sobrepasan el tamaño máximo ", + "Files are being scanned, please wait." : "Se están escaneando los archivos, por favor esperá." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php deleted file mode 100644 index 8b9fe78791e257996b2c236d858665ed74432a3d..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_AR.php +++ /dev/null @@ -1,81 +0,0 @@ - "Error desconocido", -"Could not move %s - File with this name already exists" => "No se pudo mover %s - Un archivo con este nombre ya existe", -"Could not move %s" => "No se pudo mover %s ", -"File name cannot be empty." => "El nombre del archivo no puede quedar vacío.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.", -"The name %s is already used in the folder %s. Please choose a different name." => "El nombre %s está en uso en el directorio %s. Por favor elija un otro nombre.", -"Not a valid source" => "No es una fuente válida", -"Server is not allowed to open URLs, please check the server configuration" => "El servidor no está permitido abrir las URLs, por favor chequee la configuración del servidor", -"Error while downloading %s to %s" => "Error mientras se descargaba %s a %s", -"Error when creating the file" => "Error al crear el archivo", -"Folder name cannot be empty." => "El nombre del directorio no puede estar vacío.", -"Error when creating the folder" => "Error al crear el directorio", -"Unable to set upload directory." => "No fue posible crear el directorio de subida.", -"Invalid Token" => "Token Inválido", -"No file was uploaded. Unknown error" => "El archivo no fue subido. Error desconocido", -"There is no error, the file uploaded with success" => "No hay errores, el archivo fue subido con éxito", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML", -"The uploaded file was only partially uploaded" => "El archivo fue subido parcialmente", -"No file was uploaded" => "No se subió ningún archivo ", -"Missing a temporary folder" => "Falta un directorio temporal", -"Failed to write to disk" => "Error al escribir en el disco", -"Not enough storage available" => "No hay suficiente almacenamiento", -"Upload failed. Could not find uploaded file" => "Falló la carga. No se pudo encontrar el archivo subido.", -"Upload failed. Could not get file info." => "Falló la carga. No se pudo obtener la información del archivo.", -"Invalid directory." => "Directorio inválido.", -"Files" => "Archivos", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Imposible cargar {filename} puesto que es un directoro o tiene 0 bytes.", -"Upload cancelled." => "La subida fue cancelada", -"Could not get result from server." => "No se pudo obtener resultados del servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.", -"URL cannot be empty" => "La URL no puede estar vacía", -"{new_name} already exists" => "{new_name} ya existe", -"Could not create file" => "No se pudo crear el archivo", -"Could not create folder" => "No se pudo crear el directorio", -"Error fetching URL" => "Error al obtener la URL", -"Share" => "Compartir", -"Delete" => "Borrar", -"Unshare" => "Dejar de compartir", -"Delete permanently" => "Borrar permanentemente", -"Rename" => "Cambiar nombre", -"Pending" => "Pendientes", -"Error moving file" => "Error moviendo el archivo", -"Error" => "Error", -"Could not rename file" => "No se pudo renombrar el archivo", -"Error deleting file." => "Error al borrar el archivo.", -"Name" => "Nombre", -"Size" => "Tamaño", -"Modified" => "Modificado", -"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"), -"_%n file_::_%n files_" => array("%n archivo","%n archivos"), -"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí", -"_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"), -"Your storage is full, files can not be updated or synced anymore!" => "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando", -"Your storage is almost full ({usedSpacePercent}%)" => "El almacenamiento está casi lleno ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "El proceso de cifrado se ha desactivado, pero los archivos aún están encriptados. Por favor, vaya a la configuración personal para descifrar los archivos.", -"{dirs} and {files}" => "{carpetas} y {archivos}", -"%s could not be renamed" => "No se pudo renombrar %s", -"File handling" => "Tratamiento de archivos", -"Maximum upload size" => "Tamaño máximo de subida", -"max. possible: " => "máx. posible:", -"Save" => "Guardar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Usar esta dirección para acceder a tus archivos vía WebDAV", -"New" => "Nuevo", -"New text file" => "Nuevo archivo de texto", -"Text file" => "Archivo de texto", -"New folder" => "Nueva Carpeta", -"Folder" => "Carpeta", -"From link" => "Desde enlace", -"Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!", -"Download" => "Descargar", -"Upload too large" => "El tamaño del archivo que querés subir es demasiado grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ", -"Files are being scanned, please wait." => "Se están escaneando los archivos, por favor esperá." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_BO.js b/apps/files/l10n/es_BO.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_BO.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_BO.json b/apps/files/l10n/es_BO.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_BO.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_BO.php b/apps/files/l10n/es_BO.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_BO.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js new file mode 100644 index 0000000000000000000000000000000000000000..7a6f60c2961f8414ebdf1df4072b60326e168821 --- /dev/null +++ b/apps/files/l10n/es_CL.js @@ -0,0 +1,15 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Error desconocido", + "Files" : "Archivos", + "Share" : "Compartir", + "Rename" : "Renombrar", + "Error" : "Error", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "New folder" : "Nuevo directorio", + "Download" : "Descargar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json new file mode 100644 index 0000000000000000000000000000000000000000..bb2cd20607771b44e9882efc60b7ff8a58219e11 --- /dev/null +++ b/apps/files/l10n/es_CL.json @@ -0,0 +1,13 @@ +{ "translations": { + "Unknown error" : "Error desconocido", + "Files" : "Archivos", + "Share" : "Compartir", + "Rename" : "Renombrar", + "Error" : "Error", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "New folder" : "Nuevo directorio", + "Download" : "Descargar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_CL.php b/apps/files/l10n/es_CL.php deleted file mode 100644 index c92170830cc90c2235e9b534beb92d617edeb335..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_CL.php +++ /dev/null @@ -1,14 +0,0 @@ - "Error desconocido", -"Files" => "Archivos", -"Share" => "Compartir", -"Rename" => "Renombrar", -"Error" => "Error", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"New folder" => "Nuevo directorio", -"Download" => "Descargar" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_CO.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_CO.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_CO.php b/apps/files/l10n/es_CO.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_CO.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_CR.js b/apps/files/l10n/es_CR.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_CR.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_CR.json b/apps/files/l10n/es_CR.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_CR.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_CR.php b/apps/files/l10n/es_CR.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_CR.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_EC.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_EC.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_EC.php b/apps/files/l10n/es_EC.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_EC.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js new file mode 100644 index 0000000000000000000000000000000000000000..9d353e84a256763238a6b801aeca789f769051b2 --- /dev/null +++ b/apps/files/l10n/es_MX.js @@ -0,0 +1,82 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Error desconocido", + "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.", + "Could not move %s" : "No se pudo mover %s", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", + "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.", + "Not a valid source" : "No es un origen válido", + "Server is not allowed to open URLs, please check the server configuration" : "El servidor no puede acceder URLs; revise la configuración del servidor.", + "Error while downloading %s to %s" : "Error mientras se descargaba %s a %s", + "Error when creating the file" : "Error al crear el archivo", + "Folder name cannot be empty." : "El nombre de la carpeta no puede estar vacío.", + "Error when creating the folder" : "Error al crear la carpeta.", + "Unable to set upload directory." : "Incapaz de crear directorio de subida.", + "Invalid Token" : "Token Inválido", + "No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido", + "There is no error, the file uploaded with success" : "No hubo ningún problema, el archivo se subió con éxito", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo subido fue sólo subido parcialmente", + "No file was uploaded" : "No se subió ningún archivo", + "Missing a temporary folder" : "Falta la carpeta temporal", + "Failed to write to disk" : "Falló al escribir al disco", + "Not enough storage available" : "No hay suficiente espacio disponible", + "Upload failed. Could not find uploaded file" : "Actualización fallida. No se pudo encontrar el archivo subido", + "Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.", + "Invalid directory." : "Directorio inválido.", + "Files" : "Archivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes", + "Upload cancelled." : "Subida cancelada.", + "Could not get result from server." : "No se pudo obtener respuesta del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.", + "URL cannot be empty" : "La dirección URL no puede estar vacía", + "{new_name} already exists" : "{new_name} ya existe", + "Could not create file" : "No se pudo crear el archivo", + "Could not create folder" : "No se pudo crear la carpeta", + "Error fetching URL" : "Error al descargar URL.", + "Share" : "Compartir", + "Delete" : "Eliminar", + "Unshare" : "Dejar de compartir", + "Delete permanently" : "Eliminar permanentemente", + "Rename" : "Renombrar", + "Pending" : "Pendiente", + "Error moving file" : "Error moviendo archivo", + "Error" : "Error", + "Could not rename file" : "No se pudo renombrar el archivo", + "Error deleting file." : "Error borrando el archivo.", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "You don’t have permission to upload or create files here" : "No tienes permisos para subir o crear archivos aquí.", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], + "Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", + "Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", + "{dirs} and {files}" : "{dirs} y {files}", + "%s could not be renamed" : "%s no pudo ser renombrado", + "File handling" : "Administración de archivos", + "Maximum upload size" : "Tamaño máximo de subida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilice esta dirección para acceder a sus archivos vía WebDAV", + "New" : "Nuevo", + "New text file" : "Nuevo archivo de texto", + "Text file" : "Archivo de texto", + "New folder" : "Nueva carpeta", + "Folder" : "Carpeta", + "From link" : "Desde enlace", + "Nothing in here. Upload something!" : "No hay nada aquí. ¡Suba algo!", + "Download" : "Descargar", + "Upload too large" : "Subida demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.", + "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json new file mode 100644 index 0000000000000000000000000000000000000000..f08223b70c7913c37e93427afaaffe2634468d5c --- /dev/null +++ b/apps/files/l10n/es_MX.json @@ -0,0 +1,80 @@ +{ "translations": { + "Unknown error" : "Error desconocido", + "Could not move %s - File with this name already exists" : "No se pudo mover %s - Ya existe un archivo con ese nombre.", + "Could not move %s" : "No se pudo mover %s", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", + "The name %s is already used in the folder %s. Please choose a different name." : "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.", + "Not a valid source" : "No es un origen válido", + "Server is not allowed to open URLs, please check the server configuration" : "El servidor no puede acceder URLs; revise la configuración del servidor.", + "Error while downloading %s to %s" : "Error mientras se descargaba %s a %s", + "Error when creating the file" : "Error al crear el archivo", + "Folder name cannot be empty." : "El nombre de la carpeta no puede estar vacío.", + "Error when creating the folder" : "Error al crear la carpeta.", + "Unable to set upload directory." : "Incapaz de crear directorio de subida.", + "Invalid Token" : "Token Inválido", + "No file was uploaded. Unknown error" : "No se subió ningún archivo. Error desconocido", + "There is no error, the file uploaded with success" : "No hubo ningún problema, el archivo se subió con éxito", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo subido fue sólo subido parcialmente", + "No file was uploaded" : "No se subió ningún archivo", + "Missing a temporary folder" : "Falta la carpeta temporal", + "Failed to write to disk" : "Falló al escribir al disco", + "Not enough storage available" : "No hay suficiente espacio disponible", + "Upload failed. Could not find uploaded file" : "Actualización fallida. No se pudo encontrar el archivo subido", + "Upload failed. Could not get file info." : "Actualización fallida. No se pudo obtener información del archivo.", + "Invalid directory." : "Directorio inválido.", + "Files" : "Archivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes", + "Upload cancelled." : "Subida cancelada.", + "Could not get result from server." : "No se pudo obtener respuesta del servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.", + "URL cannot be empty" : "La dirección URL no puede estar vacía", + "{new_name} already exists" : "{new_name} ya existe", + "Could not create file" : "No se pudo crear el archivo", + "Could not create folder" : "No se pudo crear la carpeta", + "Error fetching URL" : "Error al descargar URL.", + "Share" : "Compartir", + "Delete" : "Eliminar", + "Unshare" : "Dejar de compartir", + "Delete permanently" : "Eliminar permanentemente", + "Rename" : "Renombrar", + "Pending" : "Pendiente", + "Error moving file" : "Error moviendo archivo", + "Error" : "Error", + "Could not rename file" : "No se pudo renombrar el archivo", + "Error deleting file." : "Error borrando el archivo.", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "You don’t have permission to upload or create files here" : "No tienes permisos para subir o crear archivos aquí.", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], + "Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", + "Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", + "{dirs} and {files}" : "{dirs} y {files}", + "%s could not be renamed" : "%s no pudo ser renombrado", + "File handling" : "Administración de archivos", + "Maximum upload size" : "Tamaño máximo de subida", + "max. possible: " : "máx. posible:", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilice esta dirección para acceder a sus archivos vía WebDAV", + "New" : "Nuevo", + "New text file" : "Nuevo archivo de texto", + "Text file" : "Archivo de texto", + "New folder" : "Nueva carpeta", + "Folder" : "Carpeta", + "From link" : "Desde enlace", + "Nothing in here. Upload something!" : "No hay nada aquí. ¡Suba algo!", + "Download" : "Descargar", + "Upload too large" : "Subida demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.", + "Files are being scanned, please wait." : "Los archivos están siendo escaneados, por favor espere." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_MX.php b/apps/files/l10n/es_MX.php deleted file mode 100644 index d11bc4301dfbc269a775cf30007d2612981638e1..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_MX.php +++ /dev/null @@ -1,81 +0,0 @@ - "Error desconocido", -"Could not move %s - File with this name already exists" => "No se pudo mover %s - Ya existe un archivo con ese nombre.", -"Could not move %s" => "No se pudo mover %s", -"File name cannot be empty." => "El nombre de archivo no puede estar vacío.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", -"The name %s is already used in the folder %s. Please choose a different name." => "El nombre %s ya está en uso por la carpeta %s. Por favor elija uno diferente.", -"Not a valid source" => "No es un origen válido", -"Server is not allowed to open URLs, please check the server configuration" => "El servidor no puede acceder URLs; revise la configuración del servidor.", -"Error while downloading %s to %s" => "Error mientras se descargaba %s a %s", -"Error when creating the file" => "Error al crear el archivo", -"Folder name cannot be empty." => "El nombre de la carpeta no puede estar vacío.", -"Error when creating the folder" => "Error al crear la carpeta.", -"Unable to set upload directory." => "Incapaz de crear directorio de subida.", -"Invalid Token" => "Token Inválido", -"No file was uploaded. Unknown error" => "No se subió ningún archivo. Error desconocido", -"There is no error, the file uploaded with success" => "No hubo ningún problema, el archivo se subió con éxito", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo subido sobrepasa la directiva 'upload_max_filesize' en php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo subido sobrepasa la directiva 'MAX_FILE_SIZE' especificada en el formulario HTML", -"The uploaded file was only partially uploaded" => "El archivo subido fue sólo subido parcialmente", -"No file was uploaded" => "No se subió ningún archivo", -"Missing a temporary folder" => "Falta la carpeta temporal", -"Failed to write to disk" => "Falló al escribir al disco", -"Not enough storage available" => "No hay suficiente espacio disponible", -"Upload failed. Could not find uploaded file" => "Actualización fallida. No se pudo encontrar el archivo subido", -"Upload failed. Could not get file info." => "Actualización fallida. No se pudo obtener información del archivo.", -"Invalid directory." => "Directorio inválido.", -"Files" => "Archivos", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes", -"Upload cancelled." => "Subida cancelada.", -"Could not get result from server." => "No se pudo obtener respuesta del servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si sale de la página ahora, la subida será cancelada.", -"URL cannot be empty" => "La dirección URL no puede estar vacía", -"{new_name} already exists" => "{new_name} ya existe", -"Could not create file" => "No se pudo crear el archivo", -"Could not create folder" => "No se pudo crear la carpeta", -"Error fetching URL" => "Error al descargar URL.", -"Share" => "Compartir", -"Delete" => "Eliminar", -"Unshare" => "Dejar de compartir", -"Delete permanently" => "Eliminar permanentemente", -"Rename" => "Renombrar", -"Pending" => "Pendiente", -"Error moving file" => "Error moviendo archivo", -"Error" => "Error", -"Could not rename file" => "No se pudo renombrar el archivo", -"Error deleting file." => "Error borrando el archivo.", -"Name" => "Nombre", -"Size" => "Tamaño", -"Modified" => "Modificado", -"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"), -"_%n file_::_%n files_" => array("%n archivo","%n archivos"), -"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.", -"_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"), -"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", -"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento está casi lleno ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.", -"{dirs} and {files}" => "{dirs} y {files}", -"%s could not be renamed" => "%s no pudo ser renombrado", -"File handling" => "Administración de archivos", -"Maximum upload size" => "Tamaño máximo de subida", -"max. possible: " => "máx. posible:", -"Save" => "Guardar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Utilice esta dirección para acceder a sus archivos vía WebDAV", -"New" => "Nuevo", -"New text file" => "Nuevo archivo de texto", -"Text file" => "Archivo de texto", -"New folder" => "Nueva carpeta", -"Folder" => "Carpeta", -"From link" => "Desde enlace", -"Nothing in here. Upload something!" => "No hay nada aquí. ¡Suba algo!", -"Download" => "Descargar", -"Upload too large" => "Subida demasido grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.", -"Files are being scanned, please wait." => "Los archivos están siendo escaneados, por favor espere." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_PE.js b/apps/files/l10n/es_PE.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_PE.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_PE.json b/apps/files/l10n/es_PE.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_PE.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_PE.php b/apps/files/l10n/es_PE.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_PE.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_PY.js b/apps/files/l10n/es_PY.js new file mode 100644 index 0000000000000000000000000000000000000000..8a7f665016d0ad28952279a14fdd505f9d4ed1e9 --- /dev/null +++ b/apps/files/l10n/es_PY.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files", + { + "Files" : "Archivos", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_PY.json b/apps/files/l10n/es_PY.json new file mode 100644 index 0000000000000000000000000000000000000000..85d1fa4e4c0d06c0338d49e651706855418d7ef8 --- /dev/null +++ b/apps/files/l10n/es_PY.json @@ -0,0 +1,7 @@ +{ "translations": { + "Files" : "Archivos", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_PY.php b/apps/files/l10n/es_PY.php deleted file mode 100644 index f3def68c0bfd8f2adcb221833bc0d665337c0e93..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_PY.php +++ /dev/null @@ -1,8 +0,0 @@ - "Archivos", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_US.js b/apps/files/l10n/es_US.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_US.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_US.json b/apps/files/l10n/es_US.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_US.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_US.php b/apps/files/l10n/es_US.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_US.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/es_UY.js b/apps/files/l10n/es_UY.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/es_UY.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_UY.json b/apps/files/l10n/es_UY.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/es_UY.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/es_UY.php b/apps/files/l10n/es_UY.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/es_UY.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js new file mode 100644 index 0000000000000000000000000000000000000000..0ffbb81f63cac3b51b1d8b60634c78d51ee6671f --- /dev/null +++ b/apps/files/l10n/et_EE.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Andmehoidla pole saadaval", + "Storage invalid" : "Vigane andmehoidla", + "Unknown error" : "Tundmatu viga", + "Could not move %s - File with this name already exists" : "Ei saa liigutada faili %s - samanimeline fail on juba olemas", + "Could not move %s" : "%s liigutamine ebaõnnestus", + "Permission denied" : "Ligipääs keelatud", + "File name cannot be empty." : "Faili nimi ei saa olla tühi.", + "\"%s\" is an invalid file name." : "\"%s\" on vigane failinimi.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", + "The target folder has been moved or deleted." : "Sihtkataloog on ümber tõstetud või kustutatud.", + "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.", + "Not a valid source" : "Pole korrektne lähteallikas", + "Server is not allowed to open URLs, please check the server configuration" : "Server ei võimalda URL-ide avamist, palun kontrolli serveri seadistust", + "The file exceeds your quota by %s" : "Fail ületab sinu limiidi: %s", + "Error while downloading %s to %s" : "Viga %s allalaadimisel %s", + "Error when creating the file" : "Viga faili loomisel", + "Folder name cannot be empty." : "Kataloogi nimi ei saa olla tühi.", + "Error when creating the folder" : "Viga kataloogi loomisel", + "Unable to set upload directory." : "Üleslaadimiste kausta määramine ebaõnnestus.", + "Invalid Token" : "Vigane kontrollkood", + "No file was uploaded. Unknown error" : "Ühtegi faili ei laetud üles. Tundmatu viga", + "There is no error, the file uploaded with success" : "Ühtegi tõrget polnud, fail on üles laetud", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Üleslaetud fail ületab MAX_FILE_SIZE suuruse, mis on HTML vormi jaoks määratud", + "The uploaded file was only partially uploaded" : "Fail laeti üles ainult osaliselt", + "No file was uploaded" : "Ühtegi faili ei laetud üles", + "Missing a temporary folder" : "Ajutiste failide kaust puudub", + "Failed to write to disk" : "Kettale kirjutamine ebaõnnestus", + "Not enough storage available" : "Saadaval pole piisavalt ruumi", + "Upload failed. Could not find uploaded file" : "Üleslaadimine ebaõnnestus. Üleslaetud faili ei leitud", + "Upload failed. Could not get file info." : "Üleslaadimine ebaõnnestus. Faili info hankimine ebaõnnestus.", + "Invalid directory." : "Vigane kaust.", + "Files" : "Failid", + "All files" : "Kõik failid", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ei saa üles laadida {filename}, kuna see on kataloog või selle suurus on 0 baiti", + "Total file size {size1} exceeds upload limit {size2}" : "Faili suurus {size1} ületab faili üleslaadimise mahu piirangu {size2}.", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", + "Upload cancelled." : "Üleslaadimine tühistati.", + "Could not get result from server." : "Serverist ei saadud tulemusi", + "File upload is in progress. Leaving the page now will cancel the upload." : "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", + "URL cannot be empty" : "URL ei saa olla tühi", + "{new_name} already exists" : "{new_name} on juba olemas", + "Could not create file" : "Ei suuda luua faili", + "Could not create folder" : "Ei suuda luua kataloogi", + "Error fetching URL" : "Viga URL-i haaramisel", + "Share" : "Jaga", + "Delete" : "Kustuta", + "Disconnect storage" : "Ühenda andmehoidla lahti.", + "Unshare" : "Lõpeta jagamine", + "Delete permanently" : "Kustuta jäädavalt", + "Rename" : "Nimeta ümber", + "Pending" : "Ootel", + "Error moving file." : "Viga faili liigutamisel.", + "Error moving file" : "Viga faili eemaldamisel", + "Error" : "Viga", + "Could not rename file" : "Ei suuda faili ümber nimetada", + "Error deleting file." : "Viga faili kustutamisel.", + "Name" : "Nimi", + "Size" : "Suurus", + "Modified" : "Muudetud", + "_%n folder_::_%n folders_" : ["%n kataloog","%n kataloogi"], + "_%n file_::_%n files_" : ["%n fail","%n faili"], + "You don’t have permission to upload or create files here" : "Sul puuduvad õigused siia failide üleslaadimiseks või tekitamiseks", + "_Uploading %n file_::_Uploading %n files_" : ["Laadin üles %n faili","Laadin üles %n faili"], + "\"{name}\" is an invalid file name." : "\"{name}\" on vigane failinimi.", + "Your storage is full, files can not be updated or synced anymore!" : "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!", + "Your storage is almost full ({usedSpacePercent}%)" : "Su andmemaht on peaaegu täis ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.", + "{dirs} and {files}" : "{dirs} ja {files}", + "%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud", + "%s could not be renamed" : "%s ümbernimetamine ebaõnnestus", + "Upload (max. %s)" : "Üleslaadimine (max. %s)", + "File handling" : "Failide käsitlemine", + "Maximum upload size" : "Maksimaalne üleslaadimise suurus", + "max. possible: " : "maks. võimalik: ", + "Save" : "Salvesta", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Kasuta seda aadressi oma failidele ligipääsuks WebDAV kaudu", + "New" : "Uus", + "New text file" : "Uus tekstifail", + "Text file" : "Tekstifail", + "New folder" : "Uus kaust", + "Folder" : "Kaust", + "From link" : "Allikast", + "Nothing in here. Upload something!" : "Siin pole midagi. Lae midagi üles!", + "Download" : "Lae alla", + "Upload too large" : "Üleslaadimine on liiga suur", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.", + "Files are being scanned, please wait." : "Faile skannitakse, palun oota.", + "Currently scanning" : "Praegu skännimisel" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json new file mode 100644 index 0000000000000000000000000000000000000000..fdb5bdcb4f214f6747876b04b1d95007170f0c88 --- /dev/null +++ b/apps/files/l10n/et_EE.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Andmehoidla pole saadaval", + "Storage invalid" : "Vigane andmehoidla", + "Unknown error" : "Tundmatu viga", + "Could not move %s - File with this name already exists" : "Ei saa liigutada faili %s - samanimeline fail on juba olemas", + "Could not move %s" : "%s liigutamine ebaõnnestus", + "Permission denied" : "Ligipääs keelatud", + "File name cannot be empty." : "Faili nimi ei saa olla tühi.", + "\"%s\" is an invalid file name." : "\"%s\" on vigane failinimi.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", + "The target folder has been moved or deleted." : "Sihtkataloog on ümber tõstetud või kustutatud.", + "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.", + "Not a valid source" : "Pole korrektne lähteallikas", + "Server is not allowed to open URLs, please check the server configuration" : "Server ei võimalda URL-ide avamist, palun kontrolli serveri seadistust", + "The file exceeds your quota by %s" : "Fail ületab sinu limiidi: %s", + "Error while downloading %s to %s" : "Viga %s allalaadimisel %s", + "Error when creating the file" : "Viga faili loomisel", + "Folder name cannot be empty." : "Kataloogi nimi ei saa olla tühi.", + "Error when creating the folder" : "Viga kataloogi loomisel", + "Unable to set upload directory." : "Üleslaadimiste kausta määramine ebaõnnestus.", + "Invalid Token" : "Vigane kontrollkood", + "No file was uploaded. Unknown error" : "Ühtegi faili ei laetud üles. Tundmatu viga", + "There is no error, the file uploaded with success" : "Ühtegi tõrget polnud, fail on üles laetud", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Üleslaetud fail ületab MAX_FILE_SIZE suuruse, mis on HTML vormi jaoks määratud", + "The uploaded file was only partially uploaded" : "Fail laeti üles ainult osaliselt", + "No file was uploaded" : "Ühtegi faili ei laetud üles", + "Missing a temporary folder" : "Ajutiste failide kaust puudub", + "Failed to write to disk" : "Kettale kirjutamine ebaõnnestus", + "Not enough storage available" : "Saadaval pole piisavalt ruumi", + "Upload failed. Could not find uploaded file" : "Üleslaadimine ebaõnnestus. Üleslaetud faili ei leitud", + "Upload failed. Could not get file info." : "Üleslaadimine ebaõnnestus. Faili info hankimine ebaõnnestus.", + "Invalid directory." : "Vigane kaust.", + "Files" : "Failid", + "All files" : "Kõik failid", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ei saa üles laadida {filename}, kuna see on kataloog või selle suurus on 0 baiti", + "Total file size {size1} exceeds upload limit {size2}" : "Faili suurus {size1} ületab faili üleslaadimise mahu piirangu {size2}.", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", + "Upload cancelled." : "Üleslaadimine tühistati.", + "Could not get result from server." : "Serverist ei saadud tulemusi", + "File upload is in progress. Leaving the page now will cancel the upload." : "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", + "URL cannot be empty" : "URL ei saa olla tühi", + "{new_name} already exists" : "{new_name} on juba olemas", + "Could not create file" : "Ei suuda luua faili", + "Could not create folder" : "Ei suuda luua kataloogi", + "Error fetching URL" : "Viga URL-i haaramisel", + "Share" : "Jaga", + "Delete" : "Kustuta", + "Disconnect storage" : "Ühenda andmehoidla lahti.", + "Unshare" : "Lõpeta jagamine", + "Delete permanently" : "Kustuta jäädavalt", + "Rename" : "Nimeta ümber", + "Pending" : "Ootel", + "Error moving file." : "Viga faili liigutamisel.", + "Error moving file" : "Viga faili eemaldamisel", + "Error" : "Viga", + "Could not rename file" : "Ei suuda faili ümber nimetada", + "Error deleting file." : "Viga faili kustutamisel.", + "Name" : "Nimi", + "Size" : "Suurus", + "Modified" : "Muudetud", + "_%n folder_::_%n folders_" : ["%n kataloog","%n kataloogi"], + "_%n file_::_%n files_" : ["%n fail","%n faili"], + "You don’t have permission to upload or create files here" : "Sul puuduvad õigused siia failide üleslaadimiseks või tekitamiseks", + "_Uploading %n file_::_Uploading %n files_" : ["Laadin üles %n faili","Laadin üles %n faili"], + "\"{name}\" is an invalid file name." : "\"{name}\" on vigane failinimi.", + "Your storage is full, files can not be updated or synced anymore!" : "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!", + "Your storage is almost full ({usedSpacePercent}%)" : "Su andmemaht on peaaegu täis ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.", + "{dirs} and {files}" : "{dirs} ja {files}", + "%s could not be renamed as it has been deleted" : "%s ei saa ümber nimetada, kuna see on kustutatud", + "%s could not be renamed" : "%s ümbernimetamine ebaõnnestus", + "Upload (max. %s)" : "Üleslaadimine (max. %s)", + "File handling" : "Failide käsitlemine", + "Maximum upload size" : "Maksimaalne üleslaadimise suurus", + "max. possible: " : "maks. võimalik: ", + "Save" : "Salvesta", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Kasuta seda aadressi oma failidele ligipääsuks WebDAV kaudu", + "New" : "Uus", + "New text file" : "Uus tekstifail", + "Text file" : "Tekstifail", + "New folder" : "Uus kaust", + "Folder" : "Kaust", + "From link" : "Allikast", + "Nothing in here. Upload something!" : "Siin pole midagi. Lae midagi üles!", + "Download" : "Lae alla", + "Upload too large" : "Üleslaadimine on liiga suur", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.", + "Files are being scanned, please wait." : "Faile skannitakse, palun oota.", + "Currently scanning" : "Praegu skännimisel" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php deleted file mode 100644 index d40805d04bfc972c2bf9ebbd1434d7511c5f1c4e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/et_EE.php +++ /dev/null @@ -1,96 +0,0 @@ - "Andmehoidla pole saadaval", -"Storage invalid" => "Vigane andmehoidla", -"Unknown error" => "Tundmatu viga", -"Could not move %s - File with this name already exists" => "Ei saa liigutada faili %s - samanimeline fail on juba olemas", -"Could not move %s" => "%s liigutamine ebaõnnestus", -"Permission denied" => "Ligipääs keelatud", -"File name cannot be empty." => "Faili nimi ei saa olla tühi.", -"\"%s\" is an invalid file name." => "\"%s\" on vigane failinimi.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", -"The target folder has been moved or deleted." => "Sihtkataloog on ümber tõstetud või kustutatud.", -"The name %s is already used in the folder %s. Please choose a different name." => "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.", -"Not a valid source" => "Pole korrektne lähteallikas", -"Server is not allowed to open URLs, please check the server configuration" => "Server ei võimalda URL-ide avamist, palun kontrolli serveri seadistust", -"The file exceeds your quota by %s" => "Fail ületab sinu limiidi: %s", -"Error while downloading %s to %s" => "Viga %s allalaadimisel %s", -"Error when creating the file" => "Viga faili loomisel", -"Folder name cannot be empty." => "Kataloogi nimi ei saa olla tühi.", -"Error when creating the folder" => "Viga kataloogi loomisel", -"Unable to set upload directory." => "Üleslaadimiste kausta määramine ebaõnnestus.", -"Invalid Token" => "Vigane kontrollkood", -"No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga", -"There is no error, the file uploaded with success" => "Ühtegi tõrget polnud, fail on üles laetud", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Üleslaetud fail ületab MAX_FILE_SIZE suuruse, mis on HTML vormi jaoks määratud", -"The uploaded file was only partially uploaded" => "Fail laeti üles ainult osaliselt", -"No file was uploaded" => "Ühtegi faili ei laetud üles", -"Missing a temporary folder" => "Ajutiste failide kaust puudub", -"Failed to write to disk" => "Kettale kirjutamine ebaõnnestus", -"Not enough storage available" => "Saadaval pole piisavalt ruumi", -"Upload failed. Could not find uploaded file" => "Üleslaadimine ebaõnnestus. Üleslaetud faili ei leitud", -"Upload failed. Could not get file info." => "Üleslaadimine ebaõnnestus. Faili info hankimine ebaõnnestus.", -"Invalid directory." => "Vigane kaust.", -"Files" => "Failid", -"All files" => "Kõik failid", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Ei saa üles laadida {filename}, kuna see on kataloog või selle suurus on 0 baiti", -"Total file size {size1} exceeds upload limit {size2}" => "Faili suurus {size1} ületab faili üleslaadimise mahu piirangu {size2}.", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", -"Upload cancelled." => "Üleslaadimine tühistati.", -"Could not get result from server." => "Serverist ei saadud tulemusi", -"File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", -"URL cannot be empty" => "URL ei saa olla tühi", -"{new_name} already exists" => "{new_name} on juba olemas", -"Could not create file" => "Ei suuda luua faili", -"Could not create folder" => "Ei suuda luua kataloogi", -"Error fetching URL" => "Viga URL-i haaramisel", -"Share" => "Jaga", -"Delete" => "Kustuta", -"Disconnect storage" => "Ühenda andmehoidla lahti.", -"Unshare" => "Lõpeta jagamine", -"Delete permanently" => "Kustuta jäädavalt", -"Rename" => "Nimeta ümber", -"Pending" => "Ootel", -"Error moving file." => "Viga faili liigutamisel.", -"Error moving file" => "Viga faili eemaldamisel", -"Error" => "Viga", -"Could not rename file" => "Ei suuda faili ümber nimetada", -"Error deleting file." => "Viga faili kustutamisel.", -"Name" => "Nimi", -"Size" => "Suurus", -"Modified" => "Muudetud", -"_%n folder_::_%n folders_" => array("%n kataloog","%n kataloogi"), -"_%n file_::_%n files_" => array("%n fail","%n faili"), -"You don’t have permission to upload or create files here" => "Sul puuduvad õigused siia failide üleslaadimiseks või tekitamiseks", -"_Uploading %n file_::_Uploading %n files_" => array("Laadin üles %n faili","Laadin üles %n faili"), -"\"{name}\" is an invalid file name." => "\"{name}\" on vigane failinimi.", -"Your storage is full, files can not be updated or synced anymore!" => "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!", -"Your storage is almost full ({usedSpacePercent}%)" => "Su andmemaht on peaaegu täis ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Krüpteering on keelatud, kuid sinu failid on endiselt krüpteeritud. Palun vaata oma personaalseid seadeid oma failide dekrüpteerimiseks.", -"{dirs} and {files}" => "{dirs} ja {files}", -"%s could not be renamed as it has been deleted" => "%s ei saa ümber nimetada, kuna see on kustutatud", -"%s could not be renamed" => "%s ümbernimetamine ebaõnnestus", -"Upload (max. %s)" => "Üleslaadimine (max. %s)", -"File handling" => "Failide käsitlemine", -"Maximum upload size" => "Maksimaalne üleslaadimise suurus", -"max. possible: " => "maks. võimalik: ", -"Save" => "Salvesta", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Kasuta seda aadressi oma failidele ligipääsuks WebDAV kaudu", -"New" => "Uus", -"New text file" => "Uus tekstifail", -"Text file" => "Tekstifail", -"New folder" => "Uus kaust", -"Folder" => "Kaust", -"From link" => "Allikast", -"Nothing in here. Upload something!" => "Siin pole midagi. Lae midagi üles!", -"Download" => "Lae alla", -"Upload too large" => "Üleslaadimine on liiga suur", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.", -"Files are being scanned, please wait." => "Faile skannitakse, palun oota.", -"Currently scanning" => "Praegu skännimisel" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js new file mode 100644 index 0000000000000000000000000000000000000000..5fb2ac32f7cca28e06039380c36c10ab46d240d5 --- /dev/null +++ b/apps/files/l10n/eu.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Biltegia ez dago eskuragarri", + "Storage invalid" : "Biltegi bliogabea", + "Unknown error" : "Errore ezezaguna", + "Could not move %s - File with this name already exists" : "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da", + "Could not move %s" : "Ezin dira fitxategiak mugitu %s", + "Permission denied" : "Baimena Ukatua", + "File name cannot be empty." : "Fitxategi izena ezin da hutsa izan.", + "\"%s\" is an invalid file name." : "\"%s\" ez da fitxategi izen baliogarria.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta.", + "The target folder has been moved or deleted." : "Jatorrizko karpeta mugitu edo ezabatu da.", + "The name %s is already used in the folder %s. Please choose a different name." : "%s izena dagoeneko erabilita dago %s karpetan. Mesdez hautatu izen ezberdina.", + "Not a valid source" : "Ez da jatorri baliogarria", + "Server is not allowed to open URLs, please check the server configuration" : "Zerbitzaria ez dago URLak irekitzeko baimendua, mesedez egiaztatu zerbitzariaren konfigurazioa", + "The file exceeds your quota by %s" : "Fitxategiak zure kouta gainditzen du %s-an", + "Error while downloading %s to %s" : "Errorea %s %sra deskargatzerakoan", + "Error when creating the file" : "Errorea fitxategia sortzerakoan", + "Folder name cannot be empty." : "Karpeta izena ezin da hutsa izan.", + "Error when creating the folder" : "Errorea karpeta sortzerakoan", + "Unable to set upload directory." : "Ezin da igoera direktorioa ezarri.", + "Invalid Token" : "Lekuko baliogabea", + "No file was uploaded. Unknown error" : "Ez da fitxategirik igo. Errore ezezaguna", + "There is no error, the file uploaded with success" : "Ez da errorerik egon, fitxategia ongi igo da", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Igotako fitxategia HTML formularioan zehaztutako MAX_FILE_SIZE direktiba baino handidagoa da.", + "The uploaded file was only partially uploaded" : "Igotako fitxategiaren zati bat bakarrik igo da", + "No file was uploaded" : "Ez da fitxategirik igo", + "Missing a temporary folder" : "Aldi bateko karpeta falta da", + "Failed to write to disk" : "Errore bat izan da diskoan idazterakoan", + "Not enough storage available" : "Ez dago behar aina leku erabilgarri,", + "Upload failed. Could not find uploaded file" : "Igoerak huts egin du. Ezin izan da igotako fitxategia aurkitu", + "Upload failed. Could not get file info." : "Igoerak huts egin du. Ezin izan da fitxategiaren informazioa eskuratu.", + "Invalid directory." : "Baliogabeko karpeta.", + "Files" : "Fitxategiak", + "All files" : "Fitxategi guztiak", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ezin da {filename} igo karpeta bat delako edo 0 byte dituelako", + "Total file size {size1} exceeds upload limit {size2}" : "Fitxategiaren tamainak {size1} igotzeko muga {size2} gainditzen du", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago", + "Upload cancelled." : "Igoera ezeztatuta", + "Could not get result from server." : "Ezin da zerbitzaritik emaitzik lortu", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.", + "URL cannot be empty" : "URLa ezin da hutsik egon", + "{new_name} already exists" : "{new_name} dagoeneko existitzen da", + "Could not create file" : "Ezin izan da fitxategia sortu", + "Could not create folder" : "Ezin izan da karpeta sortu", + "Error fetching URL" : "Errorea URLa eskuratzerakoan", + "Share" : "Elkarbanatu", + "Delete" : "Ezabatu", + "Disconnect storage" : "Deskonektatu biltegia", + "Unshare" : "Ez elkarbanatu", + "Delete permanently" : "Ezabatu betirako", + "Rename" : "Berrizendatu", + "Pending" : "Zain", + "Error moving file." : "Errorea fitxategia mugitzean.", + "Error moving file" : "Errorea fitxategia mugitzean", + "Error" : "Errorea", + "Could not rename file" : "Ezin izan da fitxategia berrizendatu", + "Error deleting file." : "Errorea fitxategia ezabatzerakoan.", + "Name" : "Izena", + "Size" : "Tamaina", + "Modified" : "Aldatuta", + "_%n folder_::_%n folders_" : ["karpeta %n","%n karpeta"], + "_%n file_::_%n files_" : ["fitxategi %n","%n fitxategi"], + "You don’t have permission to upload or create files here" : "Ez duzu fitxategiak hona igotzeko edo hemen sortzeko baimenik", + "_Uploading %n file_::_Uploading %n files_" : ["Fitxategi %n igotzen","%n fitxategi igotzen"], + "\"{name}\" is an invalid file name." : "\"{name}\" ez da fitxategi izen baliogarria.", + "Your storage is full, files can not be updated or synced anymore!" : "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik igo edo sinkronizatu!", + "Your storage is almost full ({usedSpacePercent}%)" : "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.", + "{dirs} and {files}" : "{dirs} eta {files}", + "%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta", + "%s could not be renamed" : "%s ezin da berrizendatu", + "Upload (max. %s)" : "Igo (max. %s)", + "File handling" : "Fitxategien kudeaketa", + "Maximum upload size" : "Igo daitekeen gehienezko tamaina", + "max. possible: " : "max, posiblea:", + "Save" : "Gorde", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "helbidea erabili zure fitxategiak WebDAV bidez eskuratzeko", + "New" : "Berria", + "New text file" : "Testu fitxategi berria", + "Text file" : "Testu fitxategia", + "New folder" : "Karpeta berria", + "Folder" : "Karpeta", + "From link" : "Estekatik", + "Nothing in here. Upload something!" : "Ez dago ezer. Igo zerbait!", + "Download" : "Deskargatu", + "Upload too large" : "Igoera handiegia da", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira.", + "Files are being scanned, please wait." : "Fitxategiak eskaneatzen ari da, itxoin mezedez.", + "Currently scanning" : "Eskaneatzen une honetan" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json new file mode 100644 index 0000000000000000000000000000000000000000..fadc0218477e4a555e351ec54887fe04d06523d8 --- /dev/null +++ b/apps/files/l10n/eu.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Biltegia ez dago eskuragarri", + "Storage invalid" : "Biltegi bliogabea", + "Unknown error" : "Errore ezezaguna", + "Could not move %s - File with this name already exists" : "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da", + "Could not move %s" : "Ezin dira fitxategiak mugitu %s", + "Permission denied" : "Baimena Ukatua", + "File name cannot be empty." : "Fitxategi izena ezin da hutsa izan.", + "\"%s\" is an invalid file name." : "\"%s\" ez da fitxategi izen baliogarria.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta.", + "The target folder has been moved or deleted." : "Jatorrizko karpeta mugitu edo ezabatu da.", + "The name %s is already used in the folder %s. Please choose a different name." : "%s izena dagoeneko erabilita dago %s karpetan. Mesdez hautatu izen ezberdina.", + "Not a valid source" : "Ez da jatorri baliogarria", + "Server is not allowed to open URLs, please check the server configuration" : "Zerbitzaria ez dago URLak irekitzeko baimendua, mesedez egiaztatu zerbitzariaren konfigurazioa", + "The file exceeds your quota by %s" : "Fitxategiak zure kouta gainditzen du %s-an", + "Error while downloading %s to %s" : "Errorea %s %sra deskargatzerakoan", + "Error when creating the file" : "Errorea fitxategia sortzerakoan", + "Folder name cannot be empty." : "Karpeta izena ezin da hutsa izan.", + "Error when creating the folder" : "Errorea karpeta sortzerakoan", + "Unable to set upload directory." : "Ezin da igoera direktorioa ezarri.", + "Invalid Token" : "Lekuko baliogabea", + "No file was uploaded. Unknown error" : "Ez da fitxategirik igo. Errore ezezaguna", + "There is no error, the file uploaded with success" : "Ez da errorerik egon, fitxategia ongi igo da", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Igotako fitxategia HTML formularioan zehaztutako MAX_FILE_SIZE direktiba baino handidagoa da.", + "The uploaded file was only partially uploaded" : "Igotako fitxategiaren zati bat bakarrik igo da", + "No file was uploaded" : "Ez da fitxategirik igo", + "Missing a temporary folder" : "Aldi bateko karpeta falta da", + "Failed to write to disk" : "Errore bat izan da diskoan idazterakoan", + "Not enough storage available" : "Ez dago behar aina leku erabilgarri,", + "Upload failed. Could not find uploaded file" : "Igoerak huts egin du. Ezin izan da igotako fitxategia aurkitu", + "Upload failed. Could not get file info." : "Igoerak huts egin du. Ezin izan da fitxategiaren informazioa eskuratu.", + "Invalid directory." : "Baliogabeko karpeta.", + "Files" : "Fitxategiak", + "All files" : "Fitxategi guztiak", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ezin da {filename} igo karpeta bat delako edo 0 byte dituelako", + "Total file size {size1} exceeds upload limit {size2}" : "Fitxategiaren tamainak {size1} igotzeko muga {size2} gainditzen du", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago", + "Upload cancelled." : "Igoera ezeztatuta", + "Could not get result from server." : "Ezin da zerbitzaritik emaitzik lortu", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.", + "URL cannot be empty" : "URLa ezin da hutsik egon", + "{new_name} already exists" : "{new_name} dagoeneko existitzen da", + "Could not create file" : "Ezin izan da fitxategia sortu", + "Could not create folder" : "Ezin izan da karpeta sortu", + "Error fetching URL" : "Errorea URLa eskuratzerakoan", + "Share" : "Elkarbanatu", + "Delete" : "Ezabatu", + "Disconnect storage" : "Deskonektatu biltegia", + "Unshare" : "Ez elkarbanatu", + "Delete permanently" : "Ezabatu betirako", + "Rename" : "Berrizendatu", + "Pending" : "Zain", + "Error moving file." : "Errorea fitxategia mugitzean.", + "Error moving file" : "Errorea fitxategia mugitzean", + "Error" : "Errorea", + "Could not rename file" : "Ezin izan da fitxategia berrizendatu", + "Error deleting file." : "Errorea fitxategia ezabatzerakoan.", + "Name" : "Izena", + "Size" : "Tamaina", + "Modified" : "Aldatuta", + "_%n folder_::_%n folders_" : ["karpeta %n","%n karpeta"], + "_%n file_::_%n files_" : ["fitxategi %n","%n fitxategi"], + "You don’t have permission to upload or create files here" : "Ez duzu fitxategiak hona igotzeko edo hemen sortzeko baimenik", + "_Uploading %n file_::_Uploading %n files_" : ["Fitxategi %n igotzen","%n fitxategi igotzen"], + "\"{name}\" is an invalid file name." : "\"{name}\" ez da fitxategi izen baliogarria.", + "Your storage is full, files can not be updated or synced anymore!" : "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik igo edo sinkronizatu!", + "Your storage is almost full ({usedSpacePercent}%)" : "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.", + "{dirs} and {files}" : "{dirs} eta {files}", + "%s could not be renamed as it has been deleted" : "%s ezin izan da berrizendatu ezabatua zegoen eta", + "%s could not be renamed" : "%s ezin da berrizendatu", + "Upload (max. %s)" : "Igo (max. %s)", + "File handling" : "Fitxategien kudeaketa", + "Maximum upload size" : "Igo daitekeen gehienezko tamaina", + "max. possible: " : "max, posiblea:", + "Save" : "Gorde", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "helbidea erabili zure fitxategiak WebDAV bidez eskuratzeko", + "New" : "Berria", + "New text file" : "Testu fitxategi berria", + "Text file" : "Testu fitxategia", + "New folder" : "Karpeta berria", + "Folder" : "Karpeta", + "From link" : "Estekatik", + "Nothing in here. Upload something!" : "Ez dago ezer. Igo zerbait!", + "Download" : "Deskargatu", + "Upload too large" : "Igoera handiegia da", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira.", + "Files are being scanned, please wait." : "Fitxategiak eskaneatzen ari da, itxoin mezedez.", + "Currently scanning" : "Eskaneatzen une honetan" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php deleted file mode 100644 index c7d5ceec02dbabe56e78514afa3703153dfcee9a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/eu.php +++ /dev/null @@ -1,95 +0,0 @@ - "Biltegia ez dago eskuragarri", -"Storage invalid" => "Biltegi bliogabea", -"Unknown error" => "Errore ezezaguna", -"Could not move %s - File with this name already exists" => "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da", -"Could not move %s" => "Ezin dira fitxategiak mugitu %s", -"File name cannot be empty." => "Fitxategi izena ezin da hutsa izan.", -"\"%s\" is an invalid file name." => "\"%s\" ez da fitxategi izen baliogarria.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta.", -"The target folder has been moved or deleted." => "Jatorrizko karpeta mugitu edo ezabatu da.", -"The name %s is already used in the folder %s. Please choose a different name." => "%s izena dagoeneko erabilita dago %s karpetan. Mesdez hautatu izen ezberdina.", -"Not a valid source" => "Ez da jatorri baliogarria", -"Server is not allowed to open URLs, please check the server configuration" => "Zerbitzaria ez dago URLak irekitzeko baimendua, mesedez egiaztatu zerbitzariaren konfigurazioa", -"The file exceeds your quota by %s" => "Fitxategiak zure kouta gainditzen du %s-an", -"Error while downloading %s to %s" => "Errorea %s %sra deskargatzerakoan", -"Error when creating the file" => "Errorea fitxategia sortzerakoan", -"Folder name cannot be empty." => "Karpeta izena ezin da hutsa izan.", -"Error when creating the folder" => "Errorea karpeta sortzerakoan", -"Unable to set upload directory." => "Ezin da igoera direktorioa ezarri.", -"Invalid Token" => "Lekuko baliogabea", -"No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna", -"There is no error, the file uploaded with success" => "Ez da errorerik egon, fitxategia ongi igo da", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Igotako fitxategia HTML formularioan zehaztutako MAX_FILE_SIZE direktiba baino handidagoa da.", -"The uploaded file was only partially uploaded" => "Igotako fitxategiaren zati bat bakarrik igo da", -"No file was uploaded" => "Ez da fitxategirik igo", -"Missing a temporary folder" => "Aldi bateko karpeta falta da", -"Failed to write to disk" => "Errore bat izan da diskoan idazterakoan", -"Not enough storage available" => "Ez dago behar aina leku erabilgarri,", -"Upload failed. Could not find uploaded file" => "Igoerak huts egin du. Ezin izan da igotako fitxategia aurkitu", -"Upload failed. Could not get file info." => "Igoerak huts egin du. Ezin izan da fitxategiaren informazioa eskuratu.", -"Invalid directory." => "Baliogabeko karpeta.", -"Files" => "Fitxategiak", -"All files" => "Fitxategi guztiak", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Ezin da {filename} igo karpeta bat delako edo 0 byte dituelako", -"Total file size {size1} exceeds upload limit {size2}" => "Fitxategiaren tamainak {size1} igotzeko muga {size2} gainditzen du", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago", -"Upload cancelled." => "Igoera ezeztatuta", -"Could not get result from server." => "Ezin da zerbitzaritik emaitzik lortu", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.", -"URL cannot be empty" => "URLa ezin da hutsik egon", -"{new_name} already exists" => "{new_name} dagoeneko existitzen da", -"Could not create file" => "Ezin izan da fitxategia sortu", -"Could not create folder" => "Ezin izan da karpeta sortu", -"Error fetching URL" => "Errorea URLa eskuratzerakoan", -"Share" => "Elkarbanatu", -"Delete" => "Ezabatu", -"Disconnect storage" => "Deskonektatu biltegia", -"Unshare" => "Ez elkarbanatu", -"Delete permanently" => "Ezabatu betirako", -"Rename" => "Berrizendatu", -"Pending" => "Zain", -"Error moving file." => "Errorea fitxategia mugitzean.", -"Error moving file" => "Errorea fitxategia mugitzean", -"Error" => "Errorea", -"Could not rename file" => "Ezin izan da fitxategia berrizendatu", -"Error deleting file." => "Errorea fitxategia ezabatzerakoan.", -"Name" => "Izena", -"Size" => "Tamaina", -"Modified" => "Aldatuta", -"_%n folder_::_%n folders_" => array("karpeta %n","%n karpeta"), -"_%n file_::_%n files_" => array("fitxategi %n","%n fitxategi"), -"You don’t have permission to upload or create files here" => "Ez duzu fitxategiak hona igotzeko edo hemen sortzeko baimenik", -"_Uploading %n file_::_Uploading %n files_" => array("Fitxategi %n igotzen","%n fitxategi igotzen"), -"\"{name}\" is an invalid file name." => "\"{name}\" ez da fitxategi izen baliogarria.", -"Your storage is full, files can not be updated or synced anymore!" => "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik igo edo sinkronizatu!", -"Your storage is almost full ({usedSpacePercent}%)" => "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Enkriptazioa desgaitua izan da baina zure fitxategiak oraindik enkriptatuta daude. Mesedez jo zure ezarpen pertsonaletara zure fitxategiak dekodifikatzeko.", -"{dirs} and {files}" => "{dirs} eta {files}", -"%s could not be renamed as it has been deleted" => "%s ezin izan da berrizendatu ezabatua zegoen eta", -"%s could not be renamed" => "%s ezin da berrizendatu", -"Upload (max. %s)" => "Igo (max. %s)", -"File handling" => "Fitxategien kudeaketa", -"Maximum upload size" => "Igo daitekeen gehienezko tamaina", -"max. possible: " => "max, posiblea:", -"Save" => "Gorde", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "helbidea erabili zure fitxategiak WebDAV bidez eskuratzeko", -"New" => "Berria", -"New text file" => "Testu fitxategi berria", -"Text file" => "Testu fitxategia", -"New folder" => "Karpeta berria", -"Folder" => "Karpeta", -"From link" => "Estekatik", -"Nothing in here. Upload something!" => "Ez dago ezer. Igo zerbait!", -"Download" => "Deskargatu", -"Upload too large" => "Igoera handiegia da", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira.", -"Files are being scanned, please wait." => "Fitxategiak eskaneatzen ari da, itxoin mezedez.", -"Currently scanning" => "Eskaneatzen une honetan" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/eu_ES.js b/apps/files/l10n/eu_ES.js new file mode 100644 index 0000000000000000000000000000000000000000..eec67678d349d624ef0915d764ee807ef635e0b7 --- /dev/null +++ b/apps/files/l10n/eu_ES.js @@ -0,0 +1,11 @@ +OC.L10N.register( + "files", + { + "Delete" : "Ezabatu", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Gorde", + "Download" : "Deskargatu" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/eu_ES.json b/apps/files/l10n/eu_ES.json new file mode 100644 index 0000000000000000000000000000000000000000..2a2660e84e5d1ba65ca6d1dc66fa473ed8084a63 --- /dev/null +++ b/apps/files/l10n/eu_ES.json @@ -0,0 +1,9 @@ +{ "translations": { + "Delete" : "Ezabatu", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Gorde", + "Download" : "Deskargatu" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/eu_ES.php b/apps/files/l10n/eu_ES.php deleted file mode 100644 index e2be349d06b882ded019ef867d23ce8f937cc6ef..0000000000000000000000000000000000000000 --- a/apps/files/l10n/eu_ES.php +++ /dev/null @@ -1,10 +0,0 @@ - "Ezabatu", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "Gorde", -"Download" => "Deskargatu" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js new file mode 100644 index 0000000000000000000000000000000000000000..1e403418ab165a82cb2c024fd048ea3a4d94706e --- /dev/null +++ b/apps/files/l10n/fa.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "خطای نامشخص", + "Could not move %s - File with this name already exists" : "%s نمی توان جابجا کرد - در حال حاضر پرونده با این نام وجود دارد. ", + "Could not move %s" : "%s نمی تواند حرکت کند ", + "File name cannot be empty." : "نام پرونده نمی تواند خالی باشد.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "نام نامعتبر ، '\\', '/', '<', '>', ':', '\"', '|', '?' و '*' مجاز نمی باشند.", + "Unable to set upload directory." : "قادر به تنظیم پوشه آپلود نمی باشد.", + "Invalid Token" : "رمز نامعتبر", + "No file was uploaded. Unknown error" : "هیچ فایلی آپلود نشد.خطای ناشناس", + "There is no error, the file uploaded with success" : "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است", + "The uploaded file was only partially uploaded" : "پرونده بارگذاری شده فقط تاحدودی بارگذاری شده", + "No file was uploaded" : "هیچ پروندهای بارگذاری نشده", + "Missing a temporary folder" : "یک پوشه موقت گم شده", + "Failed to write to disk" : "نوشتن بر روی دیسک سخت ناموفق بود", + "Not enough storage available" : "فضای کافی در دسترس نیست", + "Invalid directory." : "فهرست راهنما نامعتبر می باشد.", + "Files" : "پرونده‌ها", + "Upload cancelled." : "بار گذاری لغو شد", + "File upload is in progress. Leaving the page now will cancel the upload." : "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ", + "{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.", + "Share" : "اشتراک‌گذاری", + "Delete" : "حذف", + "Unshare" : "لغو اشتراک", + "Delete permanently" : "حذف قطعی", + "Rename" : "تغییرنام", + "Pending" : "در انتظار", + "Error" : "خطا", + "Name" : "نام", + "Size" : "اندازه", + "Modified" : "تاریخ", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : ["در حال بارگذاری %n فایل"], + "Your storage is full, files can not be updated or synced anymore!" : "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!", + "Your storage is almost full ({usedSpacePercent}%)" : "فضای ذخیره ی شما تقریبا پر است ({usedSpacePercent}%)", + "%s could not be renamed" : "%s نمیتواند تغییر نام دهد.", + "File handling" : "اداره پرونده ها", + "Maximum upload size" : "حداکثر اندازه بارگزاری", + "max. possible: " : "حداکثرمقدارممکن:", + "Save" : "ذخیره", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "از این آدرس استفاده کنید تا بتوانید به فایل‌های خود توسط WebDAV دسترسی پیدا کنید", + "New" : "جدید", + "Text file" : "فایل متنی", + "New folder" : "پوشه جدید", + "Folder" : "پوشه", + "From link" : "از پیوند", + "Nothing in here. Upload something!" : "اینجا هیچ چیز نیست.", + "Download" : "دانلود", + "Upload too large" : "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد", + "Files are being scanned, please wait." : "پرونده ها در حال بازرسی هستند لطفا صبر کنید" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json new file mode 100644 index 0000000000000000000000000000000000000000..872cef839a7b90caf92510bf608c3270a17a2f35 --- /dev/null +++ b/apps/files/l10n/fa.json @@ -0,0 +1,56 @@ +{ "translations": { + "Unknown error" : "خطای نامشخص", + "Could not move %s - File with this name already exists" : "%s نمی توان جابجا کرد - در حال حاضر پرونده با این نام وجود دارد. ", + "Could not move %s" : "%s نمی تواند حرکت کند ", + "File name cannot be empty." : "نام پرونده نمی تواند خالی باشد.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "نام نامعتبر ، '\\', '/', '<', '>', ':', '\"', '|', '?' و '*' مجاز نمی باشند.", + "Unable to set upload directory." : "قادر به تنظیم پوشه آپلود نمی باشد.", + "Invalid Token" : "رمز نامعتبر", + "No file was uploaded. Unknown error" : "هیچ فایلی آپلود نشد.خطای ناشناس", + "There is no error, the file uploaded with success" : "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است", + "The uploaded file was only partially uploaded" : "پرونده بارگذاری شده فقط تاحدودی بارگذاری شده", + "No file was uploaded" : "هیچ پروندهای بارگذاری نشده", + "Missing a temporary folder" : "یک پوشه موقت گم شده", + "Failed to write to disk" : "نوشتن بر روی دیسک سخت ناموفق بود", + "Not enough storage available" : "فضای کافی در دسترس نیست", + "Invalid directory." : "فهرست راهنما نامعتبر می باشد.", + "Files" : "پرونده‌ها", + "Upload cancelled." : "بار گذاری لغو شد", + "File upload is in progress. Leaving the page now will cancel the upload." : "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ", + "{new_name} already exists" : "{نام _جدید} در حال حاضر وجود دارد.", + "Share" : "اشتراک‌گذاری", + "Delete" : "حذف", + "Unshare" : "لغو اشتراک", + "Delete permanently" : "حذف قطعی", + "Rename" : "تغییرنام", + "Pending" : "در انتظار", + "Error" : "خطا", + "Name" : "نام", + "Size" : "اندازه", + "Modified" : "تاریخ", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : ["در حال بارگذاری %n فایل"], + "Your storage is full, files can not be updated or synced anymore!" : "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!", + "Your storage is almost full ({usedSpacePercent}%)" : "فضای ذخیره ی شما تقریبا پر است ({usedSpacePercent}%)", + "%s could not be renamed" : "%s نمیتواند تغییر نام دهد.", + "File handling" : "اداره پرونده ها", + "Maximum upload size" : "حداکثر اندازه بارگزاری", + "max. possible: " : "حداکثرمقدارممکن:", + "Save" : "ذخیره", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "از این آدرس استفاده کنید تا بتوانید به فایل‌های خود توسط WebDAV دسترسی پیدا کنید", + "New" : "جدید", + "Text file" : "فایل متنی", + "New folder" : "پوشه جدید", + "Folder" : "پوشه", + "From link" : "از پیوند", + "Nothing in here. Upload something!" : "اینجا هیچ چیز نیست.", + "Download" : "دانلود", + "Upload too large" : "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد", + "Files are being scanned, please wait." : "پرونده ها در حال بازرسی هستند لطفا صبر کنید" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php deleted file mode 100644 index 92c7d96ed8aa7de479dcab0954e03ecd66e3b56d..0000000000000000000000000000000000000000 --- a/apps/files/l10n/fa.php +++ /dev/null @@ -1,57 +0,0 @@ - "خطای نامشخص", -"Could not move %s - File with this name already exists" => "%s نمی توان جابجا کرد - در حال حاضر پرونده با این نام وجود دارد. ", -"Could not move %s" => "%s نمی تواند حرکت کند ", -"File name cannot be empty." => "نام پرونده نمی تواند خالی باشد.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "نام نامعتبر ، '\\', '/', '<', '>', ':', '\"', '|', '?' و '*' مجاز نمی باشند.", -"Unable to set upload directory." => "قادر به تنظیم پوشه آپلود نمی باشد.", -"Invalid Token" => "رمز نامعتبر", -"No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس", -"There is no error, the file uploaded with success" => "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است", -"The uploaded file was only partially uploaded" => "پرونده بارگذاری شده فقط تاحدودی بارگذاری شده", -"No file was uploaded" => "هیچ پروندهای بارگذاری نشده", -"Missing a temporary folder" => "یک پوشه موقت گم شده", -"Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود", -"Not enough storage available" => "فضای کافی در دسترس نیست", -"Invalid directory." => "فهرست راهنما نامعتبر می باشد.", -"Files" => "پرونده‌ها", -"Upload cancelled." => "بار گذاری لغو شد", -"File upload is in progress. Leaving the page now will cancel the upload." => "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. ", -"{new_name} already exists" => "{نام _جدید} در حال حاضر وجود دارد.", -"Share" => "اشتراک‌گذاری", -"Delete" => "حذف", -"Unshare" => "لغو اشتراک", -"Delete permanently" => "حذف قطعی", -"Rename" => "تغییرنام", -"Pending" => "در انتظار", -"Error" => "خطا", -"Name" => "نام", -"Size" => "اندازه", -"Modified" => "تاریخ", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array("در حال بارگذاری %n فایل"), -"Your storage is full, files can not be updated or synced anymore!" => "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!", -"Your storage is almost full ({usedSpacePercent}%)" => "فضای ذخیره ی شما تقریبا پر است ({usedSpacePercent}%)", -"%s could not be renamed" => "%s نمیتواند تغییر نام دهد.", -"File handling" => "اداره پرونده ها", -"Maximum upload size" => "حداکثر اندازه بارگزاری", -"max. possible: " => "حداکثرمقدارممکن:", -"Save" => "ذخیره", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "از این آدرس استفاده کنید تا بتوانید به فایل‌های خود توسط WebDAV دسترسی پیدا کنید", -"New" => "جدید", -"Text file" => "فایل متنی", -"New folder" => "پوشه جدید", -"Folder" => "پوشه", -"From link" => "از پیوند", -"Nothing in here. Upload something!" => "اینجا هیچ چیز نیست.", -"Download" => "دانلود", -"Upload too large" => "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد", -"Files are being scanned, please wait." => "پرونده ها در حال بازرسی هستند لطفا صبر کنید" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js new file mode 100644 index 0000000000000000000000000000000000000000..3c94a518774e797b9b5e7ccf34d68991b0f8fb13 --- /dev/null +++ b/apps/files/l10n/fi_FI.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Tallennustila ei ole käytettävissä", + "Storage invalid" : "Virheellinen tallennustila", + "Unknown error" : "Tuntematon virhe", + "Could not move %s - File with this name already exists" : "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", + "Could not move %s" : "Kohteen %s siirto ei onnistunut", + "Permission denied" : "Ei käyttöoikeutta", + "File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.", + "\"%s\" is an invalid file name." : "\"%s\" on virheellinen tiedostonimi.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja.", + "The target folder has been moved or deleted." : "Kohdekansio on siirretty tai poistettu.", + "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.", + "Not a valid source" : "Virheellinen lähde", + "Server is not allowed to open URLs, please check the server configuration" : "Palvelimen ei ole lupa avata verkko-osoitteita. Tarkista palvelimen asetukset", + "The file exceeds your quota by %s" : "Tiedosto ylittää kiintiösi %s:lla", + "Error while downloading %s to %s" : "Virhe ladatessa kohdetta %s sijaintiin %s", + "Error when creating the file" : "Virhe tiedostoa luotaessa", + "Folder name cannot be empty." : "Kansion nimi ei voi olla tyhjä.", + "Error when creating the folder" : "Virhe kansiota luotaessa", + "Unable to set upload directory." : "Lähetyskansion asettaminen epäonnistui.", + "Invalid Token" : "Virheellinen token", + "No file was uploaded. Unknown error" : "Tiedostoa ei lähetetty. Tuntematon virhe", + "There is no error, the file uploaded with success" : "Ei virheitä, tiedosto lähetettiin onnistuneesti", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Lähetetyn tiedoston koko ylittää php.ini-tiedoston upload_max_filesize-säännön:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lähetettävän tiedoston enimmäiskoko ylittää HTML-lomakkeessa määritellyn MAX_FILE_SIZE-säännön", + "The uploaded file was only partially uploaded" : "Tiedoston lähetys onnistui vain osittain", + "No file was uploaded" : "Yhtäkään tiedostoa ei lähetetty", + "Missing a temporary folder" : "Tilapäiskansio puuttuu", + "Failed to write to disk" : "Levylle kirjoitus epäonnistui", + "Not enough storage available" : "Tallennustilaa ei ole riittävästi käytettävissä", + "Upload failed. Could not find uploaded file" : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.", + "Upload failed. Could not get file info." : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.", + "Invalid directory." : "Virheellinen kansio.", + "Files" : "Tiedostot", + "All files" : "Kaikki tiedostot", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kohdetta {filename} ei voi lähettää, koska se on joko kansio tai sen koko on 0 tavua", + "Total file size {size1} exceeds upload limit {size2}" : "Yhteiskoko {size1} ylittää lähetysrajan {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä", + "Upload cancelled." : "Lähetys peruttu.", + "Could not get result from server." : "Tuloksien saaminen palvelimelta ei onnistunut.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.", + "URL cannot be empty" : "Osoite ei voi olla tyhjä", + "{new_name} already exists" : "{new_name} on jo olemassa", + "Could not create file" : "Tiedoston luominen epäonnistui", + "Could not create folder" : "Kansion luominen epäonnistui", + "Error fetching URL" : "Virhe noutaessa verkko-osoitetta", + "Share" : "Jaa", + "Delete" : "Poista", + "Disconnect storage" : "Katkaise yhteys tallennustilaan", + "Unshare" : "Peru jakaminen", + "Delete permanently" : "Poista pysyvästi", + "Rename" : "Nimeä uudelleen", + "Pending" : "Odottaa", + "Error moving file." : "Virhe tiedostoa siirrettäessä.", + "Error moving file" : "Virhe tiedostoa siirrettäessä", + "Error" : "Virhe", + "Could not rename file" : "Tiedoston nimeäminen uudelleen epäonnistui", + "Error deleting file." : "Virhe tiedostoa poistaessa.", + "Name" : "Nimi", + "Size" : "Koko", + "Modified" : "Muokattu", + "_%n folder_::_%n folders_" : ["%n kansio","%n kansiota"], + "_%n file_::_%n files_" : ["%n tiedosto","%n tiedostoa"], + "You don’t have permission to upload or create files here" : "Käyttöoikeutesi eivät riitä tiedostojen lähettämiseen tai kansioiden luomiseen tähän sijaintiin", + "_Uploading %n file_::_Uploading %n files_" : ["Lähetetään %n tiedosto","Lähetetään %n tiedostoa"], + "\"{name}\" is an invalid file name." : "\"{name}\" on virheellinen tiedostonimi.", + "Your storage is full, files can not be updated or synced anymore!" : "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", + "Your storage is almost full ({usedSpacePercent}%)" : "Tallennustila on melkein loppu ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.", + "{dirs} and {files}" : "{dirs} ja {files}", + "%s could not be renamed as it has been deleted" : "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu", + "%s could not be renamed" : "kohteen %s nimeäminen uudelleen epäonnistui", + "Upload (max. %s)" : "Lähetys (enintään %s)", + "File handling" : "Tiedostonhallinta", + "Maximum upload size" : "Lähetettävän tiedoston suurin sallittu koko", + "max. possible: " : "suurin mahdollinen:", + "Save" : "Tallenna", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Käytä tätä osoitetta käyttääksesi tiedostojasi WebDAVin kautta", + "New" : "Uusi", + "New text file" : "Uusi tekstitiedosto", + "Text file" : "Tekstitiedosto", + "New folder" : "Uusi kansio", + "Folder" : "Kansio", + "From link" : "Linkistä", + "Nothing in here. Upload something!" : "Täällä ei ole mitään. Lähetä tänne jotakin!", + "Download" : "Lataa", + "Upload too large" : "Lähetettävä tiedosto on liian suuri", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.", + "Files are being scanned, please wait." : "Tiedostoja tarkistetaan, odota hetki.", + "Currently scanning" : "Tutkitaan parhaillaan" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json new file mode 100644 index 0000000000000000000000000000000000000000..8628607793b0910aa8cf8984790c43155a0dd84a --- /dev/null +++ b/apps/files/l10n/fi_FI.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Tallennustila ei ole käytettävissä", + "Storage invalid" : "Virheellinen tallennustila", + "Unknown error" : "Tuntematon virhe", + "Could not move %s - File with this name already exists" : "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", + "Could not move %s" : "Kohteen %s siirto ei onnistunut", + "Permission denied" : "Ei käyttöoikeutta", + "File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.", + "\"%s\" is an invalid file name." : "\"%s\" on virheellinen tiedostonimi.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja.", + "The target folder has been moved or deleted." : "Kohdekansio on siirretty tai poistettu.", + "The name %s is already used in the folder %s. Please choose a different name." : "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.", + "Not a valid source" : "Virheellinen lähde", + "Server is not allowed to open URLs, please check the server configuration" : "Palvelimen ei ole lupa avata verkko-osoitteita. Tarkista palvelimen asetukset", + "The file exceeds your quota by %s" : "Tiedosto ylittää kiintiösi %s:lla", + "Error while downloading %s to %s" : "Virhe ladatessa kohdetta %s sijaintiin %s", + "Error when creating the file" : "Virhe tiedostoa luotaessa", + "Folder name cannot be empty." : "Kansion nimi ei voi olla tyhjä.", + "Error when creating the folder" : "Virhe kansiota luotaessa", + "Unable to set upload directory." : "Lähetyskansion asettaminen epäonnistui.", + "Invalid Token" : "Virheellinen token", + "No file was uploaded. Unknown error" : "Tiedostoa ei lähetetty. Tuntematon virhe", + "There is no error, the file uploaded with success" : "Ei virheitä, tiedosto lähetettiin onnistuneesti", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Lähetetyn tiedoston koko ylittää php.ini-tiedoston upload_max_filesize-säännön:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lähetettävän tiedoston enimmäiskoko ylittää HTML-lomakkeessa määritellyn MAX_FILE_SIZE-säännön", + "The uploaded file was only partially uploaded" : "Tiedoston lähetys onnistui vain osittain", + "No file was uploaded" : "Yhtäkään tiedostoa ei lähetetty", + "Missing a temporary folder" : "Tilapäiskansio puuttuu", + "Failed to write to disk" : "Levylle kirjoitus epäonnistui", + "Not enough storage available" : "Tallennustilaa ei ole riittävästi käytettävissä", + "Upload failed. Could not find uploaded file" : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.", + "Upload failed. Could not get file info." : "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.", + "Invalid directory." : "Virheellinen kansio.", + "Files" : "Tiedostot", + "All files" : "Kaikki tiedostot", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kohdetta {filename} ei voi lähettää, koska se on joko kansio tai sen koko on 0 tavua", + "Total file size {size1} exceeds upload limit {size2}" : "Yhteiskoko {size1} ylittää lähetysrajan {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä", + "Upload cancelled." : "Lähetys peruttu.", + "Could not get result from server." : "Tuloksien saaminen palvelimelta ei onnistunut.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.", + "URL cannot be empty" : "Osoite ei voi olla tyhjä", + "{new_name} already exists" : "{new_name} on jo olemassa", + "Could not create file" : "Tiedoston luominen epäonnistui", + "Could not create folder" : "Kansion luominen epäonnistui", + "Error fetching URL" : "Virhe noutaessa verkko-osoitetta", + "Share" : "Jaa", + "Delete" : "Poista", + "Disconnect storage" : "Katkaise yhteys tallennustilaan", + "Unshare" : "Peru jakaminen", + "Delete permanently" : "Poista pysyvästi", + "Rename" : "Nimeä uudelleen", + "Pending" : "Odottaa", + "Error moving file." : "Virhe tiedostoa siirrettäessä.", + "Error moving file" : "Virhe tiedostoa siirrettäessä", + "Error" : "Virhe", + "Could not rename file" : "Tiedoston nimeäminen uudelleen epäonnistui", + "Error deleting file." : "Virhe tiedostoa poistaessa.", + "Name" : "Nimi", + "Size" : "Koko", + "Modified" : "Muokattu", + "_%n folder_::_%n folders_" : ["%n kansio","%n kansiota"], + "_%n file_::_%n files_" : ["%n tiedosto","%n tiedostoa"], + "You don’t have permission to upload or create files here" : "Käyttöoikeutesi eivät riitä tiedostojen lähettämiseen tai kansioiden luomiseen tähän sijaintiin", + "_Uploading %n file_::_Uploading %n files_" : ["Lähetetään %n tiedosto","Lähetetään %n tiedostoa"], + "\"{name}\" is an invalid file name." : "\"{name}\" on virheellinen tiedostonimi.", + "Your storage is full, files can not be updated or synced anymore!" : "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", + "Your storage is almost full ({usedSpacePercent}%)" : "Tallennustila on melkein loppu ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.", + "{dirs} and {files}" : "{dirs} ja {files}", + "%s could not be renamed as it has been deleted" : "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu", + "%s could not be renamed" : "kohteen %s nimeäminen uudelleen epäonnistui", + "Upload (max. %s)" : "Lähetys (enintään %s)", + "File handling" : "Tiedostonhallinta", + "Maximum upload size" : "Lähetettävän tiedoston suurin sallittu koko", + "max. possible: " : "suurin mahdollinen:", + "Save" : "Tallenna", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Käytä tätä osoitetta käyttääksesi tiedostojasi WebDAVin kautta", + "New" : "Uusi", + "New text file" : "Uusi tekstitiedosto", + "Text file" : "Tekstitiedosto", + "New folder" : "Uusi kansio", + "Folder" : "Kansio", + "From link" : "Linkistä", + "Nothing in here. Upload something!" : "Täällä ei ole mitään. Lähetä tänne jotakin!", + "Download" : "Lataa", + "Upload too large" : "Lähetettävä tiedosto on liian suuri", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.", + "Files are being scanned, please wait." : "Tiedostoja tarkistetaan, odota hetki.", + "Currently scanning" : "Tutkitaan parhaillaan" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php deleted file mode 100644 index adce13d004b6a5b4f2d29f0a9257431f520d1f98..0000000000000000000000000000000000000000 --- a/apps/files/l10n/fi_FI.php +++ /dev/null @@ -1,96 +0,0 @@ - "Tallennustila ei ole käytettävissä", -"Storage invalid" => "Virheellinen tallennustila", -"Unknown error" => "Tuntematon virhe", -"Could not move %s - File with this name already exists" => "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", -"Could not move %s" => "Kohteen %s siirto ei onnistunut", -"Permission denied" => "Ei käyttöoikeutta", -"File name cannot be empty." => "Tiedoston nimi ei voi olla tyhjä.", -"\"%s\" is an invalid file name." => "\"%s\" on virheellinen tiedostonimi.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja.", -"The target folder has been moved or deleted." => "Kohdekansio on siirretty tai poistettu.", -"The name %s is already used in the folder %s. Please choose a different name." => "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.", -"Not a valid source" => "Virheellinen lähde", -"Server is not allowed to open URLs, please check the server configuration" => "Palvelimen ei ole lupa avata verkko-osoitteita. Tarkista palvelimen asetukset", -"The file exceeds your quota by %s" => "Tiedosto ylittää kiintiösi %s:lla", -"Error while downloading %s to %s" => "Virhe ladatessa kohdetta %s sijaintiin %s", -"Error when creating the file" => "Virhe tiedostoa luotaessa", -"Folder name cannot be empty." => "Kansion nimi ei voi olla tyhjä.", -"Error when creating the folder" => "Virhe kansiota luotaessa", -"Unable to set upload directory." => "Lähetyskansion asettaminen epäonnistui.", -"Invalid Token" => "Virheellinen token", -"No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe", -"There is no error, the file uploaded with success" => "Ei virheitä, tiedosto lähetettiin onnistuneesti", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Lähetetyn tiedoston koko ylittää php.ini-tiedoston upload_max_filesize-säännön:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Lähetettävän tiedoston enimmäiskoko ylittää HTML-lomakkeessa määritellyn MAX_FILE_SIZE-säännön", -"The uploaded file was only partially uploaded" => "Tiedoston lähetys onnistui vain osittain", -"No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty", -"Missing a temporary folder" => "Tilapäiskansio puuttuu", -"Failed to write to disk" => "Levylle kirjoitus epäonnistui", -"Not enough storage available" => "Tallennustilaa ei ole riittävästi käytettävissä", -"Upload failed. Could not find uploaded file" => "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.", -"Upload failed. Could not get file info." => "Lähetys epäonnistui. Lähettävää tiedostoa ei löydetty.", -"Invalid directory." => "Virheellinen kansio.", -"Files" => "Tiedostot", -"All files" => "Kaikki tiedostot", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Kohdetta {filename} ei voi lähettää, koska se on joko kansio tai sen koko on 0 tavua", -"Total file size {size1} exceeds upload limit {size2}" => "Yhteiskoko {size1} ylittää lähetysrajan {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä", -"Upload cancelled." => "Lähetys peruttu.", -"Could not get result from server." => "Tuloksien saaminen palvelimelta ei onnistunut.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.", -"URL cannot be empty" => "Osoite ei voi olla tyhjä", -"{new_name} already exists" => "{new_name} on jo olemassa", -"Could not create file" => "Tiedoston luominen epäonnistui", -"Could not create folder" => "Kansion luominen epäonnistui", -"Error fetching URL" => "Virhe noutaessa verkko-osoitetta", -"Share" => "Jaa", -"Delete" => "Poista", -"Disconnect storage" => "Katkaise yhteys tallennustilaan", -"Unshare" => "Peru jakaminen", -"Delete permanently" => "Poista pysyvästi", -"Rename" => "Nimeä uudelleen", -"Pending" => "Odottaa", -"Error moving file." => "Virhe tiedostoa siirrettäessä.", -"Error moving file" => "Virhe tiedostoa siirrettäessä", -"Error" => "Virhe", -"Could not rename file" => "Tiedoston nimeäminen uudelleen epäonnistui", -"Error deleting file." => "Virhe tiedostoa poistaessa.", -"Name" => "Nimi", -"Size" => "Koko", -"Modified" => "Muokattu", -"_%n folder_::_%n folders_" => array("%n kansio","%n kansiota"), -"_%n file_::_%n files_" => array("%n tiedosto","%n tiedostoa"), -"You don’t have permission to upload or create files here" => "Käyttöoikeutesi eivät riitä tiedostojen lähettämiseen tai kansioiden luomiseen tähän sijaintiin", -"_Uploading %n file_::_Uploading %n files_" => array("Lähetetään %n tiedosto","Lähetetään %n tiedostoa"), -"\"{name}\" is an invalid file name." => "\"{name}\" on virheellinen tiedostonimi.", -"Your storage is full, files can not be updated or synced anymore!" => "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", -"Your storage is almost full ({usedSpacePercent}%)" => "Tallennustila on melkein loppu ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Salaus poistettiin käytöstä, mutta tiedostosi ovat edelleen salattuina. Siirry henkilökohtaisiin asetuksiin avataksesi tiedostojesi salauksen.", -"{dirs} and {files}" => "{dirs} ja {files}", -"%s could not be renamed as it has been deleted" => "Kohdetta %s ei voitu nimetä uudelleen, koska se on poistettu", -"%s could not be renamed" => "kohteen %s nimeäminen uudelleen epäonnistui", -"Upload (max. %s)" => "Lähetys (enintään %s)", -"File handling" => "Tiedostonhallinta", -"Maximum upload size" => "Lähetettävän tiedoston suurin sallittu koko", -"max. possible: " => "suurin mahdollinen:", -"Save" => "Tallenna", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Käytä tätä osoitetta käyttääksesi tiedostojasi WebDAVin kautta", -"New" => "Uusi", -"New text file" => "Uusi tekstitiedosto", -"Text file" => "Tekstitiedosto", -"New folder" => "Uusi kansio", -"Folder" => "Kansio", -"From link" => "Linkistä", -"Nothing in here. Upload something!" => "Täällä ei ole mitään. Lähetä tänne jotakin!", -"Download" => "Lataa", -"Upload too large" => "Lähetettävä tiedosto on liian suuri", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.", -"Files are being scanned, please wait." => "Tiedostoja tarkistetaan, odota hetki.", -"Currently scanning" => "Tutkitaan parhaillaan" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/fil.js b/apps/files/l10n/fil.js new file mode 100644 index 0000000000000000000000000000000000000000..f085469f7317d44d6cbd5222227202b322fe5dcb --- /dev/null +++ b/apps/files/l10n/fil.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/fil.json b/apps/files/l10n/fil.json new file mode 100644 index 0000000000000000000000000000000000000000..ba9792477cd03d9f6dc76e4722b7e629162b8e06 --- /dev/null +++ b/apps/files/l10n/fil.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/fil.php b/apps/files/l10n/fil.php deleted file mode 100644 index 3c711e6b78a257d953a010dc2feba5ae4d139369..0000000000000000000000000000000000000000 --- a/apps/files/l10n/fil.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js new file mode 100644 index 0000000000000000000000000000000000000000..a5a4f25bf1d1c03b8dafb431a858e815f892ba82 --- /dev/null +++ b/apps/files/l10n/fr.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Support de stockage non disponible", + "Storage invalid" : "Support de stockage invalide", + "Unknown error" : "Erreur Inconnue ", + "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", + "Could not move %s" : "Impossible de déplacer %s", + "Permission denied" : "Permission refusée", + "File name cannot be empty." : "Le nom de fichier ne peut être vide.", + "\"%s\" is an invalid file name." : "\"%s\" n'est pas un nom de fichier valide.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", + "The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.", + "The name %s is already used in the folder %s. Please choose a different name." : "Le nom %s est déjà utilisé dans le dossier %s. Merci de choisir un nom différent.", + "Not a valid source" : "La source n'est pas valide", + "Server is not allowed to open URLs, please check the server configuration" : "Le serveur n'est pas autorisé à ouvrir des URL, veuillez vérifier la configuration du serveur", + "The file exceeds your quota by %s" : "Le fichier excède votre quota de %s", + "Error while downloading %s to %s" : "Erreur pendant le téléchargement de %s à %s", + "Error when creating the file" : "Erreur pendant la création du fichier", + "Folder name cannot be empty." : "Le nom de dossier ne peux pas être vide.", + "Error when creating the folder" : "Erreur pendant la création du dossier", + "Unable to set upload directory." : "Impossible de définir le dossier pour l'upload, charger.", + "Invalid Token" : "Jeton non valide", + "No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue", + "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été envoyé avec succès.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Le fichier envoyé dépasse l'instruction upload_max_filesize située dans le fichier php.ini :", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse l'instruction MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", + "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement envoyé.", + "No file was uploaded" : "Pas de fichier envoyé.", + "Missing a temporary folder" : "Absence de dossier temporaire.", + "Failed to write to disk" : "Erreur d'écriture sur le disque", + "Not enough storage available" : "Plus assez d'espace de stockage disponible", + "Upload failed. Could not find uploaded file" : "L'envoi a échoué. Impossible de trouver le fichier envoyé.", + "Upload failed. Could not get file info." : "L'envoi a échoué. Impossible d'obtenir les informations du fichier.", + "Invalid directory." : "Dossier invalide.", + "Files" : "Fichiers", + "All files" : "Tous les fichiers", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossible d'envoyer {filename} car il s'agit d'un répertoire ou d'un fichier de taille nulle", + "Total file size {size1} exceeds upload limit {size2}" : "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", + "Upload cancelled." : "Envoi annulé.", + "Could not get result from server." : "Ne peut recevoir les résultats du serveur.", + "File upload is in progress. Leaving the page now will cancel the upload." : "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.", + "URL cannot be empty" : "L'URL ne peut pas être vide", + "{new_name} already exists" : "{new_name} existe déjà", + "Could not create file" : "Impossible de créer le fichier", + "Could not create folder" : "Impossible de créer le dossier", + "Error fetching URL" : "Erreur d'accès à l'URL", + "Share" : "Partager", + "Delete" : "Supprimer", + "Disconnect storage" : "Déconnecter ce support de stockage", + "Unshare" : "Ne plus partager", + "Delete permanently" : "Supprimer de façon définitive", + "Rename" : "Renommer", + "Pending" : "En attente", + "Error moving file." : "Erreur lors du déplacement du fichier.", + "Error moving file" : "Erreur lors du déplacement du fichier", + "Error" : "Erreur", + "Could not rename file" : "Impossible de renommer le fichier", + "Error deleting file." : "Erreur pendant la suppression du fichier.", + "Name" : "Nom", + "Size" : "Taille", + "Modified" : "Modifié", + "_%n folder_::_%n folders_" : ["%n dossier","%n dossiers"], + "_%n file_::_%n files_" : ["%n fichier","%n fichiers"], + "You don’t have permission to upload or create files here" : "Vous n'avez pas la permission de téléverser ou de créer des fichiers ici", + "_Uploading %n file_::_Uploading %n files_" : ["Téléversement de %n fichier","Téléversement de %n fichiers"], + "\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.", + "Your storage is full, files can not be updated or synced anymore!" : "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !", + "Your storage is almost full ({usedSpacePercent}%)" : "Votre espace de stockage est presque plein ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour l'application de chiffrement est invalide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Le chiffrement a été désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos paramètres personnels pour déchiffrer vos fichiers.", + "{dirs} and {files}" : "{dirs} et {files}", + "%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ", + "%s could not be renamed" : "%s ne peut être renommé", + "Upload (max. %s)" : "Envoi (max. %s)", + "File handling" : "Gestion des fichiers", + "Maximum upload size" : "Taille max. d'envoi", + "max. possible: " : "Max. possible :", + "Save" : "Sauvegarder", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilisez cette adresse pour accéder à vos fichiers par WebDAV", + "New" : "Nouveau", + "New text file" : "Nouveau fichier texte", + "Text file" : "Fichier texte", + "New folder" : "Nouveau dossier", + "Folder" : "Dossier", + "From link" : "Depuis un lien", + "Nothing in here. Upload something!" : "Il n'y a rien ici ! Envoyez donc quelque chose :)", + "Download" : "Télécharger", + "Upload too large" : "Téléversement trop volumineux", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.", + "Files are being scanned, please wait." : "Les fichiers sont en cours d'analyse, veuillez patienter.", + "Currently scanning" : "Analyse en cours" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..26707810a756bb290bce5a2fb31a52f1a1edd33d --- /dev/null +++ b/apps/files/l10n/fr.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Support de stockage non disponible", + "Storage invalid" : "Support de stockage invalide", + "Unknown error" : "Erreur Inconnue ", + "Could not move %s - File with this name already exists" : "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", + "Could not move %s" : "Impossible de déplacer %s", + "Permission denied" : "Permission refusée", + "File name cannot be empty." : "Le nom de fichier ne peut être vide.", + "\"%s\" is an invalid file name." : "\"%s\" n'est pas un nom de fichier valide.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", + "The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.", + "The name %s is already used in the folder %s. Please choose a different name." : "Le nom %s est déjà utilisé dans le dossier %s. Merci de choisir un nom différent.", + "Not a valid source" : "La source n'est pas valide", + "Server is not allowed to open URLs, please check the server configuration" : "Le serveur n'est pas autorisé à ouvrir des URL, veuillez vérifier la configuration du serveur", + "The file exceeds your quota by %s" : "Le fichier excède votre quota de %s", + "Error while downloading %s to %s" : "Erreur pendant le téléchargement de %s à %s", + "Error when creating the file" : "Erreur pendant la création du fichier", + "Folder name cannot be empty." : "Le nom de dossier ne peux pas être vide.", + "Error when creating the folder" : "Erreur pendant la création du dossier", + "Unable to set upload directory." : "Impossible de définir le dossier pour l'upload, charger.", + "Invalid Token" : "Jeton non valide", + "No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue", + "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été envoyé avec succès.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Le fichier envoyé dépasse l'instruction upload_max_filesize située dans le fichier php.ini :", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse l'instruction MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", + "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement envoyé.", + "No file was uploaded" : "Pas de fichier envoyé.", + "Missing a temporary folder" : "Absence de dossier temporaire.", + "Failed to write to disk" : "Erreur d'écriture sur le disque", + "Not enough storage available" : "Plus assez d'espace de stockage disponible", + "Upload failed. Could not find uploaded file" : "L'envoi a échoué. Impossible de trouver le fichier envoyé.", + "Upload failed. Could not get file info." : "L'envoi a échoué. Impossible d'obtenir les informations du fichier.", + "Invalid directory." : "Dossier invalide.", + "Files" : "Fichiers", + "All files" : "Tous les fichiers", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossible d'envoyer {filename} car il s'agit d'un répertoire ou d'un fichier de taille nulle", + "Total file size {size1} exceeds upload limit {size2}" : "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", + "Upload cancelled." : "Envoi annulé.", + "Could not get result from server." : "Ne peut recevoir les résultats du serveur.", + "File upload is in progress. Leaving the page now will cancel the upload." : "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.", + "URL cannot be empty" : "L'URL ne peut pas être vide", + "{new_name} already exists" : "{new_name} existe déjà", + "Could not create file" : "Impossible de créer le fichier", + "Could not create folder" : "Impossible de créer le dossier", + "Error fetching URL" : "Erreur d'accès à l'URL", + "Share" : "Partager", + "Delete" : "Supprimer", + "Disconnect storage" : "Déconnecter ce support de stockage", + "Unshare" : "Ne plus partager", + "Delete permanently" : "Supprimer de façon définitive", + "Rename" : "Renommer", + "Pending" : "En attente", + "Error moving file." : "Erreur lors du déplacement du fichier.", + "Error moving file" : "Erreur lors du déplacement du fichier", + "Error" : "Erreur", + "Could not rename file" : "Impossible de renommer le fichier", + "Error deleting file." : "Erreur pendant la suppression du fichier.", + "Name" : "Nom", + "Size" : "Taille", + "Modified" : "Modifié", + "_%n folder_::_%n folders_" : ["%n dossier","%n dossiers"], + "_%n file_::_%n files_" : ["%n fichier","%n fichiers"], + "You don’t have permission to upload or create files here" : "Vous n'avez pas la permission de téléverser ou de créer des fichiers ici", + "_Uploading %n file_::_Uploading %n files_" : ["Téléversement de %n fichier","Téléversement de %n fichiers"], + "\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.", + "Your storage is full, files can not be updated or synced anymore!" : "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !", + "Your storage is almost full ({usedSpacePercent}%)" : "Votre espace de stockage est presque plein ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour l'application de chiffrement est invalide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Le chiffrement a été désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos paramètres personnels pour déchiffrer vos fichiers.", + "{dirs} and {files}" : "{dirs} et {files}", + "%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ", + "%s could not be renamed" : "%s ne peut être renommé", + "Upload (max. %s)" : "Envoi (max. %s)", + "File handling" : "Gestion des fichiers", + "Maximum upload size" : "Taille max. d'envoi", + "max. possible: " : "Max. possible :", + "Save" : "Sauvegarder", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilisez cette adresse pour accéder à vos fichiers par WebDAV", + "New" : "Nouveau", + "New text file" : "Nouveau fichier texte", + "Text file" : "Fichier texte", + "New folder" : "Nouveau dossier", + "Folder" : "Dossier", + "From link" : "Depuis un lien", + "Nothing in here. Upload something!" : "Il n'y a rien ici ! Envoyez donc quelque chose :)", + "Download" : "Télécharger", + "Upload too large" : "Téléversement trop volumineux", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.", + "Files are being scanned, please wait." : "Les fichiers sont en cours d'analyse, veuillez patienter.", + "Currently scanning" : "Analyse en cours" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php deleted file mode 100644 index 31e39b419b598f8b8eade1b375c753722efc0e5f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/fr.php +++ /dev/null @@ -1,96 +0,0 @@ - "Support de stockage non disponible", -"Storage invalid" => "Support de stockage invalide", -"Unknown error" => "Erreur Inconnue ", -"Could not move %s - File with this name already exists" => "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", -"Could not move %s" => "Impossible de déplacer %s", -"Permission denied" => "Permission refusée", -"File name cannot be empty." => "Le nom de fichier ne peut être vide.", -"\"%s\" is an invalid file name." => "\"%s\" n'est pas un nom de fichier valide.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", -"The target folder has been moved or deleted." => "Le dossier cible a été déplacé ou supprimé.", -"The name %s is already used in the folder %s. Please choose a different name." => "Le nom %s est déjà utilisé dans le dossier %s. Merci de choisir un nom différent.", -"Not a valid source" => "La source n'est pas valide", -"Server is not allowed to open URLs, please check the server configuration" => "Le serveur n'est pas autorisé à ouvrir des URL, veuillez vérifier la configuration du serveur", -"The file exceeds your quota by %s" => "Le fichier excède votre quota de %s", -"Error while downloading %s to %s" => "Erreur pendant le téléchargement de %s à %s", -"Error when creating the file" => "Erreur pendant la création du fichier", -"Folder name cannot be empty." => "Le nom de dossier ne peux pas être vide.", -"Error when creating the folder" => "Erreur pendant la création du dossier", -"Unable to set upload directory." => "Impossible de définir le dossier pour l'upload, charger.", -"Invalid Token" => "Jeton non valide", -"No file was uploaded. Unknown error" => "Aucun fichier n'a été envoyé. Erreur inconnue", -"There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été envoyé avec succès.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse l'instruction upload_max_filesize située dans le fichier php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Le fichier envoyé dépasse l'instruction MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", -"The uploaded file was only partially uploaded" => "Le fichier n'a été que partiellement envoyé.", -"No file was uploaded" => "Pas de fichier envoyé.", -"Missing a temporary folder" => "Absence de dossier temporaire.", -"Failed to write to disk" => "Erreur d'écriture sur le disque", -"Not enough storage available" => "Plus assez d'espace de stockage disponible", -"Upload failed. Could not find uploaded file" => "L'envoi a échoué. Impossible de trouver le fichier envoyé.", -"Upload failed. Could not get file info." => "L'envoi a échoué. Impossible d'obtenir les informations du fichier.", -"Invalid directory." => "Dossier invalide.", -"Files" => "Fichiers", -"All files" => "Tous les fichiers", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Impossible d'envoyer {filename} car il s'agit d'un répertoire ou d'un fichier de taille nulle", -"Total file size {size1} exceeds upload limit {size2}" => "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Espace insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", -"Upload cancelled." => "Envoi annulé.", -"Could not get result from server." => "Ne peut recevoir les résultats du serveur.", -"File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.", -"URL cannot be empty" => "L'URL ne peut pas être vide", -"{new_name} already exists" => "{new_name} existe déjà", -"Could not create file" => "Impossible de créer le fichier", -"Could not create folder" => "Impossible de créer le dossier", -"Error fetching URL" => "Erreur d'accès à l'URL", -"Share" => "Partager", -"Delete" => "Supprimer", -"Disconnect storage" => "Déconnecter ce support de stockage", -"Unshare" => "Ne plus partager", -"Delete permanently" => "Supprimer de façon définitive", -"Rename" => "Renommer", -"Pending" => "En attente", -"Error moving file." => "Erreur lors du déplacement du fichier.", -"Error moving file" => "Erreur lors du déplacement du fichier", -"Error" => "Erreur", -"Could not rename file" => "Impossible de renommer le fichier", -"Error deleting file." => "Erreur pendant la suppression du fichier.", -"Name" => "Nom", -"Size" => "Taille", -"Modified" => "Modifié", -"_%n folder_::_%n folders_" => array("%n dossier","%n dossiers"), -"_%n file_::_%n files_" => array("%n fichier","%n fichiers"), -"You don’t have permission to upload or create files here" => "Vous n'avez pas la permission de téléverser ou de créer des fichiers ici", -"_Uploading %n file_::_Uploading %n files_" => array("Téléversement de %n fichier","Téléversement de %n fichiers"), -"\"{name}\" is an invalid file name." => "\"{name}\" n'est pas un nom de fichier valide.", -"Your storage is full, files can not be updated or synced anymore!" => "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !", -"Your storage is almost full ({usedSpacePercent}%)" => "Votre espace de stockage est presque plein ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Votre clef privée pour l'application de chiffrement est invalide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Le chiffrement était désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos Paramètres personnels pour déchiffrer vos fichiers.", -"{dirs} and {files}" => "{dirs} et {files}", -"%s could not be renamed as it has been deleted" => "%s ne peut être renommé car il a été supprimé ", -"%s could not be renamed" => "%s ne peut être renommé", -"Upload (max. %s)" => "Envoi (max. %s)", -"File handling" => "Gestion des fichiers", -"Maximum upload size" => "Taille max. d'envoi", -"max. possible: " => "Max. possible :", -"Save" => "Sauvegarder", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Utilisez cette adresse pour accéder à vos fichiers par WebDAV", -"New" => "Nouveau", -"New text file" => "Nouveau fichier texte", -"Text file" => "Fichier texte", -"New folder" => "Nouveau dossier", -"Folder" => "Dossier", -"From link" => "Depuis le lien", -"Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)", -"Download" => "Télécharger", -"Upload too large" => "Téléversement trop volumineux", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.", -"Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.", -"Currently scanning" => "Analyse en cours de traitement" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/fr_CA.js b/apps/files/l10n/fr_CA.js new file mode 100644 index 0000000000000000000000000000000000000000..f085469f7317d44d6cbd5222227202b322fe5dcb --- /dev/null +++ b/apps/files/l10n/fr_CA.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/fr_CA.json b/apps/files/l10n/fr_CA.json new file mode 100644 index 0000000000000000000000000000000000000000..ba9792477cd03d9f6dc76e4722b7e629162b8e06 --- /dev/null +++ b/apps/files/l10n/fr_CA.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/fr_CA.php b/apps/files/l10n/fr_CA.php deleted file mode 100644 index 3c711e6b78a257d953a010dc2feba5ae4d139369..0000000000000000000000000000000000000000 --- a/apps/files/l10n/fr_CA.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/fy_NL.js b/apps/files/l10n/fy_NL.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/fy_NL.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/fy_NL.json b/apps/files/l10n/fy_NL.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/fy_NL.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/fy_NL.php b/apps/files/l10n/fy_NL.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/fy_NL.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js new file mode 100644 index 0000000000000000000000000000000000000000..a169f5c21cf058014dea4086b530b8e58fce0572 --- /dev/null +++ b/apps/files/l10n/gl.js @@ -0,0 +1,96 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Almacenamento non dispoñíbel", + "Storage invalid" : "Almacenamento incorrecto", + "Unknown error" : "Produciuse un erro descoñecido", + "Could not move %s - File with this name already exists" : "Non foi posíbel mover %s; Xa existe un ficheiro con ese nome.", + "Could not move %s" : "Non foi posíbel mover %s", + "File name cannot be empty." : "O nome de ficheiro non pode estar baleiro", + "\"%s\" is an invalid file name." : "«%s» é un nome incorrecto de ficheiro.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome incorrecto, non se permite «\\», «/», «<», «>», «:», «\"», «|», «?» e «*».", + "The target folder has been moved or deleted." : "O cartafol de destino foi movido ou eliminado.", + "The name %s is already used in the folder %s. Please choose a different name." : "Xa existe o nome %s no cartafol %s. Escolla outro nome.", + "Not a valid source" : "Esta orixe non é correcta", + "Server is not allowed to open URLs, please check the server configuration" : "O servidor non ten permisos para abrir os enderezos URL, comprobe a configuración do servidor", + "The file exceeds your quota by %s" : "O ficheiro excede a súa cota en %s", + "Error while downloading %s to %s" : "Produciuse un erro ao descargar %s en %s", + "Error when creating the file" : "Produciuse un erro ao crear o ficheiro", + "Folder name cannot be empty." : "O nome de cartafol non pode estar baleiro.", + "Error when creating the folder" : "Produciuse un erro ao crear o cartafol", + "Unable to set upload directory." : "Non é posíbel configurar o directorio de envíos.", + "Invalid Token" : "Marca incorrecta", + "No file was uploaded. Unknown error" : "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.", + "There is no error, the file uploaded with success" : "Non houbo erros, o ficheiro enviouse correctamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML", + "The uploaded file was only partially uploaded" : "O ficheiro so foi parcialmente enviado", + "No file was uploaded" : "Non se enviou ningún ficheiro", + "Missing a temporary folder" : "Falta o cartafol temporal", + "Failed to write to disk" : "Produciuse un erro ao escribir no disco", + "Not enough storage available" : "Non hai espazo de almacenamento abondo", + "Upload failed. Could not find uploaded file" : "O envío fracasou. Non foi posíbel atopar o ficheiro enviado", + "Upload failed. Could not get file info." : "O envío fracasou. Non foi posíbel obter información do ficheiro.", + "Invalid directory." : "O directorio é incorrecto.", + "Files" : "Ficheiros", + "All files" : "Todos os ficheiros", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Non é posíbel enviar {filename}, xa que ou é un directorio ou ten 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "O tamaño total do ficheiro {size1} excede do límite de envío {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Non hai espazo libre abondo, o seu envío é de {size1} mais só dispón de {size2}", + "Upload cancelled." : "Envío cancelado.", + "Could not get result from server." : "Non foi posíbel obter o resultado do servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío.", + "URL cannot be empty" : "O URL non pode quedar en branco.", + "{new_name} already exists" : "Xa existe un {new_name}", + "Could not create file" : "Non foi posíbel crear o ficheiro", + "Could not create folder" : "Non foi posíbel crear o cartafol", + "Error fetching URL" : "Produciuse un erro ao obter o URL", + "Share" : "Compartir", + "Delete" : "Eliminar", + "Disconnect storage" : "Desconectar o almacenamento", + "Unshare" : "Deixar de compartir", + "Delete permanently" : "Eliminar permanentemente", + "Rename" : "Renomear", + "Pending" : "Pendentes", + "Error moving file." : "Produciuse un erro ao mover o ficheiro.", + "Error moving file" : "Produciuse un erro ao mover o ficheiro", + "Error" : "Erro", + "Could not rename file" : "Non foi posíbel renomear o ficheiro", + "Error deleting file." : "Produciuse un erro ao eliminar o ficheiro.", + "Name" : "Nome", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n cartafol","%n cartafoles"], + "_%n file_::_%n files_" : ["%n ficheiro","%n ficheiros"], + "You don’t have permission to upload or create files here" : "Non ten permisos para enviar ou crear ficheiros aquí.", + "_Uploading %n file_::_Uploading %n files_" : ["Cargando %n ficheiro","Cargando %n ficheiros"], + "\"{name}\" is an invalid file name." : "«{name}» é un nome incorrecto de ficheiro.", + "Your storage is full, files can not be updated or synced anymore!" : "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!", + "Your storage is almost full ({usedSpacePercent}%)" : "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "Non é posíbel renomear %s xa que foi eliminado", + "%s could not be renamed" : "%s non pode cambiar de nome", + "Upload (max. %s)" : "Envío (máx. %s)", + "File handling" : "Manexo de ficheiro", + "Maximum upload size" : "Tamaño máximo do envío", + "max. possible: " : "máx. posíbel: ", + "Save" : "Gardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Empregue esta ligazón para acceder aos seus ficheiros mediante WebDAV", + "New" : "Novo", + "New text file" : "Ficheiro novo de texto", + "Text file" : "Ficheiro de texto", + "New folder" : "Novo cartafol", + "Folder" : "Cartafol", + "From link" : "Desde a ligazón", + "Nothing in here. Upload something!" : "Aquí non hai nada. Envíe algo.", + "Download" : "Descargar", + "Upload too large" : "Envío grande de máis", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor", + "Files are being scanned, please wait." : "Estanse analizando os ficheiros. Agarde.", + "Currently scanning" : "Análise actual" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json new file mode 100644 index 0000000000000000000000000000000000000000..cf1f30dcfc4aca1776aba768b1b90568a4a2f31f --- /dev/null +++ b/apps/files/l10n/gl.json @@ -0,0 +1,94 @@ +{ "translations": { + "Storage not available" : "Almacenamento non dispoñíbel", + "Storage invalid" : "Almacenamento incorrecto", + "Unknown error" : "Produciuse un erro descoñecido", + "Could not move %s - File with this name already exists" : "Non foi posíbel mover %s; Xa existe un ficheiro con ese nome.", + "Could not move %s" : "Non foi posíbel mover %s", + "File name cannot be empty." : "O nome de ficheiro non pode estar baleiro", + "\"%s\" is an invalid file name." : "«%s» é un nome incorrecto de ficheiro.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome incorrecto, non se permite «\\», «/», «<», «>», «:», «\"», «|», «?» e «*».", + "The target folder has been moved or deleted." : "O cartafol de destino foi movido ou eliminado.", + "The name %s is already used in the folder %s. Please choose a different name." : "Xa existe o nome %s no cartafol %s. Escolla outro nome.", + "Not a valid source" : "Esta orixe non é correcta", + "Server is not allowed to open URLs, please check the server configuration" : "O servidor non ten permisos para abrir os enderezos URL, comprobe a configuración do servidor", + "The file exceeds your quota by %s" : "O ficheiro excede a súa cota en %s", + "Error while downloading %s to %s" : "Produciuse un erro ao descargar %s en %s", + "Error when creating the file" : "Produciuse un erro ao crear o ficheiro", + "Folder name cannot be empty." : "O nome de cartafol non pode estar baleiro.", + "Error when creating the folder" : "Produciuse un erro ao crear o cartafol", + "Unable to set upload directory." : "Non é posíbel configurar o directorio de envíos.", + "Invalid Token" : "Marca incorrecta", + "No file was uploaded. Unknown error" : "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.", + "There is no error, the file uploaded with success" : "Non houbo erros, o ficheiro enviouse correctamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML", + "The uploaded file was only partially uploaded" : "O ficheiro so foi parcialmente enviado", + "No file was uploaded" : "Non se enviou ningún ficheiro", + "Missing a temporary folder" : "Falta o cartafol temporal", + "Failed to write to disk" : "Produciuse un erro ao escribir no disco", + "Not enough storage available" : "Non hai espazo de almacenamento abondo", + "Upload failed. Could not find uploaded file" : "O envío fracasou. Non foi posíbel atopar o ficheiro enviado", + "Upload failed. Could not get file info." : "O envío fracasou. Non foi posíbel obter información do ficheiro.", + "Invalid directory." : "O directorio é incorrecto.", + "Files" : "Ficheiros", + "All files" : "Todos os ficheiros", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Non é posíbel enviar {filename}, xa que ou é un directorio ou ten 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "O tamaño total do ficheiro {size1} excede do límite de envío {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Non hai espazo libre abondo, o seu envío é de {size1} mais só dispón de {size2}", + "Upload cancelled." : "Envío cancelado.", + "Could not get result from server." : "Non foi posíbel obter o resultado do servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío.", + "URL cannot be empty" : "O URL non pode quedar en branco.", + "{new_name} already exists" : "Xa existe un {new_name}", + "Could not create file" : "Non foi posíbel crear o ficheiro", + "Could not create folder" : "Non foi posíbel crear o cartafol", + "Error fetching URL" : "Produciuse un erro ao obter o URL", + "Share" : "Compartir", + "Delete" : "Eliminar", + "Disconnect storage" : "Desconectar o almacenamento", + "Unshare" : "Deixar de compartir", + "Delete permanently" : "Eliminar permanentemente", + "Rename" : "Renomear", + "Pending" : "Pendentes", + "Error moving file." : "Produciuse un erro ao mover o ficheiro.", + "Error moving file" : "Produciuse un erro ao mover o ficheiro", + "Error" : "Erro", + "Could not rename file" : "Non foi posíbel renomear o ficheiro", + "Error deleting file." : "Produciuse un erro ao eliminar o ficheiro.", + "Name" : "Nome", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n cartafol","%n cartafoles"], + "_%n file_::_%n files_" : ["%n ficheiro","%n ficheiros"], + "You don’t have permission to upload or create files here" : "Non ten permisos para enviar ou crear ficheiros aquí.", + "_Uploading %n file_::_Uploading %n files_" : ["Cargando %n ficheiro","Cargando %n ficheiros"], + "\"{name}\" is an invalid file name." : "«{name}» é un nome incorrecto de ficheiro.", + "Your storage is full, files can not be updated or synced anymore!" : "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!", + "Your storage is almost full ({usedSpacePercent}%)" : "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "Non é posíbel renomear %s xa que foi eliminado", + "%s could not be renamed" : "%s non pode cambiar de nome", + "Upload (max. %s)" : "Envío (máx. %s)", + "File handling" : "Manexo de ficheiro", + "Maximum upload size" : "Tamaño máximo do envío", + "max. possible: " : "máx. posíbel: ", + "Save" : "Gardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Empregue esta ligazón para acceder aos seus ficheiros mediante WebDAV", + "New" : "Novo", + "New text file" : "Ficheiro novo de texto", + "Text file" : "Ficheiro de texto", + "New folder" : "Novo cartafol", + "Folder" : "Cartafol", + "From link" : "Desde a ligazón", + "Nothing in here. Upload something!" : "Aquí non hai nada. Envíe algo.", + "Download" : "Descargar", + "Upload too large" : "Envío grande de máis", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor", + "Files are being scanned, please wait." : "Estanse analizando os ficheiros. Agarde.", + "Currently scanning" : "Análise actual" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php deleted file mode 100644 index 0671a0ac4748baffe105d67359dfd90ed808bd42..0000000000000000000000000000000000000000 --- a/apps/files/l10n/gl.php +++ /dev/null @@ -1,95 +0,0 @@ - "Almacenamento non dispoñíbel", -"Storage invalid" => "Almacenamento incorrecto", -"Unknown error" => "Produciuse un erro descoñecido", -"Could not move %s - File with this name already exists" => "Non foi posíbel mover %s; Xa existe un ficheiro con ese nome.", -"Could not move %s" => "Non foi posíbel mover %s", -"File name cannot be empty." => "O nome de ficheiro non pode estar baleiro", -"\"%s\" is an invalid file name." => "«%s» é un nome incorrecto de ficheiro.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome incorrecto, non se permite «\\», «/», «<», «>», «:», «\"», «|», «?» e «*».", -"The target folder has been moved or deleted." => "O cartafol de destino foi movido ou eliminado.", -"The name %s is already used in the folder %s. Please choose a different name." => "Xa existe o nome %s no cartafol %s. Escolla outro nome.", -"Not a valid source" => "Esta orixe non é correcta", -"Server is not allowed to open URLs, please check the server configuration" => "O servidor non ten permisos para abrir os enderezos URL, comprobe a configuración do servidor", -"The file exceeds your quota by %s" => "O ficheiro excede a súa cota en %s", -"Error while downloading %s to %s" => "Produciuse un erro ao descargar %s en %s", -"Error when creating the file" => "Produciuse un erro ao crear o ficheiro", -"Folder name cannot be empty." => "O nome de cartafol non pode estar baleiro.", -"Error when creating the folder" => "Produciuse un erro ao crear o cartafol", -"Unable to set upload directory." => "Non é posíbel configurar o directorio de envíos.", -"Invalid Token" => "Marca incorrecta", -"No file was uploaded. Unknown error" => "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.", -"There is no error, the file uploaded with success" => "Non houbo erros, o ficheiro enviouse correctamente", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML", -"The uploaded file was only partially uploaded" => "O ficheiro so foi parcialmente enviado", -"No file was uploaded" => "Non se enviou ningún ficheiro", -"Missing a temporary folder" => "Falta o cartafol temporal", -"Failed to write to disk" => "Produciuse un erro ao escribir no disco", -"Not enough storage available" => "Non hai espazo de almacenamento abondo", -"Upload failed. Could not find uploaded file" => "O envío fracasou. Non foi posíbel atopar o ficheiro enviado", -"Upload failed. Could not get file info." => "O envío fracasou. Non foi posíbel obter información do ficheiro.", -"Invalid directory." => "O directorio é incorrecto.", -"Files" => "Ficheiros", -"All files" => "Todos os ficheiros", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Non é posíbel enviar {filename}, xa que ou é un directorio ou ten 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "O tamaño total do ficheiro {size1} excede do límite de envío {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Non hai espazo libre abondo, o seu envío é de {size1} mais só dispón de {size2}", -"Upload cancelled." => "Envío cancelado.", -"Could not get result from server." => "Non foi posíbel obter o resultado do servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío.", -"URL cannot be empty" => "O URL non pode quedar en branco.", -"{new_name} already exists" => "Xa existe un {new_name}", -"Could not create file" => "Non foi posíbel crear o ficheiro", -"Could not create folder" => "Non foi posíbel crear o cartafol", -"Error fetching URL" => "Produciuse un erro ao obter o URL", -"Share" => "Compartir", -"Delete" => "Eliminar", -"Disconnect storage" => "Desconectar o almacenamento", -"Unshare" => "Deixar de compartir", -"Delete permanently" => "Eliminar permanentemente", -"Rename" => "Renomear", -"Pending" => "Pendentes", -"Error moving file." => "Produciuse un erro ao mover o ficheiro.", -"Error moving file" => "Produciuse un erro ao mover o ficheiro", -"Error" => "Erro", -"Could not rename file" => "Non foi posíbel renomear o ficheiro", -"Error deleting file." => "Produciuse un erro ao eliminar o ficheiro.", -"Name" => "Nome", -"Size" => "Tamaño", -"Modified" => "Modificado", -"_%n folder_::_%n folders_" => array("%n cartafol","%n cartafoles"), -"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"), -"You don’t have permission to upload or create files here" => "Non ten permisos para enviar ou crear ficheiros aquí.", -"_Uploading %n file_::_Uploading %n files_" => array("Cargando %n ficheiro","Cargando %n ficheiros"), -"\"{name}\" is an invalid file name." => "«{name}» é un nome incorrecto de ficheiro.", -"Your storage is full, files can not be updated or synced anymore!" => "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!", -"Your storage is almost full ({usedSpacePercent}%)" => "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "O cifrado foi desactivado, mais os ficheiros están cifrados. Vaia á configuración persoal para descifrar os ficheiros.", -"{dirs} and {files}" => "{dirs} e {files}", -"%s could not be renamed as it has been deleted" => "Non é posíbel renomear %s xa que foi eliminado", -"%s could not be renamed" => "%s non pode cambiar de nome", -"Upload (max. %s)" => "Envío (máx. %s)", -"File handling" => "Manexo de ficheiro", -"Maximum upload size" => "Tamaño máximo do envío", -"max. possible: " => "máx. posíbel: ", -"Save" => "Gardar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Empregue esta ligazón para acceder aos seus ficheiros mediante WebDAV", -"New" => "Novo", -"New text file" => "Ficheiro novo de texto", -"Text file" => "Ficheiro de texto", -"New folder" => "Novo cartafol", -"Folder" => "Cartafol", -"From link" => "Desde a ligazón", -"Nothing in here. Upload something!" => "Aquí non hai nada. Envíe algo.", -"Download" => "Descargar", -"Upload too large" => "Envío grande de máis", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor", -"Files are being scanned, please wait." => "Estanse analizando os ficheiros. Agarde.", -"Currently scanning" => "Análise actual" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/gu.js b/apps/files/l10n/gu.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/gu.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/gu.json b/apps/files/l10n/gu.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/gu.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/gu.php b/apps/files/l10n/gu.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/gu.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js new file mode 100644 index 0000000000000000000000000000000000000000..4db22fef4ed5599dd8490e60ecea9f024c6f20e2 --- /dev/null +++ b/apps/files/l10n/he.js @@ -0,0 +1,56 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "שגיאה בלתי ידועה", + "Could not move %s - File with this name already exists" : "לא ניתן להעביר את %s - קובץ בשם הזה כבר קיים", + "Could not move %s" : "לא ניתן להעביר את %s", + "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "השם שגוי, אסור להשתמש בתווים '\\', '/', '<', '>', ':', '\"', '|', '?' ו־'*'.", + "No file was uploaded. Unknown error" : "לא הועלה קובץ. טעות בלתי מזוהה.", + "There is no error, the file uploaded with success" : "לא התרחשה שגיאה, הקובץ הועלה בהצלחה", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "הקובץ שהועלה גדוך מהערך MAX_FILE_SIZE שהוגדר בתופס HTML", + "The uploaded file was only partially uploaded" : "הקובץ הועלה באופן חלקי בלבד", + "No file was uploaded" : "שום קובץ לא הועלה", + "Missing a temporary folder" : "תקיה זמנית חסרה", + "Failed to write to disk" : "הכתיבה לכונן נכשלה", + "Not enough storage available" : "אין די שטח פנוי באחסון", + "Upload failed. Could not get file info." : "העלאה נכשלה. לא ניתן להשיג את פרטי הקובץ.", + "Invalid directory." : "תיקייה שגויה.", + "Files" : "קבצים", + "Upload cancelled." : "ההעלאה בוטלה.", + "Could not get result from server." : "לא ניתן לגשת לתוצאות מהשרת.", + "File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.", + "{new_name} already exists" : "{new_name} כבר קיים", + "Share" : "שתף", + "Delete" : "מחיקה", + "Unshare" : "הסר שיתוף", + "Delete permanently" : "מחק לצמיתות", + "Rename" : "שינוי שם", + "Pending" : "ממתין", + "Error" : "שגיאה", + "Name" : "שם", + "Size" : "גודל", + "Modified" : "זמן שינוי", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)", + "Upload (max. %s)" : "העלאה (מקסימום %s)", + "File handling" : "טיפול בקבצים", + "Maximum upload size" : "גודל העלאה מקסימלי", + "max. possible: " : "המרבי האפשרי: ", + "Save" : "שמירה", + "WebDAV" : "WebDAV", + "New" : "חדש", + "Text file" : "קובץ טקסט", + "New folder" : "תיקייה חדשה", + "Folder" : "תיקייה", + "From link" : "מקישור", + "Nothing in here. Upload something!" : "אין כאן שום דבר. אולי ברצונך להעלות משהו?", + "Download" : "הורדה", + "Upload too large" : "העלאה גדולה מידי", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.", + "Files are being scanned, please wait." : "הקבצים נסרקים, נא להמתין." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json new file mode 100644 index 0000000000000000000000000000000000000000..b876983cbbb05e80f67ef051b4364e77ef4d9129 --- /dev/null +++ b/apps/files/l10n/he.json @@ -0,0 +1,54 @@ +{ "translations": { + "Unknown error" : "שגיאה בלתי ידועה", + "Could not move %s - File with this name already exists" : "לא ניתן להעביר את %s - קובץ בשם הזה כבר קיים", + "Could not move %s" : "לא ניתן להעביר את %s", + "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "השם שגוי, אסור להשתמש בתווים '\\', '/', '<', '>', ':', '\"', '|', '?' ו־'*'.", + "No file was uploaded. Unknown error" : "לא הועלה קובץ. טעות בלתי מזוהה.", + "There is no error, the file uploaded with success" : "לא התרחשה שגיאה, הקובץ הועלה בהצלחה", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "הקובץ שהועלה גדוך מהערך MAX_FILE_SIZE שהוגדר בתופס HTML", + "The uploaded file was only partially uploaded" : "הקובץ הועלה באופן חלקי בלבד", + "No file was uploaded" : "שום קובץ לא הועלה", + "Missing a temporary folder" : "תקיה זמנית חסרה", + "Failed to write to disk" : "הכתיבה לכונן נכשלה", + "Not enough storage available" : "אין די שטח פנוי באחסון", + "Upload failed. Could not get file info." : "העלאה נכשלה. לא ניתן להשיג את פרטי הקובץ.", + "Invalid directory." : "תיקייה שגויה.", + "Files" : "קבצים", + "Upload cancelled." : "ההעלאה בוטלה.", + "Could not get result from server." : "לא ניתן לגשת לתוצאות מהשרת.", + "File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.", + "{new_name} already exists" : "{new_name} כבר קיים", + "Share" : "שתף", + "Delete" : "מחיקה", + "Unshare" : "הסר שיתוף", + "Delete permanently" : "מחק לצמיתות", + "Rename" : "שינוי שם", + "Pending" : "ממתין", + "Error" : "שגיאה", + "Name" : "שם", + "Size" : "גודל", + "Modified" : "זמן שינוי", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Your storage is almost full ({usedSpacePercent}%)" : "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)", + "Upload (max. %s)" : "העלאה (מקסימום %s)", + "File handling" : "טיפול בקבצים", + "Maximum upload size" : "גודל העלאה מקסימלי", + "max. possible: " : "המרבי האפשרי: ", + "Save" : "שמירה", + "WebDAV" : "WebDAV", + "New" : "חדש", + "Text file" : "קובץ טקסט", + "New folder" : "תיקייה חדשה", + "Folder" : "תיקייה", + "From link" : "מקישור", + "Nothing in here. Upload something!" : "אין כאן שום דבר. אולי ברצונך להעלות משהו?", + "Download" : "הורדה", + "Upload too large" : "העלאה גדולה מידי", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.", + "Files are being scanned, please wait." : "הקבצים נסרקים, נא להמתין." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php deleted file mode 100644 index 5eae5e46f275992e09546bec12c335d14fdad350..0000000000000000000000000000000000000000 --- a/apps/files/l10n/he.php +++ /dev/null @@ -1,55 +0,0 @@ - "שגיאה בלתי ידועה", -"Could not move %s - File with this name already exists" => "לא ניתן להעביר את %s - קובץ בשם הזה כבר קיים", -"Could not move %s" => "לא ניתן להעביר את %s", -"File name cannot be empty." => "שם קובץ אינו יכול להיות ריק", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "השם שגוי, אסור להשתמש בתווים '\\', '/', '<', '>', ':', '\"', '|', '?' ו־'*'.", -"No file was uploaded. Unknown error" => "לא הועלה קובץ. טעות בלתי מזוהה.", -"There is no error, the file uploaded with success" => "לא התרחשה שגיאה, הקובץ הועלה בהצלחה", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "הקובץ שהועלה גדוך מהערך MAX_FILE_SIZE שהוגדר בתופס HTML", -"The uploaded file was only partially uploaded" => "הקובץ הועלה באופן חלקי בלבד", -"No file was uploaded" => "שום קובץ לא הועלה", -"Missing a temporary folder" => "תקיה זמנית חסרה", -"Failed to write to disk" => "הכתיבה לכונן נכשלה", -"Not enough storage available" => "אין די שטח פנוי באחסון", -"Upload failed. Could not get file info." => "העלאה נכשלה. לא ניתן להשיג את פרטי הקובץ.", -"Invalid directory." => "תיקייה שגויה.", -"Files" => "קבצים", -"Upload cancelled." => "ההעלאה בוטלה.", -"Could not get result from server." => "לא ניתן לגשת לתוצאות מהשרת.", -"File upload is in progress. Leaving the page now will cancel the upload." => "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.", -"{new_name} already exists" => "{new_name} כבר קיים", -"Share" => "שתף", -"Delete" => "מחיקה", -"Unshare" => "הסר שיתוף", -"Delete permanently" => "מחק לצמיתות", -"Rename" => "שינוי שם", -"Pending" => "ממתין", -"Error" => "שגיאה", -"Name" => "שם", -"Size" => "גודל", -"Modified" => "זמן שינוי", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Your storage is almost full ({usedSpacePercent}%)" => "שטח האחסון שלך כמעט מלא ({usedSpacePercent}%)", -"Upload (max. %s)" => "העלאה (מקסימום %s)", -"File handling" => "טיפול בקבצים", -"Maximum upload size" => "גודל העלאה מקסימלי", -"max. possible: " => "המרבי האפשרי: ", -"Save" => "שמירה", -"WebDAV" => "WebDAV", -"New" => "חדש", -"Text file" => "קובץ טקסט", -"New folder" => "תיקייה חדשה", -"Folder" => "תיקייה", -"From link" => "מקישור", -"Nothing in here. Upload something!" => "אין כאן שום דבר. אולי ברצונך להעלות משהו?", -"Download" => "הורדה", -"Upload too large" => "העלאה גדולה מידי", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.", -"Files are being scanned, please wait." => "הקבצים נסרקים, נא להמתין." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/hi.js b/apps/files/l10n/hi.js new file mode 100644 index 0000000000000000000000000000000000000000..21b409ce9ef2d9e1574ec74e8a21cf9f07466936 --- /dev/null +++ b/apps/files/l10n/hi.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "files", + { + "Files" : "फाइलें ", + "Share" : "साझा करें", + "Error" : "त्रुटि", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "सहेजें", + "New folder" : "नया फ़ोल्डर" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/hi.json b/apps/files/l10n/hi.json new file mode 100644 index 0000000000000000000000000000000000000000..093b80ce700ced07e830726fe2e8cb0439371555 --- /dev/null +++ b/apps/files/l10n/hi.json @@ -0,0 +1,11 @@ +{ "translations": { + "Files" : "फाइलें ", + "Share" : "साझा करें", + "Error" : "त्रुटि", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "सहेजें", + "New folder" : "नया फ़ोल्डर" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/hi.php b/apps/files/l10n/hi.php deleted file mode 100644 index d38129dd9a2091206eb94fdb76ddcbdba41a6444..0000000000000000000000000000000000000000 --- a/apps/files/l10n/hi.php +++ /dev/null @@ -1,12 +0,0 @@ - "फाइलें ", -"Share" => "साझा करें", -"Error" => "त्रुटि", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "सहेजें", -"New folder" => "नया फ़ोल्डर" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/hi_IN.js b/apps/files/l10n/hi_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/hi_IN.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/hi_IN.json b/apps/files/l10n/hi_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/hi_IN.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/hi_IN.php b/apps/files/l10n/hi_IN.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/hi_IN.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js new file mode 100644 index 0000000000000000000000000000000000000000..ad4eead41ccaf617c306d3fdc5879a706c6ca939 --- /dev/null +++ b/apps/files/l10n/hr.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Pohrana nedostupna", + "Storage invalid" : "Pohrana neispravna", + "Unknown error" : "Nepoznata pogreška", + "Could not move %s - File with this name already exists" : "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji", + "Could not move %s" : "Nemoguće premjestiti %s", + "Permission denied" : "Nemate dozvolu", + "File name cannot be empty." : "Naziv datoteke ne može biti prazan.", + "\"%s\" is an invalid file name." : "\"%s\" je neispravan naziv datoteke.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neispravan naziv,'\\', '/', '<', '>', ':', '\"', '|', '?' i '*' nisu dozvoljeni.", + "The target folder has been moved or deleted." : "Ciljna mapa je premještena ili izbrisana.", + "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s je već iskorišten u mapi %s. Molimo odaberite drukčiji naziv.", + "Not a valid source" : "Izvor nije valjan", + "Server is not allowed to open URLs, please check the server configuration" : "Poslužitelj ne smije otvarati URL-ove, molimo provjerite konfiguraciju poslužitelja", + "The file exceeds your quota by %s" : "Datoteka premašuje vašu kvotu za %s", + "Error while downloading %s to %s" : "Pogreška pri prenošenju %s u %s", + "Error when creating the file" : "Pogreška pri kreiranju datoteke", + "Folder name cannot be empty." : "Naziv mape ne može biti prazan.", + "Error when creating the folder" : "Pogreška pri kreiranju mape", + "Unable to set upload directory." : "Postavka učitavanja direktorija nije moguća", + "Invalid Token" : "Neispravan token", + "No file was uploaded. Unknown error" : "Nijedna datoteka nije učitana. Pogreška nepoznata.", + "There is no error, the file uploaded with success" : "Pogreške nema, datoteka uspješno učitana", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu navedenu u php. ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje MAX_FILE_SIZE direktivu navedenu u HTML formi", + "The uploaded file was only partially uploaded" : "Učitana datoteka samo je djelomično učitana", + "No file was uploaded" : "Nijedna datoteka nije učitana", + "Missing a temporary folder" : "Nedostaje privremena mapa", + "Failed to write to disk" : "Zapisivanje na disk nije uspjelo", + "Not enough storage available" : "Prostor za pohranu nedostatan", + "Upload failed. Could not find uploaded file" : "Učitavanje neuspješno. Nije emoguće pronaći učitanu dataoteku", + "Upload failed. Could not get file info." : "Učitavanje neuspješno. Nije moguće dohvatiti informacije o datoteci", + "Invalid directory." : "Neispravan direktorij", + "Files" : "Datoteke", + "All files" : "Sve datoteke", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće učitati {filename} jer je ili direktorij ili ima 0 bajta", + "Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina datoteke {size1} premašuje ograničenje unosa {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo", + "Upload cancelled." : "Učitavanje je prekinuto.", + "Could not get result from server." : "Nemoguće dobiti rezultat od poslužitelja.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Učitavanje datoteke je u tijeku. Napuštanje stranice prekinut će učitavanje.", + "URL cannot be empty" : "URL ne može biti prazan", + "{new_name} already exists" : "{new_name} već postoji", + "Could not create file" : "Datoteku nije moguće kreirati", + "Could not create folder" : "Mapu nije moguće kreirati", + "Error fetching URL" : "Pogrešan dohvat URL", + "Share" : "Podijelite resurs", + "Delete" : "Izbrišite", + "Disconnect storage" : "Isključite pohranu", + "Unshare" : "Prestanite dijeliti", + "Delete permanently" : "Trajno izbrišite", + "Rename" : "Preimenujte", + "Pending" : "Na čekanju", + "Error moving file." : "Pogrešno premještanje datoteke", + "Error moving file" : "Pogrešno premještanje datoteke", + "Error" : "Pogreška", + "Could not rename file" : "Datoteku nije moguće preimenovati", + "Error deleting file." : "Pogrešno brisanje datoteke", + "Name" : "Naziv", + "Size" : "Veličina", + "Modified" : "Promijenjeno", + "_%n folder_::_%n folders_" : ["%n mapa","%n mape","%n mapa"], + "_%n file_::_%n files_" : ["%n datoteka","%n datoteke","%n datoteka"], + "You don’t have permission to upload or create files here" : "Ovdje vam nije dopušteno učitavati ili kreirati datoteke", + "_Uploading %n file_::_Uploading %n files_" : ["Prenosim %n datoteku","Prenosim %n datoteke","Prenosim %n datoteka"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.", + "Your storage is full, files can not be updated or synced anymore!" : "Vaša je pohrana puna, datoteke više nije moguće ažurirati niti sinkronizirati!", + "Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je onemogućena, ali vaši ključevi nisu inicijalizirani, molimo odjavite se i ponovno prijavite", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.", + "{dirs} and {files}" : "{dirs} i {files}", + "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan", + "%s could not be renamed" : "%s nije moguće preimenovati", + "Upload (max. %s)" : "Prijenos (max. %s)", + "File handling" : "Obrada datoteke", + "Maximum upload size" : "Maksimalna veličina učitanog sadržaja", + "max. possible: " : "max. moguće: ", + "Save" : "Spremite", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Koristitet slijedeću adresu za pristup vašim datotekama putem WebDAV-a", + "New" : "Novo", + "New text file" : "Nova tekstualna datoteka", + "Text file" : "Tekstualna datoteka", + "New folder" : "Nova mapa", + "Folder" : "Mapa", + "From link" : "Od veze", + "Nothing in here. Upload something!" : "Ovdje nema ničega. Učitajte nešto!", + "Download" : "Preuzimanje", + "Upload too large" : "Unos je prevelik", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke koje pokušavate učitati premašuju maksimalnu veličinu za unos datoteka na ovom poslužitelju.", + "Files are being scanned, please wait." : "Datoteke se provjeravaju, molimo pričekajte.", + "Currently scanning" : "Provjera u tijeku" +}, +"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json new file mode 100644 index 0000000000000000000000000000000000000000..482796da4a17bed742623510c89092b3cc0ae3af --- /dev/null +++ b/apps/files/l10n/hr.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Pohrana nedostupna", + "Storage invalid" : "Pohrana neispravna", + "Unknown error" : "Nepoznata pogreška", + "Could not move %s - File with this name already exists" : "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji", + "Could not move %s" : "Nemoguće premjestiti %s", + "Permission denied" : "Nemate dozvolu", + "File name cannot be empty." : "Naziv datoteke ne može biti prazan.", + "\"%s\" is an invalid file name." : "\"%s\" je neispravan naziv datoteke.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neispravan naziv,'\\', '/', '<', '>', ':', '\"', '|', '?' i '*' nisu dozvoljeni.", + "The target folder has been moved or deleted." : "Ciljna mapa je premještena ili izbrisana.", + "The name %s is already used in the folder %s. Please choose a different name." : "Naziv %s je već iskorišten u mapi %s. Molimo odaberite drukčiji naziv.", + "Not a valid source" : "Izvor nije valjan", + "Server is not allowed to open URLs, please check the server configuration" : "Poslužitelj ne smije otvarati URL-ove, molimo provjerite konfiguraciju poslužitelja", + "The file exceeds your quota by %s" : "Datoteka premašuje vašu kvotu za %s", + "Error while downloading %s to %s" : "Pogreška pri prenošenju %s u %s", + "Error when creating the file" : "Pogreška pri kreiranju datoteke", + "Folder name cannot be empty." : "Naziv mape ne može biti prazan.", + "Error when creating the folder" : "Pogreška pri kreiranju mape", + "Unable to set upload directory." : "Postavka učitavanja direktorija nije moguća", + "Invalid Token" : "Neispravan token", + "No file was uploaded. Unknown error" : "Nijedna datoteka nije učitana. Pogreška nepoznata.", + "There is no error, the file uploaded with success" : "Pogreške nema, datoteka uspješno učitana", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu navedenu u php. ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje MAX_FILE_SIZE direktivu navedenu u HTML formi", + "The uploaded file was only partially uploaded" : "Učitana datoteka samo je djelomično učitana", + "No file was uploaded" : "Nijedna datoteka nije učitana", + "Missing a temporary folder" : "Nedostaje privremena mapa", + "Failed to write to disk" : "Zapisivanje na disk nije uspjelo", + "Not enough storage available" : "Prostor za pohranu nedostatan", + "Upload failed. Could not find uploaded file" : "Učitavanje neuspješno. Nije emoguće pronaći učitanu dataoteku", + "Upload failed. Could not get file info." : "Učitavanje neuspješno. Nije moguće dohvatiti informacije o datoteci", + "Invalid directory." : "Neispravan direktorij", + "Files" : "Datoteke", + "All files" : "Sve datoteke", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće učitati {filename} jer je ili direktorij ili ima 0 bajta", + "Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina datoteke {size1} premašuje ograničenje unosa {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo", + "Upload cancelled." : "Učitavanje je prekinuto.", + "Could not get result from server." : "Nemoguće dobiti rezultat od poslužitelja.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Učitavanje datoteke je u tijeku. Napuštanje stranice prekinut će učitavanje.", + "URL cannot be empty" : "URL ne može biti prazan", + "{new_name} already exists" : "{new_name} već postoji", + "Could not create file" : "Datoteku nije moguće kreirati", + "Could not create folder" : "Mapu nije moguće kreirati", + "Error fetching URL" : "Pogrešan dohvat URL", + "Share" : "Podijelite resurs", + "Delete" : "Izbrišite", + "Disconnect storage" : "Isključite pohranu", + "Unshare" : "Prestanite dijeliti", + "Delete permanently" : "Trajno izbrišite", + "Rename" : "Preimenujte", + "Pending" : "Na čekanju", + "Error moving file." : "Pogrešno premještanje datoteke", + "Error moving file" : "Pogrešno premještanje datoteke", + "Error" : "Pogreška", + "Could not rename file" : "Datoteku nije moguće preimenovati", + "Error deleting file." : "Pogrešno brisanje datoteke", + "Name" : "Naziv", + "Size" : "Veličina", + "Modified" : "Promijenjeno", + "_%n folder_::_%n folders_" : ["%n mapa","%n mape","%n mapa"], + "_%n file_::_%n files_" : ["%n datoteka","%n datoteke","%n datoteka"], + "You don’t have permission to upload or create files here" : "Ovdje vam nije dopušteno učitavati ili kreirati datoteke", + "_Uploading %n file_::_Uploading %n files_" : ["Prenosim %n datoteku","Prenosim %n datoteke","Prenosim %n datoteka"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.", + "Your storage is full, files can not be updated or synced anymore!" : "Vaša je pohrana puna, datoteke više nije moguće ažurirati niti sinkronizirati!", + "Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je onemogućena, ali vaši ključevi nisu inicijalizirani, molimo odjavite se i ponovno prijavite", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.", + "{dirs} and {files}" : "{dirs} i {files}", + "%s could not be renamed as it has been deleted" : "%s nije moguće preimenovati jer je izbrisan", + "%s could not be renamed" : "%s nije moguće preimenovati", + "Upload (max. %s)" : "Prijenos (max. %s)", + "File handling" : "Obrada datoteke", + "Maximum upload size" : "Maksimalna veličina učitanog sadržaja", + "max. possible: " : "max. moguće: ", + "Save" : "Spremite", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Koristitet slijedeću adresu za pristup vašim datotekama putem WebDAV-a", + "New" : "Novo", + "New text file" : "Nova tekstualna datoteka", + "Text file" : "Tekstualna datoteka", + "New folder" : "Nova mapa", + "Folder" : "Mapa", + "From link" : "Od veze", + "Nothing in here. Upload something!" : "Ovdje nema ničega. Učitajte nešto!", + "Download" : "Preuzimanje", + "Upload too large" : "Unos je prevelik", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke koje pokušavate učitati premašuju maksimalnu veličinu za unos datoteka na ovom poslužitelju.", + "Files are being scanned, please wait." : "Datoteke se provjeravaju, molimo pričekajte.", + "Currently scanning" : "Provjera u tijeku" +},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php deleted file mode 100644 index 7c4016d31b37f84c88dba7ad6b16b6ec6ae67b6a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/hr.php +++ /dev/null @@ -1,96 +0,0 @@ - "Pohrana nedostupna", -"Storage invalid" => "Pohrana neispravna", -"Unknown error" => "Nepoznata pogreška", -"Could not move %s - File with this name already exists" => "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji", -"Could not move %s" => "Nemoguće premjestiti %s", -"Permission denied" => "Nemate dozvolu", -"File name cannot be empty." => "Naziv datoteke ne može biti prazan.", -"\"%s\" is an invalid file name." => "\"%s\" je neispravan naziv datoteke.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neispravan naziv,'\\', '/', '<', '>', ':', '\"', '|', '?' i '*' nisu dozvoljeni.", -"The target folder has been moved or deleted." => "Ciljna mapa je premještena ili izbrisana.", -"The name %s is already used in the folder %s. Please choose a different name." => "Naziv %s je već iskorišten u mapi %s. Molimo odaberite drukčiji naziv.", -"Not a valid source" => "Izvor nije valjan", -"Server is not allowed to open URLs, please check the server configuration" => "Poslužitelj ne smije otvarati URL-ove, molimo provjerite konfiguraciju poslužitelja", -"The file exceeds your quota by %s" => "Datoteka premašuje vašu kvotu za %s", -"Error while downloading %s to %s" => "Pogreška pri prenošenju %s u %s", -"Error when creating the file" => "Pogreška pri kreiranju datoteke", -"Folder name cannot be empty." => "Naziv mape ne može biti prazan.", -"Error when creating the folder" => "Pogreška pri kreiranju mape", -"Unable to set upload directory." => "Postavka učitavanja direktorija nije moguća", -"Invalid Token" => "Neispravan token", -"No file was uploaded. Unknown error" => "Nijedna datoteka nije učitana. Pogreška nepoznata.", -"There is no error, the file uploaded with success" => "Pogreške nema, datoteka uspješno učitana", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Učitana datoteka premašuje maksimalnu dopuštenu veličinu navedenu u php. ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Učitana datoteka premašuje MAX_FILE_SIZE direktivu navedenu u HTML formi", -"The uploaded file was only partially uploaded" => "Učitana datoteka samo je djelomično učitana", -"No file was uploaded" => "Nijedna datoteka nije učitana", -"Missing a temporary folder" => "Nedostaje privremena mapa", -"Failed to write to disk" => "Zapisivanje na disk nije uspjelo", -"Not enough storage available" => "Prostor za pohranu nedostatan", -"Upload failed. Could not find uploaded file" => "Učitavanje neuspješno. Nije emoguće pronaći učitanu dataoteku", -"Upload failed. Could not get file info." => "Učitavanje neuspješno. Nije moguće dohvatiti informacije o datoteci", -"Invalid directory." => "Neispravan direktorij", -"Files" => "Datoteke", -"All files" => "Sve datoteke", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nije moguće učitati {filename} jer je ili direktorij ili ima 0 bajta", -"Total file size {size1} exceeds upload limit {size2}" => "Ukupna veličina datoteke {size1} premašuje ograničenje unosa {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo", -"Upload cancelled." => "Učitavanje je prekinuto.", -"Could not get result from server." => "Nemoguće dobiti rezultat od poslužitelja.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Učitavanje datoteke je u tijeku. Napuštanje stranice prekinut će učitavanje.", -"URL cannot be empty" => "URL ne može biti prazan", -"{new_name} already exists" => "{new_name} već postoji", -"Could not create file" => "Datoteku nije moguće kreirati", -"Could not create folder" => "Mapu nije moguće kreirati", -"Error fetching URL" => "Pogrešan dohvat URL", -"Share" => "Podijelite resurs", -"Delete" => "Izbrišite", -"Disconnect storage" => "Isključite pohranu", -"Unshare" => "Prestanite dijeliti", -"Delete permanently" => "Trajno izbrišite", -"Rename" => "Preimenujte", -"Pending" => "Na čekanju", -"Error moving file." => "Pogrešno premještanje datoteke", -"Error moving file" => "Pogrešno premještanje datoteke", -"Error" => "Pogreška", -"Could not rename file" => "Datoteku nije moguće preimenovati", -"Error deleting file." => "Pogrešno brisanje datoteke", -"Name" => "Naziv", -"Size" => "Veličina", -"Modified" => "Promijenjeno", -"_%n folder_::_%n folders_" => array("%n mapa","%n mape","%n mapa"), -"_%n file_::_%n files_" => array("%n datoteka","%n datoteke","%n datoteka"), -"You don’t have permission to upload or create files here" => "Ovdje vam nije dopušteno učitavati ili kreirati datoteke", -"_Uploading %n file_::_Uploading %n files_" => array("Prenosim %n datoteku","Prenosim %n datoteke","Prenosim %n datoteka"), -"\"{name}\" is an invalid file name." => "\"{name}\" je neispravno ime datoteke.", -"Your storage is full, files can not be updated or synced anymore!" => "Vaša je pohrana puna, datoteke više nije moguće ažurirati niti sinkronizirati!", -"Your storage is almost full ({usedSpacePercent}%)" => "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikacija šifriranja je onemogućena, ali vaši ključevi nisu inicijalizirani, molimo odjavite se i ponovno prijavite", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.", -"{dirs} and {files}" => "{dirs} i {files}", -"%s could not be renamed as it has been deleted" => "%s nije moguće preimenovati jer je izbrisan", -"%s could not be renamed" => "%s nije moguće preimenovati", -"Upload (max. %s)" => "Prijenos (max. %s)", -"File handling" => "Obrada datoteke", -"Maximum upload size" => "Maksimalna veličina učitanog sadržaja", -"max. possible: " => "max. moguće: ", -"Save" => "Spremite", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Koristitet slijedeću adresu za pristup vašim datotekama putem WebDAV-a", -"New" => "Novo", -"New text file" => "Nova tekstualna datoteka", -"Text file" => "Tekstualna datoteka", -"New folder" => "Nova mapa", -"Folder" => "Mapa", -"From link" => "Od veze", -"Nothing in here. Upload something!" => "Ovdje nema ničega. Učitajte nešto!", -"Download" => "Preuzimanje", -"Upload too large" => "Unos je prevelik", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke koje pokušavate učitati premašuju maksimalnu veličinu za unos datoteka na ovom poslužitelju.", -"Files are being scanned, please wait." => "Datoteke se provjeravaju, molimo pričekajte.", -"Currently scanning" => "Provjera u tijeku" -); -$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;"; diff --git a/apps/files/l10n/hu_HU.js b/apps/files/l10n/hu_HU.js new file mode 100644 index 0000000000000000000000000000000000000000..34a9c73aa0825da7a4b9875523f8d85d20d9ced4 --- /dev/null +++ b/apps/files/l10n/hu_HU.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "A tároló elérhetetlen.", + "Storage invalid" : "A tároló érvénytelen", + "Unknown error" : "Ismeretlen hiba", + "Could not move %s - File with this name already exists" : "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel", + "Could not move %s" : "Nem sikerült %s áthelyezése", + "Permission denied" : "Engedély megtagadva ", + "File name cannot be empty." : "A fájlnév nem lehet semmi.", + "\"%s\" is an invalid file name." : "\"%s\" érvénytelen, mint fájlnév.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'", + "The target folder has been moved or deleted." : "A célmappa törlődött, vagy áthelyezésre került.", + "The name %s is already used in the folder %s. Please choose a different name." : "A %s név már létezik a %s mappában. Kérem válasszon másik nevet!", + "Not a valid source" : "A kiinduló állomány érvénytelen", + "Server is not allowed to open URLs, please check the server configuration" : "A kiszolgálón nincs engedélyezve URL-ek megnyitása, kérem ellenőrizze a beállításokat!", + "The file exceeds your quota by %s" : "A fájl ennyivel meghaladja a kvótáját: %s", + "Error while downloading %s to %s" : "Hiba történt miközben %s-t letöltöttük %s-be", + "Error when creating the file" : "Hiba történt az állomány létrehozásakor", + "Folder name cannot be empty." : "A mappa neve nem maradhat kitöltetlenül", + "Error when creating the folder" : "Hiba történt a mappa létrehozásakor", + "Unable to set upload directory." : "Nem található a mappa, ahova feltölteni szeretne.", + "Invalid Token" : "Hibás token", + "No file was uploaded. Unknown error" : "Nem történt feltöltés. Ismeretlen hiba", + "There is no error, the file uploaded with success" : "A fájlt sikerült feltölteni", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra.", + "The uploaded file was only partially uploaded" : "Az eredeti fájlt csak részben sikerült feltölteni.", + "No file was uploaded" : "Nem töltődött fel állomány", + "Missing a temporary folder" : "Hiányzik egy ideiglenes mappa", + "Failed to write to disk" : "Nem sikerült a lemezre történő írás", + "Not enough storage available" : "Nincs elég szabad hely.", + "Upload failed. Could not find uploaded file" : "A feltöltés nem sikerült. Nem található a feltöltendő állomány.", + "Upload failed. Could not get file info." : "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el.", + "Invalid directory." : "Érvénytelen mappa.", + "Files" : "Fájlkezelő", + "All files" : "Az összes állomány", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll.", + "Total file size {size1} exceeds upload limit {size2}" : "A teljes fájlméret: {size1} meghaladja a feltöltési limitet: {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", + "Upload cancelled." : "A feltöltést megszakítottuk.", + "Could not get result from server." : "A kiszolgálótól nem kapható meg a művelet eredménye.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.", + "URL cannot be empty" : "Az URL-cím nem maradhat kitöltetlenül", + "{new_name} already exists" : "{new_name} már létezik", + "Could not create file" : "Az állomány nem hozható létre", + "Could not create folder" : "A mappa nem hozható létre", + "Error fetching URL" : "A megadott URL-ről nem sikerül adatokat kapni", + "Share" : "Megosztás", + "Delete" : "Törlés", + "Disconnect storage" : "Tároló leválasztása", + "Unshare" : "A megosztás visszavonása", + "Delete permanently" : "Végleges törlés", + "Rename" : "Átnevezés", + "Pending" : "Folyamatban", + "Error moving file." : "Hiba történt a fájl áthelyezése közben.", + "Error moving file" : "Az állomány áthelyezése nem sikerült.", + "Error" : "Hiba", + "Could not rename file" : "Az állomány nem nevezhető át", + "Error deleting file." : "Hiba a file törlése közben.", + "Name" : "Név", + "Size" : "Méret", + "Modified" : "Módosítva", + "_%n folder_::_%n folders_" : ["%n mappa","%n mappa"], + "_%n file_::_%n files_" : ["%n állomány","%n állomány"], + "You don’t have permission to upload or create files here" : "Önnek nincs jogosultsága ahhoz, hogy ide állományokat töltsön föl, vagy itt újakat hozzon létre", + "_Uploading %n file_::_Uploading %n files_" : ["%n állomány feltöltése","%n állomány feltöltése"], + "\"{name}\" is an invalid file name." : "\"{name}\" érvénytelen, mint fájlnév.", + "Your storage is full, files can not be updated or synced anymore!" : "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhatóak a jövőben.", + "Your storage is almost full ({usedSpacePercent}%)" : "A tároló majdnem tele van ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.", + "{dirs} and {files}" : "{dirs} és {files}", + "%s could not be renamed as it has been deleted" : "%s nem lehet átnevezni, mivel törölve lett", + "%s could not be renamed" : "%s átnevezése nem sikerült", + "Upload (max. %s)" : "Feltöltés (max. %s)", + "File handling" : "Fájlkezelés", + "Maximum upload size" : "Maximális feltölthető fájlméret", + "max. possible: " : "max. lehetséges: ", + "Save" : "Mentés", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Ezt a címet használja, ha WebDAV-on keresztül szeretné elérni a fájljait", + "New" : "Új", + "New text file" : "Új szövegfájl", + "Text file" : "Szövegfájl", + "New folder" : "Új mappa", + "Folder" : "Mappa", + "From link" : "Feltöltés linkről", + "Nothing in here. Upload something!" : "Itt nincs semmi. Töltsön fel valamit!", + "Download" : "Letöltés", + "Upload too large" : "A feltöltés túl nagy", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.", + "Files are being scanned, please wait." : "A fájllista ellenőrzése zajlik, kis türelmet!", + "Currently scanning" : "Mappaellenőrzés: " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/hu_HU.json b/apps/files/l10n/hu_HU.json new file mode 100644 index 0000000000000000000000000000000000000000..10ff167fd46ba1472d04d4183e6f285d3fae16ad --- /dev/null +++ b/apps/files/l10n/hu_HU.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "A tároló elérhetetlen.", + "Storage invalid" : "A tároló érvénytelen", + "Unknown error" : "Ismeretlen hiba", + "Could not move %s - File with this name already exists" : "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel", + "Could not move %s" : "Nem sikerült %s áthelyezése", + "Permission denied" : "Engedély megtagadva ", + "File name cannot be empty." : "A fájlnév nem lehet semmi.", + "\"%s\" is an invalid file name." : "\"%s\" érvénytelen, mint fájlnév.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'", + "The target folder has been moved or deleted." : "A célmappa törlődött, vagy áthelyezésre került.", + "The name %s is already used in the folder %s. Please choose a different name." : "A %s név már létezik a %s mappában. Kérem válasszon másik nevet!", + "Not a valid source" : "A kiinduló állomány érvénytelen", + "Server is not allowed to open URLs, please check the server configuration" : "A kiszolgálón nincs engedélyezve URL-ek megnyitása, kérem ellenőrizze a beállításokat!", + "The file exceeds your quota by %s" : "A fájl ennyivel meghaladja a kvótáját: %s", + "Error while downloading %s to %s" : "Hiba történt miközben %s-t letöltöttük %s-be", + "Error when creating the file" : "Hiba történt az állomány létrehozásakor", + "Folder name cannot be empty." : "A mappa neve nem maradhat kitöltetlenül", + "Error when creating the folder" : "Hiba történt a mappa létrehozásakor", + "Unable to set upload directory." : "Nem található a mappa, ahova feltölteni szeretne.", + "Invalid Token" : "Hibás token", + "No file was uploaded. Unknown error" : "Nem történt feltöltés. Ismeretlen hiba", + "There is no error, the file uploaded with success" : "A fájlt sikerült feltölteni", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra.", + "The uploaded file was only partially uploaded" : "Az eredeti fájlt csak részben sikerült feltölteni.", + "No file was uploaded" : "Nem töltődött fel állomány", + "Missing a temporary folder" : "Hiányzik egy ideiglenes mappa", + "Failed to write to disk" : "Nem sikerült a lemezre történő írás", + "Not enough storage available" : "Nincs elég szabad hely.", + "Upload failed. Could not find uploaded file" : "A feltöltés nem sikerült. Nem található a feltöltendő állomány.", + "Upload failed. Could not get file info." : "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el.", + "Invalid directory." : "Érvénytelen mappa.", + "Files" : "Fájlkezelő", + "All files" : "Az összes állomány", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll.", + "Total file size {size1} exceeds upload limit {size2}" : "A teljes fájlméret: {size1} meghaladja a feltöltési limitet: {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", + "Upload cancelled." : "A feltöltést megszakítottuk.", + "Could not get result from server." : "A kiszolgálótól nem kapható meg a művelet eredménye.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.", + "URL cannot be empty" : "Az URL-cím nem maradhat kitöltetlenül", + "{new_name} already exists" : "{new_name} már létezik", + "Could not create file" : "Az állomány nem hozható létre", + "Could not create folder" : "A mappa nem hozható létre", + "Error fetching URL" : "A megadott URL-ről nem sikerül adatokat kapni", + "Share" : "Megosztás", + "Delete" : "Törlés", + "Disconnect storage" : "Tároló leválasztása", + "Unshare" : "A megosztás visszavonása", + "Delete permanently" : "Végleges törlés", + "Rename" : "Átnevezés", + "Pending" : "Folyamatban", + "Error moving file." : "Hiba történt a fájl áthelyezése közben.", + "Error moving file" : "Az állomány áthelyezése nem sikerült.", + "Error" : "Hiba", + "Could not rename file" : "Az állomány nem nevezhető át", + "Error deleting file." : "Hiba a file törlése közben.", + "Name" : "Név", + "Size" : "Méret", + "Modified" : "Módosítva", + "_%n folder_::_%n folders_" : ["%n mappa","%n mappa"], + "_%n file_::_%n files_" : ["%n állomány","%n állomány"], + "You don’t have permission to upload or create files here" : "Önnek nincs jogosultsága ahhoz, hogy ide állományokat töltsön föl, vagy itt újakat hozzon létre", + "_Uploading %n file_::_Uploading %n files_" : ["%n állomány feltöltése","%n állomány feltöltése"], + "\"{name}\" is an invalid file name." : "\"{name}\" érvénytelen, mint fájlnév.", + "Your storage is full, files can not be updated or synced anymore!" : "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhatóak a jövőben.", + "Your storage is almost full ({usedSpacePercent}%)" : "A tároló majdnem tele van ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.", + "{dirs} and {files}" : "{dirs} és {files}", + "%s could not be renamed as it has been deleted" : "%s nem lehet átnevezni, mivel törölve lett", + "%s could not be renamed" : "%s átnevezése nem sikerült", + "Upload (max. %s)" : "Feltöltés (max. %s)", + "File handling" : "Fájlkezelés", + "Maximum upload size" : "Maximális feltölthető fájlméret", + "max. possible: " : "max. lehetséges: ", + "Save" : "Mentés", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Ezt a címet használja, ha WebDAV-on keresztül szeretné elérni a fájljait", + "New" : "Új", + "New text file" : "Új szövegfájl", + "Text file" : "Szövegfájl", + "New folder" : "Új mappa", + "Folder" : "Mappa", + "From link" : "Feltöltés linkről", + "Nothing in here. Upload something!" : "Itt nincs semmi. Töltsön fel valamit!", + "Download" : "Letöltés", + "Upload too large" : "A feltöltés túl nagy", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.", + "Files are being scanned, please wait." : "A fájllista ellenőrzése zajlik, kis türelmet!", + "Currently scanning" : "Mappaellenőrzés: " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php deleted file mode 100644 index 1a8d2a6f548e97388d5d49efd5059fdcb26b2641..0000000000000000000000000000000000000000 --- a/apps/files/l10n/hu_HU.php +++ /dev/null @@ -1,95 +0,0 @@ - "A tároló elérhetetlen.", -"Storage invalid" => "A tároló érvénytelen", -"Unknown error" => "Ismeretlen hiba", -"Could not move %s - File with this name already exists" => "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel", -"Could not move %s" => "Nem sikerült %s áthelyezése", -"File name cannot be empty." => "A fájlnév nem lehet semmi.", -"\"%s\" is an invalid file name." => "\"%s\" érvénytelen, mint fájlnév.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'", -"The target folder has been moved or deleted." => "A célmappa törlődött, vagy áthelyezésre került.", -"The name %s is already used in the folder %s. Please choose a different name." => "A %s név már létezik a %s mappában. Kérem válasszon másik nevet!", -"Not a valid source" => "A kiinduló állomány érvénytelen", -"Server is not allowed to open URLs, please check the server configuration" => "A kiszolgálón nincs engedélyezve URL-ek megnyitása, kérem ellenőrizze a beállításokat!", -"The file exceeds your quota by %s" => "A fájl ennyivel meghaladja a kvótáját: %s", -"Error while downloading %s to %s" => "Hiba történt miközben %s-t letöltöttük %s-be", -"Error when creating the file" => "Hiba történt az állomány létrehozásakor", -"Folder name cannot be empty." => "A mappa neve nem maradhat kitöltetlenül", -"Error when creating the folder" => "Hiba történt a mappa létrehozásakor", -"Unable to set upload directory." => "Nem található a mappa, ahova feltölteni szeretne.", -"Invalid Token" => "Hibás token", -"No file was uploaded. Unknown error" => "Nem történt feltöltés. Ismeretlen hiba", -"There is no error, the file uploaded with success" => "A fájlt sikerült feltölteni", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra.", -"The uploaded file was only partially uploaded" => "Az eredeti fájlt csak részben sikerült feltölteni.", -"No file was uploaded" => "Nem töltődött fel állomány", -"Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", -"Failed to write to disk" => "Nem sikerült a lemezre történő írás", -"Not enough storage available" => "Nincs elég szabad hely.", -"Upload failed. Could not find uploaded file" => "A feltöltés nem sikerült. Nem található a feltöltendő állomány.", -"Upload failed. Could not get file info." => "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el.", -"Invalid directory." => "Érvénytelen mappa.", -"Files" => "Fájlkezelő", -"All files" => "Az összes állomány", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll.", -"Total file size {size1} exceeds upload limit {size2}" => "A teljes fájlméret: {size1} meghaladja a feltöltési limitet: {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", -"Upload cancelled." => "A feltöltést megszakítottuk.", -"Could not get result from server." => "A kiszolgálótól nem kapható meg a művelet eredménye.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.", -"URL cannot be empty" => "Az URL-cím nem maradhat kitöltetlenül", -"{new_name} already exists" => "{new_name} már létezik", -"Could not create file" => "Az állomány nem hozható létre", -"Could not create folder" => "A mappa nem hozható létre", -"Error fetching URL" => "A megadott URL-ről nem sikerül adatokat kapni", -"Share" => "Megosztás", -"Delete" => "Törlés", -"Disconnect storage" => "Tároló leválasztása", -"Unshare" => "A megosztás visszavonása", -"Delete permanently" => "Végleges törlés", -"Rename" => "Átnevezés", -"Pending" => "Folyamatban", -"Error moving file." => "Hiba történt a fájl áthelyezése közben.", -"Error moving file" => "Az állomány áthelyezése nem sikerült.", -"Error" => "Hiba", -"Could not rename file" => "Az állomány nem nevezhető át", -"Error deleting file." => "Hiba a file törlése közben.", -"Name" => "Név", -"Size" => "Méret", -"Modified" => "Módosítva", -"_%n folder_::_%n folders_" => array("%n mappa","%n mappa"), -"_%n file_::_%n files_" => array("%n állomány","%n állomány"), -"You don’t have permission to upload or create files here" => "Önnek nincs jogosultsága ahhoz, hogy ide állományokat töltsön föl, vagy itt újakat hozzon létre", -"_Uploading %n file_::_Uploading %n files_" => array("%n állomány feltöltése","%n állomány feltöltése"), -"\"{name}\" is an invalid file name." => "\"{name}\" érvénytelen, mint fájlnév.", -"Your storage is full, files can not be updated or synced anymore!" => "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhatóak a jövőben.", -"Your storage is almost full ({usedSpacePercent}%)" => "A tároló majdnem tele van ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.", -"{dirs} and {files}" => "{dirs} és {files}", -"%s could not be renamed as it has been deleted" => "%s nem lehet átnevezni, mivel törölve lett", -"%s could not be renamed" => "%s átnevezése nem sikerült", -"Upload (max. %s)" => "Feltöltés (max. %s)", -"File handling" => "Fájlkezelés", -"Maximum upload size" => "Maximális feltölthető fájlméret", -"max. possible: " => "max. lehetséges: ", -"Save" => "Mentés", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Ezt a címet használja, ha WebDAV-on keresztül szeretné elérni a fájljait", -"New" => "Új", -"New text file" => "Új szövegfájl", -"Text file" => "Szövegfájl", -"New folder" => "Új mappa", -"Folder" => "Mappa", -"From link" => "Feltöltés linkről", -"Nothing in here. Upload something!" => "Itt nincs semmi. Töltsön fel valamit!", -"Download" => "Letöltés", -"Upload too large" => "A feltöltés túl nagy", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.", -"Files are being scanned, please wait." => "A fájllista ellenőrzése zajlik, kis türelmet!", -"Currently scanning" => "Mappaellenőrzés: " -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/hy.js b/apps/files/l10n/hy.js new file mode 100644 index 0000000000000000000000000000000000000000..5772fd20c7218ab54c3358137f29caaea2c965dd --- /dev/null +++ b/apps/files/l10n/hy.js @@ -0,0 +1,11 @@ +OC.L10N.register( + "files", + { + "Delete" : "Ջնջել", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Պահպանել", + "Download" : "Բեռնել" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/hy.json b/apps/files/l10n/hy.json new file mode 100644 index 0000000000000000000000000000000000000000..3cbee75121a19520903fa2920e9fa2271575f87e --- /dev/null +++ b/apps/files/l10n/hy.json @@ -0,0 +1,9 @@ +{ "translations": { + "Delete" : "Ջնջել", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "Պահպանել", + "Download" : "Բեռնել" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/hy.php b/apps/files/l10n/hy.php deleted file mode 100644 index c32411a57d1333856313d39dd52bd2036420ffeb..0000000000000000000000000000000000000000 --- a/apps/files/l10n/hy.php +++ /dev/null @@ -1,10 +0,0 @@ - "Ջնջել", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "Պահպանել", -"Download" => "Բեռնել" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js new file mode 100644 index 0000000000000000000000000000000000000000..8c93abf1bef181e4a91579cd6adf88c443aac624 --- /dev/null +++ b/apps/files/l10n/ia.js @@ -0,0 +1,31 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Error Incognite", + "File name cannot be empty." : "Le nomine de file non pote esser vacue.", + "The uploaded file was only partially uploaded" : "Le file incargate solmente esseva incargate partialmente", + "No file was uploaded" : "Nulle file esseva incargate.", + "Missing a temporary folder" : "Manca un dossier temporari", + "Files" : "Files", + "Share" : "Compartir", + "Delete" : "Deler", + "Unshare" : "Leva compartir", + "Error" : "Error", + "Name" : "Nomine", + "Size" : "Dimension", + "Modified" : "Modificate", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Upload (max. %s)" : "Incargar (max. %s)", + "Maximum upload size" : "Dimension maxime de incargamento", + "Save" : "Salveguardar", + "New" : "Nove", + "Text file" : "File de texto", + "New folder" : "Nove dossier", + "Folder" : "Dossier", + "Nothing in here. Upload something!" : "Nihil hic. Incarga alcun cosa!", + "Download" : "Discargar", + "Upload too large" : "Incargamento troppo longe" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json new file mode 100644 index 0000000000000000000000000000000000000000..962419f288b971e58139524072978cd0f37cd94f --- /dev/null +++ b/apps/files/l10n/ia.json @@ -0,0 +1,29 @@ +{ "translations": { + "Unknown error" : "Error Incognite", + "File name cannot be empty." : "Le nomine de file non pote esser vacue.", + "The uploaded file was only partially uploaded" : "Le file incargate solmente esseva incargate partialmente", + "No file was uploaded" : "Nulle file esseva incargate.", + "Missing a temporary folder" : "Manca un dossier temporari", + "Files" : "Files", + "Share" : "Compartir", + "Delete" : "Deler", + "Unshare" : "Leva compartir", + "Error" : "Error", + "Name" : "Nomine", + "Size" : "Dimension", + "Modified" : "Modificate", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Upload (max. %s)" : "Incargar (max. %s)", + "Maximum upload size" : "Dimension maxime de incargamento", + "Save" : "Salveguardar", + "New" : "Nove", + "Text file" : "File de texto", + "New folder" : "Nove dossier", + "Folder" : "Dossier", + "Nothing in here. Upload something!" : "Nihil hic. Incarga alcun cosa!", + "Download" : "Discargar", + "Upload too large" : "Incargamento troppo longe" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ia.php b/apps/files/l10n/ia.php deleted file mode 100644 index 62b07896fdd951fc02925c708a26f4335cc10349..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ia.php +++ /dev/null @@ -1,30 +0,0 @@ - "Error Incognite", -"File name cannot be empty." => "Le nomine de file non pote esser vacue.", -"The uploaded file was only partially uploaded" => "Le file incargate solmente esseva incargate partialmente", -"No file was uploaded" => "Nulle file esseva incargate.", -"Missing a temporary folder" => "Manca un dossier temporari", -"Files" => "Files", -"Share" => "Compartir", -"Delete" => "Deler", -"Unshare" => "Leva compartir", -"Error" => "Error", -"Name" => "Nomine", -"Size" => "Dimension", -"Modified" => "Modificate", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Upload (max. %s)" => "Incargar (max. %s)", -"Maximum upload size" => "Dimension maxime de incargamento", -"Save" => "Salveguardar", -"New" => "Nove", -"Text file" => "File de texto", -"New folder" => "Nove dossier", -"Folder" => "Dossier", -"Nothing in here. Upload something!" => "Nihil hic. Incarga alcun cosa!", -"Download" => "Discargar", -"Upload too large" => "Incargamento troppo longe" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js new file mode 100644 index 0000000000000000000000000000000000000000..8ae4c822ea849bbb939b3a19faa22f093e6205ff --- /dev/null +++ b/apps/files/l10n/id.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Penyimpanan tidak tersedia", + "Storage invalid" : "Penyimpanan tidak sah", + "Unknown error" : "Kesalahan tidak diketahui", + "Could not move %s - File with this name already exists" : "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada", + "Could not move %s" : "Tidak dapat memindahkan %s", + "Permission denied" : "Perizinan ditolak", + "File name cannot be empty." : "Nama berkas tidak boleh kosong.", + "\"%s\" is an invalid file name." : "\"%s\" adalah sebuah nama berkas yang tidak sah.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nama tidak valid, karakter '\\', '/', '<', '>', ':', '\"', '|', '?' dan '*' tidak diizinkan.", + "The target folder has been moved or deleted." : "Folder tujuan telah dipindahkan atau dihapus.", + "The name %s is already used in the folder %s. Please choose a different name." : "Nama %s sudah digunakan dalam folder %s. Silakan pilih nama yang berbeda.", + "Not a valid source" : "Sumber tidak sah", + "Server is not allowed to open URLs, please check the server configuration" : "Server tidak megizinkan untuk membuka URL, mohon periksa konfigurasi server", + "The file exceeds your quota by %s" : "Berkas melampaui kuota Anda oleh %s", + "Error while downloading %s to %s" : "Kesalahan saat mengunduh %s ke %s", + "Error when creating the file" : "Kesalahan saat membuat berkas", + "Folder name cannot be empty." : "Nama folder tidak bolh kosong.", + "Error when creating the folder" : "Kesalahan saat membuat folder", + "Unable to set upload directory." : "Tidak dapat mengatur folder unggah", + "Invalid Token" : "Token tidak sah", + "No file was uploaded. Unknown error" : "Tidak ada berkas yang diunggah. Kesalahan tidak dikenal.", + "There is no error, the file uploaded with success" : "Tidak ada kesalahan, berkas sukses diunggah", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML.", + "The uploaded file was only partially uploaded" : "Berkas hanya diunggah sebagian", + "No file was uploaded" : "Tidak ada berkas yang diunggah", + "Missing a temporary folder" : "Folder sementara tidak ada", + "Failed to write to disk" : "Gagal menulis ke disk", + "Not enough storage available" : "Ruang penyimpanan tidak mencukupi", + "Upload failed. Could not find uploaded file" : "Unggah gagal. Tidak menemukan berkas yang akan diunggah", + "Upload failed. Could not get file info." : "Unggah gagal. Tidak mendapatkan informasi berkas.", + "Invalid directory." : "Direktori tidak valid.", + "Files" : "Berkas", + "All files" : "Semua berkas", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 byte", + "Total file size {size1} exceeds upload limit {size2}" : "Jumlah ukuran berkas {size1} melampaui batas unggah {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ruang bebas tidak mencukupi, Anda mengunggah {size1} tetapi hanya {size2} yang tersisa", + "Upload cancelled." : "Pengunggahan dibatalkan.", + "Could not get result from server." : "Tidak mendapatkan hasil dari server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses.", + "URL cannot be empty" : "URL tidak boleh kosong", + "{new_name} already exists" : "{new_name} sudah ada", + "Could not create file" : "Tidak dapat membuat berkas", + "Could not create folder" : "Tidak dapat membuat folder", + "Error fetching URL" : "Kesalahan saat mengambil URL", + "Share" : "Bagikan", + "Delete" : "Hapus", + "Disconnect storage" : "Memutuskan penyimpaan", + "Unshare" : "Batalkan berbagi", + "Delete permanently" : "Hapus secara permanen", + "Rename" : "Ubah nama", + "Pending" : "Menunggu", + "Error moving file." : "Kesalahan saat memindahkan berkas.", + "Error moving file" : "Kesalahan saat memindahkan berkas", + "Error" : "Kesalahan ", + "Could not rename file" : "Tidak dapat mengubah nama berkas", + "Error deleting file." : "Kesalahan saat menghapus berkas.", + "Name" : "Nama", + "Size" : "Ukuran", + "Modified" : "Dimodifikasi", + "_%n folder_::_%n folders_" : ["%n folder"], + "_%n file_::_%n files_" : ["%n berkas"], + "You don’t have permission to upload or create files here" : "Anda tidak memiliki akses untuk mengunggah atau membuat berkas disini", + "_Uploading %n file_::_Uploading %n files_" : ["Mengunggah %n berkas"], + "\"{name}\" is an invalid file name." : "\"{name}\" adalah nama berkas yang tidak sah.", + "Your storage is full, files can not be updated or synced anymore!" : "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ruang penyimpanan hampir penuh ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.", + "{dirs} and {files}" : "{dirs} dan {files}", + "%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus", + "%s could not be renamed" : "%s tidak dapat diubah nama", + "Upload (max. %s)" : "Unggah (maks. %s)", + "File handling" : "Penanganan berkas", + "Maximum upload size" : "Ukuran pengunggahan maksimum", + "max. possible: " : "Kemungkinan maks.:", + "Save" : "Simpan", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Gunakan alamat ini untuk mengakses Berkas via WebDAV", + "New" : "Baru", + "New text file" : "Berkas teks baru", + "Text file" : "Berkas teks", + "New folder" : "Map baru", + "Folder" : "Folder", + "From link" : "Dari tautan", + "Nothing in here. Upload something!" : "Tidak ada apa-apa di sini. Unggah sesuatu!", + "Download" : "Unduh", + "Upload too large" : "Yang diunggah terlalu besar", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.", + "Files are being scanned, please wait." : "Berkas sedang dipindai, silakan tunggu.", + "Currently scanning" : "Pemindaian terbaru" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json new file mode 100644 index 0000000000000000000000000000000000000000..d644aa22ec4cc1dd70195c1a1352c688b524e585 --- /dev/null +++ b/apps/files/l10n/id.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Penyimpanan tidak tersedia", + "Storage invalid" : "Penyimpanan tidak sah", + "Unknown error" : "Kesalahan tidak diketahui", + "Could not move %s - File with this name already exists" : "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada", + "Could not move %s" : "Tidak dapat memindahkan %s", + "Permission denied" : "Perizinan ditolak", + "File name cannot be empty." : "Nama berkas tidak boleh kosong.", + "\"%s\" is an invalid file name." : "\"%s\" adalah sebuah nama berkas yang tidak sah.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nama tidak valid, karakter '\\', '/', '<', '>', ':', '\"', '|', '?' dan '*' tidak diizinkan.", + "The target folder has been moved or deleted." : "Folder tujuan telah dipindahkan atau dihapus.", + "The name %s is already used in the folder %s. Please choose a different name." : "Nama %s sudah digunakan dalam folder %s. Silakan pilih nama yang berbeda.", + "Not a valid source" : "Sumber tidak sah", + "Server is not allowed to open URLs, please check the server configuration" : "Server tidak megizinkan untuk membuka URL, mohon periksa konfigurasi server", + "The file exceeds your quota by %s" : "Berkas melampaui kuota Anda oleh %s", + "Error while downloading %s to %s" : "Kesalahan saat mengunduh %s ke %s", + "Error when creating the file" : "Kesalahan saat membuat berkas", + "Folder name cannot be empty." : "Nama folder tidak bolh kosong.", + "Error when creating the folder" : "Kesalahan saat membuat folder", + "Unable to set upload directory." : "Tidak dapat mengatur folder unggah", + "Invalid Token" : "Token tidak sah", + "No file was uploaded. Unknown error" : "Tidak ada berkas yang diunggah. Kesalahan tidak dikenal.", + "There is no error, the file uploaded with success" : "Tidak ada kesalahan, berkas sukses diunggah", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML.", + "The uploaded file was only partially uploaded" : "Berkas hanya diunggah sebagian", + "No file was uploaded" : "Tidak ada berkas yang diunggah", + "Missing a temporary folder" : "Folder sementara tidak ada", + "Failed to write to disk" : "Gagal menulis ke disk", + "Not enough storage available" : "Ruang penyimpanan tidak mencukupi", + "Upload failed. Could not find uploaded file" : "Unggah gagal. Tidak menemukan berkas yang akan diunggah", + "Upload failed. Could not get file info." : "Unggah gagal. Tidak mendapatkan informasi berkas.", + "Invalid directory." : "Direktori tidak valid.", + "Files" : "Berkas", + "All files" : "Semua berkas", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 byte", + "Total file size {size1} exceeds upload limit {size2}" : "Jumlah ukuran berkas {size1} melampaui batas unggah {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ruang bebas tidak mencukupi, Anda mengunggah {size1} tetapi hanya {size2} yang tersisa", + "Upload cancelled." : "Pengunggahan dibatalkan.", + "Could not get result from server." : "Tidak mendapatkan hasil dari server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses.", + "URL cannot be empty" : "URL tidak boleh kosong", + "{new_name} already exists" : "{new_name} sudah ada", + "Could not create file" : "Tidak dapat membuat berkas", + "Could not create folder" : "Tidak dapat membuat folder", + "Error fetching URL" : "Kesalahan saat mengambil URL", + "Share" : "Bagikan", + "Delete" : "Hapus", + "Disconnect storage" : "Memutuskan penyimpaan", + "Unshare" : "Batalkan berbagi", + "Delete permanently" : "Hapus secara permanen", + "Rename" : "Ubah nama", + "Pending" : "Menunggu", + "Error moving file." : "Kesalahan saat memindahkan berkas.", + "Error moving file" : "Kesalahan saat memindahkan berkas", + "Error" : "Kesalahan ", + "Could not rename file" : "Tidak dapat mengubah nama berkas", + "Error deleting file." : "Kesalahan saat menghapus berkas.", + "Name" : "Nama", + "Size" : "Ukuran", + "Modified" : "Dimodifikasi", + "_%n folder_::_%n folders_" : ["%n folder"], + "_%n file_::_%n files_" : ["%n berkas"], + "You don’t have permission to upload or create files here" : "Anda tidak memiliki akses untuk mengunggah atau membuat berkas disini", + "_Uploading %n file_::_Uploading %n files_" : ["Mengunggah %n berkas"], + "\"{name}\" is an invalid file name." : "\"{name}\" adalah nama berkas yang tidak sah.", + "Your storage is full, files can not be updated or synced anymore!" : "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ruang penyimpanan hampir penuh ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.", + "{dirs} and {files}" : "{dirs} dan {files}", + "%s could not be renamed as it has been deleted" : "%s tidak dapat diubah namanya kerena telah dihapus", + "%s could not be renamed" : "%s tidak dapat diubah nama", + "Upload (max. %s)" : "Unggah (maks. %s)", + "File handling" : "Penanganan berkas", + "Maximum upload size" : "Ukuran pengunggahan maksimum", + "max. possible: " : "Kemungkinan maks.:", + "Save" : "Simpan", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Gunakan alamat ini untuk mengakses Berkas via WebDAV", + "New" : "Baru", + "New text file" : "Berkas teks baru", + "Text file" : "Berkas teks", + "New folder" : "Map baru", + "Folder" : "Folder", + "From link" : "Dari tautan", + "Nothing in here. Upload something!" : "Tidak ada apa-apa di sini. Unggah sesuatu!", + "Download" : "Unduh", + "Upload too large" : "Yang diunggah terlalu besar", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.", + "Files are being scanned, please wait." : "Berkas sedang dipindai, silakan tunggu.", + "Currently scanning" : "Pemindaian terbaru" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php deleted file mode 100644 index b8b362d5b48a598d83d5d2b7d3f75c0ec5d2fa6e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/id.php +++ /dev/null @@ -1,79 +0,0 @@ - "Galat tidak diketahui", -"Could not move %s - File with this name already exists" => "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada", -"Could not move %s" => "Tidak dapat memindahkan %s", -"File name cannot be empty." => "Nama berkas tidak boleh kosong.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nama tidak valid, karakter '\\', '/', '<', '>', ':', '\"', '|', '?' dan '*' tidak diizinkan.", -"The name %s is already used in the folder %s. Please choose a different name." => "Nama %s sudah digunakan dalam folder %s. Silakan pilih nama yang berbeda.", -"Not a valid source" => "Sumber tidak sah", -"Error while downloading %s to %s" => "Galat saat mengunduh %s ke %s", -"Error when creating the file" => "Galat saat membuat berkas", -"Folder name cannot be empty." => "Nama folder tidak bolh kosong.", -"Error when creating the folder" => "Galat saat membuat folder", -"Unable to set upload directory." => "Tidak dapat mengatur folder unggah", -"Invalid Token" => "Token tidak sah", -"No file was uploaded. Unknown error" => "Tidak ada berkas yang diunggah. Galat tidak dikenal.", -"There is no error, the file uploaded with success" => "Tidak ada galat, berkas sukses diunggah", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML.", -"The uploaded file was only partially uploaded" => "Berkas hanya diunggah sebagian", -"No file was uploaded" => "Tidak ada berkas yang diunggah", -"Missing a temporary folder" => "Folder sementara tidak ada", -"Failed to write to disk" => "Gagal menulis ke disk", -"Not enough storage available" => "Ruang penyimpanan tidak mencukupi", -"Upload failed. Could not find uploaded file" => "Unggah gagal. Tidak menemukan berkas yang akan diunggah", -"Upload failed. Could not get file info." => "Unggah gagal. Tidak mendapatkan informasi berkas.", -"Invalid directory." => "Direktori tidak valid.", -"Files" => "Berkas", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Tidak dapat mengunggah {filename} karena ini sebuah direktori atau memiliki ukuran 0 byte", -"Upload cancelled." => "Pengunggahan dibatalkan.", -"Could not get result from server." => "Tidak mendapatkan hasil dari server.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses.", -"URL cannot be empty" => "URL tidak boleh kosong", -"{new_name} already exists" => "{new_name} sudah ada", -"Could not create file" => "Tidak dapat membuat berkas", -"Could not create folder" => "Tidak dapat membuat folder", -"Share" => "Bagikan", -"Delete" => "Hapus", -"Unshare" => "Batalkan berbagi", -"Delete permanently" => "Hapus secara permanen", -"Rename" => "Ubah nama", -"Pending" => "Menunggu", -"Error moving file" => "Galat saat memindahkan berkas", -"Error" => "Galat", -"Could not rename file" => "Tidak dapat mengubah nama berkas", -"Error deleting file." => "Galat saat menghapus berkas.", -"Name" => "Nama", -"Size" => "Ukuran", -"Modified" => "Dimodifikasi", -"_%n folder_::_%n folders_" => array("%n folder"), -"_%n file_::_%n files_" => array("%n berkas"), -"You don’t have permission to upload or create files here" => "Anda tidak memiliki akses untuk mengunggah atau membuat berkas disini", -"_Uploading %n file_::_Uploading %n files_" => array("Mengunggah %n berkas"), -"Your storage is full, files can not be updated or synced anymore!" => "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!", -"Your storage is almost full ({usedSpacePercent}%)" => "Ruang penyimpanan hampir penuh ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Enskripi telah dinonaktifkan tetapi berkas anda tetap dienskripsi. Silakan menuju ke pengaturan pribadi untuk deskrip berkas anda.", -"{dirs} and {files}" => "{dirs} dan {files}", -"%s could not be renamed" => "%s tidak dapat diubah nama", -"File handling" => "Penanganan berkas", -"Maximum upload size" => "Ukuran pengunggahan maksimum", -"max. possible: " => "Kemungkinan maks.:", -"Save" => "Simpan", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Gunakan alamat ini untuk mengakses Berkas via WebDAV", -"New" => "Baru", -"New text file" => "Berkas teks baru", -"Text file" => "Berkas teks", -"New folder" => "Map baru", -"Folder" => "Folder", -"From link" => "Dari tautan", -"Nothing in here. Upload something!" => "Tidak ada apa-apa di sini. Unggah sesuatu!", -"Download" => "Unduh", -"Upload too large" => "Yang diunggah terlalu besar", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.", -"Files are being scanned, please wait." => "Berkas sedang dipindai, silakan tunggu." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/io.js b/apps/files/l10n/io.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/io.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/io.json b/apps/files/l10n/io.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/io.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/io.php b/apps/files/l10n/io.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/io.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js new file mode 100644 index 0000000000000000000000000000000000000000..5f3e2e78f26de4c4cc624f12442a843a45898c70 --- /dev/null +++ b/apps/files/l10n/is.js @@ -0,0 +1,48 @@ +OC.L10N.register( + "files", + { + "Could not move %s - File with this name already exists" : "Gat ekki fært %s - Skrá með þessu nafni er þegar til", + "Could not move %s" : "Gat ekki fært %s", + "File name cannot be empty." : "Nafn skráar má ekki vera tómt", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ógilt nafn, táknin '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' eru ekki leyfð.", + "No file was uploaded. Unknown error" : "Engin skrá var send inn. Óþekkt villa.", + "There is no error, the file uploaded with success" : "Engin villa, innsending heppnaðist", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Innsend skrá er stærri en upload_max stillingin í php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu.", + "The uploaded file was only partially uploaded" : "Einungis hluti af innsendri skrá skilaði sér", + "No file was uploaded" : "Engin skrá skilaði sér", + "Missing a temporary folder" : "Vantar bráðabirgðamöppu", + "Failed to write to disk" : "Tókst ekki að skrifa á disk", + "Invalid directory." : "Ógild mappa.", + "Files" : "Skrár", + "Upload cancelled." : "Hætt við innsendingu.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.", + "{new_name} already exists" : "{new_name} er þegar til", + "Share" : "Deila", + "Delete" : "Eyða", + "Unshare" : "Hætta deilingu", + "Rename" : "Endurskýra", + "Pending" : "Bíður", + "Error" : "Villa", + "Name" : "Nafn", + "Size" : "Stærð", + "Modified" : "Breytt", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "Meðhöndlun skrár", + "Maximum upload size" : "Hámarks stærð innsendingar", + "max. possible: " : "hámark mögulegt: ", + "Save" : "Vista", + "WebDAV" : "WebDAV", + "New" : "Nýtt", + "Text file" : "Texta skrá", + "Folder" : "Mappa", + "From link" : "Af tengli", + "Nothing in here. Upload something!" : "Ekkert hér. Settu eitthvað inn!", + "Download" : "Niðurhal", + "Upload too large" : "Innsend skrá er of stór", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.", + "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json new file mode 100644 index 0000000000000000000000000000000000000000..0a6afcb0b6474cca70bf2fc33bd044f3baa74d0e --- /dev/null +++ b/apps/files/l10n/is.json @@ -0,0 +1,46 @@ +{ "translations": { + "Could not move %s - File with this name already exists" : "Gat ekki fært %s - Skrá með þessu nafni er þegar til", + "Could not move %s" : "Gat ekki fært %s", + "File name cannot be empty." : "Nafn skráar má ekki vera tómt", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ógilt nafn, táknin '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' eru ekki leyfð.", + "No file was uploaded. Unknown error" : "Engin skrá var send inn. Óþekkt villa.", + "There is no error, the file uploaded with success" : "Engin villa, innsending heppnaðist", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Innsend skrá er stærri en upload_max stillingin í php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu.", + "The uploaded file was only partially uploaded" : "Einungis hluti af innsendri skrá skilaði sér", + "No file was uploaded" : "Engin skrá skilaði sér", + "Missing a temporary folder" : "Vantar bráðabirgðamöppu", + "Failed to write to disk" : "Tókst ekki að skrifa á disk", + "Invalid directory." : "Ógild mappa.", + "Files" : "Skrár", + "Upload cancelled." : "Hætt við innsendingu.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.", + "{new_name} already exists" : "{new_name} er þegar til", + "Share" : "Deila", + "Delete" : "Eyða", + "Unshare" : "Hætta deilingu", + "Rename" : "Endurskýra", + "Pending" : "Bíður", + "Error" : "Villa", + "Name" : "Nafn", + "Size" : "Stærð", + "Modified" : "Breytt", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "Meðhöndlun skrár", + "Maximum upload size" : "Hámarks stærð innsendingar", + "max. possible: " : "hámark mögulegt: ", + "Save" : "Vista", + "WebDAV" : "WebDAV", + "New" : "Nýtt", + "Text file" : "Texta skrá", + "Folder" : "Mappa", + "From link" : "Af tengli", + "Nothing in here. Upload something!" : "Ekkert hér. Settu eitthvað inn!", + "Download" : "Niðurhal", + "Upload too large" : "Innsend skrá er of stór", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.", + "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php deleted file mode 100644 index f645d9cf002f0633a720ec9d42fa3b862038a5f4..0000000000000000000000000000000000000000 --- a/apps/files/l10n/is.php +++ /dev/null @@ -1,47 +0,0 @@ - "Gat ekki fært %s - Skrá með þessu nafni er þegar til", -"Could not move %s" => "Gat ekki fært %s", -"File name cannot be empty." => "Nafn skráar má ekki vera tómt", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ógilt nafn, táknin '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' eru ekki leyfð.", -"No file was uploaded. Unknown error" => "Engin skrá var send inn. Óþekkt villa.", -"There is no error, the file uploaded with success" => "Engin villa, innsending heppnaðist", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Innsend skrá er stærri en upload_max stillingin í php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu.", -"The uploaded file was only partially uploaded" => "Einungis hluti af innsendri skrá skilaði sér", -"No file was uploaded" => "Engin skrá skilaði sér", -"Missing a temporary folder" => "Vantar bráðabirgðamöppu", -"Failed to write to disk" => "Tókst ekki að skrifa á disk", -"Invalid directory." => "Ógild mappa.", -"Files" => "Skrár", -"Upload cancelled." => "Hætt við innsendingu.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.", -"{new_name} already exists" => "{new_name} er þegar til", -"Share" => "Deila", -"Delete" => "Eyða", -"Unshare" => "Hætta deilingu", -"Rename" => "Endurskýra", -"Pending" => "Bíður", -"Error" => "Villa", -"Name" => "Nafn", -"Size" => "Stærð", -"Modified" => "Breytt", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"File handling" => "Meðhöndlun skrár", -"Maximum upload size" => "Hámarks stærð innsendingar", -"max. possible: " => "hámark mögulegt: ", -"Save" => "Vista", -"WebDAV" => "WebDAV", -"New" => "Nýtt", -"Text file" => "Texta skrá", -"Folder" => "Mappa", -"From link" => "Af tengli", -"Nothing in here. Upload something!" => "Ekkert hér. Settu eitthvað inn!", -"Download" => "Niðurhal", -"Upload too large" => "Innsend skrá er of stór", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.", -"Files are being scanned, please wait." => "Verið er að skima skrár, vinsamlegast hinkraðu." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js new file mode 100644 index 0000000000000000000000000000000000000000..693888bb7c877660a831f0c6420d9ab32f52cf03 --- /dev/null +++ b/apps/files/l10n/it.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Archiviazione non disponibile", + "Storage invalid" : "Archiviazione non valida", + "Unknown error" : "Errore sconosciuto", + "Could not move %s - File with this name already exists" : "Impossibile spostare %s - un file con questo nome esiste già", + "Could not move %s" : "Impossibile spostare %s", + "Permission denied" : "Permesso negato", + "File name cannot be empty." : "Il nome del file non può essere vuoto.", + "\"%s\" is an invalid file name." : "\"%s\" non è un nome file valido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti.", + "The target folder has been moved or deleted." : "La cartella di destinazione è stata spostata o eliminata.", + "The name %s is already used in the folder %s. Please choose a different name." : "Il nome %s è attualmente in uso nella cartella %s. Scegli un nome diverso.", + "Not a valid source" : "Non è una sorgente valida", + "Server is not allowed to open URLs, please check the server configuration" : "Al server non è permesso aprire URL, controlla la configurazione del server", + "The file exceeds your quota by %s" : "Il file supera la tua quota di %s", + "Error while downloading %s to %s" : "Errore durante lo scaricamento di %s su %s", + "Error when creating the file" : "Errore durante la creazione del file", + "Folder name cannot be empty." : "Il nome della cartella non può essere vuoto.", + "Error when creating the folder" : "Errore durante la creazione della cartella", + "Unable to set upload directory." : "Impossibile impostare una cartella di caricamento.", + "Invalid Token" : "Token non valido", + "No file was uploaded. Unknown error" : "Nessun file è stato caricato. Errore sconosciuto", + "There is no error, the file uploaded with success" : "Non ci sono errori, il file è stato caricato correttamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Il file caricato supera la direttiva upload_max_filesize in php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Il file caricato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", + "The uploaded file was only partially uploaded" : "Il file è stato caricato solo parzialmente", + "No file was uploaded" : "Nessun file è stato caricato", + "Missing a temporary folder" : "Manca una cartella temporanea", + "Failed to write to disk" : "Scrittura su disco non riuscita", + "Not enough storage available" : "Spazio di archiviazione insufficiente", + "Upload failed. Could not find uploaded file" : "Caricamento non riuscito. Impossibile trovare il file caricato.", + "Upload failed. Could not get file info." : "Caricamento non riuscito. Impossibile ottenere informazioni sul file.", + "Invalid directory." : "Cartella non valida.", + "Files" : "File", + "All files" : "Tutti i file", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossibile caricare {filename} poiché è una cartella oppure ha una dimensione di 0 byte.", + "Total file size {size1} exceeds upload limit {size2}" : "La dimensione totale del file {size1} supera il limite di caricamento {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Spazio insufficiente, stai caricando {size1}, ma è rimasto solo {size2}", + "Upload cancelled." : "Caricamento annullato.", + "Could not get result from server." : "Impossibile ottenere il risultato dal server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.", + "URL cannot be empty" : "L'URL non può essere vuoto.", + "{new_name} already exists" : "{new_name} esiste già", + "Could not create file" : "Impossibile creare il file", + "Could not create folder" : "Impossibile creare la cartella", + "Error fetching URL" : "Errore durante il recupero dello URL", + "Share" : "Condividi", + "Delete" : "Elimina", + "Disconnect storage" : "Disconnetti archiviazione", + "Unshare" : "Rimuovi condivisione", + "Delete permanently" : "Elimina definitivamente", + "Rename" : "Rinomina", + "Pending" : "In corso", + "Error moving file." : "Errore durante lo spostamento del file.", + "Error moving file" : "Errore durante lo spostamento del file", + "Error" : "Errore", + "Could not rename file" : "Impossibile rinominare il file", + "Error deleting file." : "Errore durante l'eliminazione del file.", + "Name" : "Nome", + "Size" : "Dimensione", + "Modified" : "Modificato", + "_%n folder_::_%n folders_" : ["%n cartella","%n cartelle"], + "_%n file_::_%n files_" : ["%n file","%n file"], + "You don’t have permission to upload or create files here" : "Qui non hai i permessi di caricare o creare file", + "_Uploading %n file_::_Uploading %n files_" : ["Caricamento di %n file in corso","Caricamento di %n file in corso"], + "\"{name}\" is an invalid file name." : "\"{name}\" non è un nome file valido.", + "Your storage is full, files can not be updated or synced anymore!" : "Lo spazio di archiviazione è pieno, i file non possono essere più aggiornati o sincronizzati!", + "Your storage is almost full ({usedSpacePercent}%)" : "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "%s non può essere rinominato poiché è stato eliminato", + "%s could not be renamed" : "%s non può essere rinominato", + "Upload (max. %s)" : "Carica (massimo %s)", + "File handling" : "Gestione file", + "Maximum upload size" : "Dimensione massima caricamento", + "max. possible: " : "numero mass.: ", + "Save" : "Salva", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilizza questo indirizzo per accedere ai tuoi file con WebDAV", + "New" : "Nuovo", + "New text file" : "Nuovo file di testo", + "Text file" : "File di testo", + "New folder" : "Nuova cartella", + "Folder" : "Cartella", + "From link" : "Da collegamento", + "Nothing in here. Upload something!" : "Non c'è niente qui. Carica qualcosa!", + "Download" : "Scarica", + "Upload too large" : "Caricamento troppo grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", + "Files are being scanned, please wait." : "Scansione dei file in corso, attendi", + "Currently scanning" : "Scansione in corso" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json new file mode 100644 index 0000000000000000000000000000000000000000..4efbf6f64b423efff9fda21d30d2c88589bbea90 --- /dev/null +++ b/apps/files/l10n/it.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Archiviazione non disponibile", + "Storage invalid" : "Archiviazione non valida", + "Unknown error" : "Errore sconosciuto", + "Could not move %s - File with this name already exists" : "Impossibile spostare %s - un file con questo nome esiste già", + "Could not move %s" : "Impossibile spostare %s", + "Permission denied" : "Permesso negato", + "File name cannot be empty." : "Il nome del file non può essere vuoto.", + "\"%s\" is an invalid file name." : "\"%s\" non è un nome file valido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti.", + "The target folder has been moved or deleted." : "La cartella di destinazione è stata spostata o eliminata.", + "The name %s is already used in the folder %s. Please choose a different name." : "Il nome %s è attualmente in uso nella cartella %s. Scegli un nome diverso.", + "Not a valid source" : "Non è una sorgente valida", + "Server is not allowed to open URLs, please check the server configuration" : "Al server non è permesso aprire URL, controlla la configurazione del server", + "The file exceeds your quota by %s" : "Il file supera la tua quota di %s", + "Error while downloading %s to %s" : "Errore durante lo scaricamento di %s su %s", + "Error when creating the file" : "Errore durante la creazione del file", + "Folder name cannot be empty." : "Il nome della cartella non può essere vuoto.", + "Error when creating the folder" : "Errore durante la creazione della cartella", + "Unable to set upload directory." : "Impossibile impostare una cartella di caricamento.", + "Invalid Token" : "Token non valido", + "No file was uploaded. Unknown error" : "Nessun file è stato caricato. Errore sconosciuto", + "There is no error, the file uploaded with success" : "Non ci sono errori, il file è stato caricato correttamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Il file caricato supera la direttiva upload_max_filesize in php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Il file caricato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", + "The uploaded file was only partially uploaded" : "Il file è stato caricato solo parzialmente", + "No file was uploaded" : "Nessun file è stato caricato", + "Missing a temporary folder" : "Manca una cartella temporanea", + "Failed to write to disk" : "Scrittura su disco non riuscita", + "Not enough storage available" : "Spazio di archiviazione insufficiente", + "Upload failed. Could not find uploaded file" : "Caricamento non riuscito. Impossibile trovare il file caricato.", + "Upload failed. Could not get file info." : "Caricamento non riuscito. Impossibile ottenere informazioni sul file.", + "Invalid directory." : "Cartella non valida.", + "Files" : "File", + "All files" : "Tutti i file", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossibile caricare {filename} poiché è una cartella oppure ha una dimensione di 0 byte.", + "Total file size {size1} exceeds upload limit {size2}" : "La dimensione totale del file {size1} supera il limite di caricamento {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Spazio insufficiente, stai caricando {size1}, ma è rimasto solo {size2}", + "Upload cancelled." : "Caricamento annullato.", + "Could not get result from server." : "Impossibile ottenere il risultato dal server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.", + "URL cannot be empty" : "L'URL non può essere vuoto.", + "{new_name} already exists" : "{new_name} esiste già", + "Could not create file" : "Impossibile creare il file", + "Could not create folder" : "Impossibile creare la cartella", + "Error fetching URL" : "Errore durante il recupero dello URL", + "Share" : "Condividi", + "Delete" : "Elimina", + "Disconnect storage" : "Disconnetti archiviazione", + "Unshare" : "Rimuovi condivisione", + "Delete permanently" : "Elimina definitivamente", + "Rename" : "Rinomina", + "Pending" : "In corso", + "Error moving file." : "Errore durante lo spostamento del file.", + "Error moving file" : "Errore durante lo spostamento del file", + "Error" : "Errore", + "Could not rename file" : "Impossibile rinominare il file", + "Error deleting file." : "Errore durante l'eliminazione del file.", + "Name" : "Nome", + "Size" : "Dimensione", + "Modified" : "Modificato", + "_%n folder_::_%n folders_" : ["%n cartella","%n cartelle"], + "_%n file_::_%n files_" : ["%n file","%n file"], + "You don’t have permission to upload or create files here" : "Qui non hai i permessi di caricare o creare file", + "_Uploading %n file_::_Uploading %n files_" : ["Caricamento di %n file in corso","Caricamento di %n file in corso"], + "\"{name}\" is an invalid file name." : "\"{name}\" non è un nome file valido.", + "Your storage is full, files can not be updated or synced anymore!" : "Lo spazio di archiviazione è pieno, i file non possono essere più aggiornati o sincronizzati!", + "Your storage is almost full ({usedSpacePercent}%)" : "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "%s non può essere rinominato poiché è stato eliminato", + "%s could not be renamed" : "%s non può essere rinominato", + "Upload (max. %s)" : "Carica (massimo %s)", + "File handling" : "Gestione file", + "Maximum upload size" : "Dimensione massima caricamento", + "max. possible: " : "numero mass.: ", + "Save" : "Salva", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilizza questo indirizzo per accedere ai tuoi file con WebDAV", + "New" : "Nuovo", + "New text file" : "Nuovo file di testo", + "Text file" : "File di testo", + "New folder" : "Nuova cartella", + "Folder" : "Cartella", + "From link" : "Da collegamento", + "Nothing in here. Upload something!" : "Non c'è niente qui. Carica qualcosa!", + "Download" : "Scarica", + "Upload too large" : "Caricamento troppo grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", + "Files are being scanned, please wait." : "Scansione dei file in corso, attendi", + "Currently scanning" : "Scansione in corso" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php deleted file mode 100644 index 08cb41f1230d0cf86f434abfb868dfaf0b5944e4..0000000000000000000000000000000000000000 --- a/apps/files/l10n/it.php +++ /dev/null @@ -1,96 +0,0 @@ - "Archiviazione non disponibile", -"Storage invalid" => "Archiviazione non valida", -"Unknown error" => "Errore sconosciuto", -"Could not move %s - File with this name already exists" => "Impossibile spostare %s - un file con questo nome esiste già", -"Could not move %s" => "Impossibile spostare %s", -"Permission denied" => "Permesso negato", -"File name cannot be empty." => "Il nome del file non può essere vuoto.", -"\"%s\" is an invalid file name." => "\"%s\" non è un nome file valido.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti.", -"The target folder has been moved or deleted." => "La cartella di destinazione è stata spostata o eliminata.", -"The name %s is already used in the folder %s. Please choose a different name." => "Il nome %s è attualmente in uso nella cartella %s. Scegli un nome diverso.", -"Not a valid source" => "Non è una sorgente valida", -"Server is not allowed to open URLs, please check the server configuration" => "Al server non è permesso aprire URL, controlla la configurazione del server", -"The file exceeds your quota by %s" => "Il file supera la tua quota di %s", -"Error while downloading %s to %s" => "Errore durante lo scaricamento di %s su %s", -"Error when creating the file" => "Errore durante la creazione del file", -"Folder name cannot be empty." => "Il nome della cartella non può essere vuoto.", -"Error when creating the folder" => "Errore durante la creazione della cartella", -"Unable to set upload directory." => "Impossibile impostare una cartella di caricamento.", -"Invalid Token" => "Token non valido", -"No file was uploaded. Unknown error" => "Nessun file è stato inviato. Errore sconosciuto", -"There is no error, the file uploaded with success" => "Non ci sono errori, il file è stato caricato correttamente", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Il file caricato supera la direttiva upload_max_filesize in php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Il file inviato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", -"The uploaded file was only partially uploaded" => "Il file è stato caricato solo parzialmente", -"No file was uploaded" => "Nessun file è stato caricato", -"Missing a temporary folder" => "Manca una cartella temporanea", -"Failed to write to disk" => "Scrittura su disco non riuscita", -"Not enough storage available" => "Spazio di archiviazione insufficiente", -"Upload failed. Could not find uploaded file" => "Caricamento non riuscito. Impossibile trovare il file caricato.", -"Upload failed. Could not get file info." => "Caricamento non riuscito. Impossibile ottenere informazioni sul file.", -"Invalid directory." => "Cartella non valida.", -"Files" => "File", -"All files" => "Tutti i file", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Impossibile caricare {filename} poiché è una cartella oppure ha una dimensione di 0 byte.", -"Total file size {size1} exceeds upload limit {size2}" => "La dimensione totale del file {size1} supera il limite di caricamento {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Spazio insufficiente, stai caricando {size1}, ma è rimasto solo {size2}", -"Upload cancelled." => "Invio annullato", -"Could not get result from server." => "Impossibile ottenere il risultato dal server.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.", -"URL cannot be empty" => "L'URL non può essere vuoto.", -"{new_name} already exists" => "{new_name} esiste già", -"Could not create file" => "Impossibile creare il file", -"Could not create folder" => "Impossibile creare la cartella", -"Error fetching URL" => "Errore durante il recupero dello URL", -"Share" => "Condividi", -"Delete" => "Elimina", -"Disconnect storage" => "Disconnetti archiviazione", -"Unshare" => "Rimuovi condivisione", -"Delete permanently" => "Elimina definitivamente", -"Rename" => "Rinomina", -"Pending" => "In corso", -"Error moving file." => "Errore durante lo spostamento del file.", -"Error moving file" => "Errore durante lo spostamento del file", -"Error" => "Errore", -"Could not rename file" => "Impossibile rinominare il file", -"Error deleting file." => "Errore durante l'eliminazione del file.", -"Name" => "Nome", -"Size" => "Dimensione", -"Modified" => "Modificato", -"_%n folder_::_%n folders_" => array("%n cartella","%n cartelle"), -"_%n file_::_%n files_" => array("%n file","%n file"), -"You don’t have permission to upload or create files here" => "Qui non hai i permessi di caricare o creare file", -"_Uploading %n file_::_Uploading %n files_" => array("Caricamento di %n file in corso","Caricamento di %n file in corso"), -"\"{name}\" is an invalid file name." => "\"{name}\" non è un nome file valido.", -"Your storage is full, files can not be updated or synced anymore!" => "Lo spazio di archiviazione è pieno, i file non possono essere più aggiornati o sincronizzati!", -"Your storage is almost full ({usedSpacePercent}%)" => "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.", -"{dirs} and {files}" => "{dirs} e {files}", -"%s could not be renamed as it has been deleted" => "%s non può essere rinominato poiché è stato eliminato", -"%s could not be renamed" => "%s non può essere rinominato", -"Upload (max. %s)" => "Carica (massimo %s)", -"File handling" => "Gestione file", -"Maximum upload size" => "Dimensione massima upload", -"max. possible: " => "numero mass.: ", -"Save" => "Salva", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Utilizza questo indirizzo per accedere ai tuoi file con WebDAV", -"New" => "Nuovo", -"New text file" => "Nuovo file di testo", -"Text file" => "File di testo", -"New folder" => "Nuova cartella", -"Folder" => "Cartella", -"From link" => "Da collegamento", -"Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!", -"Download" => "Scarica", -"Upload too large" => "Caricamento troppo grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", -"Files are being scanned, please wait." => "Scansione dei file in corso, attendi", -"Currently scanning" => "Scansione in corso" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js new file mode 100644 index 0000000000000000000000000000000000000000..201da49664b012e9bf4f1805ad987ddb22b273e6 --- /dev/null +++ b/apps/files/l10n/ja.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "ストレージが利用できません", + "Storage invalid" : "ストレージが無効です", + "Unknown error" : "不明なエラー", + "Could not move %s - File with this name already exists" : "%s を移動できませんでした ― この名前のファイルはすでに存在します", + "Could not move %s" : "%s を移動できませんでした", + "Permission denied" : "アクセス拒否", + "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を開くことは許されません。サーバーの設定をチェックしてください。", + "The file exceeds your quota by %s" : "ファイル %s で容量制限をオーバーしました。", + "Error while downloading %s to %s" : "%s から %s へのダウンロードエラー", + "Error when creating the file" : "ファイルの生成エラー", + "Folder name cannot be empty." : "フォルダー名は空にできません", + "Error when creating the folder" : "フォルダーの生成エラー", + "Unable to set upload directory." : "アップロードディレクトリを設定できません。", + "Invalid Token" : "無効なトークン", + "No file was uploaded. Unknown error" : "ファイルは何もアップロードされていません。不明なエラー", + "There is no error, the file uploaded with success" : "エラーはありません。ファイルのアップロードは成功しました", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "アップロードファイルはHTMLフォームで指定された MAX_FILE_SIZE の制限を超えています", + "The uploaded file was only partially uploaded" : "アップロードファイルは一部分だけアップロードされました", + "No file was uploaded" : "ファイルはアップロードされませんでした", + "Missing a temporary folder" : "一時保存フォルダーが見つかりません", + "Failed to write to disk" : "ディスクへの書き込みに失敗しました", + "Not enough storage available" : "ストレージに十分な空き容量がありません", + "Upload failed. Could not find uploaded file" : "アップロードに失敗しました。アップロード済みのファイルを見つけることができませんでした。", + "Upload failed. Could not get file info." : "アップロードに失敗しました。ファイル情報を取得できませんでした。", + "Invalid directory." : "無効なディレクトリです。", + "Files" : "ファイル", + "All files" : "すべてのファイル", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {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." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。", + "URL cannot be empty" : "URL は空にできません", + "{new_name} already exists" : "{new_name} はすでに存在します", + "Could not create file" : "ファイルを作成できませんでした", + "Could not create folder" : "フォルダーを作成できませんでした", + "Error fetching URL" : "URL取得エラー", + "Share" : "共有", + "Delete" : "削除", + "Disconnect storage" : "ストレージを切断する", + "Unshare" : "共有解除", + "Delete permanently" : "完全に削除する", + "Rename" : "名前の変更", + "Pending" : "中断", + "Error moving file." : "ファイル移動でエラー", + "Error moving file" : "ファイルの移動エラー", + "Error" : "エラー", + "Could not rename file" : "ファイルの名前変更ができませんでした", + "Error deleting file." : "ファイルの削除エラー。", + "Name" : "名前", + "Size" : "サイズ", + "Modified" : "更新日時", + "_%n folder_::_%n folders_" : ["%n 個のフォルダー"], + "_%n file_::_%n files_" : ["%n 個のファイル"], + "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません", + "_Uploading %n file_::_Uploading %n files_" : ["%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" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。", + "{dirs} and {files}" : "{dirs} と {files}", + "%s could not be renamed as it has been deleted" : "%s は削除された為、ファイル名を変更できません", + "%s could not be renamed" : "%sの名前を変更できませんでした", + "Upload (max. %s)" : "アップロード ( 最大 %s )", + "File handling" : "ファイル操作", + "Maximum upload size" : "最大アップロードサイズ", + "max. possible: " : "最大容量: ", + "Save" : "保存", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "WebDAV経由でのファイルアクセスにはこのアドレスを利用してください", + "New" : "新規作成", + "New text file" : "新規のテキストファイル作成", + "Text file" : "テキストファイル", + "New folder" : "新しいフォルダー", + "Folder" : "フォルダー", + "From link" : "リンク", + "Nothing in here. Upload something!" : "ここには何もありません。何かアップロードしてください。", + "Download" : "ダウンロード", + "Upload too large" : "アップロードには大きすぎます。", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。", + "Files are being scanned, please wait." : "ファイルをスキャンしています、しばらくお待ちください。", + "Currently scanning" : "現在スキャン中" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..314bc72332205318e8b7ef8a4ef9ec872d13228d --- /dev/null +++ b/apps/files/l10n/ja.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "ストレージが利用できません", + "Storage invalid" : "ストレージが無効です", + "Unknown error" : "不明なエラー", + "Could not move %s - File with this name already exists" : "%s を移動できませんでした ― この名前のファイルはすでに存在します", + "Could not move %s" : "%s を移動できませんでした", + "Permission denied" : "アクセス拒否", + "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を開くことは許されません。サーバーの設定をチェックしてください。", + "The file exceeds your quota by %s" : "ファイル %s で容量制限をオーバーしました。", + "Error while downloading %s to %s" : "%s から %s へのダウンロードエラー", + "Error when creating the file" : "ファイルの生成エラー", + "Folder name cannot be empty." : "フォルダー名は空にできません", + "Error when creating the folder" : "フォルダーの生成エラー", + "Unable to set upload directory." : "アップロードディレクトリを設定できません。", + "Invalid Token" : "無効なトークン", + "No file was uploaded. Unknown error" : "ファイルは何もアップロードされていません。不明なエラー", + "There is no error, the file uploaded with success" : "エラーはありません。ファイルのアップロードは成功しました", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "アップロードファイルはHTMLフォームで指定された MAX_FILE_SIZE の制限を超えています", + "The uploaded file was only partially uploaded" : "アップロードファイルは一部分だけアップロードされました", + "No file was uploaded" : "ファイルはアップロードされませんでした", + "Missing a temporary folder" : "一時保存フォルダーが見つかりません", + "Failed to write to disk" : "ディスクへの書き込みに失敗しました", + "Not enough storage available" : "ストレージに十分な空き容量がありません", + "Upload failed. Could not find uploaded file" : "アップロードに失敗しました。アップロード済みのファイルを見つけることができませんでした。", + "Upload failed. Could not get file info." : "アップロードに失敗しました。ファイル情報を取得できませんでした。", + "Invalid directory." : "無効なディレクトリです。", + "Files" : "ファイル", + "All files" : "すべてのファイル", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {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." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。", + "URL cannot be empty" : "URL は空にできません", + "{new_name} already exists" : "{new_name} はすでに存在します", + "Could not create file" : "ファイルを作成できませんでした", + "Could not create folder" : "フォルダーを作成できませんでした", + "Error fetching URL" : "URL取得エラー", + "Share" : "共有", + "Delete" : "削除", + "Disconnect storage" : "ストレージを切断する", + "Unshare" : "共有解除", + "Delete permanently" : "完全に削除する", + "Rename" : "名前の変更", + "Pending" : "中断", + "Error moving file." : "ファイル移動でエラー", + "Error moving file" : "ファイルの移動エラー", + "Error" : "エラー", + "Could not rename file" : "ファイルの名前変更ができませんでした", + "Error deleting file." : "ファイルの削除エラー。", + "Name" : "名前", + "Size" : "サイズ", + "Modified" : "更新日時", + "_%n folder_::_%n folders_" : ["%n 個のフォルダー"], + "_%n file_::_%n files_" : ["%n 個のファイル"], + "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません", + "_Uploading %n file_::_Uploading %n files_" : ["%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" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。", + "{dirs} and {files}" : "{dirs} と {files}", + "%s could not be renamed as it has been deleted" : "%s は削除された為、ファイル名を変更できません", + "%s could not be renamed" : "%sの名前を変更できませんでした", + "Upload (max. %s)" : "アップロード ( 最大 %s )", + "File handling" : "ファイル操作", + "Maximum upload size" : "最大アップロードサイズ", + "max. possible: " : "最大容量: ", + "Save" : "保存", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "WebDAV経由でのファイルアクセスにはこのアドレスを利用してください", + "New" : "新規作成", + "New text file" : "新規のテキストファイル作成", + "Text file" : "テキストファイル", + "New folder" : "新しいフォルダー", + "Folder" : "フォルダー", + "From link" : "リンク", + "Nothing in here. Upload something!" : "ここには何もありません。何かアップロードしてください。", + "Download" : "ダウンロード", + "Upload too large" : "アップロードには大きすぎます。", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。", + "Files are being scanned, please wait." : "ファイルをスキャンしています、しばらくお待ちください。", + "Currently scanning" : "現在スキャン中" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/ja.php b/apps/files/l10n/ja.php deleted file mode 100644 index c0e67863dbfad64682141a7c2ba3083954a6d882..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ja.php +++ /dev/null @@ -1,96 +0,0 @@ - "ストレージが利用できません", -"Storage invalid" => "ストレージが無効です", -"Unknown error" => "不明なエラー", -"Could not move %s - File with this name already exists" => "%s を移動できませんでした ― この名前のファイルはすでに存在します", -"Could not move %s" => "%s を移動できませんでした", -"Permission denied" => "アクセス拒否", -"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を開くことは許されません。サーバーの設定をチェックしてください。", -"The file exceeds your quota by %s" => "ファイル %s で容量制限をオーバーしました。", -"Error while downloading %s to %s" => "%s から %s へのダウンロードエラー", -"Error when creating the file" => "ファイルの生成エラー", -"Folder name cannot be empty." => "フォルダー名は空にできません", -"Error when creating the folder" => "フォルダーの生成エラー", -"Unable to set upload directory." => "アップロードディレクトリを設定できません。", -"Invalid Token" => "無効なトークン", -"No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー", -"There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "アップロードファイルはHTMLフォームで指定された MAX_FILE_SIZE の制限を超えています", -"The uploaded file was only partially uploaded" => "アップロードファイルは一部分だけアップロードされました", -"No file was uploaded" => "ファイルはアップロードされませんでした", -"Missing a temporary folder" => "一時保存フォルダーが見つかりません", -"Failed to write to disk" => "ディスクへの書き込みに失敗しました", -"Not enough storage available" => "ストレージに十分な空き容量がありません", -"Upload failed. Could not find uploaded file" => "アップロードに失敗しました。アップロード済みのファイルを見つけることができませんでした。", -"Upload failed. Could not get file info." => "アップロードに失敗しました。ファイル情報を取得できませんでした。", -"Invalid directory." => "無効なディレクトリです。", -"Files" => "ファイル", -"All files" => "すべてのファイル", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "ディレクトリもしくは0バイトのため {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." => "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。", -"URL cannot be empty" => "URL は空にできません", -"{new_name} already exists" => "{new_name} はすでに存在します", -"Could not create file" => "ファイルを作成できませんでした", -"Could not create folder" => "フォルダーを作成できませんでした", -"Error fetching URL" => "URL取得エラー", -"Share" => "共有", -"Delete" => "削除", -"Disconnect storage" => "ストレージを切断する", -"Unshare" => "共有解除", -"Delete permanently" => "完全に削除する", -"Rename" => "名前の変更", -"Pending" => "中断", -"Error moving file." => "ファイル移動でエラー", -"Error moving file" => "ファイルの移動エラー", -"Error" => "エラー", -"Could not rename file" => "ファイルの名前変更ができませんでした", -"Error deleting file." => "ファイルの削除エラー。", -"Name" => "名前", -"Size" => "サイズ", -"Modified" => "更新日時", -"_%n folder_::_%n folders_" => array("%n 個のフォルダー"), -"_%n file_::_%n files_" => array("%n 個のファイル"), -"You don’t have permission to upload or create files here" => "ここにファイルをアップロードもしくは作成する権限がありません", -"_Uploading %n file_::_Uploading %n files_" => array("%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" => "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。", -"{dirs} and {files}" => "{dirs} と {files}", -"%s could not be renamed as it has been deleted" => "%s は削除された為、ファイル名を変更できません", -"%s could not be renamed" => "%sの名前を変更できませんでした", -"Upload (max. %s)" => "アップロード ( 最大 %s )", -"File handling" => "ファイル操作", -"Maximum upload size" => "最大アップロードサイズ", -"max. possible: " => "最大容量: ", -"Save" => "保存", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "WebDAV経由でのファイルアクセスにはこのアドレスを利用してください", -"New" => "新規作成", -"New text file" => "新規のテキストファイル作成", -"Text file" => "テキストファイル", -"New folder" => "新しいフォルダー", -"Folder" => "フォルダー", -"From link" => "リンク", -"Nothing in here. Upload something!" => "ここには何もありません。何かアップロードしてください。", -"Download" => "ダウンロード", -"Upload too large" => "アップロードには大きすぎます。", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。", -"Files are being scanned, please wait." => "ファイルをスキャンしています、しばらくお待ちください。", -"Currently scanning" => "現在スキャン中" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/jv.js b/apps/files/l10n/jv.js new file mode 100644 index 0000000000000000000000000000000000000000..b9de258aa2cb96ae8a94be5f362edfe4f9c26e12 --- /dev/null +++ b/apps/files/l10n/jv.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Download" : "Njipuk" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/jv.json b/apps/files/l10n/jv.json new file mode 100644 index 0000000000000000000000000000000000000000..c5064a9ff570ed05c005d6e10b79537da3f60dc9 --- /dev/null +++ b/apps/files/l10n/jv.json @@ -0,0 +1,7 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Download" : "Njipuk" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/jv.php b/apps/files/l10n/jv.php deleted file mode 100644 index cfab5af7d1c5e0eba19a0eb99c7a95cb9ff40fa7..0000000000000000000000000000000000000000 --- a/apps/files/l10n/jv.php +++ /dev/null @@ -1,8 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Download" => "Njipuk" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js new file mode 100644 index 0000000000000000000000000000000000000000..9845b12b129e46a601288ee731ec478ee9b1ced5 --- /dev/null +++ b/apps/files/l10n/ka_GE.js @@ -0,0 +1,54 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "უცნობი შეცდომა", + "Could not move %s - File with this name already exists" : "%s –ის გადატანა ვერ მოხერხდა – ფაილი ამ სახელით უკვე არსებობს", + "Could not move %s" : "%s –ის გადატანა ვერ მოხერხდა", + "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "არადაშვებადი სახელი, '\\', '/', '<', '>', ':', '\"', '|', '?' და '*' არ არის დაიშვებული.", + "No file was uploaded. Unknown error" : "ფაილი არ აიტვირთა. უცნობი შეცდომა", + "There is no error, the file uploaded with success" : "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს MAX_FILE_SIZE დირექტივას, რომელიც მითითებულია HTML ფორმაში", + "The uploaded file was only partially uploaded" : "ატვირთული ფაილი მხოლოდ ნაწილობრივ აიტვირთა", + "No file was uploaded" : "ფაილი არ აიტვირთა", + "Missing a temporary folder" : "დროებითი საქაღალდე არ არსებობს", + "Failed to write to disk" : "შეცდომა დისკზე ჩაწერისას", + "Not enough storage available" : "საცავში საკმარისი ადგილი არ არის", + "Invalid directory." : "დაუშვებელი დირექტორია.", + "Files" : "ფაილები", + "Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.", + "File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", + "{new_name} already exists" : "{new_name} უკვე არსებობს", + "Share" : "გაზიარება", + "Delete" : "წაშლა", + "Unshare" : "გაუზიარებადი", + "Delete permanently" : "სრულად წაშლა", + "Rename" : "გადარქმევა", + "Pending" : "მოცდის რეჟიმში", + "Error" : "შეცდომა", + "Name" : "სახელი", + "Size" : "ზომა", + "Modified" : "შეცვლილია", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", + "Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", + "File handling" : "ფაილის დამუშავება", + "Maximum upload size" : "მაქსიმუმ ატვირთის ზომა", + "max. possible: " : "მაქს. შესაძლებელი:", + "Save" : "შენახვა", + "WebDAV" : "WebDAV", + "New" : "ახალი", + "Text file" : "ტექსტური ფაილი", + "New folder" : "ახალი ფოლდერი", + "Folder" : "საქაღალდე", + "From link" : "მისამართიდან", + "Nothing in here. Upload something!" : "აქ არაფერი არ არის. ატვირთე რამე!", + "Download" : "ჩამოტვირთვა", + "Upload too large" : "ასატვირთი ფაილი ძალიან დიდია", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", + "Files are being scanned, please wait." : "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ." +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json new file mode 100644 index 0000000000000000000000000000000000000000..65dde81cfc44dc2ad89648553d37b301a4a72bce --- /dev/null +++ b/apps/files/l10n/ka_GE.json @@ -0,0 +1,52 @@ +{ "translations": { + "Unknown error" : "უცნობი შეცდომა", + "Could not move %s - File with this name already exists" : "%s –ის გადატანა ვერ მოხერხდა – ფაილი ამ სახელით უკვე არსებობს", + "Could not move %s" : "%s –ის გადატანა ვერ მოხერხდა", + "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "არადაშვებადი სახელი, '\\', '/', '<', '>', ':', '\"', '|', '?' და '*' არ არის დაიშვებული.", + "No file was uploaded. Unknown error" : "ფაილი არ აიტვირთა. უცნობი შეცდომა", + "There is no error, the file uploaded with success" : "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს MAX_FILE_SIZE დირექტივას, რომელიც მითითებულია HTML ფორმაში", + "The uploaded file was only partially uploaded" : "ატვირთული ფაილი მხოლოდ ნაწილობრივ აიტვირთა", + "No file was uploaded" : "ფაილი არ აიტვირთა", + "Missing a temporary folder" : "დროებითი საქაღალდე არ არსებობს", + "Failed to write to disk" : "შეცდომა დისკზე ჩაწერისას", + "Not enough storage available" : "საცავში საკმარისი ადგილი არ არის", + "Invalid directory." : "დაუშვებელი დირექტორია.", + "Files" : "ფაილები", + "Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.", + "File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", + "{new_name} already exists" : "{new_name} უკვე არსებობს", + "Share" : "გაზიარება", + "Delete" : "წაშლა", + "Unshare" : "გაუზიარებადი", + "Delete permanently" : "სრულად წაშლა", + "Rename" : "გადარქმევა", + "Pending" : "მოცდის რეჟიმში", + "Error" : "შეცდომა", + "Name" : "სახელი", + "Size" : "ზომა", + "Modified" : "შეცვლილია", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", + "Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", + "File handling" : "ფაილის დამუშავება", + "Maximum upload size" : "მაქსიმუმ ატვირთის ზომა", + "max. possible: " : "მაქს. შესაძლებელი:", + "Save" : "შენახვა", + "WebDAV" : "WebDAV", + "New" : "ახალი", + "Text file" : "ტექსტური ფაილი", + "New folder" : "ახალი ფოლდერი", + "Folder" : "საქაღალდე", + "From link" : "მისამართიდან", + "Nothing in here. Upload something!" : "აქ არაფერი არ არის. ატვირთე რამე!", + "Download" : "ჩამოტვირთვა", + "Upload too large" : "ასატვირთი ფაილი ძალიან დიდია", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", + "Files are being scanned, please wait." : "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php deleted file mode 100644 index 31184a5796fed1296ed2db20d50725a793af2f2e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ka_GE.php +++ /dev/null @@ -1,53 +0,0 @@ - "უცნობი შეცდომა", -"Could not move %s - File with this name already exists" => "%s –ის გადატანა ვერ მოხერხდა – ფაილი ამ სახელით უკვე არსებობს", -"Could not move %s" => "%s –ის გადატანა ვერ მოხერხდა", -"File name cannot be empty." => "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "არადაშვებადი სახელი, '\\', '/', '<', '>', ':', '\"', '|', '?' და '*' არ არის დაიშვებული.", -"No file was uploaded. Unknown error" => "ფაილი არ აიტვირთა. უცნობი შეცდომა", -"There is no error, the file uploaded with success" => "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "ატვირთული ფაილი აჭარბებს MAX_FILE_SIZE დირექტივას, რომელიც მითითებულია HTML ფორმაში", -"The uploaded file was only partially uploaded" => "ატვირთული ფაილი მხოლოდ ნაწილობრივ აიტვირთა", -"No file was uploaded" => "ფაილი არ აიტვირთა", -"Missing a temporary folder" => "დროებითი საქაღალდე არ არსებობს", -"Failed to write to disk" => "შეცდომა დისკზე ჩაწერისას", -"Not enough storage available" => "საცავში საკმარისი ადგილი არ არის", -"Invalid directory." => "დაუშვებელი დირექტორია.", -"Files" => "ფაილები", -"Upload cancelled." => "ატვირთვა შეჩერებულ იქნა.", -"File upload is in progress. Leaving the page now will cancel the upload." => "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", -"{new_name} already exists" => "{new_name} უკვე არსებობს", -"Share" => "გაზიარება", -"Delete" => "წაშლა", -"Unshare" => "გაუზიარებადი", -"Delete permanently" => "სრულად წაშლა", -"Rename" => "გადარქმევა", -"Pending" => "მოცდის რეჟიმში", -"Error" => "შეცდომა", -"Name" => "სახელი", -"Size" => "ზომა", -"Modified" => "შეცვლილია", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"Your storage is full, files can not be updated or synced anymore!" => "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", -"Your storage is almost full ({usedSpacePercent}%)" => "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", -"File handling" => "ფაილის დამუშავება", -"Maximum upload size" => "მაქსიმუმ ატვირთის ზომა", -"max. possible: " => "მაქს. შესაძლებელი:", -"Save" => "შენახვა", -"WebDAV" => "WebDAV", -"New" => "ახალი", -"Text file" => "ტექსტური ფაილი", -"New folder" => "ახალი ფოლდერი", -"Folder" => "საქაღალდე", -"From link" => "მისამართიდან", -"Nothing in here. Upload something!" => "აქ არაფერი არ არის. ატვირთე რამე!", -"Download" => "ჩამოტვირთვა", -"Upload too large" => "ასატვირთი ფაილი ძალიან დიდია", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", -"Files are being scanned, please wait." => "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js new file mode 100644 index 0000000000000000000000000000000000000000..5a44796d1e70653decb9d6c872e5c3c67bc0df6b --- /dev/null +++ b/apps/files/l10n/km.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "មិន​ស្គាល់​កំហុស", + "Could not move %s - File with this name already exists" : "មិន​អាច​ផ្លាស់​ទី %s - មាន​ឈ្មោះ​ឯកសារ​ដូច​នេះ​ហើយ", + "Could not move %s" : "មិន​អាច​ផ្លាស់ទី %s", + "File name cannot be empty." : "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "ឈ្មោះ​មិន​ត្រឹម​ត្រូវ, មិន​អនុញ្ញាត '\\', '/', '<', '>', ':', '\"', '|', '?' និង '*' ទេ។", + "No file was uploaded. Unknown error" : "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស", + "There is no error, the file uploaded with success" : "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ", + "Files" : "ឯកសារ", + "Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។", + "{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ", + "Share" : "ចែក​រំលែក", + "Delete" : "លុប", + "Unshare" : "លែង​ចែក​រំលែក", + "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍", + "Rename" : "ប្ដូរ​ឈ្មោះ", + "Pending" : "កំពុង​រង់ចាំ", + "Error" : "កំហុស", + "Name" : "ឈ្មោះ", + "Size" : "ទំហំ", + "Modified" : "បាន​កែ​ប្រែ", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Maximum upload size" : "ទំហំ​ផ្ទុកឡើង​ជា​អតិបរមា", + "Save" : "រក្សាទុក", + "WebDAV" : "WebDAV", + "New" : "ថ្មី", + "Text file" : "ឯកសារ​អក្សរ", + "New folder" : "ថត​ថ្មី", + "Folder" : "ថត", + "From link" : "ពី​តំណ", + "Nothing in here. Upload something!" : "គ្មាន​អ្វី​នៅ​ទីនេះ​ទេ។ ផ្ទុក​ឡើង​អ្វី​មួយ!", + "Download" : "ទាញយក", + "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json new file mode 100644 index 0000000000000000000000000000000000000000..6ed24afe47aa4bbf264cddc4cd4b685b8c25cfac --- /dev/null +++ b/apps/files/l10n/km.json @@ -0,0 +1,37 @@ +{ "translations": { + "Unknown error" : "មិន​ស្គាល់​កំហុស", + "Could not move %s - File with this name already exists" : "មិន​អាច​ផ្លាស់​ទី %s - មាន​ឈ្មោះ​ឯកសារ​ដូច​នេះ​ហើយ", + "Could not move %s" : "មិន​អាច​ផ្លាស់ទី %s", + "File name cannot be empty." : "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "ឈ្មោះ​មិន​ត្រឹម​ត្រូវ, មិន​អនុញ្ញាត '\\', '/', '<', '>', ':', '\"', '|', '?' និង '*' ទេ។", + "No file was uploaded. Unknown error" : "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស", + "There is no error, the file uploaded with success" : "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ", + "Files" : "ឯកសារ", + "Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។", + "{new_name} already exists" : "មាន​ឈ្មោះ {new_name} រួច​ហើយ", + "Share" : "ចែក​រំលែក", + "Delete" : "លុប", + "Unshare" : "លែង​ចែក​រំលែក", + "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍", + "Rename" : "ប្ដូរ​ឈ្មោះ", + "Pending" : "កំពុង​រង់ចាំ", + "Error" : "កំហុស", + "Name" : "ឈ្មោះ", + "Size" : "ទំហំ", + "Modified" : "បាន​កែ​ប្រែ", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Maximum upload size" : "ទំហំ​ផ្ទុកឡើង​ជា​អតិបរមា", + "Save" : "រក្សាទុក", + "WebDAV" : "WebDAV", + "New" : "ថ្មី", + "Text file" : "ឯកសារ​អក្សរ", + "New folder" : "ថត​ថ្មី", + "Folder" : "ថត", + "From link" : "ពី​តំណ", + "Nothing in here. Upload something!" : "គ្មាន​អ្វី​នៅ​ទីនេះ​ទេ។ ផ្ទុក​ឡើង​អ្វី​មួយ!", + "Download" : "ទាញយក", + "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/km.php b/apps/files/l10n/km.php deleted file mode 100644 index 9fa338d3659dbcd0da3f844a9899c7a46816a544..0000000000000000000000000000000000000000 --- a/apps/files/l10n/km.php +++ /dev/null @@ -1,38 +0,0 @@ - "មិន​ស្គាល់​កំហុស", -"Could not move %s - File with this name already exists" => "មិន​អាច​ផ្លាស់​ទី %s - មាន​ឈ្មោះ​ឯកសារ​ដូច​នេះ​ហើយ", -"Could not move %s" => "មិន​អាច​ផ្លាស់ទី %s", -"File name cannot be empty." => "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "ឈ្មោះ​មិន​ត្រឹម​ត្រូវ, មិន​អនុញ្ញាត '\\', '/', '<', '>', ':', '\"', '|', '?' និង '*' ទេ។", -"No file was uploaded. Unknown error" => "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស", -"There is no error, the file uploaded with success" => "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ", -"Files" => "ឯកសារ", -"Upload cancelled." => "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។", -"{new_name} already exists" => "មាន​ឈ្មោះ {new_name} រួច​ហើយ", -"Share" => "ចែក​រំលែក", -"Delete" => "លុប", -"Unshare" => "លែង​ចែក​រំលែក", -"Delete permanently" => "លុប​ជា​អចិន្ត្រៃយ៍", -"Rename" => "ប្ដូរ​ឈ្មោះ", -"Pending" => "កំពុង​រង់ចាំ", -"Error" => "កំហុស", -"Name" => "ឈ្មោះ", -"Size" => "ទំហំ", -"Modified" => "បាន​កែ​ប្រែ", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"Maximum upload size" => "ទំហំ​ផ្ទុកឡើង​ជា​អតិបរមា", -"Save" => "រក្សាទុក", -"WebDAV" => "WebDAV", -"New" => "ថ្មី", -"Text file" => "ឯកសារ​អក្សរ", -"New folder" => "ថត​ថ្មី", -"Folder" => "ថត", -"From link" => "ពី​តំណ", -"Nothing in here. Upload something!" => "គ្មាន​អ្វី​នៅ​ទីនេះ​ទេ។ ផ្ទុក​ឡើង​អ្វី​មួយ!", -"Download" => "ទាញយក", -"Upload too large" => "ផ្ទុក​ឡើង​ធំ​ពេក" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/kn.js b/apps/files/l10n/kn.js new file mode 100644 index 0000000000000000000000000000000000000000..d1bbfca2dd4eb9b3fef484ce382c395698fe43d2 --- /dev/null +++ b/apps/files/l10n/kn.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/kn.json b/apps/files/l10n/kn.json new file mode 100644 index 0000000000000000000000000000000000000000..e493054d78afd282eca938e05712cc3d24d82cac --- /dev/null +++ b/apps/files/l10n/kn.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/kn.php b/apps/files/l10n/kn.php deleted file mode 100644 index 70ab6572ba466c23b8066e18b9ee2f9cb2a7a827..0000000000000000000000000000000000000000 --- a/apps/files/l10n/kn.php +++ /dev/null @@ -1,7 +0,0 @@ - array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array("") -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js new file mode 100644 index 0000000000000000000000000000000000000000..519652e4796aeb3d165251af3f6c28ffec6887b3 --- /dev/null +++ b/apps/files/l10n/ko.js @@ -0,0 +1,82 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "알 수 없는 오류", + "Could not move %s - File with this name already exists" : "항목 %s을(를) 이동시킬 수 없음 - 같은 이름의 파일이 이미 존재함", + "Could not move %s" : "항목 %s을(를) 이동시킬 수 없음", + "File name cannot be empty." : "파일 이름이 비어 있을 수 없습니다.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.", + "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을 열 수 없습니다. 서버 설정을 확인하십시오", + "Error while downloading %s to %s" : "%s을(를) %s(으)로 다운로드하는 중 오류 발생", + "Error when creating the file" : "파일 생성 중 오류 발생", + "Folder name cannot be empty." : "폴더 이름이 비어있을 수 없습니다.", + "Error when creating the folder" : "폴더 생성 중 오류 발생", + "Unable to set upload directory." : "업로드 디렉터리를 설정할 수 없습니다.", + "Invalid Token" : "잘못된 토큰", + "No file was uploaded. Unknown error" : "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다", + "There is no error, the file uploaded with success" : "파일 업로드에 성공하였습니다.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "업로드한 파일 크기가 HTML 폼의 MAX_FILE_SIZE보다 큼", + "The uploaded file was only partially uploaded" : "파일의 일부분만 업로드됨", + "No file was uploaded" : "파일이 업로드되지 않았음", + "Missing a temporary folder" : "임시 폴더가 없음", + "Failed to write to disk" : "디스크에 쓰지 못했습니다", + "Not enough storage available" : "저장소가 용량이 충분하지 않습니다.", + "Upload failed. Could not find uploaded file" : "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다", + "Upload failed. Could not get file info." : "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.", + "Invalid directory." : "올바르지 않은 디렉터리입니다.", + "Files" : "파일", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", + "Upload cancelled." : "업로드가 취소되었습니다.", + "Could not get result from server." : "서버에서 결과를 가져올 수 없습니다.", + "File upload is in progress. Leaving the page now will cancel the upload." : "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", + "URL cannot be empty" : "URL이 비어있을 수 없음", + "{new_name} already exists" : "{new_name}이(가) 이미 존재함", + "Could not create file" : "파일을 만들 수 없음", + "Could not create folder" : "폴더를 만들 수 없음", + "Error fetching URL" : "URL을 가져올 수 없음", + "Share" : "공유", + "Delete" : "삭제", + "Unshare" : "공유 해제", + "Delete permanently" : "영구히 삭제", + "Rename" : "이름 바꾸기", + "Pending" : "대기 중", + "Error moving file" : "파일 이동 오류", + "Error" : "오류", + "Could not rename file" : "이름을 변경할 수 없음", + "Error deleting file." : "파일 삭제 오류.", + "Name" : "이름", + "Size" : "크기", + "Modified" : "수정됨", + "_%n folder_::_%n folders_" : ["폴더 %n개"], + "_%n file_::_%n files_" : ["파일 %n개"], + "You don’t have permission to upload or create files here" : "여기에 파일을 업로드하거나 만들 권한이 없습니다", + "_Uploading %n file_::_Uploading %n files_" : ["파일 %n개 업로드 중"], + "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" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.", + "{dirs} and {files}" : "{dirs} 그리고 {files}", + "%s could not be renamed" : "%s의 이름을 변경할 수 없습니다", + "File handling" : "파일 처리", + "Maximum upload size" : "최대 업로드 크기", + "max. possible: " : "최대 가능:", + "Save" : "저장", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "WebDAV로 파일에 접근하려면 이 주소를 사용하십시오", + "New" : "새로 만들기", + "New text file" : "새 텍스트 파일", + "Text file" : "텍스트 파일", + "New folder" : "새 폴더", + "Folder" : "폴더", + "From link" : "링크에서", + "Nothing in here. Upload something!" : "내용이 없습니다. 업로드할 수 있습니다!", + "Download" : "다운로드", + "Upload too large" : "업로드한 파일이 너무 큼", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", + "Files are being scanned, please wait." : "파일을 검색하고 있습니다. 기다려 주십시오." +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..afcda78ecd0e53a4e34179f6aa3ce43790c88ee6 --- /dev/null +++ b/apps/files/l10n/ko.json @@ -0,0 +1,80 @@ +{ "translations": { + "Unknown error" : "알 수 없는 오류", + "Could not move %s - File with this name already exists" : "항목 %s을(를) 이동시킬 수 없음 - 같은 이름의 파일이 이미 존재함", + "Could not move %s" : "항목 %s을(를) 이동시킬 수 없음", + "File name cannot be empty." : "파일 이름이 비어 있을 수 없습니다.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.", + "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을 열 수 없습니다. 서버 설정을 확인하십시오", + "Error while downloading %s to %s" : "%s을(를) %s(으)로 다운로드하는 중 오류 발생", + "Error when creating the file" : "파일 생성 중 오류 발생", + "Folder name cannot be empty." : "폴더 이름이 비어있을 수 없습니다.", + "Error when creating the folder" : "폴더 생성 중 오류 발생", + "Unable to set upload directory." : "업로드 디렉터리를 설정할 수 없습니다.", + "Invalid Token" : "잘못된 토큰", + "No file was uploaded. Unknown error" : "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다", + "There is no error, the file uploaded with success" : "파일 업로드에 성공하였습니다.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "업로드한 파일 크기가 HTML 폼의 MAX_FILE_SIZE보다 큼", + "The uploaded file was only partially uploaded" : "파일의 일부분만 업로드됨", + "No file was uploaded" : "파일이 업로드되지 않았음", + "Missing a temporary folder" : "임시 폴더가 없음", + "Failed to write to disk" : "디스크에 쓰지 못했습니다", + "Not enough storage available" : "저장소가 용량이 충분하지 않습니다.", + "Upload failed. Could not find uploaded file" : "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다", + "Upload failed. Could not get file info." : "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.", + "Invalid directory." : "올바르지 않은 디렉터리입니다.", + "Files" : "파일", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", + "Upload cancelled." : "업로드가 취소되었습니다.", + "Could not get result from server." : "서버에서 결과를 가져올 수 없습니다.", + "File upload is in progress. Leaving the page now will cancel the upload." : "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", + "URL cannot be empty" : "URL이 비어있을 수 없음", + "{new_name} already exists" : "{new_name}이(가) 이미 존재함", + "Could not create file" : "파일을 만들 수 없음", + "Could not create folder" : "폴더를 만들 수 없음", + "Error fetching URL" : "URL을 가져올 수 없음", + "Share" : "공유", + "Delete" : "삭제", + "Unshare" : "공유 해제", + "Delete permanently" : "영구히 삭제", + "Rename" : "이름 바꾸기", + "Pending" : "대기 중", + "Error moving file" : "파일 이동 오류", + "Error" : "오류", + "Could not rename file" : "이름을 변경할 수 없음", + "Error deleting file." : "파일 삭제 오류.", + "Name" : "이름", + "Size" : "크기", + "Modified" : "수정됨", + "_%n folder_::_%n folders_" : ["폴더 %n개"], + "_%n file_::_%n files_" : ["파일 %n개"], + "You don’t have permission to upload or create files here" : "여기에 파일을 업로드하거나 만들 권한이 없습니다", + "_Uploading %n file_::_Uploading %n files_" : ["파일 %n개 업로드 중"], + "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" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.", + "{dirs} and {files}" : "{dirs} 그리고 {files}", + "%s could not be renamed" : "%s의 이름을 변경할 수 없습니다", + "File handling" : "파일 처리", + "Maximum upload size" : "최대 업로드 크기", + "max. possible: " : "최대 가능:", + "Save" : "저장", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "WebDAV로 파일에 접근하려면 이 주소를 사용하십시오", + "New" : "새로 만들기", + "New text file" : "새 텍스트 파일", + "Text file" : "텍스트 파일", + "New folder" : "새 폴더", + "Folder" : "폴더", + "From link" : "링크에서", + "Nothing in here. Upload something!" : "내용이 없습니다. 업로드할 수 있습니다!", + "Download" : "다운로드", + "Upload too large" : "업로드한 파일이 너무 큼", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", + "Files are being scanned, please wait." : "파일을 검색하고 있습니다. 기다려 주십시오." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php deleted file mode 100644 index b342b375c77bd57c3c9fc620b96244a6fb5bb218..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ko.php +++ /dev/null @@ -1,81 +0,0 @@ - "알 수 없는 오류", -"Could not move %s - File with this name already exists" => "항목 %s을(를) 이동시킬 수 없음 - 같은 이름의 파일이 이미 존재함", -"Could not move %s" => "항목 %s을(를) 이동시킬 수 없음", -"File name cannot be empty." => "파일 이름이 비어 있을 수 없습니다.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.", -"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을 열 수 없습니다. 서버 설정을 확인하십시오", -"Error while downloading %s to %s" => "%s을(를) %s(으)로 다운로드하는 중 오류 발생", -"Error when creating the file" => "파일 생성 중 오류 발생", -"Folder name cannot be empty." => "폴더 이름이 비어있을 수 없습니다.", -"Error when creating the folder" => "폴더 생성 중 오류 발생", -"Unable to set upload directory." => "업로드 디렉터리를 설정할 수 없습니다.", -"Invalid Token" => "잘못된 토큰", -"No file was uploaded. Unknown error" => "파일이 업로드 되지 않았습니다. 알 수 없는 오류입니다", -"There is no error, the file uploaded with success" => "파일 업로드에 성공하였습니다.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "업로드한 파일 크기가 HTML 폼의 MAX_FILE_SIZE보다 큼", -"The uploaded file was only partially uploaded" => "파일의 일부분만 업로드됨", -"No file was uploaded" => "파일이 업로드되지 않았음", -"Missing a temporary folder" => "임시 폴더가 없음", -"Failed to write to disk" => "디스크에 쓰지 못했습니다", -"Not enough storage available" => "저장소가 용량이 충분하지 않습니다.", -"Upload failed. Could not find uploaded file" => "업로드에 실패했습니다. 업로드할 파일을 찾을 수 없습니다", -"Upload failed. Could not get file info." => "업로드에 실패했습니다. 파일 정보를 가져올 수 없습니다.", -"Invalid directory." => "올바르지 않은 디렉터리입니다.", -"Files" => "파일", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", -"Upload cancelled." => "업로드가 취소되었습니다.", -"Could not get result from server." => "서버에서 결과를 가져올 수 없습니다.", -"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", -"URL cannot be empty" => "URL이 비어있을 수 없음", -"{new_name} already exists" => "{new_name}이(가) 이미 존재함", -"Could not create file" => "파일을 만들 수 없음", -"Could not create folder" => "폴더를 만들 수 없음", -"Error fetching URL" => "URL을 가져올 수 없음", -"Share" => "공유", -"Delete" => "삭제", -"Unshare" => "공유 해제", -"Delete permanently" => "영구히 삭제", -"Rename" => "이름 바꾸기", -"Pending" => "대기 중", -"Error moving file" => "파일 이동 오류", -"Error" => "오류", -"Could not rename file" => "이름을 변경할 수 없음", -"Error deleting file." => "파일 삭제 오류.", -"Name" => "이름", -"Size" => "크기", -"Modified" => "수정됨", -"_%n folder_::_%n folders_" => array("폴더 %n개"), -"_%n file_::_%n files_" => array("파일 %n개"), -"You don’t have permission to upload or create files here" => "여기에 파일을 업로드하거나 만들 권한이 없습니다", -"_Uploading %n file_::_Uploading %n files_" => array("파일 %n개 업로드 중"), -"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" => "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "암호화는 해제되어 있지만, 파일은 아직 암호화되어 있습니다. 개인 설정에서 파일을 복호화하십시오.", -"{dirs} and {files}" => "{dirs} 그리고 {files}", -"%s could not be renamed" => "%s의 이름을 변경할 수 없습니다", -"File handling" => "파일 처리", -"Maximum upload size" => "최대 업로드 크기", -"max. possible: " => "최대 가능:", -"Save" => "저장", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "WebDAV로 파일에 접근하려면 이 주소를 사용하십시오", -"New" => "새로 만들기", -"New text file" => "새 텍스트 파일", -"Text file" => "텍스트 파일", -"New folder" => "새 폴더", -"Folder" => "폴더", -"From link" => "링크에서", -"Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!", -"Download" => "다운로드", -"Upload too large" => "업로드한 파일이 너무 큼", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", -"Files are being scanned, please wait." => "파일을 검색하고 있습니다. 기다려 주십시오." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/ku_IQ.js b/apps/files/l10n/ku_IQ.js new file mode 100644 index 0000000000000000000000000000000000000000..5236669f23929640e914157e0fda1d8af9c282d4 --- /dev/null +++ b/apps/files/l10n/ku_IQ.js @@ -0,0 +1,15 @@ +OC.L10N.register( + "files", + { + "Files" : "په‌ڕگەکان", + "Share" : "هاوبەشی کردن", + "Error" : "هه‌ڵه", + "Name" : "ناو", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "پاشکه‌وتکردن", + "Folder" : "بوخچه", + "Download" : "داگرتن" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ku_IQ.json b/apps/files/l10n/ku_IQ.json new file mode 100644 index 0000000000000000000000000000000000000000..c11984e29d7121a231ecee61f7259c550e424730 --- /dev/null +++ b/apps/files/l10n/ku_IQ.json @@ -0,0 +1,13 @@ +{ "translations": { + "Files" : "په‌ڕگەکان", + "Share" : "هاوبەشی کردن", + "Error" : "هه‌ڵه", + "Name" : "ناو", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "پاشکه‌وتکردن", + "Folder" : "بوخچه", + "Download" : "داگرتن" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ku_IQ.php b/apps/files/l10n/ku_IQ.php deleted file mode 100644 index 4afe5e4cc29b447f980360651426ec0064dda400..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ku_IQ.php +++ /dev/null @@ -1,14 +0,0 @@ - "په‌ڕگەکان", -"Share" => "هاوبەشی کردن", -"Error" => "هه‌ڵه", -"Name" => "ناو", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "پاشکه‌وتکردن", -"Folder" => "بوخچه", -"Download" => "داگرتن" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js new file mode 100644 index 0000000000000000000000000000000000000000..05c3ff1e7e4cd53f7fe995d6d0b6987622bd9a84 --- /dev/null +++ b/apps/files/l10n/lb.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Et ass en onbekannte Fehler opgetrueden", + "There is no error, the file uploaded with success" : "Keen Feeler, Datei ass komplett ropgelueden ginn", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass", + "The uploaded file was only partially uploaded" : "Déi ropgelueden Datei ass nëmmen hallef ropgelueden ginn", + "No file was uploaded" : "Et ass kee Fichier ropgeluede ginn", + "Missing a temporary folder" : "Et feelt en temporären Dossier", + "Failed to write to disk" : "Konnt net op den Disk schreiwen", + "Files" : "Dateien", + "Upload cancelled." : "Upload ofgebrach.", + "File upload is in progress. Leaving the page now will cancel the upload." : "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.", + "Share" : "Deelen", + "Delete" : "Läschen", + "Unshare" : "Net méi deelen", + "Rename" : "Ëm-benennen", + "Error" : "Fehler", + "Name" : "Numm", + "Size" : "Gréisst", + "Modified" : "Geännert", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "Fichier handling", + "Maximum upload size" : "Maximum Upload Gréisst ", + "max. possible: " : "max. méiglech:", + "Save" : "Späicheren", + "New" : "Nei", + "Text file" : "Text Fichier", + "Folder" : "Dossier", + "Nothing in here. Upload something!" : "Hei ass näischt. Lued eppes rop!", + "Download" : "Download", + "Upload too large" : "Upload ze grouss", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.", + "Files are being scanned, please wait." : "Fichieren gi gescannt, war weg." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json new file mode 100644 index 0000000000000000000000000000000000000000..868141071f36943f5d41ef7b997faa2ffdd81e93 --- /dev/null +++ b/apps/files/l10n/lb.json @@ -0,0 +1,36 @@ +{ "translations": { + "Unknown error" : "Et ass en onbekannte Fehler opgetrueden", + "There is no error, the file uploaded with success" : "Keen Feeler, Datei ass komplett ropgelueden ginn", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass", + "The uploaded file was only partially uploaded" : "Déi ropgelueden Datei ass nëmmen hallef ropgelueden ginn", + "No file was uploaded" : "Et ass kee Fichier ropgeluede ginn", + "Missing a temporary folder" : "Et feelt en temporären Dossier", + "Failed to write to disk" : "Konnt net op den Disk schreiwen", + "Files" : "Dateien", + "Upload cancelled." : "Upload ofgebrach.", + "File upload is in progress. Leaving the page now will cancel the upload." : "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.", + "Share" : "Deelen", + "Delete" : "Läschen", + "Unshare" : "Net méi deelen", + "Rename" : "Ëm-benennen", + "Error" : "Fehler", + "Name" : "Numm", + "Size" : "Gréisst", + "Modified" : "Geännert", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "Fichier handling", + "Maximum upload size" : "Maximum Upload Gréisst ", + "max. possible: " : "max. méiglech:", + "Save" : "Späicheren", + "New" : "Nei", + "Text file" : "Text Fichier", + "Folder" : "Dossier", + "Nothing in here. Upload something!" : "Hei ass näischt. Lued eppes rop!", + "Download" : "Download", + "Upload too large" : "Upload ze grouss", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.", + "Files are being scanned, please wait." : "Fichieren gi gescannt, war weg." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/lb.php b/apps/files/l10n/lb.php deleted file mode 100644 index a60c930c870df714d3af8c7abb1e4ed91f343018..0000000000000000000000000000000000000000 --- a/apps/files/l10n/lb.php +++ /dev/null @@ -1,37 +0,0 @@ - "Et ass en onbekannte Fehler opgetrueden", -"There is no error, the file uploaded with success" => "Keen Feeler, Datei ass komplett ropgelueden ginn", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass", -"The uploaded file was only partially uploaded" => "Déi ropgelueden Datei ass nëmmen hallef ropgelueden ginn", -"No file was uploaded" => "Et ass kee Fichier ropgeluede ginn", -"Missing a temporary folder" => "Et feelt en temporären Dossier", -"Failed to write to disk" => "Konnt net op den Disk schreiwen", -"Files" => "Dateien", -"Upload cancelled." => "Upload ofgebrach.", -"File upload is in progress. Leaving the page now will cancel the upload." => "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.", -"Share" => "Deelen", -"Delete" => "Läschen", -"Unshare" => "Net méi deelen", -"Rename" => "Ëm-benennen", -"Error" => "Fehler", -"Name" => "Numm", -"Size" => "Gréisst", -"Modified" => "Geännert", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"File handling" => "Fichier handling", -"Maximum upload size" => "Maximum Upload Gréisst ", -"max. possible: " => "max. méiglech:", -"Save" => "Späicheren", -"New" => "Nei", -"Text file" => "Text Fichier", -"Folder" => "Dossier", -"Nothing in here. Upload something!" => "Hei ass näischt. Lued eppes rop!", -"Download" => "Download", -"Upload too large" => "Upload ze grouss", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.", -"Files are being scanned, please wait." => "Fichieren gi gescannt, war weg." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js new file mode 100644 index 0000000000000000000000000000000000000000..c4b391bee67026ce7a525926c32985abff1f9b1b --- /dev/null +++ b/apps/files/l10n/lt_LT.js @@ -0,0 +1,82 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Neatpažinta klaida", + "Could not move %s - File with this name already exists" : "Nepavyko perkelti %s - failas su tokiu pavadinimu jau egzistuoja", + "Could not move %s" : "Nepavyko perkelti %s", + "File name cannot be empty." : "Failo pavadinimas negali būti tuščias.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neleistinas pavadinimas, '\\', '/', '<', '>', ':', '\"', '|', '?' ir '*' yra neleidžiami.", + "The name %s is already used in the folder %s. Please choose a different name." : "Pavadinimas %s jau naudojamas aplanke %s. Prašome pasirinkti kitokį pavadinimą.", + "Not a valid source" : "Netinkamas šaltinis", + "Server is not allowed to open URLs, please check the server configuration" : "Serveriui neleidžiama atverti URL, prašome patikrinti serverio konfigūraciją", + "Error while downloading %s to %s" : "Klaida siunčiant %s į %s", + "Error when creating the file" : "Klaida kuriant failą", + "Folder name cannot be empty." : "Aplanko pavadinimas negali būti tuščias.", + "Error when creating the folder" : "Klaida kuriant aplanką", + "Unable to set upload directory." : "Nepavyksta nustatyti įkėlimų katalogo.", + "Invalid Token" : "Netinkamas ženklas", + "No file was uploaded. Unknown error" : "Failai nebuvo įkelti dėl nežinomos priežasties", + "There is no error, the file uploaded with success" : "Failas įkeltas sėkmingai, be klaidų", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Įkeliamas failas yra didesnis nei leidžia upload_max_filesize php.ini faile:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje.", + "The uploaded file was only partially uploaded" : "Failas buvo įkeltas tik dalinai", + "No file was uploaded" : "Nebuvo įkeltas joks failas", + "Missing a temporary folder" : "Nėra laikinojo katalogo", + "Failed to write to disk" : "Nepavyko įrašyti į diską", + "Not enough storage available" : "Nepakanka vietos serveryje", + "Upload failed. Could not find uploaded file" : "Įkėlimas nepavyko. Nepavyko rasti įkelto failo", + "Upload failed. Could not get file info." : "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.", + "Invalid directory." : "Neteisingas aplankas", + "Files" : "Failai", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio", + "Upload cancelled." : "Įkėlimas atšauktas.", + "Could not get result from server." : "Nepavyko gauti rezultato iš serverio.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.", + "URL cannot be empty" : "URL negali būti tuščias.", + "{new_name} already exists" : "{new_name} jau egzistuoja", + "Could not create file" : "Neįmanoma sukurti failo", + "Could not create folder" : "Neįmanoma sukurti aplanko", + "Error fetching URL" : "Klauda gaunant URL", + "Share" : "Dalintis", + "Delete" : "Ištrinti", + "Unshare" : "Nebesidalinti", + "Delete permanently" : "Ištrinti negrįžtamai", + "Rename" : "Pervadinti", + "Pending" : "Laukiantis", + "Error moving file" : "Klaida perkeliant failą", + "Error" : "Klaida", + "Could not rename file" : "Neįmanoma pervadinti failo", + "Error deleting file." : "Klaida trinant failą.", + "Name" : "Pavadinimas", + "Size" : "Dydis", + "Modified" : "Pakeista", + "_%n folder_::_%n folders_" : ["%n aplankas","%n aplankai","%n aplankų"], + "_%n file_::_%n files_" : ["%n failas","%n failai","%n failų"], + "You don’t have permission to upload or create files here" : "Jūs neturite leidimo čia įkelti arba kurti failus", + "_Uploading %n file_::_Uploading %n files_" : ["Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų"], + "Your storage is full, files can not be updated or synced anymore!" : "Jūsų visa vieta serveryje užimta", + "Your storage is almost full ({usedSpacePercent}%)" : "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.", + "{dirs} and {files}" : "{dirs} ir {files}", + "%s could not be renamed" : "%s negali būti pervadintas", + "File handling" : "Failų tvarkymas", + "Maximum upload size" : "Maksimalus įkeliamo failo dydis", + "max. possible: " : "maks. galima:", + "Save" : "Išsaugoti", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Naudokite šį adresą, kad pasiektumėte savo failus per WebDAV", + "New" : "Naujas", + "New text file" : "Naujas tekstinis failas", + "Text file" : "Teksto failas", + "New folder" : "Naujas aplankas", + "Folder" : "Katalogas", + "From link" : "Iš nuorodos", + "Nothing in here. Upload something!" : "Čia tuščia. Įkelkite ką nors!", + "Download" : "Atsisiųsti", + "Upload too large" : "Įkėlimui failas per didelis", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje", + "Files are being scanned, please wait." : "Skenuojami failai, prašome palaukti." +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json new file mode 100644 index 0000000000000000000000000000000000000000..6baaa79c92c286aa69aeceb469c65123c9665d43 --- /dev/null +++ b/apps/files/l10n/lt_LT.json @@ -0,0 +1,80 @@ +{ "translations": { + "Unknown error" : "Neatpažinta klaida", + "Could not move %s - File with this name already exists" : "Nepavyko perkelti %s - failas su tokiu pavadinimu jau egzistuoja", + "Could not move %s" : "Nepavyko perkelti %s", + "File name cannot be empty." : "Failo pavadinimas negali būti tuščias.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neleistinas pavadinimas, '\\', '/', '<', '>', ':', '\"', '|', '?' ir '*' yra neleidžiami.", + "The name %s is already used in the folder %s. Please choose a different name." : "Pavadinimas %s jau naudojamas aplanke %s. Prašome pasirinkti kitokį pavadinimą.", + "Not a valid source" : "Netinkamas šaltinis", + "Server is not allowed to open URLs, please check the server configuration" : "Serveriui neleidžiama atverti URL, prašome patikrinti serverio konfigūraciją", + "Error while downloading %s to %s" : "Klaida siunčiant %s į %s", + "Error when creating the file" : "Klaida kuriant failą", + "Folder name cannot be empty." : "Aplanko pavadinimas negali būti tuščias.", + "Error when creating the folder" : "Klaida kuriant aplanką", + "Unable to set upload directory." : "Nepavyksta nustatyti įkėlimų katalogo.", + "Invalid Token" : "Netinkamas ženklas", + "No file was uploaded. Unknown error" : "Failai nebuvo įkelti dėl nežinomos priežasties", + "There is no error, the file uploaded with success" : "Failas įkeltas sėkmingai, be klaidų", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Įkeliamas failas yra didesnis nei leidžia upload_max_filesize php.ini faile:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje.", + "The uploaded file was only partially uploaded" : "Failas buvo įkeltas tik dalinai", + "No file was uploaded" : "Nebuvo įkeltas joks failas", + "Missing a temporary folder" : "Nėra laikinojo katalogo", + "Failed to write to disk" : "Nepavyko įrašyti į diską", + "Not enough storage available" : "Nepakanka vietos serveryje", + "Upload failed. Could not find uploaded file" : "Įkėlimas nepavyko. Nepavyko rasti įkelto failo", + "Upload failed. Could not get file info." : "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.", + "Invalid directory." : "Neteisingas aplankas", + "Files" : "Failai", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio", + "Upload cancelled." : "Įkėlimas atšauktas.", + "Could not get result from server." : "Nepavyko gauti rezultato iš serverio.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.", + "URL cannot be empty" : "URL negali būti tuščias.", + "{new_name} already exists" : "{new_name} jau egzistuoja", + "Could not create file" : "Neįmanoma sukurti failo", + "Could not create folder" : "Neįmanoma sukurti aplanko", + "Error fetching URL" : "Klauda gaunant URL", + "Share" : "Dalintis", + "Delete" : "Ištrinti", + "Unshare" : "Nebesidalinti", + "Delete permanently" : "Ištrinti negrįžtamai", + "Rename" : "Pervadinti", + "Pending" : "Laukiantis", + "Error moving file" : "Klaida perkeliant failą", + "Error" : "Klaida", + "Could not rename file" : "Neįmanoma pervadinti failo", + "Error deleting file." : "Klaida trinant failą.", + "Name" : "Pavadinimas", + "Size" : "Dydis", + "Modified" : "Pakeista", + "_%n folder_::_%n folders_" : ["%n aplankas","%n aplankai","%n aplankų"], + "_%n file_::_%n files_" : ["%n failas","%n failai","%n failų"], + "You don’t have permission to upload or create files here" : "Jūs neturite leidimo čia įkelti arba kurti failus", + "_Uploading %n file_::_Uploading %n files_" : ["Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų"], + "Your storage is full, files can not be updated or synced anymore!" : "Jūsų visa vieta serveryje užimta", + "Your storage is almost full ({usedSpacePercent}%)" : "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.", + "{dirs} and {files}" : "{dirs} ir {files}", + "%s could not be renamed" : "%s negali būti pervadintas", + "File handling" : "Failų tvarkymas", + "Maximum upload size" : "Maksimalus įkeliamo failo dydis", + "max. possible: " : "maks. galima:", + "Save" : "Išsaugoti", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Naudokite šį adresą, kad pasiektumėte savo failus per WebDAV", + "New" : "Naujas", + "New text file" : "Naujas tekstinis failas", + "Text file" : "Teksto failas", + "New folder" : "Naujas aplankas", + "Folder" : "Katalogas", + "From link" : "Iš nuorodos", + "Nothing in here. Upload something!" : "Čia tuščia. Įkelkite ką nors!", + "Download" : "Atsisiųsti", + "Upload too large" : "Įkėlimui failas per didelis", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje", + "Files are being scanned, please wait." : "Skenuojami failai, prašome palaukti." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php deleted file mode 100644 index e1c16c8a80f71328f89964f9ab34ae9ab49e3421..0000000000000000000000000000000000000000 --- a/apps/files/l10n/lt_LT.php +++ /dev/null @@ -1,81 +0,0 @@ - "Neatpažinta klaida", -"Could not move %s - File with this name already exists" => "Nepavyko perkelti %s - failas su tokiu pavadinimu jau egzistuoja", -"Could not move %s" => "Nepavyko perkelti %s", -"File name cannot be empty." => "Failo pavadinimas negali būti tuščias.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neleistinas pavadinimas, '\\', '/', '<', '>', ':', '\"', '|', '?' ir '*' yra neleidžiami.", -"The name %s is already used in the folder %s. Please choose a different name." => "Pavadinimas %s jau naudojamas aplanke %s. Prašome pasirinkti kitokį pavadinimą.", -"Not a valid source" => "Netinkamas šaltinis", -"Server is not allowed to open URLs, please check the server configuration" => "Serveriui neleidžiama atverti URL, prašome patikrinti serverio konfigūraciją", -"Error while downloading %s to %s" => "Klaida siunčiant %s į %s", -"Error when creating the file" => "Klaida kuriant failą", -"Folder name cannot be empty." => "Aplanko pavadinimas negali būti tuščias.", -"Error when creating the folder" => "Klaida kuriant aplanką", -"Unable to set upload directory." => "Nepavyksta nustatyti įkėlimų katalogo.", -"Invalid Token" => "Netinkamas ženklas", -"No file was uploaded. Unknown error" => "Failai nebuvo įkelti dėl nežinomos priežasties", -"There is no error, the file uploaded with success" => "Failas įkeltas sėkmingai, be klaidų", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Įkeliamas failas yra didesnis nei leidžia upload_max_filesize php.ini faile:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje.", -"The uploaded file was only partially uploaded" => "Failas buvo įkeltas tik dalinai", -"No file was uploaded" => "Nebuvo įkeltas joks failas", -"Missing a temporary folder" => "Nėra laikinojo katalogo", -"Failed to write to disk" => "Nepavyko įrašyti į diską", -"Not enough storage available" => "Nepakanka vietos serveryje", -"Upload failed. Could not find uploaded file" => "Įkėlimas nepavyko. Nepavyko rasti įkelto failo", -"Upload failed. Could not get file info." => "Įkėlimas nepavyko. Nepavyko gauti failo informacijos.", -"Invalid directory." => "Neteisingas aplankas", -"Files" => "Failai", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio", -"Upload cancelled." => "Įkėlimas atšauktas.", -"Could not get result from server." => "Nepavyko gauti rezultato iš serverio.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.", -"URL cannot be empty" => "URL negali būti tuščias.", -"{new_name} already exists" => "{new_name} jau egzistuoja", -"Could not create file" => "Neįmanoma sukurti failo", -"Could not create folder" => "Neįmanoma sukurti aplanko", -"Error fetching URL" => "Klauda gaunant URL", -"Share" => "Dalintis", -"Delete" => "Ištrinti", -"Unshare" => "Nebesidalinti", -"Delete permanently" => "Ištrinti negrįžtamai", -"Rename" => "Pervadinti", -"Pending" => "Laukiantis", -"Error moving file" => "Klaida perkeliant failą", -"Error" => "Klaida", -"Could not rename file" => "Neįmanoma pervadinti failo", -"Error deleting file." => "Klaida trinant failą.", -"Name" => "Pavadinimas", -"Size" => "Dydis", -"Modified" => "Pakeista", -"_%n folder_::_%n folders_" => array("%n aplankas","%n aplankai","%n aplankų"), -"_%n file_::_%n files_" => array("%n failas","%n failai","%n failų"), -"You don’t have permission to upload or create files here" => "Jūs neturite leidimo čia įkelti arba kurti failus", -"_Uploading %n file_::_Uploading %n files_" => array("Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų"), -"Your storage is full, files can not be updated or synced anymore!" => "Jūsų visa vieta serveryje užimta", -"Your storage is almost full ({usedSpacePercent}%)" => "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifravimas buvo išjungtas, bet Jūsų failai vis dar užšifruoti. Prašome eiti į asmeninius nustatymus ir iššifruoti savo failus.", -"{dirs} and {files}" => "{dirs} ir {files}", -"%s could not be renamed" => "%s negali būti pervadintas", -"File handling" => "Failų tvarkymas", -"Maximum upload size" => "Maksimalus įkeliamo failo dydis", -"max. possible: " => "maks. galima:", -"Save" => "Išsaugoti", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Naudokite šį adresą, kad pasiektumėte savo failus per WebDAV", -"New" => "Naujas", -"New text file" => "Naujas tekstinis failas", -"Text file" => "Teksto failas", -"New folder" => "Naujas aplankas", -"Folder" => "Katalogas", -"From link" => "Iš nuorodos", -"Nothing in here. Upload something!" => "Čia tuščia. Įkelkite ką nors!", -"Download" => "Atsisiųsti", -"Upload too large" => "Įkėlimui failas per didelis", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje", -"Files are being scanned, please wait." => "Skenuojami failai, prašome palaukti." -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js new file mode 100644 index 0000000000000000000000000000000000000000..d01f2894d941128fd0e101db7e5768a4a049340f --- /dev/null +++ b/apps/files/l10n/lv.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Nezināma kļūda", + "Could not move %s - File with this name already exists" : "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu", + "Could not move %s" : "Nevarēja pārvietot %s", + "File name cannot be empty." : "Datnes nosaukums nevar būt tukšs.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'.", + "Unable to set upload directory." : "Nevar uzstādīt augšupielādes mapi.", + "Invalid Token" : "Nepareiza pilnvara", + "No file was uploaded. Unknown error" : "Netika augšupielādēta neviena datne. Nezināma kļūda", + "There is no error, the file uploaded with success" : "Viss kārtībā, datne augšupielādēta veiksmīga", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā", + "The uploaded file was only partially uploaded" : "Augšupielādētā datne ir tikai daļēji augšupielādēta", + "No file was uploaded" : "Neviena datne netika augšupielādēta", + "Missing a temporary folder" : "Trūkst pagaidu mapes", + "Failed to write to disk" : "Neizdevās saglabāt diskā", + "Not enough storage available" : "Nav pietiekami daudz vietas", + "Invalid directory." : "Nederīga direktorija.", + "Files" : "Datnes", + "Upload cancelled." : "Augšupielāde ir atcelta.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.", + "{new_name} already exists" : "{new_name} jau eksistē", + "Share" : "Dalīties", + "Delete" : "Dzēst", + "Unshare" : "Pārtraukt dalīšanos", + "Delete permanently" : "Dzēst pavisam", + "Rename" : "Pārsaukt", + "Pending" : "Gaida savu kārtu", + "Error" : "Kļūda", + "Name" : "Nosaukums", + "Size" : "Izmērs", + "Modified" : "Mainīts", + "_%n folder_::_%n folders_" : ["%n mapes","%n mape","%n mapes"], + "_%n file_::_%n files_" : ["%n faili","%n fails","%n faili"], + "_Uploading %n file_::_Uploading %n files_" : ["%n","Augšupielāde %n failu","Augšupielāde %n failus"], + "Your storage is full, files can not be updated or synced anymore!" : "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!", + "Your storage is almost full ({usedSpacePercent}%)" : "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.", + "%s could not be renamed" : "%s nevar tikt pārsaukts", + "File handling" : "Datņu pārvaldība", + "Maximum upload size" : "Maksimālais datņu augšupielādes apjoms", + "max. possible: " : "maksimālais iespējamais:", + "Save" : "Saglabāt", + "WebDAV" : "WebDAV", + "New" : "Jauna", + "Text file" : "Teksta datne", + "New folder" : "Jauna mape", + "Folder" : "Mape", + "From link" : "No saites", + "Nothing in here. Upload something!" : "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!", + "Download" : "Lejupielādēt", + "Upload too large" : "Datne ir par lielu, lai to augšupielādētu", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu", + "Files are being scanned, please wait." : "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet." +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json new file mode 100644 index 0000000000000000000000000000000000000000..39a0caea5b2283c3edcfdc0d8b1794fc354a8152 --- /dev/null +++ b/apps/files/l10n/lv.json @@ -0,0 +1,56 @@ +{ "translations": { + "Unknown error" : "Nezināma kļūda", + "Could not move %s - File with this name already exists" : "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu", + "Could not move %s" : "Nevarēja pārvietot %s", + "File name cannot be empty." : "Datnes nosaukums nevar būt tukšs.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'.", + "Unable to set upload directory." : "Nevar uzstādīt augšupielādes mapi.", + "Invalid Token" : "Nepareiza pilnvara", + "No file was uploaded. Unknown error" : "Netika augšupielādēta neviena datne. Nezināma kļūda", + "There is no error, the file uploaded with success" : "Viss kārtībā, datne augšupielādēta veiksmīga", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā", + "The uploaded file was only partially uploaded" : "Augšupielādētā datne ir tikai daļēji augšupielādēta", + "No file was uploaded" : "Neviena datne netika augšupielādēta", + "Missing a temporary folder" : "Trūkst pagaidu mapes", + "Failed to write to disk" : "Neizdevās saglabāt diskā", + "Not enough storage available" : "Nav pietiekami daudz vietas", + "Invalid directory." : "Nederīga direktorija.", + "Files" : "Datnes", + "Upload cancelled." : "Augšupielāde ir atcelta.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.", + "{new_name} already exists" : "{new_name} jau eksistē", + "Share" : "Dalīties", + "Delete" : "Dzēst", + "Unshare" : "Pārtraukt dalīšanos", + "Delete permanently" : "Dzēst pavisam", + "Rename" : "Pārsaukt", + "Pending" : "Gaida savu kārtu", + "Error" : "Kļūda", + "Name" : "Nosaukums", + "Size" : "Izmērs", + "Modified" : "Mainīts", + "_%n folder_::_%n folders_" : ["%n mapes","%n mape","%n mapes"], + "_%n file_::_%n files_" : ["%n faili","%n fails","%n faili"], + "_Uploading %n file_::_Uploading %n files_" : ["%n","Augšupielāde %n failu","Augšupielāde %n failus"], + "Your storage is full, files can not be updated or synced anymore!" : "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!", + "Your storage is almost full ({usedSpacePercent}%)" : "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.", + "%s could not be renamed" : "%s nevar tikt pārsaukts", + "File handling" : "Datņu pārvaldība", + "Maximum upload size" : "Maksimālais datņu augšupielādes apjoms", + "max. possible: " : "maksimālais iespējamais:", + "Save" : "Saglabāt", + "WebDAV" : "WebDAV", + "New" : "Jauna", + "Text file" : "Teksta datne", + "New folder" : "Jauna mape", + "Folder" : "Mape", + "From link" : "No saites", + "Nothing in here. Upload something!" : "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!", + "Download" : "Lejupielādēt", + "Upload too large" : "Datne ir par lielu, lai to augšupielādētu", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu", + "Files are being scanned, please wait." : "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php deleted file mode 100644 index 3911fb806fb6789b0db2c459300a4ec779074253..0000000000000000000000000000000000000000 --- a/apps/files/l10n/lv.php +++ /dev/null @@ -1,57 +0,0 @@ - "Nezināma kļūda", -"Could not move %s - File with this name already exists" => "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu", -"Could not move %s" => "Nevarēja pārvietot %s", -"File name cannot be empty." => "Datnes nosaukums nevar būt tukšs.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'.", -"Unable to set upload directory." => "Nevar uzstādīt augšupielādes mapi.", -"Invalid Token" => "Nepareiza pilnvara", -"No file was uploaded. Unknown error" => "Netika augšupielādēta neviena datne. Nezināma kļūda", -"There is no error, the file uploaded with success" => "Viss kārtībā, datne augšupielādēta veiksmīga", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā", -"The uploaded file was only partially uploaded" => "Augšupielādētā datne ir tikai daļēji augšupielādēta", -"No file was uploaded" => "Neviena datne netika augšupielādēta", -"Missing a temporary folder" => "Trūkst pagaidu mapes", -"Failed to write to disk" => "Neizdevās saglabāt diskā", -"Not enough storage available" => "Nav pietiekami daudz vietas", -"Invalid directory." => "Nederīga direktorija.", -"Files" => "Datnes", -"Upload cancelled." => "Augšupielāde ir atcelta.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.", -"{new_name} already exists" => "{new_name} jau eksistē", -"Share" => "Dalīties", -"Delete" => "Dzēst", -"Unshare" => "Pārtraukt dalīšanos", -"Delete permanently" => "Dzēst pavisam", -"Rename" => "Pārsaukt", -"Pending" => "Gaida savu kārtu", -"Error" => "Kļūda", -"Name" => "Nosaukums", -"Size" => "Izmērs", -"Modified" => "Mainīts", -"_%n folder_::_%n folders_" => array("%n mapes","%n mape","%n mapes"), -"_%n file_::_%n files_" => array("%n faili","%n fails","%n faili"), -"_Uploading %n file_::_Uploading %n files_" => array("%n","Augšupielāde %n failu","Augšupielāde %n failus"), -"Your storage is full, files can not be updated or synced anymore!" => "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!", -"Your storage is almost full ({usedSpacePercent}%)" => "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifrēšana tika atslēgta, tomēr jūsu faili joprojām ir šifrēti. Atšifrēt failus var Personiskajos uzstādījumos.", -"%s could not be renamed" => "%s nevar tikt pārsaukts", -"File handling" => "Datņu pārvaldība", -"Maximum upload size" => "Maksimālais datņu augšupielādes apjoms", -"max. possible: " => "maksimālais iespējamais:", -"Save" => "Saglabāt", -"WebDAV" => "WebDAV", -"New" => "Jauna", -"Text file" => "Teksta datne", -"New folder" => "Jauna mape", -"Folder" => "Mape", -"From link" => "No saites", -"Nothing in here. Upload something!" => "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!", -"Download" => "Lejupielādēt", -"Upload too large" => "Datne ir par lielu, lai to augšupielādētu", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu", -"Files are being scanned, please wait." => "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet." -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"; diff --git a/apps/files/l10n/mg.js b/apps/files/l10n/mg.js new file mode 100644 index 0000000000000000000000000000000000000000..f085469f7317d44d6cbd5222227202b322fe5dcb --- /dev/null +++ b/apps/files/l10n/mg.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/mg.json b/apps/files/l10n/mg.json new file mode 100644 index 0000000000000000000000000000000000000000..ba9792477cd03d9f6dc76e4722b7e629162b8e06 --- /dev/null +++ b/apps/files/l10n/mg.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/mg.php b/apps/files/l10n/mg.php deleted file mode 100644 index 3c711e6b78a257d953a010dc2feba5ae4d139369..0000000000000000000000000000000000000000 --- a/apps/files/l10n/mg.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js new file mode 100644 index 0000000000000000000000000000000000000000..57a717ceaf60d8e38227ef3eb22bb9be90283c5e --- /dev/null +++ b/apps/files/l10n/mk.js @@ -0,0 +1,70 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Непозната грешка", + "Could not move %s - File with this name already exists" : "Не можам да го преместам %s - Датотека со такво име веќе постои", + "Could not move %s" : "Не можам да ги префрлам %s", + "File name cannot be empty." : "Името на датотеката не може да биде празно.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Неправилно име. , '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не се дозволени.", + "Not a valid source" : "Не е валиден извор", + "Error while downloading %s to %s" : "Грешка додека преземам %s to %s", + "Error when creating the file" : "Грешка при креирање на датотека", + "Folder name cannot be empty." : "Името на папката не може да биде празно.", + "Error when creating the folder" : "Грешка при креирање на папка", + "Unable to set upload directory." : "Не може да се постави папката за префрлање на податоци.", + "Invalid Token" : "Грешен токен", + "No file was uploaded. Unknown error" : "Ниту еден фајл не се вчита. Непозната грешка", + "There is no error, the file uploaded with success" : "Датотеката беше успешно подигната.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата", + "The uploaded file was only partially uploaded" : "Датотеката беше само делумно подигната.", + "No file was uploaded" : "Не беше подигната датотека.", + "Missing a temporary folder" : "Недостасува привремена папка", + "Failed to write to disk" : "Неуспеав да запишам на диск", + "Not enough storage available" : "Нема доволно слободен сториџ", + "Upload failed. Could not find uploaded file" : "Префрлањето е неуспешно. Не можам да го најдам префрлената датотека.", + "Invalid directory." : "Погрешна папка.", + "Files" : "Датотеки", + "Upload cancelled." : "Преземањето е прекинато.", + "Could not get result from server." : "Не можам да добијам резултат од серверот.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.", + "URL cannot be empty" : "URL-то не може да биде празно", + "{new_name} already exists" : "{new_name} веќе постои", + "Could not create file" : "Не множам да креирам датотека", + "Could not create folder" : "Не можам да креирам папка", + "Share" : "Сподели", + "Delete" : "Избриши", + "Unshare" : "Не споделувај", + "Delete permanently" : "Трајно избришани", + "Rename" : "Преименувај", + "Pending" : "Чека", + "Error moving file" : "Грешка при префрлање на датотека", + "Error" : "Грешка", + "Could not rename file" : "Не можам да ја преименувам датотеката", + "Name" : "Име", + "Size" : "Големина", + "Modified" : "Променето", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Your storage is full, files can not be updated or synced anymore!" : "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!", + "Your storage is almost full ({usedSpacePercent}%)" : "Вашиот сториџ е скоро полн ({usedSpacePercent}%)", + "{dirs} and {files}" : "{dirs} и {files}", + "%s could not be renamed" : "%s не може да биде преименуван", + "File handling" : "Ракување со датотеки", + "Maximum upload size" : "Максимална големина за подигање", + "max. possible: " : "макс. можно:", + "Save" : "Сними", + "WebDAV" : "WebDAV", + "New" : "Ново", + "Text file" : "Текстуална датотека", + "New folder" : "Нова папка", + "Folder" : "Папка", + "From link" : "Од врска", + "Nothing in here. Upload something!" : "Тука нема ништо. Снимете нешто!", + "Download" : "Преземи", + "Upload too large" : "Фајлот кој се вчитува е преголем", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.", + "Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте." +}, +"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json new file mode 100644 index 0000000000000000000000000000000000000000..2d3df73a75f997b5717aac84a6a0eb0783597d01 --- /dev/null +++ b/apps/files/l10n/mk.json @@ -0,0 +1,68 @@ +{ "translations": { + "Unknown error" : "Непозната грешка", + "Could not move %s - File with this name already exists" : "Не можам да го преместам %s - Датотека со такво име веќе постои", + "Could not move %s" : "Не можам да ги префрлам %s", + "File name cannot be empty." : "Името на датотеката не може да биде празно.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Неправилно име. , '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не се дозволени.", + "Not a valid source" : "Не е валиден извор", + "Error while downloading %s to %s" : "Грешка додека преземам %s to %s", + "Error when creating the file" : "Грешка при креирање на датотека", + "Folder name cannot be empty." : "Името на папката не може да биде празно.", + "Error when creating the folder" : "Грешка при креирање на папка", + "Unable to set upload directory." : "Не може да се постави папката за префрлање на податоци.", + "Invalid Token" : "Грешен токен", + "No file was uploaded. Unknown error" : "Ниту еден фајл не се вчита. Непозната грешка", + "There is no error, the file uploaded with success" : "Датотеката беше успешно подигната.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата", + "The uploaded file was only partially uploaded" : "Датотеката беше само делумно подигната.", + "No file was uploaded" : "Не беше подигната датотека.", + "Missing a temporary folder" : "Недостасува привремена папка", + "Failed to write to disk" : "Неуспеав да запишам на диск", + "Not enough storage available" : "Нема доволно слободен сториџ", + "Upload failed. Could not find uploaded file" : "Префрлањето е неуспешно. Не можам да го најдам префрлената датотека.", + "Invalid directory." : "Погрешна папка.", + "Files" : "Датотеки", + "Upload cancelled." : "Преземањето е прекинато.", + "Could not get result from server." : "Не можам да добијам резултат од серверот.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.", + "URL cannot be empty" : "URL-то не може да биде празно", + "{new_name} already exists" : "{new_name} веќе постои", + "Could not create file" : "Не множам да креирам датотека", + "Could not create folder" : "Не можам да креирам папка", + "Share" : "Сподели", + "Delete" : "Избриши", + "Unshare" : "Не споделувај", + "Delete permanently" : "Трајно избришани", + "Rename" : "Преименувај", + "Pending" : "Чека", + "Error moving file" : "Грешка при префрлање на датотека", + "Error" : "Грешка", + "Could not rename file" : "Не можам да ја преименувам датотеката", + "Name" : "Име", + "Size" : "Големина", + "Modified" : "Променето", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Your storage is full, files can not be updated or synced anymore!" : "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!", + "Your storage is almost full ({usedSpacePercent}%)" : "Вашиот сториџ е скоро полн ({usedSpacePercent}%)", + "{dirs} and {files}" : "{dirs} и {files}", + "%s could not be renamed" : "%s не може да биде преименуван", + "File handling" : "Ракување со датотеки", + "Maximum upload size" : "Максимална големина за подигање", + "max. possible: " : "макс. можно:", + "Save" : "Сними", + "WebDAV" : "WebDAV", + "New" : "Ново", + "Text file" : "Текстуална датотека", + "New folder" : "Нова папка", + "Folder" : "Папка", + "From link" : "Од врска", + "Nothing in here. Upload something!" : "Тука нема ништо. Снимете нешто!", + "Download" : "Преземи", + "Upload too large" : "Фајлот кој се вчитува е преголем", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.", + "Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте." +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" +} \ No newline at end of file diff --git a/apps/files/l10n/mk.php b/apps/files/l10n/mk.php deleted file mode 100644 index 395b2b4f0cc726ab9dae5ba89fea56b1f2dc682e..0000000000000000000000000000000000000000 --- a/apps/files/l10n/mk.php +++ /dev/null @@ -1,69 +0,0 @@ - "Непозната грешка", -"Could not move %s - File with this name already exists" => "Не можам да го преместам %s - Датотека со такво име веќе постои", -"Could not move %s" => "Не можам да ги префрлам %s", -"File name cannot be empty." => "Името на датотеката не може да биде празно.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправилно име. , '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не се дозволени.", -"Not a valid source" => "Не е валиден извор", -"Error while downloading %s to %s" => "Грешка додека преземам %s to %s", -"Error when creating the file" => "Грешка при креирање на датотека", -"Folder name cannot be empty." => "Името на папката не може да биде празно.", -"Error when creating the folder" => "Грешка при креирање на папка", -"Unable to set upload directory." => "Не може да се постави папката за префрлање на податоци.", -"Invalid Token" => "Грешен токен", -"No file was uploaded. Unknown error" => "Ниту еден фајл не се вчита. Непозната грешка", -"There is no error, the file uploaded with success" => "Датотеката беше успешно подигната.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата", -"The uploaded file was only partially uploaded" => "Датотеката беше само делумно подигната.", -"No file was uploaded" => "Не беше подигната датотека.", -"Missing a temporary folder" => "Недостасува привремена папка", -"Failed to write to disk" => "Неуспеав да запишам на диск", -"Not enough storage available" => "Нема доволно слободен сториџ", -"Upload failed. Could not find uploaded file" => "Префрлањето е неуспешно. Не можам да го најдам префрлената датотека.", -"Invalid directory." => "Погрешна папка.", -"Files" => "Датотеки", -"Upload cancelled." => "Преземањето е прекинато.", -"Could not get result from server." => "Не можам да добијам резултат од серверот.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.", -"URL cannot be empty" => "URL-то не може да биде празно", -"{new_name} already exists" => "{new_name} веќе постои", -"Could not create file" => "Не множам да креирам датотека", -"Could not create folder" => "Не можам да креирам папка", -"Share" => "Сподели", -"Delete" => "Избриши", -"Unshare" => "Не споделувај", -"Delete permanently" => "Трајно избришани", -"Rename" => "Преименувај", -"Pending" => "Чека", -"Error moving file" => "Грешка при префрлање на датотека", -"Error" => "Грешка", -"Could not rename file" => "Не можам да ја преименувам датотеката", -"Name" => "Име", -"Size" => "Големина", -"Modified" => "Променето", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Your storage is full, files can not be updated or synced anymore!" => "Вашиот сториџ е полн, датотеките веќе не можат да се освежуваат или синхронизираат!", -"Your storage is almost full ({usedSpacePercent}%)" => "Вашиот сториџ е скоро полн ({usedSpacePercent}%)", -"{dirs} and {files}" => "{dirs} и {files}", -"%s could not be renamed" => "%s не може да биде преименуван", -"File handling" => "Ракување со датотеки", -"Maximum upload size" => "Максимална големина за подигање", -"max. possible: " => "макс. можно:", -"Save" => "Сними", -"WebDAV" => "WebDAV", -"New" => "Ново", -"Text file" => "Текстуална датотека", -"New folder" => "Нова папка", -"Folder" => "Папка", -"From link" => "Од врска", -"Nothing in here. Upload something!" => "Тука нема ништо. Снимете нешто!", -"Download" => "Преземи", -"Upload too large" => "Фајлот кој се вчитува е преголем", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.", -"Files are being scanned, please wait." => "Се скенираат датотеки, ве молам почекајте." -); -$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/apps/files/l10n/ml.js b/apps/files/l10n/ml.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/ml.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ml.json b/apps/files/l10n/ml.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/ml.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ml.php b/apps/files/l10n/ml.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ml.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ml_IN.js b/apps/files/l10n/ml_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..a7af6e02c735aafcbecf496cfd737f4eef5028b4 --- /dev/null +++ b/apps/files/l10n/ml_IN.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files", + { + "Files" : "ഫയലുകൾ", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ml_IN.json b/apps/files/l10n/ml_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..e140756a6bd4626d5ac67b9bf40436a56eb50a5d --- /dev/null +++ b/apps/files/l10n/ml_IN.json @@ -0,0 +1,7 @@ +{ "translations": { + "Files" : "ഫയലുകൾ", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ml_IN.php b/apps/files/l10n/ml_IN.php deleted file mode 100644 index 9cf8ea034aba9e30fff862490af876b938bcfc8d..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ml_IN.php +++ /dev/null @@ -1,8 +0,0 @@ - "ഫയലുകൾ", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/mn.js b/apps/files/l10n/mn.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/mn.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/mn.json b/apps/files/l10n/mn.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/mn.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/mn.php b/apps/files/l10n/mn.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/mn.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ms_MY.js b/apps/files/l10n/ms_MY.js new file mode 100644 index 0000000000000000000000000000000000000000..50e95b4bca2445027abdf0c68ddec11bde155ea6 --- /dev/null +++ b/apps/files/l10n/ms_MY.js @@ -0,0 +1,37 @@ +OC.L10N.register( + "files", + { + "No file was uploaded. Unknown error" : "Tiada fail dimuatnaik. Ralat tidak diketahui.", + "There is no error, the file uploaded with success" : "Tiada ralat berlaku, fail berjaya dimuatnaik", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML", + "The uploaded file was only partially uploaded" : "Fail yang dimuatnaik tidak lengkap", + "No file was uploaded" : "Tiada fail dimuatnaik", + "Missing a temporary folder" : "Direktori sementara hilang", + "Failed to write to disk" : "Gagal untuk disimpan", + "Files" : "Fail-fail", + "Upload cancelled." : "Muatnaik dibatalkan.", + "Share" : "Kongsi", + "Delete" : "Padam", + "Rename" : "Namakan", + "Pending" : "Dalam proses", + "Error" : "Ralat", + "Name" : "Nama", + "Size" : "Saiz", + "Modified" : "Dimodifikasi", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "File handling" : "Pengendalian fail", + "Maximum upload size" : "Saiz maksimum muat naik", + "max. possible: " : "maksimum:", + "Save" : "Simpan", + "New" : "Baru", + "Text file" : "Fail teks", + "Folder" : "Folder", + "Nothing in here. Upload something!" : "Tiada apa-apa di sini. Muat naik sesuatu!", + "Download" : "Muat turun", + "Upload too large" : "Muatnaik terlalu besar", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server", + "Files are being scanned, please wait." : "Fail sedang diimbas, harap bersabar." +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ms_MY.json b/apps/files/l10n/ms_MY.json new file mode 100644 index 0000000000000000000000000000000000000000..6f085a76a689f682bc261f2554bebeac7c7cb00d --- /dev/null +++ b/apps/files/l10n/ms_MY.json @@ -0,0 +1,35 @@ +{ "translations": { + "No file was uploaded. Unknown error" : "Tiada fail dimuatnaik. Ralat tidak diketahui.", + "There is no error, the file uploaded with success" : "Tiada ralat berlaku, fail berjaya dimuatnaik", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML", + "The uploaded file was only partially uploaded" : "Fail yang dimuatnaik tidak lengkap", + "No file was uploaded" : "Tiada fail dimuatnaik", + "Missing a temporary folder" : "Direktori sementara hilang", + "Failed to write to disk" : "Gagal untuk disimpan", + "Files" : "Fail-fail", + "Upload cancelled." : "Muatnaik dibatalkan.", + "Share" : "Kongsi", + "Delete" : "Padam", + "Rename" : "Namakan", + "Pending" : "Dalam proses", + "Error" : "Ralat", + "Name" : "Nama", + "Size" : "Saiz", + "Modified" : "Dimodifikasi", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "File handling" : "Pengendalian fail", + "Maximum upload size" : "Saiz maksimum muat naik", + "max. possible: " : "maksimum:", + "Save" : "Simpan", + "New" : "Baru", + "Text file" : "Fail teks", + "Folder" : "Folder", + "Nothing in here. Upload something!" : "Tiada apa-apa di sini. Muat naik sesuatu!", + "Download" : "Muat turun", + "Upload too large" : "Muatnaik terlalu besar", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server", + "Files are being scanned, please wait." : "Fail sedang diimbas, harap bersabar." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/ms_MY.php b/apps/files/l10n/ms_MY.php deleted file mode 100644 index 32bf46bb814cabce5528968e13f9a3c63552ca1a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ms_MY.php +++ /dev/null @@ -1,36 +0,0 @@ - "Tiada fail dimuatnaik. Ralat tidak diketahui.", -"There is no error, the file uploaded with success" => "Tiada ralat berlaku, fail berjaya dimuatnaik", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML", -"The uploaded file was only partially uploaded" => "Fail yang dimuatnaik tidak lengkap", -"No file was uploaded" => "Tiada fail dimuatnaik", -"Missing a temporary folder" => "Direktori sementara hilang", -"Failed to write to disk" => "Gagal untuk disimpan", -"Files" => "Fail-fail", -"Upload cancelled." => "Muatnaik dibatalkan.", -"Share" => "Kongsi", -"Delete" => "Padam", -"Rename" => "Namakan", -"Pending" => "Dalam proses", -"Error" => "Ralat", -"Name" => "Nama", -"Size" => "Saiz", -"Modified" => "Dimodifikasi", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"File handling" => "Pengendalian fail", -"Maximum upload size" => "Saiz maksimum muat naik", -"max. possible: " => "maksimum:", -"Save" => "Simpan", -"New" => "Baru", -"Text file" => "Fail teks", -"Folder" => "Folder", -"Nothing in here. Upload something!" => "Tiada apa-apa di sini. Muat naik sesuatu!", -"Download" => "Muat turun", -"Upload too large" => "Muatnaik terlalu besar", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server", -"Files are being scanned, please wait." => "Fail sedang diimbas, harap bersabar." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/mt_MT.js b/apps/files/l10n/mt_MT.js new file mode 100644 index 0000000000000000000000000000000000000000..82ce643895a4fca85488ff989f6193bf22f98cf1 --- /dev/null +++ b/apps/files/l10n/mt_MT.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["","","",""], + "_%n file_::_%n files_" : ["","","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","","",""] +}, +"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"); diff --git a/apps/files/l10n/mt_MT.json b/apps/files/l10n/mt_MT.json new file mode 100644 index 0000000000000000000000000000000000000000..8bcf5b69eab3ba61fe6818fa3a420233b88cac02 --- /dev/null +++ b/apps/files/l10n/mt_MT.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["","","",""], + "_%n file_::_%n files_" : ["","","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","","",""] +},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);" +} \ No newline at end of file diff --git a/apps/files/l10n/mt_MT.php b/apps/files/l10n/mt_MT.php deleted file mode 100644 index 2a3be76cb7f343409400dca863ead89a2dd047dc..0000000000000000000000000000000000000000 --- a/apps/files/l10n/mt_MT.php +++ /dev/null @@ -1,7 +0,0 @@ - array("","","",""), -"_%n file_::_%n files_" => array("","","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","","","") -); -$PLURAL_FORMS = "nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"; diff --git a/apps/files/l10n/my_MM.js b/apps/files/l10n/my_MM.js new file mode 100644 index 0000000000000000000000000000000000000000..0a7ff3bb31cbf61653f639702f44b32727dfea7a --- /dev/null +++ b/apps/files/l10n/my_MM.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files", + { + "Files" : "ဖိုင်များ", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Download" : "ဒေါင်းလုတ်" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/my_MM.json b/apps/files/l10n/my_MM.json new file mode 100644 index 0000000000000000000000000000000000000000..d4b9b3d0fa87d200fcd14ea1e59f0c86d285c3d8 --- /dev/null +++ b/apps/files/l10n/my_MM.json @@ -0,0 +1,8 @@ +{ "translations": { + "Files" : "ဖိုင်များ", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Download" : "ဒေါင်းလုတ်" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/my_MM.php b/apps/files/l10n/my_MM.php deleted file mode 100644 index 497ecc0949250ba65a5512e9fed53b5484a4f244..0000000000000000000000000000000000000000 --- a/apps/files/l10n/my_MM.php +++ /dev/null @@ -1,9 +0,0 @@ - "ဖိုင်များ", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"Download" => "ဒေါင်းလုတ်" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..d9c59b1bdd73a962ccafdf4b0ca75a20ca7d7d3e --- /dev/null +++ b/apps/files/l10n/nb_NO.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Lagringsplass ikke tilgjengelig", + "Storage invalid" : "Lagringsplass ugyldig", + "Unknown error" : "Ukjent feil", + "Could not move %s - File with this name already exists" : "Kan ikke flytte %s - En fil med samme navn finnes allerede", + "Could not move %s" : "Kunne ikke flytte %s", + "Permission denied" : "Tilgang nektet", + "File name cannot be empty." : "Filnavn kan ikke være tomt.", + "\"%s\" is an invalid file name." : "\"%s\" er et ugyldig filnavn.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt.", + "The target folder has been moved or deleted." : "Målmappen er blitt flyttet eller slettet.", + "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s brukes allerede i mappen %s. Velg et annet navn.", + "Not a valid source" : "Ikke en gyldig kilde", + "Server is not allowed to open URLs, please check the server configuration" : "Serveren har ikke lov til å åpne URL-er. Sjekk konfigurasjon av server", + "The file exceeds your quota by %s" : "Filen overstiger din kvote med %s", + "Error while downloading %s to %s" : "Feil ved nedlasting av %s til %s", + "Error when creating the file" : "Feil ved oppretting av filen", + "Folder name cannot be empty." : "Mappenavn kan ikke være tomt.", + "Error when creating the folder" : "Feil ved oppretting av mappen", + "Unable to set upload directory." : "Kunne ikke sette opplastingskatalog.", + "Invalid Token" : "Ugyldig nøkkel", + "No file was uploaded. Unknown error" : "Ingen filer ble lastet opp. Ukjent feil.", + "There is no error, the file uploaded with success" : "Pust ut, ingen feil. Filen ble lastet opp problemfritt", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Filstørrelsen overskrider maksgrensedirektivet upload_max_filesize i php.ini-konfigurasjonen.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp var større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet.", + "The uploaded file was only partially uploaded" : "Filen du prøvde å laste opp ble kun delvis lastet opp", + "No file was uploaded" : "Ingen filer ble lastet opp", + "Missing a temporary folder" : "Mangler midlertidig mappe", + "Failed to write to disk" : "Klarte ikke å skrive til disk", + "Not enough storage available" : "Ikke nok lagringsplass", + "Upload failed. Could not find uploaded file" : "Opplasting feilet. Fant ikke opplastet fil.", + "Upload failed. Could not get file info." : "Opplasting feilet. Klarte ikke å finne informasjon om fil.", + "Invalid directory." : "Ugyldig katalog.", + "Files" : "Filer", + "All files" : "Alle filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke laste opp {filename} fordi det er en mappe eller har 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "Total filstørrelse {size1} overstiger grense for opplasting {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig", + "Upload cancelled." : "Opplasting avbrutt.", + "Could not get result from server." : "Fikk ikke resultat fra serveren.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.", + "URL cannot be empty" : "URL kan ikke være tom", + "{new_name} already exists" : "{new_name} finnes allerede", + "Could not create file" : "Klarte ikke å opprette fil", + "Could not create folder" : "Klarte ikke å opprette mappe", + "Error fetching URL" : "Feil ved henting av URL", + "Share" : "Del", + "Delete" : "Slett", + "Disconnect storage" : "Koble fra lagring", + "Unshare" : "Avslutt deling", + "Delete permanently" : "Slett permanent", + "Rename" : "Gi nytt navn", + "Pending" : "Ventende", + "Error moving file." : "Feil ved flytting av fil.", + "Error moving file" : "Feil ved flytting av fil", + "Error" : "Feil", + "Could not rename file" : "Klarte ikke å gi nytt navn til fil", + "Error deleting file." : "Feil ved sletting av fil.", + "Name" : "Navn", + "Size" : "Størrelse", + "Modified" : "Endret", + "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "You don’t have permission to upload or create files here" : "Du har ikke tillatelse til å laste opp eller opprette filer her", + "_Uploading %n file_::_Uploading %n files_" : ["Laster opp %n fil","Laster opp %n filer"], + "\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.", + "Your storage is full, files can not be updated or synced anymore!" : "Lagringsplass er oppbrukt, filer kan ikke lenger oppdateres eller synkroniseres!", + "Your storage is almost full ({usedSpacePercent}%)" : "Lagringsplass er nesten brukt opp ([usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.", + "{dirs} and {files}" : "{dirs} og {files}", + "%s could not be renamed as it has been deleted" : "%s kunne ikke gis nytt navn da den er blitt slettet", + "%s could not be renamed" : "Kunne ikke gi nytt navn til %s", + "Upload (max. %s)" : "Opplasting (maks. %s)", + "File handling" : "Filhåndtering", + "Maximum upload size" : "Maksimum opplastingsstørrelse", + "max. possible: " : "max. mulige:", + "Save" : "Lagre", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Bruk denne adressen for å få tilgang til filene dine via WebDAV", + "New" : "Ny", + "New text file" : "Ny tekstfil", + "Text file" : "Tekstfil", + "New folder" : "Ny mappe", + "Folder" : "Mappe", + "From link" : "Fra lenke", + "Nothing in here. Upload something!" : "Ingenting her. Last opp noe!", + "Download" : "Last ned", + "Upload too large" : "Filen er for stor", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store for å laste opp til denne serveren.", + "Files are being scanned, please wait." : "Skanner filer, vennligst vent.", + "Currently scanning" : "Skanner nå" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..ab3dfc782e6b8e83d67ee23f42a6ae6368bb1ce9 --- /dev/null +++ b/apps/files/l10n/nb_NO.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Lagringsplass ikke tilgjengelig", + "Storage invalid" : "Lagringsplass ugyldig", + "Unknown error" : "Ukjent feil", + "Could not move %s - File with this name already exists" : "Kan ikke flytte %s - En fil med samme navn finnes allerede", + "Could not move %s" : "Kunne ikke flytte %s", + "Permission denied" : "Tilgang nektet", + "File name cannot be empty." : "Filnavn kan ikke være tomt.", + "\"%s\" is an invalid file name." : "\"%s\" er et ugyldig filnavn.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt.", + "The target folder has been moved or deleted." : "Målmappen er blitt flyttet eller slettet.", + "The name %s is already used in the folder %s. Please choose a different name." : "Navnet %s brukes allerede i mappen %s. Velg et annet navn.", + "Not a valid source" : "Ikke en gyldig kilde", + "Server is not allowed to open URLs, please check the server configuration" : "Serveren har ikke lov til å åpne URL-er. Sjekk konfigurasjon av server", + "The file exceeds your quota by %s" : "Filen overstiger din kvote med %s", + "Error while downloading %s to %s" : "Feil ved nedlasting av %s til %s", + "Error when creating the file" : "Feil ved oppretting av filen", + "Folder name cannot be empty." : "Mappenavn kan ikke være tomt.", + "Error when creating the folder" : "Feil ved oppretting av mappen", + "Unable to set upload directory." : "Kunne ikke sette opplastingskatalog.", + "Invalid Token" : "Ugyldig nøkkel", + "No file was uploaded. Unknown error" : "Ingen filer ble lastet opp. Ukjent feil.", + "There is no error, the file uploaded with success" : "Pust ut, ingen feil. Filen ble lastet opp problemfritt", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Filstørrelsen overskrider maksgrensedirektivet upload_max_filesize i php.ini-konfigurasjonen.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp var større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet.", + "The uploaded file was only partially uploaded" : "Filen du prøvde å laste opp ble kun delvis lastet opp", + "No file was uploaded" : "Ingen filer ble lastet opp", + "Missing a temporary folder" : "Mangler midlertidig mappe", + "Failed to write to disk" : "Klarte ikke å skrive til disk", + "Not enough storage available" : "Ikke nok lagringsplass", + "Upload failed. Could not find uploaded file" : "Opplasting feilet. Fant ikke opplastet fil.", + "Upload failed. Could not get file info." : "Opplasting feilet. Klarte ikke å finne informasjon om fil.", + "Invalid directory." : "Ugyldig katalog.", + "Files" : "Filer", + "All files" : "Alle filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke laste opp {filename} fordi det er en mappe eller har 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "Total filstørrelse {size1} overstiger grense for opplasting {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig", + "Upload cancelled." : "Opplasting avbrutt.", + "Could not get result from server." : "Fikk ikke resultat fra serveren.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.", + "URL cannot be empty" : "URL kan ikke være tom", + "{new_name} already exists" : "{new_name} finnes allerede", + "Could not create file" : "Klarte ikke å opprette fil", + "Could not create folder" : "Klarte ikke å opprette mappe", + "Error fetching URL" : "Feil ved henting av URL", + "Share" : "Del", + "Delete" : "Slett", + "Disconnect storage" : "Koble fra lagring", + "Unshare" : "Avslutt deling", + "Delete permanently" : "Slett permanent", + "Rename" : "Gi nytt navn", + "Pending" : "Ventende", + "Error moving file." : "Feil ved flytting av fil.", + "Error moving file" : "Feil ved flytting av fil", + "Error" : "Feil", + "Could not rename file" : "Klarte ikke å gi nytt navn til fil", + "Error deleting file." : "Feil ved sletting av fil.", + "Name" : "Navn", + "Size" : "Størrelse", + "Modified" : "Endret", + "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "You don’t have permission to upload or create files here" : "Du har ikke tillatelse til å laste opp eller opprette filer her", + "_Uploading %n file_::_Uploading %n files_" : ["Laster opp %n fil","Laster opp %n filer"], + "\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.", + "Your storage is full, files can not be updated or synced anymore!" : "Lagringsplass er oppbrukt, filer kan ikke lenger oppdateres eller synkroniseres!", + "Your storage is almost full ({usedSpacePercent}%)" : "Lagringsplass er nesten brukt opp ([usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.", + "{dirs} and {files}" : "{dirs} og {files}", + "%s could not be renamed as it has been deleted" : "%s kunne ikke gis nytt navn da den er blitt slettet", + "%s could not be renamed" : "Kunne ikke gi nytt navn til %s", + "Upload (max. %s)" : "Opplasting (maks. %s)", + "File handling" : "Filhåndtering", + "Maximum upload size" : "Maksimum opplastingsstørrelse", + "max. possible: " : "max. mulige:", + "Save" : "Lagre", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Bruk denne adressen for å få tilgang til filene dine via WebDAV", + "New" : "Ny", + "New text file" : "Ny tekstfil", + "Text file" : "Tekstfil", + "New folder" : "Ny mappe", + "Folder" : "Mappe", + "From link" : "Fra lenke", + "Nothing in here. Upload something!" : "Ingenting her. Last opp noe!", + "Download" : "Last ned", + "Upload too large" : "Filen er for stor", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store for å laste opp til denne serveren.", + "Files are being scanned, please wait." : "Skanner filer, vennligst vent.", + "Currently scanning" : "Skanner nå" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php deleted file mode 100644 index 259fc0beec9cf5c28187ff8b9d428c0be5f958c7..0000000000000000000000000000000000000000 --- a/apps/files/l10n/nb_NO.php +++ /dev/null @@ -1,96 +0,0 @@ - "Lagringsplass ikke tilgjengelig", -"Storage invalid" => "Lagringsplass ugyldig", -"Unknown error" => "Ukjent feil", -"Could not move %s - File with this name already exists" => "Kan ikke flytte %s - En fil med samme navn finnes allerede", -"Could not move %s" => "Kunne ikke flytte %s", -"Permission denied" => "Tilgang nektet", -"File name cannot be empty." => "Filnavn kan ikke være tomt.", -"\"%s\" is an invalid file name." => "\"%s\" er et ugyldig filnavn.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt.", -"The target folder has been moved or deleted." => "Målmappen er blitt flyttet eller slettet.", -"The name %s is already used in the folder %s. Please choose a different name." => "Navnet %s brukes allerede i mappen %s. Velg et annet navn.", -"Not a valid source" => "Ikke en gyldig kilde", -"Server is not allowed to open URLs, please check the server configuration" => "Serveren har ikke lov til å åpne URL-er. Sjekk konfigurasjon av server", -"The file exceeds your quota by %s" => "Filen overstiger din kvote med %s", -"Error while downloading %s to %s" => "Feil ved nedlasting av %s til %s", -"Error when creating the file" => "Feil ved oppretting av filen", -"Folder name cannot be empty." => "Mappenavn kan ikke være tomt.", -"Error when creating the folder" => "Feil ved oppretting av mappen", -"Unable to set upload directory." => "Kunne ikke sette opplastingskatalog.", -"Invalid Token" => "Ugyldig nøkkel", -"No file was uploaded. Unknown error" => "Ingen filer ble lastet opp. Ukjent feil.", -"There is no error, the file uploaded with success" => "Pust ut, ingen feil. Filen ble lastet opp problemfritt", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Filstørrelsen overskrider maksgrensedirektivet upload_max_filesize i php.ini-konfigurasjonen.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Filen du prøvde å laste opp var større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet.", -"The uploaded file was only partially uploaded" => "Filen du prøvde å laste opp ble kun delvis lastet opp", -"No file was uploaded" => "Ingen filer ble lastet opp", -"Missing a temporary folder" => "Mangler midlertidig mappe", -"Failed to write to disk" => "Klarte ikke å skrive til disk", -"Not enough storage available" => "Ikke nok lagringsplass", -"Upload failed. Could not find uploaded file" => "Opplasting feilet. Fant ikke opplastet fil.", -"Upload failed. Could not get file info." => "Opplasting feilet. Klarte ikke å finne informasjon om fil.", -"Invalid directory." => "Ugyldig katalog.", -"Files" => "Filer", -"All files" => "Alle filer", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Kan ikke laste opp {filename} fordi det er en mappe eller har 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "Total filstørrelse {size1} overstiger grense for opplasting {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig", -"Upload cancelled." => "Opplasting avbrutt.", -"Could not get result from server." => "Fikk ikke resultat fra serveren.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.", -"URL cannot be empty" => "URL kan ikke være tom", -"{new_name} already exists" => "{new_name} finnes allerede", -"Could not create file" => "Klarte ikke å opprette fil", -"Could not create folder" => "Klarte ikke å opprette mappe", -"Error fetching URL" => "Feil ved henting av URL", -"Share" => "Del", -"Delete" => "Slett", -"Disconnect storage" => "Koble fra lagring", -"Unshare" => "Avslutt deling", -"Delete permanently" => "Slett permanent", -"Rename" => "Gi nytt navn", -"Pending" => "Ventende", -"Error moving file." => "Feil ved flytting av fil.", -"Error moving file" => "Feil ved flytting av fil", -"Error" => "Feil", -"Could not rename file" => "Klarte ikke å gi nytt navn til fil", -"Error deleting file." => "Feil ved sletting av fil.", -"Name" => "Navn", -"Size" => "Størrelse", -"Modified" => "Endret", -"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"), -"_%n file_::_%n files_" => array("%n fil","%n filer"), -"You don’t have permission to upload or create files here" => "Du har ikke tillatelse til å laste opp eller opprette filer her", -"_Uploading %n file_::_Uploading %n files_" => array("Laster opp %n fil","Laster opp %n filer"), -"\"{name}\" is an invalid file name." => "\"{name}\" er et uglydig filnavn.", -"Your storage is full, files can not be updated or synced anymore!" => "Lagringsplass er oppbrukt, filer kan ikke lenger oppdateres eller synkroniseres!", -"Your storage is almost full ({usedSpacePercent}%)" => "Lagringsplass er nesten brukt opp ([usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Kryptering ble slått av men filene dine er fremdeles kryptert. Gå til dine personlige innstillinger for å dekryptere filene dine.", -"{dirs} and {files}" => "{dirs} og {files}", -"%s could not be renamed as it has been deleted" => "%s kunne ikke gis nytt navn da den er blitt slettet", -"%s could not be renamed" => "Kunne ikke gi nytt navn til %s", -"Upload (max. %s)" => "Opplasting (maks. %s)", -"File handling" => "Filhåndtering", -"Maximum upload size" => "Maksimum opplastingsstørrelse", -"max. possible: " => "max. mulige:", -"Save" => "Lagre", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Bruk denne adressen for å få tilgang til filene dine via WebDAV", -"New" => "Ny", -"New text file" => "Ny tekstfil", -"Text file" => "Tekstfil", -"New folder" => "Ny mappe", -"Folder" => "Mappe", -"From link" => "Fra lenke", -"Nothing in here. Upload something!" => "Ingenting her. Last opp noe!", -"Download" => "Last ned", -"Upload too large" => "Filen er for stor", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er for store for å laste opp til denne serveren.", -"Files are being scanned, please wait." => "Skanner filer, vennligst vent.", -"Currently scanning" => "Skanner nå" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/nds.js b/apps/files/l10n/nds.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/nds.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/nds.json b/apps/files/l10n/nds.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/nds.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/nds.php b/apps/files/l10n/nds.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/nds.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ne.js b/apps/files/l10n/ne.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/ne.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ne.json b/apps/files/l10n/ne.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/ne.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ne.php b/apps/files/l10n/ne.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ne.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js new file mode 100644 index 0000000000000000000000000000000000000000..75f1e26ec0b31a4e5ac0d2cb0ea7673a8b4067b7 --- /dev/null +++ b/apps/files/l10n/nl.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Opslag niet beschikbaar", + "Storage invalid" : "Opslag ongeldig", + "Unknown error" : "Onbekende fout", + "Could not move %s - File with this name already exists" : "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", + "Could not move %s" : "Kon %s niet verplaatsen", + "Permission denied" : "Toegang geweigerd", + "File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.", + "\"%s\" is an invalid file name." : "\"%s\" is een ongeldige bestandsnaam.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan.", + "The target folder has been moved or deleted." : "De doelmap is verplaatst of verwijderd.", + "The name %s is already used in the folder %s. Please choose a different name." : "De naam %s bestaat al in map %s. Kies een andere naam.", + "Not a valid source" : "Geen geldige bron", + "Server is not allowed to open URLs, please check the server configuration" : "Server mag geen URL's openen, controleer de serverconfiguratie", + "The file exceeds your quota by %s" : "Het bestand overschrijdt uw quotum met %s", + "Error while downloading %s to %s" : "Fout bij downloaden %s naar %s", + "Error when creating the file" : "Fout bij creëren bestand", + "Folder name cannot be empty." : "Mapnaam mag niet leeg zijn.", + "Error when creating the folder" : "Fout bij aanmaken map", + "Unable to set upload directory." : "Kan uploadmap niet instellen.", + "Invalid Token" : "Ongeldig Token", + "No file was uploaded. Unknown error" : "Er was geen bestand geladen. Onbekende fout", + "There is no error, the file uploaded with success" : "Het bestand is succesvol geüpload.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Het bestand overschrijdt de MAX_FILE_SIZE instelling dat is opgegeven in het HTML formulier", + "The uploaded file was only partially uploaded" : "Het bestand is slechts gedeeltelijk geüpload", + "No file was uploaded" : "Er is geen bestand geüpload", + "Missing a temporary folder" : "Er ontbreekt een tijdelijke map", + "Failed to write to disk" : "Schrijven naar schijf mislukt", + "Not enough storage available" : "Niet genoeg opslagruimte beschikbaar", + "Upload failed. Could not find uploaded file" : "Upload mislukt. Kon geüploade bestand niet vinden", + "Upload failed. Could not get file info." : "Upload mislukt. Kon geen bestandsinfo krijgen.", + "Invalid directory." : "Ongeldige directory.", + "Files" : "Bestanden", + "All files" : "Alle bestanden", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan {filename} niet uploaden omdat het een map is of 0 bytes groot is", + "Total file size {size1} exceeds upload limit {size2}" : "Totale bestandsgrootte {size1} groter dan uploadlimiet {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Niet genoeg vrije ruimte. U upload {size1}, maar is is slechts {size2} beschikbaar", + "Upload cancelled." : "Uploaden geannuleerd.", + "Could not get result from server." : "Kon het resultaat van de server niet terugkrijgen.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.", + "URL cannot be empty" : "URL mag niet leeg zijn", + "{new_name} already exists" : "{new_name} bestaat al", + "Could not create file" : "Kon bestand niet creëren", + "Could not create folder" : "Kon niet creëren map", + "Error fetching URL" : "Fout bij ophalen URL", + "Share" : "Delen", + "Delete" : "Verwijderen", + "Disconnect storage" : "Verbinding met opslag verbreken", + "Unshare" : "Stop met delen", + "Delete permanently" : "Definitief verwijderen", + "Rename" : "Naam wijzigen", + "Pending" : "In behandeling", + "Error moving file." : "Fout bij verplaatsen bestand.", + "Error moving file" : "Fout bij verplaatsen bestand", + "Error" : "Fout", + "Could not rename file" : "Kon de naam van het bestand niet wijzigen", + "Error deleting file." : "Fout bij verwijderen bestand.", + "Name" : "Naam", + "Size" : "Grootte", + "Modified" : "Aangepast", + "_%n folder_::_%n folders_" : ["","%n mappen"], + "_%n file_::_%n files_" : ["%n bestand","%n bestanden"], + "You don’t have permission to upload or create files here" : "U hebt geen toestemming om hier te uploaden of bestanden te maken", + "_Uploading %n file_::_Uploading %n files_" : ["%n bestand aan het uploaden","%n bestanden aan het uploaden"], + "\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.", + "Your storage is full, files can not be updated or synced anymore!" : "Uw opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!", + "Your storage is almost full ({usedSpacePercent}%)" : "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.", + "{dirs} and {files}" : "{dirs} en {files}", + "%s could not be renamed as it has been deleted" : "%s kon niet worden hernoemd, omdat het verwijderd is", + "%s could not be renamed" : "%s kon niet worden hernoemd", + "Upload (max. %s)" : "Upload (max. %s)", + "File handling" : "Bestand", + "Maximum upload size" : "Maximale bestandsgrootte voor uploads", + "max. possible: " : "max. mogelijk: ", + "Save" : "Bewaren", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Gebruik deze link om uw bestanden via WebDAV te benaderen", + "New" : "Nieuw", + "New text file" : "Nieuw tekstbestand", + "Text file" : "Tekstbestand", + "New folder" : "Nieuwe map", + "Folder" : "Map", + "From link" : "Vanaf link", + "Nothing in here. Upload something!" : "Niets te zien hier. Upload iets!", + "Download" : "Downloaden", + "Upload too large" : "Upload is te groot", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.", + "Files are being scanned, please wait." : "Bestanden worden gescand, even wachten.", + "Currently scanning" : "Nu aan het scannen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..58416264c9a082acdb3a346d8742e368103d66fa --- /dev/null +++ b/apps/files/l10n/nl.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Opslag niet beschikbaar", + "Storage invalid" : "Opslag ongeldig", + "Unknown error" : "Onbekende fout", + "Could not move %s - File with this name already exists" : "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", + "Could not move %s" : "Kon %s niet verplaatsen", + "Permission denied" : "Toegang geweigerd", + "File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.", + "\"%s\" is an invalid file name." : "\"%s\" is een ongeldige bestandsnaam.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan.", + "The target folder has been moved or deleted." : "De doelmap is verplaatst of verwijderd.", + "The name %s is already used in the folder %s. Please choose a different name." : "De naam %s bestaat al in map %s. Kies een andere naam.", + "Not a valid source" : "Geen geldige bron", + "Server is not allowed to open URLs, please check the server configuration" : "Server mag geen URL's openen, controleer de serverconfiguratie", + "The file exceeds your quota by %s" : "Het bestand overschrijdt uw quotum met %s", + "Error while downloading %s to %s" : "Fout bij downloaden %s naar %s", + "Error when creating the file" : "Fout bij creëren bestand", + "Folder name cannot be empty." : "Mapnaam mag niet leeg zijn.", + "Error when creating the folder" : "Fout bij aanmaken map", + "Unable to set upload directory." : "Kan uploadmap niet instellen.", + "Invalid Token" : "Ongeldig Token", + "No file was uploaded. Unknown error" : "Er was geen bestand geladen. Onbekende fout", + "There is no error, the file uploaded with success" : "Het bestand is succesvol geüpload.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Het bestand overschrijdt de MAX_FILE_SIZE instelling dat is opgegeven in het HTML formulier", + "The uploaded file was only partially uploaded" : "Het bestand is slechts gedeeltelijk geüpload", + "No file was uploaded" : "Er is geen bestand geüpload", + "Missing a temporary folder" : "Er ontbreekt een tijdelijke map", + "Failed to write to disk" : "Schrijven naar schijf mislukt", + "Not enough storage available" : "Niet genoeg opslagruimte beschikbaar", + "Upload failed. Could not find uploaded file" : "Upload mislukt. Kon geüploade bestand niet vinden", + "Upload failed. Could not get file info." : "Upload mislukt. Kon geen bestandsinfo krijgen.", + "Invalid directory." : "Ongeldige directory.", + "Files" : "Bestanden", + "All files" : "Alle bestanden", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan {filename} niet uploaden omdat het een map is of 0 bytes groot is", + "Total file size {size1} exceeds upload limit {size2}" : "Totale bestandsgrootte {size1} groter dan uploadlimiet {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Niet genoeg vrije ruimte. U upload {size1}, maar is is slechts {size2} beschikbaar", + "Upload cancelled." : "Uploaden geannuleerd.", + "Could not get result from server." : "Kon het resultaat van de server niet terugkrijgen.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.", + "URL cannot be empty" : "URL mag niet leeg zijn", + "{new_name} already exists" : "{new_name} bestaat al", + "Could not create file" : "Kon bestand niet creëren", + "Could not create folder" : "Kon niet creëren map", + "Error fetching URL" : "Fout bij ophalen URL", + "Share" : "Delen", + "Delete" : "Verwijderen", + "Disconnect storage" : "Verbinding met opslag verbreken", + "Unshare" : "Stop met delen", + "Delete permanently" : "Definitief verwijderen", + "Rename" : "Naam wijzigen", + "Pending" : "In behandeling", + "Error moving file." : "Fout bij verplaatsen bestand.", + "Error moving file" : "Fout bij verplaatsen bestand", + "Error" : "Fout", + "Could not rename file" : "Kon de naam van het bestand niet wijzigen", + "Error deleting file." : "Fout bij verwijderen bestand.", + "Name" : "Naam", + "Size" : "Grootte", + "Modified" : "Aangepast", + "_%n folder_::_%n folders_" : ["","%n mappen"], + "_%n file_::_%n files_" : ["%n bestand","%n bestanden"], + "You don’t have permission to upload or create files here" : "U hebt geen toestemming om hier te uploaden of bestanden te maken", + "_Uploading %n file_::_Uploading %n files_" : ["%n bestand aan het uploaden","%n bestanden aan het uploaden"], + "\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.", + "Your storage is full, files can not be updated or synced anymore!" : "Uw opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!", + "Your storage is almost full ({usedSpacePercent}%)" : "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.", + "{dirs} and {files}" : "{dirs} en {files}", + "%s could not be renamed as it has been deleted" : "%s kon niet worden hernoemd, omdat het verwijderd is", + "%s could not be renamed" : "%s kon niet worden hernoemd", + "Upload (max. %s)" : "Upload (max. %s)", + "File handling" : "Bestand", + "Maximum upload size" : "Maximale bestandsgrootte voor uploads", + "max. possible: " : "max. mogelijk: ", + "Save" : "Bewaren", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Gebruik deze link om uw bestanden via WebDAV te benaderen", + "New" : "Nieuw", + "New text file" : "Nieuw tekstbestand", + "Text file" : "Tekstbestand", + "New folder" : "Nieuwe map", + "Folder" : "Map", + "From link" : "Vanaf link", + "Nothing in here. Upload something!" : "Niets te zien hier. Upload iets!", + "Download" : "Downloaden", + "Upload too large" : "Upload is te groot", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.", + "Files are being scanned, please wait." : "Bestanden worden gescand, even wachten.", + "Currently scanning" : "Nu aan het scannen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php deleted file mode 100644 index a1a449169367ec6bc8a235eec20a9ca3dd67ad0c..0000000000000000000000000000000000000000 --- a/apps/files/l10n/nl.php +++ /dev/null @@ -1,96 +0,0 @@ - "Opslag niet beschikbaar", -"Storage invalid" => "Opslag ongeldig", -"Unknown error" => "Onbekende fout", -"Could not move %s - File with this name already exists" => "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", -"Could not move %s" => "Kon %s niet verplaatsen", -"Permission denied" => "Toegang geweigerd", -"File name cannot be empty." => "Bestandsnaam kan niet leeg zijn.", -"\"%s\" is an invalid file name." => "\"%s\" is een ongeldige bestandsnaam.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan.", -"The target folder has been moved or deleted." => "De doelmap is verplaatst of verwijderd.", -"The name %s is already used in the folder %s. Please choose a different name." => "De naam %s bestaat al in map %s. Kies een andere naam.", -"Not a valid source" => "Geen geldige bron", -"Server is not allowed to open URLs, please check the server configuration" => "Server mag geen URL's openen, controleer de serverconfiguratie", -"The file exceeds your quota by %s" => "Het bestand overschrijdt uw quotum met %s", -"Error while downloading %s to %s" => "Fout bij downloaden %s naar %s", -"Error when creating the file" => "Fout bij creëren bestand", -"Folder name cannot be empty." => "Mapnaam mag niet leeg zijn.", -"Error when creating the folder" => "Fout bij aanmaken map", -"Unable to set upload directory." => "Kan uploadmap niet instellen.", -"Invalid Token" => "Ongeldig Token", -"No file was uploaded. Unknown error" => "Er was geen bestand geladen. Onbekende fout", -"There is no error, the file uploaded with success" => "Het bestand is succesvol geüpload.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Het bestand overschrijdt de MAX_FILE_SIZE instelling dat is opgegeven in het HTML formulier", -"The uploaded file was only partially uploaded" => "Het bestand is slechts gedeeltelijk geüpload", -"No file was uploaded" => "Er is geen bestand geüpload", -"Missing a temporary folder" => "Er ontbreekt een tijdelijke map", -"Failed to write to disk" => "Schrijven naar schijf mislukt", -"Not enough storage available" => "Niet genoeg opslagruimte beschikbaar", -"Upload failed. Could not find uploaded file" => "Upload mislukt. Kon geüploade bestand niet vinden", -"Upload failed. Could not get file info." => "Upload mislukt. Kon geen bestandsinfo krijgen.", -"Invalid directory." => "Ongeldige directory.", -"Files" => "Bestanden", -"All files" => "Alle bestanden", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Kan {filename} niet uploaden omdat het een map is of 0 bytes groot is", -"Total file size {size1} exceeds upload limit {size2}" => "Totale bestandsgrootte {size1} groter dan uploadlimiet {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Niet genoeg vrije ruimte. U upload {size1}, maar is is slechts {size2} beschikbaar", -"Upload cancelled." => "Uploaden geannuleerd.", -"Could not get result from server." => "Kon het resultaat van de server niet terugkrijgen.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.", -"URL cannot be empty" => "URL mag niet leeg zijn", -"{new_name} already exists" => "{new_name} bestaat al", -"Could not create file" => "Kon bestand niet creëren", -"Could not create folder" => "Kon niet creëren map", -"Error fetching URL" => "Fout bij ophalen URL", -"Share" => "Delen", -"Delete" => "Verwijderen", -"Disconnect storage" => "Verbinding met opslag verbreken", -"Unshare" => "Stop met delen", -"Delete permanently" => "Definitief verwijderen", -"Rename" => "Naam wijzigen", -"Pending" => "In behandeling", -"Error moving file." => "Fout bij verplaatsen bestand.", -"Error moving file" => "Fout bij verplaatsen bestand", -"Error" => "Fout", -"Could not rename file" => "Kon de naam van het bestand niet wijzigen", -"Error deleting file." => "Fout bij verwijderen bestand.", -"Name" => "Naam", -"Size" => "Grootte", -"Modified" => "Aangepast", -"_%n folder_::_%n folders_" => array("","%n mappen"), -"_%n file_::_%n files_" => array("%n bestand","%n bestanden"), -"You don’t have permission to upload or create files here" => "U hebt geen toestemming om hier te uploaden of bestanden te maken", -"_Uploading %n file_::_Uploading %n files_" => array("%n bestand aan het uploaden","%n bestanden aan het uploaden"), -"\"{name}\" is an invalid file name." => "\"{name}\" is een ongeldige bestandsnaam.", -"Your storage is full, files can not be updated or synced anymore!" => "Uw opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!", -"Your storage is almost full ({usedSpacePercent}%)" => "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Encryptie is uitgeschakeld maar uw bestanden zijn nog steeds versleuteld. Ga naar uw persoonlijke instellingen om uw bestanden te decoderen.", -"{dirs} and {files}" => "{dirs} en {files}", -"%s could not be renamed as it has been deleted" => "%s kon niet worden hernoemd, omdat het verwijderd is", -"%s could not be renamed" => "%s kon niet worden hernoemd", -"Upload (max. %s)" => "Upload (max. %s)", -"File handling" => "Bestand", -"Maximum upload size" => "Maximale bestandsgrootte voor uploads", -"max. possible: " => "max. mogelijk: ", -"Save" => "Bewaren", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Gebruik deze link om uw bestanden via WebDAV te benaderen", -"New" => "Nieuw", -"New text file" => "Nieuw tekstbestand", -"Text file" => "Tekstbestand", -"New folder" => "Nieuwe map", -"Folder" => "Map", -"From link" => "Vanaf link", -"Nothing in here. Upload something!" => "Niets te zien hier. Upload iets!", -"Download" => "Downloaden", -"Upload too large" => "Upload is te groot", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.", -"Files are being scanned, please wait." => "Bestanden worden gescand, even wachten.", -"Currently scanning" => "Nu aan het scannen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/nn_NO.js b/apps/files/l10n/nn_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..6d17a9458c51b63504323bdefb530095a8b6c382 --- /dev/null +++ b/apps/files/l10n/nn_NO.js @@ -0,0 +1,64 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Ukjend feil", + "Could not move %s - File with this name already exists" : "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet", + "Could not move %s" : "Klarte ikkje flytta %s", + "File name cannot be empty." : "Filnamnet kan ikkje vera tomt.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate.", + "Unable to set upload directory." : "Klarte ikkje å endra opplastingsmappa.", + "Invalid Token" : "Ugyldig token", + "No file was uploaded. Unknown error" : "Ingen filer lasta opp. Ukjend feil", + "There is no error, the file uploaded with success" : "Ingen feil, fila vart lasta opp", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet", + "The uploaded file was only partially uploaded" : "Fila vart berre delvis lasta opp", + "No file was uploaded" : "Ingen filer vart lasta opp", + "Missing a temporary folder" : "Manglar ei mellombels mappe", + "Failed to write to disk" : "Klarte ikkje skriva til disk", + "Not enough storage available" : "Ikkje nok lagringsplass tilgjengeleg", + "Upload failed. Could not find uploaded file" : "Feil ved opplasting. Klarte ikkje å finna opplasta fil.", + "Upload failed. Could not get file info." : "Feil ved opplasting. Klarte ikkje å henta filinfo.", + "Invalid directory." : "Ugyldig mappe.", + "Files" : "Filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.", + "Upload cancelled." : "Opplasting avbroten.", + "Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.", + "{new_name} already exists" : "{new_name} finst allereie", + "Share" : "Del", + "Delete" : "Slett", + "Unshare" : "Udel", + "Delete permanently" : "Slett for godt", + "Rename" : "Endra namn", + "Pending" : "Under vegs", + "Error moving file" : "Feil ved flytting av fil", + "Error" : "Feil", + "Name" : "Namn", + "Size" : "Storleik", + "Modified" : "Endra", + "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "_Uploading %n file_::_Uploading %n files_" : ["Lastar opp %n fil","Lastar opp %n filer"], + "Your storage is full, files can not be updated or synced anymore!" : "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", + "Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.", + "{dirs} and {files}" : "{dirs} og {files}", + "%s could not be renamed" : "Klarte ikkje å omdøypa på %s", + "File handling" : "Filhandtering", + "Maximum upload size" : "Maksimal opplastingsstorleik", + "max. possible: " : "maks. moglege:", + "Save" : "Lagre", + "WebDAV" : "WebDAV", + "New" : "Ny", + "Text file" : "Tekst fil", + "New folder" : "Ny mappe", + "Folder" : "Mappe", + "From link" : "Frå lenkje", + "Nothing in here. Upload something!" : "Ingenting her. Last noko opp!", + "Download" : "Last ned", + "Upload too large" : "For stor opplasting", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.", + "Files are being scanned, please wait." : "Skannar filer, ver venleg og vent." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/nn_NO.json b/apps/files/l10n/nn_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..4008ab0778cfebf7447fe40d20621098ffa8e003 --- /dev/null +++ b/apps/files/l10n/nn_NO.json @@ -0,0 +1,62 @@ +{ "translations": { + "Unknown error" : "Ukjend feil", + "Could not move %s - File with this name already exists" : "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet", + "Could not move %s" : "Klarte ikkje flytta %s", + "File name cannot be empty." : "Filnamnet kan ikkje vera tomt.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate.", + "Unable to set upload directory." : "Klarte ikkje å endra opplastingsmappa.", + "Invalid Token" : "Ugyldig token", + "No file was uploaded. Unknown error" : "Ingen filer lasta opp. Ukjend feil", + "There is no error, the file uploaded with success" : "Ingen feil, fila vart lasta opp", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet", + "The uploaded file was only partially uploaded" : "Fila vart berre delvis lasta opp", + "No file was uploaded" : "Ingen filer vart lasta opp", + "Missing a temporary folder" : "Manglar ei mellombels mappe", + "Failed to write to disk" : "Klarte ikkje skriva til disk", + "Not enough storage available" : "Ikkje nok lagringsplass tilgjengeleg", + "Upload failed. Could not find uploaded file" : "Feil ved opplasting. Klarte ikkje å finna opplasta fil.", + "Upload failed. Could not get file info." : "Feil ved opplasting. Klarte ikkje å henta filinfo.", + "Invalid directory." : "Ugyldig mappe.", + "Files" : "Filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.", + "Upload cancelled." : "Opplasting avbroten.", + "Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.", + "{new_name} already exists" : "{new_name} finst allereie", + "Share" : "Del", + "Delete" : "Slett", + "Unshare" : "Udel", + "Delete permanently" : "Slett for godt", + "Rename" : "Endra namn", + "Pending" : "Under vegs", + "Error moving file" : "Feil ved flytting av fil", + "Error" : "Feil", + "Name" : "Namn", + "Size" : "Storleik", + "Modified" : "Endra", + "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "_Uploading %n file_::_Uploading %n files_" : ["Lastar opp %n fil","Lastar opp %n filer"], + "Your storage is full, files can not be updated or synced anymore!" : "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", + "Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.", + "{dirs} and {files}" : "{dirs} og {files}", + "%s could not be renamed" : "Klarte ikkje å omdøypa på %s", + "File handling" : "Filhandtering", + "Maximum upload size" : "Maksimal opplastingsstorleik", + "max. possible: " : "maks. moglege:", + "Save" : "Lagre", + "WebDAV" : "WebDAV", + "New" : "Ny", + "Text file" : "Tekst fil", + "New folder" : "Ny mappe", + "Folder" : "Mappe", + "From link" : "Frå lenkje", + "Nothing in here. Upload something!" : "Ingenting her. Last noko opp!", + "Download" : "Last ned", + "Upload too large" : "For stor opplasting", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.", + "Files are being scanned, please wait." : "Skannar filer, ver venleg og vent." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php deleted file mode 100644 index 502c313aa06c12c8beb44f215e1cc31cdbcefe8b..0000000000000000000000000000000000000000 --- a/apps/files/l10n/nn_NO.php +++ /dev/null @@ -1,63 +0,0 @@ - "Ukjend feil", -"Could not move %s - File with this name already exists" => "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet", -"Could not move %s" => "Klarte ikkje flytta %s", -"File name cannot be empty." => "Filnamnet kan ikkje vera tomt.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate.", -"Unable to set upload directory." => "Klarte ikkje å endra opplastingsmappa.", -"Invalid Token" => "Ugyldig token", -"No file was uploaded. Unknown error" => "Ingen filer lasta opp. Ukjend feil", -"There is no error, the file uploaded with success" => "Ingen feil, fila vart lasta opp", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet", -"The uploaded file was only partially uploaded" => "Fila vart berre delvis lasta opp", -"No file was uploaded" => "Ingen filer vart lasta opp", -"Missing a temporary folder" => "Manglar ei mellombels mappe", -"Failed to write to disk" => "Klarte ikkje skriva til disk", -"Not enough storage available" => "Ikkje nok lagringsplass tilgjengeleg", -"Upload failed. Could not find uploaded file" => "Feil ved opplasting. Klarte ikkje å finna opplasta fil.", -"Upload failed. Could not get file info." => "Feil ved opplasting. Klarte ikkje å henta filinfo.", -"Invalid directory." => "Ugyldig mappe.", -"Files" => "Filer", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.", -"Upload cancelled." => "Opplasting avbroten.", -"Could not get result from server." => "Klarte ikkje å henta resultat frå tenaren.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.", -"{new_name} already exists" => "{new_name} finst allereie", -"Share" => "Del", -"Delete" => "Slett", -"Unshare" => "Udel", -"Delete permanently" => "Slett for godt", -"Rename" => "Endra namn", -"Pending" => "Under vegs", -"Error moving file" => "Feil ved flytting av fil", -"Error" => "Feil", -"Name" => "Namn", -"Size" => "Storleik", -"Modified" => "Endra", -"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"), -"_%n file_::_%n files_" => array("%n fil","%n filer"), -"_Uploading %n file_::_Uploading %n files_" => array("Lastar opp %n fil","Lastar opp %n filer"), -"Your storage is full, files can not be updated or synced anymore!" => "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", -"Your storage is almost full ({usedSpacePercent}%)" => "Lagringa di er nesten full ({usedSpacePercent} %)", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.", -"{dirs} and {files}" => "{dirs} og {files}", -"%s could not be renamed" => "Klarte ikkje å omdøypa på %s", -"File handling" => "Filhandtering", -"Maximum upload size" => "Maksimal opplastingsstorleik", -"max. possible: " => "maks. moglege:", -"Save" => "Lagre", -"WebDAV" => "WebDAV", -"New" => "Ny", -"Text file" => "Tekst fil", -"New folder" => "Ny mappe", -"Folder" => "Mappe", -"From link" => "Frå lenkje", -"Nothing in here. Upload something!" => "Ingenting her. Last noko opp!", -"Download" => "Last ned", -"Upload too large" => "For stor opplasting", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.", -"Files are being scanned, please wait." => "Skannar filer, ver venleg og vent." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/nqo.js b/apps/files/l10n/nqo.js new file mode 100644 index 0000000000000000000000000000000000000000..d1bbfca2dd4eb9b3fef484ce382c395698fe43d2 --- /dev/null +++ b/apps/files/l10n/nqo.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/nqo.json b/apps/files/l10n/nqo.json new file mode 100644 index 0000000000000000000000000000000000000000..e493054d78afd282eca938e05712cc3d24d82cac --- /dev/null +++ b/apps/files/l10n/nqo.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/nqo.php b/apps/files/l10n/nqo.php deleted file mode 100644 index 70ab6572ba466c23b8066e18b9ee2f9cb2a7a827..0000000000000000000000000000000000000000 --- a/apps/files/l10n/nqo.php +++ /dev/null @@ -1,7 +0,0 @@ - array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array("") -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js new file mode 100644 index 0000000000000000000000000000000000000000..deb447f57d9345539d23a5729ac600a29549d331 --- /dev/null +++ b/apps/files/l10n/oc.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files", + { + "There is no error, the file uploaded with success" : "Amontcargament capitat, pas d'errors", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lo fichièr amontcargat es mai gròs que la directiva «MAX_FILE_SIZE» especifiada dins lo formulari HTML", + "The uploaded file was only partially uploaded" : "Lo fichièr foguèt pas completament amontcargat", + "No file was uploaded" : "Cap de fichièrs son estats amontcargats", + "Missing a temporary folder" : "Un dorsièr temporari manca", + "Failed to write to disk" : "L'escriptura sul disc a fracassat", + "Files" : "Fichièrs", + "Upload cancelled." : "Amontcargar anullat.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ", + "Share" : "Parteja", + "Delete" : "Escafa", + "Unshare" : "Pas partejador", + "Rename" : "Torna nomenar", + "Pending" : "Al esperar", + "Error" : "Error", + "Name" : "Nom", + "Size" : "Talha", + "Modified" : "Modificat", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "Manejament de fichièr", + "Maximum upload size" : "Talha maximum d'amontcargament", + "max. possible: " : "max. possible: ", + "Save" : "Enregistra", + "New" : "Nòu", + "Text file" : "Fichièr de tèxte", + "Folder" : "Dorsièr", + "Nothing in here. Upload something!" : "Pas res dedins. Amontcarga qualquaren", + "Download" : "Avalcarga", + "Upload too large" : "Amontcargament tròp gròs", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.", + "Files are being scanned, please wait." : "Los fiichièrs son a èsser explorats, " +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json new file mode 100644 index 0000000000000000000000000000000000000000..994cb0055ea82e97d82b46f5c2e7531a708e4955 --- /dev/null +++ b/apps/files/l10n/oc.json @@ -0,0 +1,36 @@ +{ "translations": { + "There is no error, the file uploaded with success" : "Amontcargament capitat, pas d'errors", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lo fichièr amontcargat es mai gròs que la directiva «MAX_FILE_SIZE» especifiada dins lo formulari HTML", + "The uploaded file was only partially uploaded" : "Lo fichièr foguèt pas completament amontcargat", + "No file was uploaded" : "Cap de fichièrs son estats amontcargats", + "Missing a temporary folder" : "Un dorsièr temporari manca", + "Failed to write to disk" : "L'escriptura sul disc a fracassat", + "Files" : "Fichièrs", + "Upload cancelled." : "Amontcargar anullat.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ", + "Share" : "Parteja", + "Delete" : "Escafa", + "Unshare" : "Pas partejador", + "Rename" : "Torna nomenar", + "Pending" : "Al esperar", + "Error" : "Error", + "Name" : "Nom", + "Size" : "Talha", + "Modified" : "Modificat", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "Manejament de fichièr", + "Maximum upload size" : "Talha maximum d'amontcargament", + "max. possible: " : "max. possible: ", + "Save" : "Enregistra", + "New" : "Nòu", + "Text file" : "Fichièr de tèxte", + "Folder" : "Dorsièr", + "Nothing in here. Upload something!" : "Pas res dedins. Amontcarga qualquaren", + "Download" : "Avalcarga", + "Upload too large" : "Amontcargament tròp gròs", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.", + "Files are being scanned, please wait." : "Los fiichièrs son a èsser explorats, " +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/oc.php b/apps/files/l10n/oc.php deleted file mode 100644 index 0a41ffb00754c045456ff7f61629bc2697620027..0000000000000000000000000000000000000000 --- a/apps/files/l10n/oc.php +++ /dev/null @@ -1,37 +0,0 @@ - "Amontcargament capitat, pas d'errors", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Lo fichièr amontcargat es mai gròs que la directiva «MAX_FILE_SIZE» especifiada dins lo formulari HTML", -"The uploaded file was only partially uploaded" => "Lo fichièr foguèt pas completament amontcargat", -"No file was uploaded" => "Cap de fichièrs son estats amontcargats", -"Missing a temporary folder" => "Un dorsièr temporari manca", -"Failed to write to disk" => "L'escriptura sul disc a fracassat", -"Files" => "Fichièrs", -"Upload cancelled." => "Amontcargar anullat.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ", -"Share" => "Parteja", -"Delete" => "Escafa", -"Unshare" => "Pas partejador", -"Rename" => "Torna nomenar", -"Pending" => "Al esperar", -"Error" => "Error", -"Name" => "Nom", -"Size" => "Talha", -"Modified" => "Modificat", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"File handling" => "Manejament de fichièr", -"Maximum upload size" => "Talha maximum d'amontcargament", -"max. possible: " => "max. possible: ", -"Save" => "Enregistra", -"New" => "Nòu", -"Text file" => "Fichièr de tèxte", -"Folder" => "Dorsièr", -"Nothing in here. Upload something!" => "Pas res dedins. Amontcarga qualquaren", -"Download" => "Avalcarga", -"Upload too large" => "Amontcargament tròp gròs", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.", -"Files are being scanned, please wait." => "Los fiichièrs son a èsser explorats, " -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/or_IN.js b/apps/files/l10n/or_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/or_IN.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/or_IN.json b/apps/files/l10n/or_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/or_IN.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/or_IN.php b/apps/files/l10n/or_IN.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/or_IN.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/pa.js b/apps/files/l10n/pa.js new file mode 100644 index 0000000000000000000000000000000000000000..84216361960d53430c50b3f3e3565a6fd68249e1 --- /dev/null +++ b/apps/files/l10n/pa.js @@ -0,0 +1,15 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ", + "Files" : "ਫਾਇਲਾਂ", + "Share" : "ਸਾਂਝਾ ਕਰੋ", + "Delete" : "ਹਟਾਓ", + "Rename" : "ਨਾਂ ਬਦਲੋ", + "Error" : "ਗਲਤੀ", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Download" : "ਡਾਊਨਲੋਡ" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/pa.json b/apps/files/l10n/pa.json new file mode 100644 index 0000000000000000000000000000000000000000..b429b4ab19b2fb4ca024842035efa0e0f1ed6b45 --- /dev/null +++ b/apps/files/l10n/pa.json @@ -0,0 +1,13 @@ +{ "translations": { + "Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ", + "Files" : "ਫਾਇਲਾਂ", + "Share" : "ਸਾਂਝਾ ਕਰੋ", + "Delete" : "ਹਟਾਓ", + "Rename" : "ਨਾਂ ਬਦਲੋ", + "Error" : "ਗਲਤੀ", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Download" : "ਡਾਊਨਲੋਡ" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/pa.php b/apps/files/l10n/pa.php deleted file mode 100644 index 55af52a45478a633f6620a0c9db2d276c0e84de8..0000000000000000000000000000000000000000 --- a/apps/files/l10n/pa.php +++ /dev/null @@ -1,14 +0,0 @@ - "ਅਣਜਾਣ ਗਲਤੀ", -"Files" => "ਫਾਇਲਾਂ", -"Share" => "ਸਾਂਝਾ ਕਰੋ", -"Delete" => "ਹਟਾਓ", -"Rename" => "ਨਾਂ ਬਦਲੋ", -"Error" => "ਗਲਤੀ", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Download" => "ਡਾਊਨਲੋਡ" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js new file mode 100644 index 0000000000000000000000000000000000000000..1a0fb57ec30f04767c15987c51d26cad61739489 --- /dev/null +++ b/apps/files/l10n/pl.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Pamięć nie dostępna", + "Storage invalid" : "Pamięć nieprawidłowa", + "Unknown error" : "Nieznany błąd", + "Could not move %s - File with this name already exists" : "Nie można było przenieść %s - Plik o takiej nazwie już istnieje", + "Could not move %s" : "Nie można było przenieść %s", + "Permission denied" : "Dostęp zabroniony", + "File name cannot be empty." : "Nazwa pliku nie może być pusta.", + "\"%s\" is an invalid file name." : "\"%s\" jest nieprawidłową nazwą pliku.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nieprawidłowa nazwa. Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*' są niedozwolone.", + "The target folder has been moved or deleted." : "Folder docelowy został przeniesiony lub usunięty", + "The name %s is already used in the folder %s. Please choose a different name." : "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.", + "Not a valid source" : "Niepoprawne źródło", + "Server is not allowed to open URLs, please check the server configuration" : "Serwer nie mógł otworzyć adresów URL, należy sprawdzić konfigurację serwera", + "The file exceeds your quota by %s" : "Ten plik przekracza twój limit o %s", + "Error while downloading %s to %s" : "Błąd podczas pobierania %s do %S", + "Error when creating the file" : "Błąd przy tworzeniu pliku", + "Folder name cannot be empty." : "Nazwa folderu nie może być pusta.", + "Error when creating the folder" : "Błąd przy tworzeniu folderu", + "Unable to set upload directory." : "Nie można ustawić katalog wczytywania.", + "Invalid Token" : "Nieprawidłowy Token", + "No file was uploaded. Unknown error" : "Żaden plik nie został załadowany. Nieznany błąd", + "There is no error, the file uploaded with success" : "Nie było błędów, plik wysłano poprawnie.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML", + "The uploaded file was only partially uploaded" : "Załadowany plik został wysłany tylko częściowo.", + "No file was uploaded" : "Nie wysłano żadnego pliku", + "Missing a temporary folder" : "Brak folderu tymczasowego", + "Failed to write to disk" : "Błąd zapisu na dysk", + "Not enough storage available" : "Za mało dostępnego miejsca", + "Upload failed. Could not find uploaded file" : "Nieudane przesłanie. Nie można znaleźć przesyłanego pliku", + "Upload failed. Could not get file info." : "Nieudane przesłanie. Nie można pobrać informacji o pliku.", + "Invalid directory." : "Zła ścieżka.", + "Files" : "Pliki", + "All files" : "Wszystkie pliki", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nie można przesłać {filename} być może jest katalogiem lub posiada 0 bajtów", + "Total file size {size1} exceeds upload limit {size2}" : "Całkowity rozmiar {size1} przekracza limit uploadu {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Brak wolnej przestrzeni, przesyłasz {size1} a pozostało tylko {size2}", + "Upload cancelled." : "Wczytywanie anulowane.", + "Could not get result from server." : "Nie można uzyskać wyniku z serwera.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.", + "URL cannot be empty" : "URL nie może być pusty", + "{new_name} already exists" : "{new_name} już istnieje", + "Could not create file" : "Nie można utworzyć pliku", + "Could not create folder" : "Nie można utworzyć folderu", + "Error fetching URL" : "Błąd przy pobieraniu adresu URL", + "Share" : "Udostępnij", + "Delete" : "Usuń", + "Disconnect storage" : "Odłącz magazyn", + "Unshare" : "Zatrzymaj współdzielenie", + "Delete permanently" : "Trwale usuń", + "Rename" : "Zmień nazwę", + "Pending" : "Oczekujące", + "Error moving file." : "Błąd podczas przenoszenia pliku.", + "Error moving file" : "Błąd prz przenoszeniu pliku", + "Error" : "Błąd", + "Could not rename file" : "Nie można zmienić nazwy pliku", + "Error deleting file." : "Błąd podczas usuwania pliku", + "Name" : "Nazwa", + "Size" : "Rozmiar", + "Modified" : "Modyfikacja", + "_%n folder_::_%n folders_" : ["%n katalog","%n katalogi","%n katalogów"], + "_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików"], + "You don’t have permission to upload or create files here" : "Nie masz uprawnień do wczytywania lub tworzenia plików w tym miejscu", + "_Uploading %n file_::_Uploading %n files_" : ["Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"], + "\"{name}\" is an invalid file name." : "\"{name}\" jest nieprawidłową nazwą pliku.", + "Your storage is full, files can not be updated or synced anymore!" : "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchronizowane!", + "Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.", + "{dirs} and {files}" : "{dirs} i {files}", + "%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty", + "%s could not be renamed" : "%s nie można zmienić nazwy", + "Upload (max. %s)" : "Wysyłka (max. %s)", + "File handling" : "Zarządzanie plikami", + "Maximum upload size" : "Maksymalny rozmiar wysyłanego pliku", + "max. possible: " : "maks. możliwy:", + "Save" : "Zapisz", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Użyj tego adresu do dostępu do twoich plików przez WebDAV", + "New" : "Nowy", + "New text file" : "Nowy plik tekstowy", + "Text file" : "Plik tekstowy", + "New folder" : "Nowy folder", + "Folder" : "Folder", + "From link" : "Z odnośnika", + "Nothing in here. Upload something!" : "Pusto. Wyślij coś!", + "Download" : "Pobierz", + "Upload too large" : "Ładowany plik jest za duży", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.", + "Files are being scanned, please wait." : "Skanowanie plików, proszę czekać.", + "Currently scanning" : "Aktualnie skanowane" +}, +"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/pl.json b/apps/files/l10n/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..b073141e3d1e2a5b83e97734dbe2e3ab46dffe81 --- /dev/null +++ b/apps/files/l10n/pl.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Pamięć nie dostępna", + "Storage invalid" : "Pamięć nieprawidłowa", + "Unknown error" : "Nieznany błąd", + "Could not move %s - File with this name already exists" : "Nie można było przenieść %s - Plik o takiej nazwie już istnieje", + "Could not move %s" : "Nie można było przenieść %s", + "Permission denied" : "Dostęp zabroniony", + "File name cannot be empty." : "Nazwa pliku nie może być pusta.", + "\"%s\" is an invalid file name." : "\"%s\" jest nieprawidłową nazwą pliku.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nieprawidłowa nazwa. Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*' są niedozwolone.", + "The target folder has been moved or deleted." : "Folder docelowy został przeniesiony lub usunięty", + "The name %s is already used in the folder %s. Please choose a different name." : "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.", + "Not a valid source" : "Niepoprawne źródło", + "Server is not allowed to open URLs, please check the server configuration" : "Serwer nie mógł otworzyć adresów URL, należy sprawdzić konfigurację serwera", + "The file exceeds your quota by %s" : "Ten plik przekracza twój limit o %s", + "Error while downloading %s to %s" : "Błąd podczas pobierania %s do %S", + "Error when creating the file" : "Błąd przy tworzeniu pliku", + "Folder name cannot be empty." : "Nazwa folderu nie może być pusta.", + "Error when creating the folder" : "Błąd przy tworzeniu folderu", + "Unable to set upload directory." : "Nie można ustawić katalog wczytywania.", + "Invalid Token" : "Nieprawidłowy Token", + "No file was uploaded. Unknown error" : "Żaden plik nie został załadowany. Nieznany błąd", + "There is no error, the file uploaded with success" : "Nie było błędów, plik wysłano poprawnie.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML", + "The uploaded file was only partially uploaded" : "Załadowany plik został wysłany tylko częściowo.", + "No file was uploaded" : "Nie wysłano żadnego pliku", + "Missing a temporary folder" : "Brak folderu tymczasowego", + "Failed to write to disk" : "Błąd zapisu na dysk", + "Not enough storage available" : "Za mało dostępnego miejsca", + "Upload failed. Could not find uploaded file" : "Nieudane przesłanie. Nie można znaleźć przesyłanego pliku", + "Upload failed. Could not get file info." : "Nieudane przesłanie. Nie można pobrać informacji o pliku.", + "Invalid directory." : "Zła ścieżka.", + "Files" : "Pliki", + "All files" : "Wszystkie pliki", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nie można przesłać {filename} być może jest katalogiem lub posiada 0 bajtów", + "Total file size {size1} exceeds upload limit {size2}" : "Całkowity rozmiar {size1} przekracza limit uploadu {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Brak wolnej przestrzeni, przesyłasz {size1} a pozostało tylko {size2}", + "Upload cancelled." : "Wczytywanie anulowane.", + "Could not get result from server." : "Nie można uzyskać wyniku z serwera.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.", + "URL cannot be empty" : "URL nie może być pusty", + "{new_name} already exists" : "{new_name} już istnieje", + "Could not create file" : "Nie można utworzyć pliku", + "Could not create folder" : "Nie można utworzyć folderu", + "Error fetching URL" : "Błąd przy pobieraniu adresu URL", + "Share" : "Udostępnij", + "Delete" : "Usuń", + "Disconnect storage" : "Odłącz magazyn", + "Unshare" : "Zatrzymaj współdzielenie", + "Delete permanently" : "Trwale usuń", + "Rename" : "Zmień nazwę", + "Pending" : "Oczekujące", + "Error moving file." : "Błąd podczas przenoszenia pliku.", + "Error moving file" : "Błąd prz przenoszeniu pliku", + "Error" : "Błąd", + "Could not rename file" : "Nie można zmienić nazwy pliku", + "Error deleting file." : "Błąd podczas usuwania pliku", + "Name" : "Nazwa", + "Size" : "Rozmiar", + "Modified" : "Modyfikacja", + "_%n folder_::_%n folders_" : ["%n katalog","%n katalogi","%n katalogów"], + "_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików"], + "You don’t have permission to upload or create files here" : "Nie masz uprawnień do wczytywania lub tworzenia plików w tym miejscu", + "_Uploading %n file_::_Uploading %n files_" : ["Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"], + "\"{name}\" is an invalid file name." : "\"{name}\" jest nieprawidłową nazwą pliku.", + "Your storage is full, files can not be updated or synced anymore!" : "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchronizowane!", + "Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.", + "{dirs} and {files}" : "{dirs} i {files}", + "%s could not be renamed as it has been deleted" : "%s nie może mieć zmienionej nazwy, ponieważ został usunięty", + "%s could not be renamed" : "%s nie można zmienić nazwy", + "Upload (max. %s)" : "Wysyłka (max. %s)", + "File handling" : "Zarządzanie plikami", + "Maximum upload size" : "Maksymalny rozmiar wysyłanego pliku", + "max. possible: " : "maks. możliwy:", + "Save" : "Zapisz", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Użyj tego adresu do dostępu do twoich plików przez WebDAV", + "New" : "Nowy", + "New text file" : "Nowy plik tekstowy", + "Text file" : "Plik tekstowy", + "New folder" : "Nowy folder", + "Folder" : "Folder", + "From link" : "Z odnośnika", + "Nothing in here. Upload something!" : "Pusto. Wyślij coś!", + "Download" : "Pobierz", + "Upload too large" : "Ładowany plik jest za duży", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.", + "Files are being scanned, please wait." : "Skanowanie plików, proszę czekać.", + "Currently scanning" : "Aktualnie skanowane" +},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php deleted file mode 100644 index b835baafc894136b73fa32b16cee7d264586b9a0..0000000000000000000000000000000000000000 --- a/apps/files/l10n/pl.php +++ /dev/null @@ -1,96 +0,0 @@ - "Pamięć nie dostępna", -"Storage invalid" => "Pamięć nieprawidłowa", -"Unknown error" => "Nieznany błąd", -"Could not move %s - File with this name already exists" => "Nie można było przenieść %s - Plik o takiej nazwie już istnieje", -"Could not move %s" => "Nie można było przenieść %s", -"Permission denied" => "Dostęp zabroniony", -"File name cannot be empty." => "Nazwa pliku nie może być pusta.", -"\"%s\" is an invalid file name." => "\"%s\" jest nieprawidłową nazwą pliku.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nieprawidłowa nazwa. Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*' są niedozwolone.", -"The target folder has been moved or deleted." => "Folder docelowy został przeniesiony lub usunięty", -"The name %s is already used in the folder %s. Please choose a different name." => "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.", -"Not a valid source" => "Niepoprawne źródło", -"Server is not allowed to open URLs, please check the server configuration" => "Serwer nie mógł otworzyć adresów URL, należy sprawdzić konfigurację serwera", -"The file exceeds your quota by %s" => "Ten plik przekracza twój limit o %s", -"Error while downloading %s to %s" => "Błąd podczas pobierania %s do %S", -"Error when creating the file" => "Błąd przy tworzeniu pliku", -"Folder name cannot be empty." => "Nazwa folderu nie może być pusta.", -"Error when creating the folder" => "Błąd przy tworzeniu folderu", -"Unable to set upload directory." => "Nie można ustawić katalog wczytywania.", -"Invalid Token" => "Nieprawidłowy Token", -"No file was uploaded. Unknown error" => "Żaden plik nie został załadowany. Nieznany błąd", -"There is no error, the file uploaded with success" => "Nie było błędów, plik wysłano poprawnie.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML", -"The uploaded file was only partially uploaded" => "Załadowany plik został wysłany tylko częściowo.", -"No file was uploaded" => "Nie wysłano żadnego pliku", -"Missing a temporary folder" => "Brak folderu tymczasowego", -"Failed to write to disk" => "Błąd zapisu na dysk", -"Not enough storage available" => "Za mało dostępnego miejsca", -"Upload failed. Could not find uploaded file" => "Nieudane przesłanie. Nie można znaleźć przesyłanego pliku", -"Upload failed. Could not get file info." => "Nieudane przesłanie. Nie można pobrać informacji o pliku.", -"Invalid directory." => "Zła ścieżka.", -"Files" => "Pliki", -"All files" => "Wszystkie pliki", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nie można przesłać {filename} być może jest katalogiem lub posiada 0 bajtów", -"Total file size {size1} exceeds upload limit {size2}" => "Całkowity rozmiar {size1} przekracza limit uploadu {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Brak wolnej przestrzeni, przesyłasz {size1} a pozostało tylko {size2}", -"Upload cancelled." => "Wczytywanie anulowane.", -"Could not get result from server." => "Nie można uzyskać wyniku z serwera.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.", -"URL cannot be empty" => "URL nie może być pusty", -"{new_name} already exists" => "{new_name} już istnieje", -"Could not create file" => "Nie można utworzyć pliku", -"Could not create folder" => "Nie można utworzyć folderu", -"Error fetching URL" => "Błąd przy pobieraniu adresu URL", -"Share" => "Udostępnij", -"Delete" => "Usuń", -"Disconnect storage" => "Odłącz magazyn", -"Unshare" => "Zatrzymaj współdzielenie", -"Delete permanently" => "Trwale usuń", -"Rename" => "Zmień nazwę", -"Pending" => "Oczekujące", -"Error moving file." => "Błąd podczas przenoszenia pliku.", -"Error moving file" => "Błąd prz przenoszeniu pliku", -"Error" => "Błąd", -"Could not rename file" => "Nie można zmienić nazwy pliku", -"Error deleting file." => "Błąd podczas usuwania pliku", -"Name" => "Nazwa", -"Size" => "Rozmiar", -"Modified" => "Modyfikacja", -"_%n folder_::_%n folders_" => array("%n katalog","%n katalogi","%n katalogów"), -"_%n file_::_%n files_" => array("%n plik","%n pliki","%n plików"), -"You don’t have permission to upload or create files here" => "Nie masz uprawnień do wczytywania lub tworzenia plików w tym miejscu", -"_Uploading %n file_::_Uploading %n files_" => array("Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"), -"\"{name}\" is an invalid file name." => "\"{name}\" jest nieprawidłową nazwą pliku.", -"Your storage is full, files can not be updated or synced anymore!" => "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchronizowane!", -"Your storage is almost full ({usedSpacePercent}%)" => "Twój magazyn jest prawie pełny ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.", -"{dirs} and {files}" => "{dirs} i {files}", -"%s could not be renamed as it has been deleted" => "%s nie może mieć zmienionej nazwy, ponieważ został usunięty", -"%s could not be renamed" => "%s nie można zmienić nazwy", -"Upload (max. %s)" => "Wysyłka (max. %s)", -"File handling" => "Zarządzanie plikami", -"Maximum upload size" => "Maksymalny rozmiar wysyłanego pliku", -"max. possible: " => "maks. możliwy:", -"Save" => "Zapisz", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Użyj tego adresu do dostępu do twoich plików przez WebDAV", -"New" => "Nowy", -"New text file" => "Nowy plik tekstowy", -"Text file" => "Plik tekstowy", -"New folder" => "Nowy folder", -"Folder" => "Folder", -"From link" => "Z odnośnika", -"Nothing in here. Upload something!" => "Pusto. Wyślij coś!", -"Download" => "Pobierz", -"Upload too large" => "Ładowany plik jest za duży", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.", -"Files are being scanned, please wait." => "Skanowanie plików, proszę czekać.", -"Currently scanning" => "Aktualnie skanowane" -); -$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/pt_BR.js b/apps/files/l10n/pt_BR.js new file mode 100644 index 0000000000000000000000000000000000000000..b4c978873624b809a9b5b72355a5a86abee7d3af --- /dev/null +++ b/apps/files/l10n/pt_BR.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Armazanamento não disponível", + "Storage invalid" : "Armazenamento invávilido", + "Unknown error" : "Erro desconhecido", + "Could not move %s - File with this name already exists" : "Impossível mover %s - Já existe um arquivo com esse nome", + "Could not move %s" : "Impossível mover %s", + "Permission denied" : "Permissão Negada", + "File name cannot be empty." : "O nome do arquivo não pode estar vazio.", + "\"%s\" is an invalid file name." : "\"%s\" é um nome de arquivo inválido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", + "The target folder has been moved or deleted." : "A pasta de destino foi movida ou excluída.", + "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já é usado na pasta %s. Por favor, escolha um nome diferente.", + "Not a valid source" : "Não é uma fonte válida", + "Server is not allowed to open URLs, please check the server configuration" : "O servidor não tem permissão para abrir URLs. Por favor, verifique a configuração do servidor.", + "The file exceeds your quota by %s" : "O arquivo excede sua cota por %s", + "Error while downloading %s to %s" : "Erro ao baixar %s para %s", + "Error when creating the file" : "Erro ao criar o arquivo", + "Folder name cannot be empty." : "O nome da pasta não pode estar vazio.", + "Error when creating the folder" : "Erro ao criar a pasta", + "Unable to set upload directory." : "Impossível configurar o diretório de envio", + "Invalid Token" : "Token inválido", + "No file was uploaded. Unknown error" : "Nenhum arquivo foi enviado. Erro desconhecido", + "There is no error, the file uploaded with success" : "Sem erros, o arquivo foi enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo carregado excede o argumento MAX_FILE_SIZE especificado no formulário HTML", + "The uploaded file was only partially uploaded" : "O arquivo foi parcialmente enviado", + "No file was uploaded" : "Nenhum arquivo enviado", + "Missing a temporary folder" : "Pasta temporária não encontrada", + "Failed to write to disk" : "Falha ao escrever no disco", + "Not enough storage available" : "Espaço de armazenamento insuficiente", + "Upload failed. Could not find uploaded file" : "Falha no envio. Não foi possível encontrar o arquivo enviado", + "Upload failed. Could not get file info." : "Falha no envio. Não foi possível obter informações do arquivo.", + "Invalid directory." : "Diretório inválido.", + "Files" : "Arquivos", + "All files" : "Todos os arquivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do arquivo {size1} excede o limite de envio {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", + "Upload cancelled." : "Envio cancelado.", + "Could not get result from server." : "Não foi possível obter o resultado do servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Envio de arquivo em andamento. Sair da página agora resultará no cancelamento do envio.", + "URL cannot be empty" : "URL não pode estar vazia", + "{new_name} already exists" : "{new_name} já existe", + "Could not create file" : "Não foi possível criar o arquivo", + "Could not create folder" : "Não foi possível criar a pasta", + "Error fetching URL" : "Erro ao buscar URL", + "Share" : "Compartilhar", + "Delete" : "Excluir", + "Disconnect storage" : "Desconectar armazenagem", + "Unshare" : "Descompartilhar", + "Delete permanently" : "Excluir permanentemente", + "Rename" : "Renomear", + "Pending" : "Pendente", + "Error moving file." : "Erro movendo o arquivo.", + "Error moving file" : "Erro movendo o arquivo", + "Error" : "Erro", + "Could not rename file" : "Não foi possível renomear o arquivo", + "Error deleting file." : "Erro eliminando o arquivo.", + "Name" : "Nome", + "Size" : "Tamanho", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n pasta","%n pastas"], + "_%n file_::_%n files_" : ["%n arquivo","%n arquivos"], + "You don’t have permission to upload or create files here" : "Você não tem permissão para enviar ou criar arquivos aqui", + "_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n arquivos"], + "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de arquivo inválido.", + "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", + "Your storage is almost full ({usedSpacePercent}%)" : "Seu armazenamento está quase cheio ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "%s não pode ser renomeado pois foi apagado", + "%s could not be renamed" : "%s não pode ser renomeado", + "Upload (max. %s)" : "Envio (max. %s)", + "File handling" : "Tratamento de Arquivo", + "Maximum upload size" : "Tamanho máximo para envio", + "max. possible: " : "max. possível:", + "Save" : "Salvar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Use este endereço para ter acesso aos seus Arquivos via WebDAV", + "New" : "Novo", + "New text file" : "Novo arquivo texto", + "Text file" : "Arquivo texto", + "New folder" : "Nova pasta", + "Folder" : "Pasta", + "From link" : "Do link", + "Nothing in here. Upload something!" : "Nada aqui. Carregue alguma coisa!", + "Download" : "Baixar", + "Upload too large" : "Arquivo muito grande para envio", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os arquivos que você está tentando enviar excedeu o tamanho máximo para arquivos no servidor.", + "Files are being scanned, please wait." : "Arquivos sendo escaneados, por favor aguarde.", + "Currently scanning" : "Atualmente escaneando" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json new file mode 100644 index 0000000000000000000000000000000000000000..8c303c234aeac6d03a4b3fd853055073b95d5a88 --- /dev/null +++ b/apps/files/l10n/pt_BR.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Armazanamento não disponível", + "Storage invalid" : "Armazenamento invávilido", + "Unknown error" : "Erro desconhecido", + "Could not move %s - File with this name already exists" : "Impossível mover %s - Já existe um arquivo com esse nome", + "Could not move %s" : "Impossível mover %s", + "Permission denied" : "Permissão Negada", + "File name cannot be empty." : "O nome do arquivo não pode estar vazio.", + "\"%s\" is an invalid file name." : "\"%s\" é um nome de arquivo inválido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", + "The target folder has been moved or deleted." : "A pasta de destino foi movida ou excluída.", + "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já é usado na pasta %s. Por favor, escolha um nome diferente.", + "Not a valid source" : "Não é uma fonte válida", + "Server is not allowed to open URLs, please check the server configuration" : "O servidor não tem permissão para abrir URLs. Por favor, verifique a configuração do servidor.", + "The file exceeds your quota by %s" : "O arquivo excede sua cota por %s", + "Error while downloading %s to %s" : "Erro ao baixar %s para %s", + "Error when creating the file" : "Erro ao criar o arquivo", + "Folder name cannot be empty." : "O nome da pasta não pode estar vazio.", + "Error when creating the folder" : "Erro ao criar a pasta", + "Unable to set upload directory." : "Impossível configurar o diretório de envio", + "Invalid Token" : "Token inválido", + "No file was uploaded. Unknown error" : "Nenhum arquivo foi enviado. Erro desconhecido", + "There is no error, the file uploaded with success" : "Sem erros, o arquivo foi enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo carregado excede o argumento MAX_FILE_SIZE especificado no formulário HTML", + "The uploaded file was only partially uploaded" : "O arquivo foi parcialmente enviado", + "No file was uploaded" : "Nenhum arquivo enviado", + "Missing a temporary folder" : "Pasta temporária não encontrada", + "Failed to write to disk" : "Falha ao escrever no disco", + "Not enough storage available" : "Espaço de armazenamento insuficiente", + "Upload failed. Could not find uploaded file" : "Falha no envio. Não foi possível encontrar o arquivo enviado", + "Upload failed. Could not get file info." : "Falha no envio. Não foi possível obter informações do arquivo.", + "Invalid directory." : "Diretório inválido.", + "Files" : "Arquivos", + "All files" : "Todos os arquivos", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do arquivo {size1} excede o limite de envio {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", + "Upload cancelled." : "Envio cancelado.", + "Could not get result from server." : "Não foi possível obter o resultado do servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Envio de arquivo em andamento. Sair da página agora resultará no cancelamento do envio.", + "URL cannot be empty" : "URL não pode estar vazia", + "{new_name} already exists" : "{new_name} já existe", + "Could not create file" : "Não foi possível criar o arquivo", + "Could not create folder" : "Não foi possível criar a pasta", + "Error fetching URL" : "Erro ao buscar URL", + "Share" : "Compartilhar", + "Delete" : "Excluir", + "Disconnect storage" : "Desconectar armazenagem", + "Unshare" : "Descompartilhar", + "Delete permanently" : "Excluir permanentemente", + "Rename" : "Renomear", + "Pending" : "Pendente", + "Error moving file." : "Erro movendo o arquivo.", + "Error moving file" : "Erro movendo o arquivo", + "Error" : "Erro", + "Could not rename file" : "Não foi possível renomear o arquivo", + "Error deleting file." : "Erro eliminando o arquivo.", + "Name" : "Nome", + "Size" : "Tamanho", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n pasta","%n pastas"], + "_%n file_::_%n files_" : ["%n arquivo","%n arquivos"], + "You don’t have permission to upload or create files here" : "Você não tem permissão para enviar ou criar arquivos aqui", + "_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n arquivos"], + "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de arquivo inválido.", + "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", + "Your storage is almost full ({usedSpacePercent}%)" : "Seu armazenamento está quase cheio ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "%s não pode ser renomeado pois foi apagado", + "%s could not be renamed" : "%s não pode ser renomeado", + "Upload (max. %s)" : "Envio (max. %s)", + "File handling" : "Tratamento de Arquivo", + "Maximum upload size" : "Tamanho máximo para envio", + "max. possible: " : "max. possível:", + "Save" : "Salvar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Use este endereço para ter acesso aos seus Arquivos via WebDAV", + "New" : "Novo", + "New text file" : "Novo arquivo texto", + "Text file" : "Arquivo texto", + "New folder" : "Nova pasta", + "Folder" : "Pasta", + "From link" : "Do link", + "Nothing in here. Upload something!" : "Nada aqui. Carregue alguma coisa!", + "Download" : "Baixar", + "Upload too large" : "Arquivo muito grande para envio", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os arquivos que você está tentando enviar excedeu o tamanho máximo para arquivos no servidor.", + "Files are being scanned, please wait." : "Arquivos sendo escaneados, por favor aguarde.", + "Currently scanning" : "Atualmente escaneando" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php deleted file mode 100644 index 1dc10824883ebafb055242d4039fae7ade58cdc9..0000000000000000000000000000000000000000 --- a/apps/files/l10n/pt_BR.php +++ /dev/null @@ -1,96 +0,0 @@ - "Armazanamento não disponível", -"Storage invalid" => "Armazenamento invávilido", -"Unknown error" => "Erro desconhecido", -"Could not move %s - File with this name already exists" => "Impossível mover %s - Já existe um arquivo com esse nome", -"Could not move %s" => "Impossível mover %s", -"Permission denied" => "Permissão Negada", -"File name cannot be empty." => "O nome do arquivo não pode estar vazio.", -"\"%s\" is an invalid file name." => "\"%s\" é um nome de arquivo inválido.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", -"The target folder has been moved or deleted." => "A pasta de destino foi movida ou excluída.", -"The name %s is already used in the folder %s. Please choose a different name." => "O nome %s já é usado na pasta %s. Por favor, escolha um nome diferente.", -"Not a valid source" => "Não é uma fonte válida", -"Server is not allowed to open URLs, please check the server configuration" => "O servidor não tem permissão para abrir URLs. Por favor, verifique a configuração do servidor.", -"The file exceeds your quota by %s" => "O arquivo excede sua cota por %s", -"Error while downloading %s to %s" => "Erro ao baixar %s para %s", -"Error when creating the file" => "Erro ao criar o arquivo", -"Folder name cannot be empty." => "O nome da pasta não pode estar vazio.", -"Error when creating the folder" => "Erro ao criar a pasta", -"Unable to set upload directory." => "Impossível configurar o diretório de envio", -"Invalid Token" => "Token inválido", -"No file was uploaded. Unknown error" => "Nenhum arquivo foi enviado. Erro desconhecido", -"There is no error, the file uploaded with success" => "Sem erros, o arquivo foi enviado com sucesso", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O arquivo carregado excede o argumento MAX_FILE_SIZE especificado no formulário HTML", -"The uploaded file was only partially uploaded" => "O arquivo foi parcialmente enviado", -"No file was uploaded" => "Nenhum arquivo enviado", -"Missing a temporary folder" => "Pasta temporária não encontrada", -"Failed to write to disk" => "Falha ao escrever no disco", -"Not enough storage available" => "Espaço de armazenamento insuficiente", -"Upload failed. Could not find uploaded file" => "Falha no envio. Não foi possível encontrar o arquivo enviado", -"Upload failed. Could not get file info." => "Falha no envio. Não foi possível obter informações do arquivo.", -"Invalid directory." => "Diretório inválido.", -"Files" => "Arquivos", -"All files" => "Todos os arquivos", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Incapaz de fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "O tamanho total do arquivo {size1} excede o limite de envio {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", -"Upload cancelled." => "Envio cancelado.", -"Could not get result from server." => "Não foi possível obter o resultado do servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Envio de arquivo em andamento. Sair da página agora resultará no cancelamento do envio.", -"URL cannot be empty" => "URL não pode estar vazia", -"{new_name} already exists" => "{new_name} já existe", -"Could not create file" => "Não foi possível criar o arquivo", -"Could not create folder" => "Não foi possível criar a pasta", -"Error fetching URL" => "Erro ao buscar URL", -"Share" => "Compartilhar", -"Delete" => "Excluir", -"Disconnect storage" => "Desconectar armazenagem", -"Unshare" => "Descompartilhar", -"Delete permanently" => "Excluir permanentemente", -"Rename" => "Renomear", -"Pending" => "Pendente", -"Error moving file." => "Erro movendo o arquivo.", -"Error moving file" => "Erro movendo o arquivo", -"Error" => "Erro", -"Could not rename file" => "Não foi possível renomear o arquivo", -"Error deleting file." => "Erro eliminando o arquivo.", -"Name" => "Nome", -"Size" => "Tamanho", -"Modified" => "Modificado", -"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"), -"_%n file_::_%n files_" => array("%n arquivo","%n arquivos"), -"You don’t have permission to upload or create files here" => "Você não tem permissão para enviar ou criar arquivos aqui", -"_Uploading %n file_::_Uploading %n files_" => array("Enviando %n arquivo","Enviando %n arquivos"), -"\"{name}\" is an invalid file name." => "\"{name}\" é um nome de arquivo inválido.", -"Your storage is full, files can not be updated or synced anymore!" => "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", -"Your storage is almost full ({usedSpacePercent}%)" => "Seu armazenamento está quase cheio ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Criptografia foi desabilitada mas seus arquivos continuam criptografados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.", -"{dirs} and {files}" => "{dirs} e {files}", -"%s could not be renamed as it has been deleted" => "%s não pode ser renomeado pois foi apagado", -"%s could not be renamed" => "%s não pode ser renomeado", -"Upload (max. %s)" => "Envio (max. %s)", -"File handling" => "Tratamento de Arquivo", -"Maximum upload size" => "Tamanho máximo para envio", -"max. possible: " => "max. possível:", -"Save" => "Salvar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Use este endereço para ter acesso aos seus Arquivos via WebDAV", -"New" => "Novo", -"New text file" => "Novo arquivo texto", -"Text file" => "Arquivo texto", -"New folder" => "Nova pasta", -"Folder" => "Pasta", -"From link" => "Do link", -"Nothing in here. Upload something!" => "Nada aqui. Carregue alguma coisa!", -"Download" => "Baixar", -"Upload too large" => "Arquivo muito grande para envio", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os arquivos que você está tentando enviar excedeu o tamanho máximo para arquivos no servidor.", -"Files are being scanned, please wait." => "Arquivos sendo escaneados, por favor aguarde.", -"Currently scanning" => "Atualmente escaneando" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js new file mode 100644 index 0000000000000000000000000000000000000000..2ce2038d6610bfaf07c067bf992f53443b56eb08 --- /dev/null +++ b/apps/files/l10n/pt_PT.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Armazenamento indisposinvel", + "Storage invalid" : "Armazenamento inválido", + "Unknown error" : "Erro Desconhecido", + "Could not move %s - File with this name already exists" : "Não foi possível mover %s - Já existe um ficheiro com este nome", + "Could not move %s" : "Não foi possível mover %s", + "Permission denied" : "Permissão negada", + "File name cannot be empty." : "O nome do ficheiro não pode estar em branco.", + "\"%s\" is an invalid file name." : "\"%s\" é um nome de ficheiro inválido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome Inválido, Não são permitidos os carateres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*'.", + "The target folder has been moved or deleted." : "A pasta de destino foi movida ou eliminada.", + "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já está em uso na pasta %s. Por favor escolha um nome diferente.", + "Not a valid source" : "Não é uma fonte válida", + "Server is not allowed to open URLs, please check the server configuration" : "O servidor não consegue abrir URLs, por favor verifique a configuração do servidor", + "The file exceeds your quota by %s" : "O ficheiro excede a sua quota por %s", + "Error while downloading %s to %s" : "Erro ao transferir %s para %s", + "Error when creating the file" : "Erro ao criar o ficheiro", + "Folder name cannot be empty." : "O nome da pasta não pode estar vazio.", + "Error when creating the folder" : "Erro ao criar a pasta", + "Unable to set upload directory." : "Não foi possível criar o diretório de upload", + "Invalid Token" : "Token inválido", + "No file was uploaded. Unknown error" : "Não foi enviado nenhum ficheiro. Erro desconhecido", + "There is no error, the file uploaded with success" : "Não ocorreram erros, o ficheiro foi enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "O ficheiro enviado excede a diretiva php.ini upload_max_filesize no php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O tamanho do ficheiro enviado excede a diretiva MAX_FILE_SIZE definida no formulário HTML", + "The uploaded file was only partially uploaded" : "O ficheiro submetido só foi parcialmente enviado", + "No file was uploaded" : "Não foi enviado nenhum ficheiro", + "Missing a temporary folder" : "A pasta temporária está em falta", + "Failed to write to disk" : "Não foi possível gravar no disco", + "Not enough storage available" : "Não há espaço suficiente em disco", + "Upload failed. Could not find uploaded file" : "Falhou o envio. Não conseguiu encontrar o ficheiro enviado", + "Upload failed. Could not get file info." : "O carregamento falhou. Não foi possível obter a informação do ficheiro.", + "Invalid directory." : "Diretoria inválida.", + "Files" : "Ficheiros", + "All files" : "Todos os ficheiros", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de enviar {filename}, dado que é uma pasta, ou tem 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do ficheiro {size1} excede o limite de carregamento {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não existe espaço suficiente. Está a enviar {size1} mas apenas existe {size2} disponível", + "Upload cancelled." : "Envio cancelado.", + "Could not get result from server." : "Não foi possível obter o resultado do servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Envio de ficheiro em progresso. Se deixar a página agora, irá cancelar o envio.", + "URL cannot be empty" : "URL não pode estar vazio", + "{new_name} already exists" : "O nome {new_name} já existe", + "Could not create file" : "Não pôde criar ficheiro", + "Could not create folder" : "Não pôde criar pasta", + "Error fetching URL" : "Erro ao obter URL", + "Share" : "Compartilhar", + "Delete" : "Apagar", + "Disconnect storage" : "Desconete o armazenamento", + "Unshare" : "Deixar de partilhar", + "Delete permanently" : "Apagar Para Sempre", + "Rename" : "Renomear", + "Pending" : "Pendente", + "Error moving file." : "Erro a mover o ficheiro.", + "Error moving file" : "Erro ao mover o ficheiro", + "Error" : "Erro", + "Could not rename file" : "Não pôde renomear o ficheiro", + "Error deleting file." : "Erro ao apagar o ficheiro.", + "Name" : "Nome", + "Size" : "Tamanho", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n pasta","%n pastas"], + "_%n file_::_%n files_" : ["%n ficheiro","%n ficheiros"], + "You don’t have permission to upload or create files here" : "Você não tem permissão para enviar ou criar ficheiros aqui", + "_Uploading %n file_::_Uploading %n files_" : ["A carregar %n ficheiro","A carregar %n ficheiros"], + "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de ficheiro inválido.", + "Your storage is full, files can not be updated or synced anymore!" : "O seu armazenamento está cheio, os ficheiros já não podem ser atualizados ou sincronizados.", + "Your storage is almost full ({usedSpacePercent}%)" : "O seu armazenamento está quase cheiro ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado", + "%s could not be renamed" : "%s não pode ser renomeada", + "Upload (max. %s)" : "Enviar (max. %s)", + "File handling" : "Manuseamento do ficheiro", + "Maximum upload size" : "Tamanho máximo de envio", + "max. possible: " : "Máx. possível: ", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilize esta ligação para aceder aos seus ficheiros via WebDAV", + "New" : "Novo", + "New text file" : "Novo ficheiro de texto", + "Text file" : "Ficheiro de Texto", + "New folder" : "Nova Pasta", + "Folder" : "Pasta", + "From link" : "Da hiperligação", + "Nothing in here. Upload something!" : "Vazio. Envie alguma coisa!", + "Download" : "Transferir", + "Upload too large" : "Upload muito grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.", + "Files are being scanned, please wait." : "Os ficheiros estão a ser analisados, por favor aguarde.", + "Currently scanning" : "A analisar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json new file mode 100644 index 0000000000000000000000000000000000000000..4be9e4306dc7ce399799434345da13e59a032e23 --- /dev/null +++ b/apps/files/l10n/pt_PT.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Armazenamento indisposinvel", + "Storage invalid" : "Armazenamento inválido", + "Unknown error" : "Erro Desconhecido", + "Could not move %s - File with this name already exists" : "Não foi possível mover %s - Já existe um ficheiro com este nome", + "Could not move %s" : "Não foi possível mover %s", + "Permission denied" : "Permissão negada", + "File name cannot be empty." : "O nome do ficheiro não pode estar em branco.", + "\"%s\" is an invalid file name." : "\"%s\" é um nome de ficheiro inválido.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nome Inválido, Não são permitidos os carateres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*'.", + "The target folder has been moved or deleted." : "A pasta de destino foi movida ou eliminada.", + "The name %s is already used in the folder %s. Please choose a different name." : "O nome %s já está em uso na pasta %s. Por favor escolha um nome diferente.", + "Not a valid source" : "Não é uma fonte válida", + "Server is not allowed to open URLs, please check the server configuration" : "O servidor não consegue abrir URLs, por favor verifique a configuração do servidor", + "The file exceeds your quota by %s" : "O ficheiro excede a sua quota por %s", + "Error while downloading %s to %s" : "Erro ao transferir %s para %s", + "Error when creating the file" : "Erro ao criar o ficheiro", + "Folder name cannot be empty." : "O nome da pasta não pode estar vazio.", + "Error when creating the folder" : "Erro ao criar a pasta", + "Unable to set upload directory." : "Não foi possível criar o diretório de upload", + "Invalid Token" : "Token inválido", + "No file was uploaded. Unknown error" : "Não foi enviado nenhum ficheiro. Erro desconhecido", + "There is no error, the file uploaded with success" : "Não ocorreram erros, o ficheiro foi enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "O ficheiro enviado excede a diretiva php.ini upload_max_filesize no php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O tamanho do ficheiro enviado excede a diretiva MAX_FILE_SIZE definida no formulário HTML", + "The uploaded file was only partially uploaded" : "O ficheiro submetido só foi parcialmente enviado", + "No file was uploaded" : "Não foi enviado nenhum ficheiro", + "Missing a temporary folder" : "A pasta temporária está em falta", + "Failed to write to disk" : "Não foi possível gravar no disco", + "Not enough storage available" : "Não há espaço suficiente em disco", + "Upload failed. Could not find uploaded file" : "Falhou o envio. Não conseguiu encontrar o ficheiro enviado", + "Upload failed. Could not get file info." : "O carregamento falhou. Não foi possível obter a informação do ficheiro.", + "Invalid directory." : "Diretoria inválida.", + "Files" : "Ficheiros", + "All files" : "Todos os ficheiros", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Incapaz de enviar {filename}, dado que é uma pasta, ou tem 0 bytes", + "Total file size {size1} exceeds upload limit {size2}" : "O tamanho total do ficheiro {size1} excede o limite de carregamento {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não existe espaço suficiente. Está a enviar {size1} mas apenas existe {size2} disponível", + "Upload cancelled." : "Envio cancelado.", + "Could not get result from server." : "Não foi possível obter o resultado do servidor.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Envio de ficheiro em progresso. Se deixar a página agora, irá cancelar o envio.", + "URL cannot be empty" : "URL não pode estar vazio", + "{new_name} already exists" : "O nome {new_name} já existe", + "Could not create file" : "Não pôde criar ficheiro", + "Could not create folder" : "Não pôde criar pasta", + "Error fetching URL" : "Erro ao obter URL", + "Share" : "Compartilhar", + "Delete" : "Apagar", + "Disconnect storage" : "Desconete o armazenamento", + "Unshare" : "Deixar de partilhar", + "Delete permanently" : "Apagar Para Sempre", + "Rename" : "Renomear", + "Pending" : "Pendente", + "Error moving file." : "Erro a mover o ficheiro.", + "Error moving file" : "Erro ao mover o ficheiro", + "Error" : "Erro", + "Could not rename file" : "Não pôde renomear o ficheiro", + "Error deleting file." : "Erro ao apagar o ficheiro.", + "Name" : "Nome", + "Size" : "Tamanho", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n pasta","%n pastas"], + "_%n file_::_%n files_" : ["%n ficheiro","%n ficheiros"], + "You don’t have permission to upload or create files here" : "Você não tem permissão para enviar ou criar ficheiros aqui", + "_Uploading %n file_::_Uploading %n files_" : ["A carregar %n ficheiro","A carregar %n ficheiros"], + "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de ficheiro inválido.", + "Your storage is full, files can not be updated or synced anymore!" : "O seu armazenamento está cheio, os ficheiros já não podem ser atualizados ou sincronizados.", + "Your storage is almost full ({usedSpacePercent}%)" : "O seu armazenamento está quase cheiro ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.", + "{dirs} and {files}" : "{dirs} e {files}", + "%s could not be renamed as it has been deleted" : "Não foi possível renomear %s devido a ter sido eliminado", + "%s could not be renamed" : "%s não pode ser renomeada", + "Upload (max. %s)" : "Enviar (max. %s)", + "File handling" : "Manuseamento do ficheiro", + "Maximum upload size" : "Tamanho máximo de envio", + "max. possible: " : "Máx. possível: ", + "Save" : "Guardar", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Utilize esta ligação para aceder aos seus ficheiros via WebDAV", + "New" : "Novo", + "New text file" : "Novo ficheiro de texto", + "Text file" : "Ficheiro de Texto", + "New folder" : "Nova Pasta", + "Folder" : "Pasta", + "From link" : "Da hiperligação", + "Nothing in here. Upload something!" : "Vazio. Envie alguma coisa!", + "Download" : "Transferir", + "Upload too large" : "Upload muito grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.", + "Files are being scanned, please wait." : "Os ficheiros estão a ser analisados, por favor aguarde.", + "Currently scanning" : "A analisar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php deleted file mode 100644 index d44a5bd01b2d587295877a24ace9ffc1843c161a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/pt_PT.php +++ /dev/null @@ -1,96 +0,0 @@ - "Armazenamento indisposinvel", -"Storage invalid" => "Armazenamento inválido", -"Unknown error" => "Erro Desconhecido", -"Could not move %s - File with this name already exists" => "Não foi possível mover %s - Já existe um ficheiro com este nome", -"Could not move %s" => "Não foi possível mover %s", -"Permission denied" => "Permissão negada", -"File name cannot be empty." => "O nome do ficheiro não pode estar em branco.", -"\"%s\" is an invalid file name." => "\"%s\" é um nome de ficheiro inválido.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome Inválido, Não são permitidos os carateres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*'.", -"The target folder has been moved or deleted." => "A pasta de destino foi movida ou eliminada.", -"The name %s is already used in the folder %s. Please choose a different name." => "O nome %s já está em uso na pasta %s. Por favor escolha um nome diferente.", -"Not a valid source" => "Não é uma fonte válida", -"Server is not allowed to open URLs, please check the server configuration" => "O servidor não consegue abrir URLs, por favor verifique a configuração do servidor", -"The file exceeds your quota by %s" => "O ficheiro excede a sua quota por %s", -"Error while downloading %s to %s" => "Erro ao transferir %s para %s", -"Error when creating the file" => "Erro ao criar o ficheiro", -"Folder name cannot be empty." => "O nome da pasta não pode estar vazio.", -"Error when creating the folder" => "Erro ao criar a pasta", -"Unable to set upload directory." => "Não foi possível criar o diretório de upload", -"Invalid Token" => "Token inválido", -"No file was uploaded. Unknown error" => "Não foi enviado nenhum ficheiro. Erro desconhecido", -"There is no error, the file uploaded with success" => "Não ocorreram erros, o ficheiro foi enviado com sucesso", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede a diretiva php.ini upload_max_filesize no php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O tamanho do ficheiro enviado excede a diretiva MAX_FILE_SIZE definida no formulário HTML", -"The uploaded file was only partially uploaded" => "O ficheiro submetido só foi parcialmente enviado", -"No file was uploaded" => "Não foi enviado nenhum ficheiro", -"Missing a temporary folder" => "A pasta temporária está em falta", -"Failed to write to disk" => "Não foi possível gravar no disco", -"Not enough storage available" => "Não há espaço suficiente em disco", -"Upload failed. Could not find uploaded file" => "Falhou o envio. Não conseguiu encontrar o ficheiro enviado", -"Upload failed. Could not get file info." => "O carregamento falhou. Não foi possível obter a informação do ficheiro.", -"Invalid directory." => "Diretoria inválida.", -"Files" => "Ficheiros", -"All files" => "Todos os ficheiros", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Incapaz de enviar {filename}, dado que é uma pasta, ou tem 0 bytes", -"Total file size {size1} exceeds upload limit {size2}" => "O tamanho total do ficheiro {size1} excede o limite de carregamento {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Não existe espaço suficiente. Está a enviar {size1} mas apenas existe {size2} disponível", -"Upload cancelled." => "Envio cancelado.", -"Could not get result from server." => "Não foi possível obter o resultado do servidor.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Envio de ficheiro em progresso. Se deixar a página agora, irá cancelar o envio.", -"URL cannot be empty" => "URL não pode estar vazio", -"{new_name} already exists" => "O nome {new_name} já existe", -"Could not create file" => "Não pôde criar ficheiro", -"Could not create folder" => "Não pôde criar pasta", -"Error fetching URL" => "Erro ao obter URL", -"Share" => "Compartilhar", -"Delete" => "Apagar", -"Disconnect storage" => "Desconete o armazenamento", -"Unshare" => "Deixar de partilhar", -"Delete permanently" => "Apagar Para Sempre", -"Rename" => "Renomear", -"Pending" => "Pendente", -"Error moving file." => "Erro a mover o ficheiro.", -"Error moving file" => "Erro ao mover o ficheiro", -"Error" => "Erro", -"Could not rename file" => "Não pôde renomear o ficheiro", -"Error deleting file." => "Erro ao apagar o ficheiro.", -"Name" => "Nome", -"Size" => "Tamanho", -"Modified" => "Modificado", -"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"), -"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"), -"You don’t have permission to upload or create files here" => "Você não tem permissão para enviar ou criar ficheiros aqui", -"_Uploading %n file_::_Uploading %n files_" => array("A carregar %n ficheiro","A carregar %n ficheiros"), -"\"{name}\" is an invalid file name." => "\"{name}\" é um nome de ficheiro inválido.", -"Your storage is full, files can not be updated or synced anymore!" => "O seu armazenamento está cheio, os ficheiros já não podem ser atualizados ou sincronizados.", -"Your storage is almost full ({usedSpacePercent}%)" => "O seu armazenamento está quase cheiro ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.", -"{dirs} and {files}" => "{dirs} e {files}", -"%s could not be renamed as it has been deleted" => "Não foi possível renomear %s devido a ter sido eliminado", -"%s could not be renamed" => "%s não pode ser renomeada", -"Upload (max. %s)" => "Enviar (max. %s)", -"File handling" => "Manuseamento do ficheiro", -"Maximum upload size" => "Tamanho máximo de envio", -"max. possible: " => "Máx. possível: ", -"Save" => "Guardar", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Utilize esta ligação para aceder aos seus ficheiros via WebDAV", -"New" => "Novo", -"New text file" => "Novo ficheiro de texto", -"Text file" => "Ficheiro de Texto", -"New folder" => "Nova Pasta", -"Folder" => "Pasta", -"From link" => "Da hiperligação", -"Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!", -"Download" => "Transferir", -"Upload too large" => "Upload muito grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.", -"Files are being scanned, please wait." => "Os ficheiros estão a ser analisados, por favor aguarde.", -"Currently scanning" => "A analisar" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js new file mode 100644 index 0000000000000000000000000000000000000000..2b3e662aafd04d4b50a25929986e84faef8a8553 --- /dev/null +++ b/apps/files/l10n/ro.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Spațiu de stocare indisponibil", + "Storage invalid" : "Spațiu de stocare invalid", + "Unknown error" : "Eroare necunoscută", + "Could not move %s - File with this name already exists" : "%s nu se poate muta - Fișierul cu acest nume există deja ", + "Could not move %s" : "Nu se poate muta %s", + "Permission denied" : "Accesul interzis", + "File name cannot be empty." : "Numele fișierului nu poate rămâne gol.", + "\"%s\" is an invalid file name." : "\"%s\" este un nume de fișier nevalid", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nume nevalide, '\\', '/', '<', '>', ':', '\"', '|', '?' și '*' nu sunt permise.", + "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.", + "The name %s is already used in the folder %s. Please choose a different name." : "Numele %s este deja este folosit în dosarul %s. Te rog alege alt nume.", + "Not a valid source" : "Sursă nevalidă", + "Server is not allowed to open URLs, please check the server configuration" : "Serverului nu ii este permis sa deschida URL-ul , verificati setarile serverului", + "The file exceeds your quota by %s" : "Fisierul depaseste limita cu %s", + "Error while downloading %s to %s" : "Eroare la descarcarea %s in %s", + "Error when creating the file" : "Eroare la crearea fisierului", + "Folder name cannot be empty." : "Numele folderului nu poate fi liber.", + "Error when creating the folder" : "Eroare la crearea folderului", + "Unable to set upload directory." : "Imposibil de a seta directorul pentru incărcare.", + "Invalid Token" : "Jeton Invalid", + "No file was uploaded. Unknown error" : "Niciun fișier nu a fost încărcat. Eroare necunoscută", + "There is no error, the file uploaded with success" : "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fișierul încărcat depășește directiva upload_max_filesize din php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML", + "The uploaded file was only partially uploaded" : "Fișierul a fost încărcat doar parțial", + "No file was uploaded" : "Nu a fost încărcat nici un fișier", + "Missing a temporary folder" : "Lipsește un dosar temporar", + "Failed to write to disk" : "Eroare la scrierea pe disc", + "Not enough storage available" : "Nu este disponibil suficient spațiu", + "Upload failed. Could not find uploaded file" : "Încărcare eșuată. Nu se poate găsi fișierul încărcat", + "Upload failed. Could not get file info." : "Încărcare eșuată. Nu se pot obține informații despre fișier.", + "Invalid directory." : "Dosar nevalid.", + "Files" : "Fișiere", + "All files" : "Toate fișierele.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți", + "Total file size {size1} exceeds upload limit {size2}" : "Mărimea fișierului este {size1} ce depășește limita de incarcare de {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas", + "Upload cancelled." : "Încărcare anulată.", + "Could not get result from server." : "Nu se poate obține rezultatul de la server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", + "URL cannot be empty" : "URL nu poate fi gol", + "{new_name} already exists" : "{new_name} există deja", + "Could not create file" : "Nu s-a putut crea fisierul", + "Could not create folder" : "Nu s-a putut crea folderul", + "Error fetching URL" : "Eroare încarcare URL", + "Share" : "Partajează", + "Delete" : "Șterge", + "Disconnect storage" : "Stocare deconectata", + "Unshare" : "Anulare", + "Delete permanently" : "Șterge permanent", + "Rename" : "Redenumește", + "Pending" : "În așteptare", + "Error moving file." : "Eroare la mutarea fișierului.", + "Error moving file" : "Eroare la mutarea fișierului", + "Error" : "Eroare", + "Could not rename file" : "Nu s-a putut redenumi fisierul", + "Error deleting file." : "Eroare la ștergerea fisierului.", + "Name" : "Nume", + "Size" : "Mărime", + "Modified" : "Modificat", + "_%n folder_::_%n folders_" : ["%n director","%n directoare","%n directoare"], + "_%n file_::_%n files_" : ["%n fișier","%n fișiere","%n fișiere"], + "You don’t have permission to upload or create files here" : "Nu aveti permisiunea de a incarca sau crea fisiere aici", + "_Uploading %n file_::_Uploading %n files_" : ["Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."], + "\"{name}\" is an invalid file name." : "\"{name}\" este un nume de fișier nevalid.", + "Your storage is full, files can not be updated or synced anymore!" : "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!", + "Your storage is almost full ({usedSpacePercent}%)" : "Spațiul de stocare este aproape plin ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele", + "{dirs} and {files}" : "{dirs} și {files}", + "%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters", + "%s could not be renamed" : "%s nu a putut fi redenumit", + "Upload (max. %s)" : "Încarcă (max. %s)", + "File handling" : "Manipulare fișiere", + "Maximum upload size" : "Dimensiune maximă admisă la încărcare", + "max. possible: " : "max. posibil:", + "Save" : "Salvează", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Folosește această adresă pentru acces la fișierele tale folosind WebDAV", + "New" : "Nou", + "New text file" : "Un nou fișier text", + "Text file" : "Fișier text", + "New folder" : "Un nou dosar", + "Folder" : "Dosar", + "From link" : "De la adresa", + "Nothing in here. Upload something!" : "Nimic aici. Încarcă ceva!", + "Download" : "Descarcă", + "Upload too large" : "Fișierul încărcat este prea mare", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.", + "Files are being scanned, please wait." : "Fișierele sunt scanate, te rog așteaptă.", + "Currently scanning" : "Acum scaneaza" +}, +"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..c0e85b4b9163336b263702850b4ca77596cf62e9 --- /dev/null +++ b/apps/files/l10n/ro.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Spațiu de stocare indisponibil", + "Storage invalid" : "Spațiu de stocare invalid", + "Unknown error" : "Eroare necunoscută", + "Could not move %s - File with this name already exists" : "%s nu se poate muta - Fișierul cu acest nume există deja ", + "Could not move %s" : "Nu se poate muta %s", + "Permission denied" : "Accesul interzis", + "File name cannot be empty." : "Numele fișierului nu poate rămâne gol.", + "\"%s\" is an invalid file name." : "\"%s\" este un nume de fișier nevalid", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nume nevalide, '\\', '/', '<', '>', ':', '\"', '|', '?' și '*' nu sunt permise.", + "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.", + "The name %s is already used in the folder %s. Please choose a different name." : "Numele %s este deja este folosit în dosarul %s. Te rog alege alt nume.", + "Not a valid source" : "Sursă nevalidă", + "Server is not allowed to open URLs, please check the server configuration" : "Serverului nu ii este permis sa deschida URL-ul , verificati setarile serverului", + "The file exceeds your quota by %s" : "Fisierul depaseste limita cu %s", + "Error while downloading %s to %s" : "Eroare la descarcarea %s in %s", + "Error when creating the file" : "Eroare la crearea fisierului", + "Folder name cannot be empty." : "Numele folderului nu poate fi liber.", + "Error when creating the folder" : "Eroare la crearea folderului", + "Unable to set upload directory." : "Imposibil de a seta directorul pentru incărcare.", + "Invalid Token" : "Jeton Invalid", + "No file was uploaded. Unknown error" : "Niciun fișier nu a fost încărcat. Eroare necunoscută", + "There is no error, the file uploaded with success" : "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fișierul încărcat depășește directiva upload_max_filesize din php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML", + "The uploaded file was only partially uploaded" : "Fișierul a fost încărcat doar parțial", + "No file was uploaded" : "Nu a fost încărcat nici un fișier", + "Missing a temporary folder" : "Lipsește un dosar temporar", + "Failed to write to disk" : "Eroare la scrierea pe disc", + "Not enough storage available" : "Nu este disponibil suficient spațiu", + "Upload failed. Could not find uploaded file" : "Încărcare eșuată. Nu se poate găsi fișierul încărcat", + "Upload failed. Could not get file info." : "Încărcare eșuată. Nu se pot obține informații despre fișier.", + "Invalid directory." : "Dosar nevalid.", + "Files" : "Fișiere", + "All files" : "Toate fișierele.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți", + "Total file size {size1} exceeds upload limit {size2}" : "Mărimea fișierului este {size1} ce depășește limita de incarcare de {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas", + "Upload cancelled." : "Încărcare anulată.", + "Could not get result from server." : "Nu se poate obține rezultatul de la server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", + "URL cannot be empty" : "URL nu poate fi gol", + "{new_name} already exists" : "{new_name} există deja", + "Could not create file" : "Nu s-a putut crea fisierul", + "Could not create folder" : "Nu s-a putut crea folderul", + "Error fetching URL" : "Eroare încarcare URL", + "Share" : "Partajează", + "Delete" : "Șterge", + "Disconnect storage" : "Stocare deconectata", + "Unshare" : "Anulare", + "Delete permanently" : "Șterge permanent", + "Rename" : "Redenumește", + "Pending" : "În așteptare", + "Error moving file." : "Eroare la mutarea fișierului.", + "Error moving file" : "Eroare la mutarea fișierului", + "Error" : "Eroare", + "Could not rename file" : "Nu s-a putut redenumi fisierul", + "Error deleting file." : "Eroare la ștergerea fisierului.", + "Name" : "Nume", + "Size" : "Mărime", + "Modified" : "Modificat", + "_%n folder_::_%n folders_" : ["%n director","%n directoare","%n directoare"], + "_%n file_::_%n files_" : ["%n fișier","%n fișiere","%n fișiere"], + "You don’t have permission to upload or create files here" : "Nu aveti permisiunea de a incarca sau crea fisiere aici", + "_Uploading %n file_::_Uploading %n files_" : ["Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."], + "\"{name}\" is an invalid file name." : "\"{name}\" este un nume de fișier nevalid.", + "Your storage is full, files can not be updated or synced anymore!" : "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!", + "Your storage is almost full ({usedSpacePercent}%)" : "Spațiul de stocare este aproape plin ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele", + "{dirs} and {files}" : "{dirs} și {files}", + "%s could not be renamed as it has been deleted" : "%s nu a putut fi redenumit deoarece a fost sters", + "%s could not be renamed" : "%s nu a putut fi redenumit", + "Upload (max. %s)" : "Încarcă (max. %s)", + "File handling" : "Manipulare fișiere", + "Maximum upload size" : "Dimensiune maximă admisă la încărcare", + "max. possible: " : "max. posibil:", + "Save" : "Salvează", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Folosește această adresă pentru acces la fișierele tale folosind WebDAV", + "New" : "Nou", + "New text file" : "Un nou fișier text", + "Text file" : "Fișier text", + "New folder" : "Un nou dosar", + "Folder" : "Dosar", + "From link" : "De la adresa", + "Nothing in here. Upload something!" : "Nimic aici. Încarcă ceva!", + "Download" : "Descarcă", + "Upload too large" : "Fișierul încărcat este prea mare", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.", + "Files are being scanned, please wait." : "Fișierele sunt scanate, te rog așteaptă.", + "Currently scanning" : "Acum scaneaza" +},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" +} \ No newline at end of file diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php deleted file mode 100644 index 69c97508dca1f8d0f9c73d3149d1144d282ea543..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ro.php +++ /dev/null @@ -1,96 +0,0 @@ - "Spațiu de stocare indisponibil", -"Storage invalid" => "Spațiu de stocare invalid", -"Unknown error" => "Eroare necunoscută", -"Could not move %s - File with this name already exists" => "%s nu se poate muta - Fișierul cu acest nume există deja ", -"Could not move %s" => "Nu se poate muta %s", -"Permission denied" => "Accesul interzis", -"File name cannot be empty." => "Numele fișierului nu poate rămâne gol.", -"\"%s\" is an invalid file name." => "\"%s\" este un nume de fișier nevalid", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume nevalide, '\\', '/', '<', '>', ':', '\"', '|', '?' și '*' nu sunt permise.", -"The target folder has been moved or deleted." => "Dosarul țintă a fost mutat sau șters.", -"The name %s is already used in the folder %s. Please choose a different name." => "Numele %s este deja este folosit în dosarul %s. Te rog alege alt nume.", -"Not a valid source" => "Sursă nevalidă", -"Server is not allowed to open URLs, please check the server configuration" => "Serverului nu ii este permis sa deschida URL-ul , verificati setarile serverului", -"The file exceeds your quota by %s" => "Fisierul depaseste limita cu %s", -"Error while downloading %s to %s" => "Eroare la descarcarea %s in %s", -"Error when creating the file" => "Eroare la crearea fisierului", -"Folder name cannot be empty." => "Numele folderului nu poate fi liber.", -"Error when creating the folder" => "Eroare la crearea folderului", -"Unable to set upload directory." => "Imposibil de a seta directorul pentru incărcare.", -"Invalid Token" => "Jeton Invalid", -"No file was uploaded. Unknown error" => "Niciun fișier nu a fost încărcat. Eroare necunoscută", -"There is no error, the file uploaded with success" => "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fișierul încărcat depășește directiva upload_max_filesize din php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML", -"The uploaded file was only partially uploaded" => "Fișierul a fost încărcat doar parțial", -"No file was uploaded" => "Nu a fost încărcat nici un fișier", -"Missing a temporary folder" => "Lipsește un dosar temporar", -"Failed to write to disk" => "Eroare la scrierea pe disc", -"Not enough storage available" => "Nu este disponibil suficient spațiu", -"Upload failed. Could not find uploaded file" => "Încărcare eșuată. Nu se poate găsi fișierul încărcat", -"Upload failed. Could not get file info." => "Încărcare eșuată. Nu se pot obține informații despre fișier.", -"Invalid directory." => "Dosar nevalid.", -"Files" => "Fișiere", -"All files" => "Toate fișierele.", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți", -"Total file size {size1} exceeds upload limit {size2}" => "Mărimea fișierului este {size1} ce depășește limita de incarcare de {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas", -"Upload cancelled." => "Încărcare anulată.", -"Could not get result from server." => "Nu se poate obține rezultatul de la server.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", -"URL cannot be empty" => "URL nu poate fi gol", -"{new_name} already exists" => "{new_name} există deja", -"Could not create file" => "Nu s-a putut crea fisierul", -"Could not create folder" => "Nu s-a putut crea folderul", -"Error fetching URL" => "Eroare încarcare URL", -"Share" => "Partajează", -"Delete" => "Șterge", -"Disconnect storage" => "Stocare deconectata", -"Unshare" => "Anulare", -"Delete permanently" => "Șterge permanent", -"Rename" => "Redenumește", -"Pending" => "În așteptare", -"Error moving file." => "Eroare la mutarea fișierului.", -"Error moving file" => "Eroare la mutarea fișierului", -"Error" => "Eroare", -"Could not rename file" => "Nu s-a putut redenumi fisierul", -"Error deleting file." => "Eroare la ștergerea fisierului.", -"Name" => "Nume", -"Size" => "Mărime", -"Modified" => "Modificat", -"_%n folder_::_%n folders_" => array("%n director","%n directoare","%n directoare"), -"_%n file_::_%n files_" => array("%n fișier","%n fișiere","%n fișiere"), -"You don’t have permission to upload or create files here" => "Nu aveti permisiunea de a incarca sau crea fisiere aici", -"_Uploading %n file_::_Uploading %n files_" => array("Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."), -"\"{name}\" is an invalid file name." => "\"{name}\" este un nume de fișier nevalid.", -"Your storage is full, files can not be updated or synced anymore!" => "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!", -"Your storage is almost full ({usedSpacePercent}%)" => "Spațiul de stocare este aproape plin ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele", -"{dirs} and {files}" => "{dirs} și {files}", -"%s could not be renamed as it has been deleted" => "%s nu a putut fi redenumit deoarece a fost sters", -"%s could not be renamed" => "%s nu a putut fi redenumit", -"Upload (max. %s)" => "Încarcă (max. %s)", -"File handling" => "Manipulare fișiere", -"Maximum upload size" => "Dimensiune maximă admisă la încărcare", -"max. possible: " => "max. posibil:", -"Save" => "Salvează", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Folosește această adresă pentru acces la fișierele tale folosind WebDAV", -"New" => "Nou", -"New text file" => "Un nou fișier text", -"Text file" => "Fișier text", -"New folder" => "Un nou dosar", -"Folder" => "Dosar", -"From link" => "De la adresa", -"Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!", -"Download" => "Descarcă", -"Upload too large" => "Fișierul încărcat este prea mare", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.", -"Files are being scanned, please wait." => "Fișierele sunt scanate, te rog așteaptă.", -"Currently scanning" => "Acum scaneaza" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"; diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js new file mode 100644 index 0000000000000000000000000000000000000000..cd982266155593ac2a563934e9cb86b65eac52c3 --- /dev/null +++ b/apps/files/l10n/ru.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Хранилище недоступно", + "Storage invalid" : "Хранилище неисправно", + "Unknown error" : "Неизвестная ошибка", + "Could not move %s - File with this name already exists" : "Невозможно переместить %s - файл с таким именем уже существует", + "Could not move %s" : "Невозможно переместить %s", + "Permission denied" : "В доступе отказано", + "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-адреса, пожалуйста, проверьте настройки сервера", + "The file exceeds your quota by %s" : "Файл превышает вашу квоту на %s", + "Error while downloading %s to %s" : "Ошибка при скачивании %s в %s", + "Error when creating the file" : "Ошибка при создании файла", + "Folder name cannot be empty." : "Имя папки не может быть пустым.", + "Error when creating the folder" : "Ошибка создания каталога", + "Unable to set upload directory." : "Не удалось установить каталог загрузки.", + "Invalid Token" : "Недопустимый маркер", + "No file was uploaded. Unknown error" : "Файл не был загружен. Неизвестная ошибка", + "There is no error, the file uploaded with success" : "Файл загружен успешно.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Файл превышает размер, установленный параметром upload_max_filesize в php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Загруженный файл превышает размер, установленный параметром MAX_FILE_SIZE в HTML-форме", + "The uploaded file was only partially uploaded" : "Файл загружен лишь частично", + "No file was uploaded" : "Ни одного файла загружено не было", + "Missing a temporary folder" : "Отсутствует временный каталог", + "Failed to write to disk" : "Ошибка записи на диск", + "Not enough storage available" : "Недостаточно доступного места в хранилище", + "Upload failed. Could not find uploaded file" : "Загрузка не удалась. Невозможно найти загружаемый файл", + "Upload failed. Could not get file info." : "Загрузка не удалась. Невозможно получить информацию о файле", + "Invalid directory." : "Неверный каталог.", + "Files" : "Файлы", + "All 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." : "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.", + "URL cannot be empty" : "Ссылка не может быть пустой.", + "{new_name} already exists" : "{new_name} уже существует", + "Could not create file" : "Не удалось создать файл", + "Could not create folder" : "Не удалось создать каталог", + "Error fetching URL" : "Ошибка получения URL", + "Share" : "Открыть доступ", + "Delete" : "Удалить", + "Disconnect storage" : "Отсоединиться от хранилища", + "Unshare" : "Закрыть доступ", + "Delete permanently" : "Удалить окончательно", + "Rename" : "Переименовать", + "Pending" : "Ожидание", + "Error moving file." : "Ошибка перемещения файла.", + "Error moving file" : "Ошибка при перемещении файла", + "Error" : "Ошибка", + "Could not rename file" : "Не удалось переименовать файл", + "Error deleting file." : "Ошибка при удалении файла.", + "Name" : "Имя", + "Size" : "Размер", + "Modified" : "Изменён", + "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов"], + "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов"], + "You don’t have permission to upload or create files here" : "У вас нет прав для загрузки или создания файлов здесь.", + "_Uploading %n file_::_Uploading %n files_" : ["Закачка %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" : "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.", + "{dirs} and {files}" : "{dirs} и {files}", + "%s could not be renamed as it has been deleted" : "Невозможно переименовать %s, поскольку объект удалён.", + "%s could not be renamed" : "%s не может быть переименован", + "Upload (max. %s)" : "Загрузка (Максимум: %s)", + "File handling" : "Управление файлами", + "Maximum upload size" : "Максимальный размер загружаемого файла", + "max. possible: " : "макс. возможно: ", + "Save" : "Сохранить", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Используйте этот адрес для доступа файлам через WebDAV", + "New" : "Новый", + "New text file" : "Новый текстовый файл", + "Text file" : "Текстовый файл", + "New folder" : "Новый каталог", + "Folder" : "Каталог", + "From link" : "Объект по ссылке", + "Nothing in here. Upload something!" : "Здесь ничего нет. Загрузите что-нибудь!", + "Download" : "Скачать", + "Upload too large" : "Файл слишком велик", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файлы, которые вы пытаетесь загрузить, превышают лимит максимального размера на этом сервере.", + "Files are being scanned, please wait." : "Подождите, файлы сканируются.", + "Currently scanning" : "В настоящее время сканируется" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..7ac4fb7c3c3bc015ca82abc59c6c09cb420ac213 --- /dev/null +++ b/apps/files/l10n/ru.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Хранилище недоступно", + "Storage invalid" : "Хранилище неисправно", + "Unknown error" : "Неизвестная ошибка", + "Could not move %s - File with this name already exists" : "Невозможно переместить %s - файл с таким именем уже существует", + "Could not move %s" : "Невозможно переместить %s", + "Permission denied" : "В доступе отказано", + "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-адреса, пожалуйста, проверьте настройки сервера", + "The file exceeds your quota by %s" : "Файл превышает вашу квоту на %s", + "Error while downloading %s to %s" : "Ошибка при скачивании %s в %s", + "Error when creating the file" : "Ошибка при создании файла", + "Folder name cannot be empty." : "Имя папки не может быть пустым.", + "Error when creating the folder" : "Ошибка создания каталога", + "Unable to set upload directory." : "Не удалось установить каталог загрузки.", + "Invalid Token" : "Недопустимый маркер", + "No file was uploaded. Unknown error" : "Файл не был загружен. Неизвестная ошибка", + "There is no error, the file uploaded with success" : "Файл загружен успешно.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Файл превышает размер, установленный параметром upload_max_filesize в php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Загруженный файл превышает размер, установленный параметром MAX_FILE_SIZE в HTML-форме", + "The uploaded file was only partially uploaded" : "Файл загружен лишь частично", + "No file was uploaded" : "Ни одного файла загружено не было", + "Missing a temporary folder" : "Отсутствует временный каталог", + "Failed to write to disk" : "Ошибка записи на диск", + "Not enough storage available" : "Недостаточно доступного места в хранилище", + "Upload failed. Could not find uploaded file" : "Загрузка не удалась. Невозможно найти загружаемый файл", + "Upload failed. Could not get file info." : "Загрузка не удалась. Невозможно получить информацию о файле", + "Invalid directory." : "Неверный каталог.", + "Files" : "Файлы", + "All 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." : "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.", + "URL cannot be empty" : "Ссылка не может быть пустой.", + "{new_name} already exists" : "{new_name} уже существует", + "Could not create file" : "Не удалось создать файл", + "Could not create folder" : "Не удалось создать каталог", + "Error fetching URL" : "Ошибка получения URL", + "Share" : "Открыть доступ", + "Delete" : "Удалить", + "Disconnect storage" : "Отсоединиться от хранилища", + "Unshare" : "Закрыть доступ", + "Delete permanently" : "Удалить окончательно", + "Rename" : "Переименовать", + "Pending" : "Ожидание", + "Error moving file." : "Ошибка перемещения файла.", + "Error moving file" : "Ошибка при перемещении файла", + "Error" : "Ошибка", + "Could not rename file" : "Не удалось переименовать файл", + "Error deleting file." : "Ошибка при удалении файла.", + "Name" : "Имя", + "Size" : "Размер", + "Modified" : "Изменён", + "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов"], + "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов"], + "You don’t have permission to upload or create files here" : "У вас нет прав для загрузки или создания файлов здесь.", + "_Uploading %n file_::_Uploading %n files_" : ["Закачка %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" : "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.", + "{dirs} and {files}" : "{dirs} и {files}", + "%s could not be renamed as it has been deleted" : "Невозможно переименовать %s, поскольку объект удалён.", + "%s could not be renamed" : "%s не может быть переименован", + "Upload (max. %s)" : "Загрузка (Максимум: %s)", + "File handling" : "Управление файлами", + "Maximum upload size" : "Максимальный размер загружаемого файла", + "max. possible: " : "макс. возможно: ", + "Save" : "Сохранить", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Используйте этот адрес для доступа файлам через WebDAV", + "New" : "Новый", + "New text file" : "Новый текстовый файл", + "Text file" : "Текстовый файл", + "New folder" : "Новый каталог", + "Folder" : "Каталог", + "From link" : "Объект по ссылке", + "Nothing in here. Upload something!" : "Здесь ничего нет. Загрузите что-нибудь!", + "Download" : "Скачать", + "Upload too large" : "Файл слишком велик", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файлы, которые вы пытаетесь загрузить, превышают лимит максимального размера на этом сервере.", + "Files are being scanned, please wait." : "Подождите, файлы сканируются.", + "Currently scanning" : "В настоящее время сканируется" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php deleted file mode 100644 index 943a8a13a26e95fc84e142a336097cd0d0c0606a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ru.php +++ /dev/null @@ -1,96 +0,0 @@ - "Хранилище недоступно", -"Storage invalid" => "Хранилище неисправно", -"Unknown error" => "Неизвестная ошибка", -"Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует", -"Could not move %s" => "Невозможно переместить %s", -"Permission denied" => "В доступе отказано", -"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-адреса, пожалуйста, проверьте настройки сервера", -"The file exceeds your quota by %s" => "Файл превышает вашу квоту на %s", -"Error while downloading %s to %s" => "Ошибка при скачивании %s в %s", -"Error when creating the file" => "Ошибка при создании файла", -"Folder name cannot be empty." => "Имя папки не может быть пустым.", -"Error when creating the folder" => "Ошибка создания каталога", -"Unable to set upload directory." => "Не удалось установить каталог загрузки.", -"Invalid Token" => "Недопустимый маркер", -"No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка", -"There is no error, the file uploaded with success" => "Файл загружен успешно.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файл превышает размер, установленный параметром upload_max_filesize в php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Загруженный файл превышает размер, установленный параметром MAX_FILE_SIZE в HTML-форме", -"The uploaded file was only partially uploaded" => "Файл загружен лишь частично", -"No file was uploaded" => "Ни одного файла загружено не было", -"Missing a temporary folder" => "Отсутствует временный каталог", -"Failed to write to disk" => "Ошибка записи на диск", -"Not enough storage available" => "Недостаточно доступного места в хранилище", -"Upload failed. Could not find uploaded file" => "Загрузка не удалась. Невозможно найти загружаемый файл", -"Upload failed. Could not get file info." => "Загрузка не удалась. Невозможно получить информацию о файле", -"Invalid directory." => "Неверный каталог.", -"Files" => "Файлы", -"All 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." => "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.", -"URL cannot be empty" => "Ссылка не может быть пустой.", -"{new_name} already exists" => "{new_name} уже существует", -"Could not create file" => "Не удалось создать файл", -"Could not create folder" => "Не удалось создать каталог", -"Error fetching URL" => "Ошибка получения URL", -"Share" => "Открыть доступ", -"Delete" => "Удалить", -"Disconnect storage" => "Отсоединиться от хранилища", -"Unshare" => "Закрыть доступ", -"Delete permanently" => "Удалить окончательно", -"Rename" => "Переименовать", -"Pending" => "Ожидание", -"Error moving file." => "Ошибка перемещения файла.", -"Error moving file" => "Ошибка при перемещении файла", -"Error" => "Ошибка", -"Could not rename file" => "Не удалось переименовать файл", -"Error deleting file." => "Ошибка при удалении файла.", -"Name" => "Имя", -"Size" => "Размер", -"Modified" => "Изменён", -"_%n folder_::_%n folders_" => array("%n каталог","%n каталога","%n каталогов"), -"_%n file_::_%n files_" => array("%n файл","%n файла","%n файлов"), -"You don’t have permission to upload or create files here" => "У вас нет прав для загрузки или создания файлов здесь.", -"_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" => "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Шифрование было отключено, но ваши файлы остались зашифрованными. Зайдите на страницу личных настроек для того, чтобы расшифровать их.", -"{dirs} and {files}" => "{dirs} и {files}", -"%s could not be renamed as it has been deleted" => "Невозможно переименовать %s, поскольку объект удалён.", -"%s could not be renamed" => "%s не может быть переименован", -"Upload (max. %s)" => "Загрузка (Максимум: %s)", -"File handling" => "Управление файлами", -"Maximum upload size" => "Максимальный размер загружаемого файла", -"max. possible: " => "макс. возможно: ", -"Save" => "Сохранить", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Используйте этот адрес для доступа файлам через WebDAV", -"New" => "Новый", -"New text file" => "Новый текстовый файл", -"Text file" => "Текстовый файл", -"New folder" => "Новый каталог", -"Folder" => "Каталог", -"From link" => "Объект по ссылке", -"Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", -"Download" => "Скачать", -"Upload too large" => "Файл слишком велик", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые вы пытаетесь загрузить, превышают лимит максимального размера на этом сервере.", -"Files are being scanned, please wait." => "Подождите, файлы сканируются.", -"Currently scanning" => "В настоящее время сканируется" -); -$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);"; diff --git a/apps/files/l10n/si_LK.js b/apps/files/l10n/si_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..80df02a9ada30f5c1cc10d56657f46ccea04257b --- /dev/null +++ b/apps/files/l10n/si_LK.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "files", + { + "No file was uploaded. Unknown error" : "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්", + "There is no error, the file uploaded with success" : "දෝෂයක් නොමැත. සාර්ථකව ගොනුව උඩුගත කෙරුණි", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "උඩුගත කළ ගොනුවේ විශාලත්වය HTML පෝරමයේ නියම කළ ඇති MAX_FILE_SIZE විශාලත්වයට වඩා වැඩිය", + "The uploaded file was only partially uploaded" : "උඩුගත කළ ගොනුවේ කොටසක් පමණක් උඩුගත විය", + "No file was uploaded" : "ගොනුවක් උඩුගත නොවුණි", + "Missing a temporary folder" : "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්", + "Failed to write to disk" : "තැටිගත කිරීම අසාර්ථකයි", + "Files" : "ගොනු", + "Upload cancelled." : "උඩුගත කිරීම අත් හරින්න ලදී", + "File upload is in progress. Leaving the page now will cancel the upload." : "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත", + "Share" : "බෙදා හදා ගන්න", + "Delete" : "මකා දමන්න", + "Unshare" : "නොබෙදු", + "Rename" : "නැවත නම් කරන්න", + "Error" : "දෝෂයක්", + "Name" : "නම", + "Size" : "ප්‍රමාණය", + "Modified" : "වෙනස් කළ", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "ගොනු පරිහරණය", + "Maximum upload size" : "උඩුගත කිරීමක උපරිම ප්‍රමාණය", + "max. possible: " : "හැකි උපරිමය:", + "Save" : "සුරකින්න", + "New" : "නව", + "Text file" : "පෙළ ගොනුව", + "Folder" : "ෆෝල්ඩරය", + "From link" : "යොමුවෙන්", + "Nothing in here. Upload something!" : "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න", + "Download" : "බාන්න", + "Upload too large" : "උඩුගත කිරීම විශාල වැඩිය", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය", + "Files are being scanned, please wait." : "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/si_LK.json b/apps/files/l10n/si_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..e66d5c2a1f1828943acbdb80a0a66ab0eb523edb --- /dev/null +++ b/apps/files/l10n/si_LK.json @@ -0,0 +1,37 @@ +{ "translations": { + "No file was uploaded. Unknown error" : "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්", + "There is no error, the file uploaded with success" : "දෝෂයක් නොමැත. සාර්ථකව ගොනුව උඩුගත කෙරුණි", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "උඩුගත කළ ගොනුවේ විශාලත්වය HTML පෝරමයේ නියම කළ ඇති MAX_FILE_SIZE විශාලත්වයට වඩා වැඩිය", + "The uploaded file was only partially uploaded" : "උඩුගත කළ ගොනුවේ කොටසක් පමණක් උඩුගත විය", + "No file was uploaded" : "ගොනුවක් උඩුගත නොවුණි", + "Missing a temporary folder" : "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්", + "Failed to write to disk" : "තැටිගත කිරීම අසාර්ථකයි", + "Files" : "ගොනු", + "Upload cancelled." : "උඩුගත කිරීම අත් හරින්න ලදී", + "File upload is in progress. Leaving the page now will cancel the upload." : "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත", + "Share" : "බෙදා හදා ගන්න", + "Delete" : "මකා දමන්න", + "Unshare" : "නොබෙදු", + "Rename" : "නැවත නම් කරන්න", + "Error" : "දෝෂයක්", + "Name" : "නම", + "Size" : "ප්‍රමාණය", + "Modified" : "වෙනස් කළ", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "ගොනු පරිහරණය", + "Maximum upload size" : "උඩුගත කිරීමක උපරිම ප්‍රමාණය", + "max. possible: " : "හැකි උපරිමය:", + "Save" : "සුරකින්න", + "New" : "නව", + "Text file" : "පෙළ ගොනුව", + "Folder" : "ෆෝල්ඩරය", + "From link" : "යොමුවෙන්", + "Nothing in here. Upload something!" : "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න", + "Download" : "බාන්න", + "Upload too large" : "උඩුගත කිරීම විශාල වැඩිය", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය", + "Files are being scanned, please wait." : "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php deleted file mode 100644 index 666902e93e8ab73cc287306d54045ca6b9c950e2..0000000000000000000000000000000000000000 --- a/apps/files/l10n/si_LK.php +++ /dev/null @@ -1,38 +0,0 @@ - "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්", -"There is no error, the file uploaded with success" => "දෝෂයක් නොමැත. සාර්ථකව ගොනුව උඩුගත කෙරුණි", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "උඩුගත කළ ගොනුවේ විශාලත්වය HTML පෝරමයේ නියම කළ ඇති MAX_FILE_SIZE විශාලත්වයට වඩා වැඩිය", -"The uploaded file was only partially uploaded" => "උඩුගත කළ ගොනුවේ කොටසක් පමණක් උඩුගත විය", -"No file was uploaded" => "ගොනුවක් උඩුගත නොවුණි", -"Missing a temporary folder" => "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්", -"Failed to write to disk" => "තැටිගත කිරීම අසාර්ථකයි", -"Files" => "ගොනු", -"Upload cancelled." => "උඩුගත කිරීම අත් හරින්න ලදී", -"File upload is in progress. Leaving the page now will cancel the upload." => "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත", -"Share" => "බෙදා හදා ගන්න", -"Delete" => "මකා දමන්න", -"Unshare" => "නොබෙදු", -"Rename" => "නැවත නම් කරන්න", -"Error" => "දෝෂයක්", -"Name" => "නම", -"Size" => "ප්‍රමාණය", -"Modified" => "වෙනස් කළ", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"File handling" => "ගොනු පරිහරණය", -"Maximum upload size" => "උඩුගත කිරීමක උපරිම ප්‍රමාණය", -"max. possible: " => "හැකි උපරිමය:", -"Save" => "සුරකින්න", -"New" => "නව", -"Text file" => "පෙළ ගොනුව", -"Folder" => "ෆෝල්ඩරය", -"From link" => "යොමුවෙන්", -"Nothing in here. Upload something!" => "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න", -"Download" => "බාන්න", -"Upload too large" => "උඩුගත කිරීම විශාල වැඩිය", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය", -"Files are being scanned, please wait." => "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js new file mode 100644 index 0000000000000000000000000000000000000000..13c12b949679b8db740cb68a36eec117411997fb --- /dev/null +++ b/apps/files/l10n/sk.js @@ -0,0 +1,12 @@ +OC.L10N.register( + "files", + { + "Share" : "Zdieľať", + "Delete" : "Odstrániť", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Save" : "Uložiť", + "Download" : "Stiahnuť" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json new file mode 100644 index 0000000000000000000000000000000000000000..982ae3759b22c031ae6c9c7d276548b6977db3e1 --- /dev/null +++ b/apps/files/l10n/sk.json @@ -0,0 +1,10 @@ +{ "translations": { + "Share" : "Zdieľať", + "Delete" : "Odstrániť", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Save" : "Uložiť", + "Download" : "Stiahnuť" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files/l10n/sk.php b/apps/files/l10n/sk.php deleted file mode 100644 index 8d6c2237dc3df2cca8494f8dba87aa2c4a7b7128..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sk.php +++ /dev/null @@ -1,11 +0,0 @@ - "Zdieľať", -"Delete" => "Odstrániť", -"_%n folder_::_%n folders_" => array("","",""), -"_%n file_::_%n files_" => array("","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","",""), -"Save" => "Uložiť", -"Download" => "Stiahnuť" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js new file mode 100644 index 0000000000000000000000000000000000000000..b29bc7e2c0f1e05db1257706cbfeb865c92ab8ea --- /dev/null +++ b/apps/files/l10n/sk_SK.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Úložisko nie je dostupné", + "Storage invalid" : "Úložisko nie je platné", + "Unknown error" : "Neznáma chyba", + "Could not move %s - File with this name already exists" : "Nie je možné presunúť %s - súbor s týmto menom už existuje", + "Could not move %s" : "Nie je možné presunúť %s", + "Permission denied" : "Prístup bol odmietnutý", + "File name cannot be empty." : "Meno súboru nemôže byť prázdne", + "\"%s\" is an invalid file name." : "\"%s\" je neplatné meno súboru.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.", + "The target folder has been moved or deleted." : "Cieľový priečinok bol premiestnený alebo odstránený.", + "The name %s is already used in the folder %s. Please choose a different name." : "Názov %s už používa priečinok s%. Prosím zvoľte iný názov.", + "Not a valid source" : "Neplatný zdroj", + "Server is not allowed to open URLs, please check the server configuration" : "Server nie je oprávnený otvárať adresy URL. Overte nastavenia servera.", + "The file exceeds your quota by %s" : "Súbor prekračuje vašu kvótu o %s", + "Error while downloading %s to %s" : "Chyba pri sťahovaní súboru %s do %s", + "Error when creating the file" : "Chyba pri vytváraní súboru", + "Folder name cannot be empty." : "Názov priečinka nemôže byť prázdny.", + "Error when creating the folder" : "Chyba pri vytváraní priečinka", + "Unable to set upload directory." : "Nemožno nastaviť priečinok pre nahrané súbory.", + "Invalid Token" : "Neplatný token", + "No file was uploaded. Unknown error" : "Žiaden súbor nebol nahraný. Neznáma chyba", + "There is no error, the file uploaded with success" : "Nenastala žiadna chyba, súbor bol úspešne nahraný", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Nahraný súbor prekročil limit nastavený v upload_max_filesize v súbore php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Ukladaný súbor prekračuje nastavenie MAX_FILE_SIZE z volieb HTML formulára.", + "The uploaded file was only partially uploaded" : "Ukladaný súbor sa nahral len čiastočne", + "No file was uploaded" : "Žiadny súbor nebol uložený", + "Missing a temporary folder" : "Chýba dočasný priečinok", + "Failed to write to disk" : "Zápis na disk sa nepodaril", + "Not enough storage available" : "Nedostatok dostupného úložného priestoru", + "Upload failed. Could not find uploaded file" : "Nahrávanie zlyhalo. Nepodarilo sa nájsť nahrávaný súbor", + "Upload failed. Could not get file info." : "Nahrávanie zlyhalo. Nepodarilo sa získať informácie o súbore.", + "Invalid directory." : "Neplatný priečinok.", + "Files" : "Súbory", + "All files" : "Všetky súbory", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nemožno nahrať súbor {filename}, pretože je to priečinok, alebo má 0 bitov", + "Total file size {size1} exceeds upload limit {size2}" : "Celková veľkosť súboru {size1} prekračuje upload limit {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}", + "Upload cancelled." : "Odosielanie je zrušené.", + "Could not get result from server." : "Nepodarilo sa dostať výsledky zo servera.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", + "URL cannot be empty" : "URL nemôže byť prázdna", + "{new_name} already exists" : "{new_name} už existuje", + "Could not create file" : "Nemožno vytvoriť súbor", + "Could not create folder" : "Nemožno vytvoriť priečinok", + "Error fetching URL" : "Chyba pri načítavaní URL", + "Share" : "Zdieľať", + "Delete" : "Zmazať", + "Disconnect storage" : "Odpojiť úložisko", + "Unshare" : "Zrušiť zdieľanie", + "Delete permanently" : "Zmazať trvalo", + "Rename" : "Premenovať", + "Pending" : "Čaká", + "Error moving file." : "Chyba pri presune súboru.", + "Error moving file" : "Chyba pri presúvaní súboru", + "Error" : "Chyba", + "Could not rename file" : "Nemožno premenovať súbor", + "Error deleting file." : "Chyba pri mazaní súboru.", + "Name" : "Názov", + "Size" : "Veľkosť", + "Modified" : "Upravené", + "_%n folder_::_%n folders_" : ["%n priečinok","%n priečinky","%n priečinkov"], + "_%n file_::_%n files_" : ["%n súbor","%n súbory","%n súborov"], + "You don’t have permission to upload or create files here" : "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory", + "_Uploading %n file_::_Uploading %n files_" : ["Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neplatné meno súboru.", + "Your storage is full, files can not be updated or synced anymore!" : "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!", + "Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložisko je takmer plné ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.", + "{dirs} and {files}" : "{dirs} a {files}", + "%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný", + "%s could not be renamed" : "%s nemohol byť premenovaný", + "Upload (max. %s)" : "Nahrať (max. %s)", + "File handling" : "Nastavenie správania sa k súborom", + "Maximum upload size" : "Maximálna veľkosť odosielaného súboru", + "max. possible: " : "najväčšie možné:", + "Save" : "Uložiť", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Použite túto linku pre prístup k vašim súborom cez WebDAV", + "New" : "Nový", + "New text file" : "Nový textový súbor", + "Text file" : "Textový súbor", + "New folder" : "Nový priečinok", + "Folder" : "Priečinok", + "From link" : "Z odkazu", + "Nothing in here. Upload something!" : "Žiadny súbor. Nahrajte niečo!", + "Download" : "Sťahovanie", + "Upload too large" : "Nahrávanie je príliš veľké", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", + "Files are being scanned, please wait." : "Čakajte, súbory sú prehľadávané.", + "Currently scanning" : "Prehľadáva sa" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json new file mode 100644 index 0000000000000000000000000000000000000000..a61a5ac06ad9314d91a526061801cb00d8b0c219 --- /dev/null +++ b/apps/files/l10n/sk_SK.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Úložisko nie je dostupné", + "Storage invalid" : "Úložisko nie je platné", + "Unknown error" : "Neznáma chyba", + "Could not move %s - File with this name already exists" : "Nie je možné presunúť %s - súbor s týmto menom už existuje", + "Could not move %s" : "Nie je možné presunúť %s", + "Permission denied" : "Prístup bol odmietnutý", + "File name cannot be empty." : "Meno súboru nemôže byť prázdne", + "\"%s\" is an invalid file name." : "\"%s\" je neplatné meno súboru.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.", + "The target folder has been moved or deleted." : "Cieľový priečinok bol premiestnený alebo odstránený.", + "The name %s is already used in the folder %s. Please choose a different name." : "Názov %s už používa priečinok s%. Prosím zvoľte iný názov.", + "Not a valid source" : "Neplatný zdroj", + "Server is not allowed to open URLs, please check the server configuration" : "Server nie je oprávnený otvárať adresy URL. Overte nastavenia servera.", + "The file exceeds your quota by %s" : "Súbor prekračuje vašu kvótu o %s", + "Error while downloading %s to %s" : "Chyba pri sťahovaní súboru %s do %s", + "Error when creating the file" : "Chyba pri vytváraní súboru", + "Folder name cannot be empty." : "Názov priečinka nemôže byť prázdny.", + "Error when creating the folder" : "Chyba pri vytváraní priečinka", + "Unable to set upload directory." : "Nemožno nastaviť priečinok pre nahrané súbory.", + "Invalid Token" : "Neplatný token", + "No file was uploaded. Unknown error" : "Žiaden súbor nebol nahraný. Neznáma chyba", + "There is no error, the file uploaded with success" : "Nenastala žiadna chyba, súbor bol úspešne nahraný", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Nahraný súbor prekročil limit nastavený v upload_max_filesize v súbore php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Ukladaný súbor prekračuje nastavenie MAX_FILE_SIZE z volieb HTML formulára.", + "The uploaded file was only partially uploaded" : "Ukladaný súbor sa nahral len čiastočne", + "No file was uploaded" : "Žiadny súbor nebol uložený", + "Missing a temporary folder" : "Chýba dočasný priečinok", + "Failed to write to disk" : "Zápis na disk sa nepodaril", + "Not enough storage available" : "Nedostatok dostupného úložného priestoru", + "Upload failed. Could not find uploaded file" : "Nahrávanie zlyhalo. Nepodarilo sa nájsť nahrávaný súbor", + "Upload failed. Could not get file info." : "Nahrávanie zlyhalo. Nepodarilo sa získať informácie o súbore.", + "Invalid directory." : "Neplatný priečinok.", + "Files" : "Súbory", + "All files" : "Všetky súbory", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nemožno nahrať súbor {filename}, pretože je to priečinok, alebo má 0 bitov", + "Total file size {size1} exceeds upload limit {size2}" : "Celková veľkosť súboru {size1} prekračuje upload limit {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}", + "Upload cancelled." : "Odosielanie je zrušené.", + "Could not get result from server." : "Nepodarilo sa dostať výsledky zo servera.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", + "URL cannot be empty" : "URL nemôže byť prázdna", + "{new_name} already exists" : "{new_name} už existuje", + "Could not create file" : "Nemožno vytvoriť súbor", + "Could not create folder" : "Nemožno vytvoriť priečinok", + "Error fetching URL" : "Chyba pri načítavaní URL", + "Share" : "Zdieľať", + "Delete" : "Zmazať", + "Disconnect storage" : "Odpojiť úložisko", + "Unshare" : "Zrušiť zdieľanie", + "Delete permanently" : "Zmazať trvalo", + "Rename" : "Premenovať", + "Pending" : "Čaká", + "Error moving file." : "Chyba pri presune súboru.", + "Error moving file" : "Chyba pri presúvaní súboru", + "Error" : "Chyba", + "Could not rename file" : "Nemožno premenovať súbor", + "Error deleting file." : "Chyba pri mazaní súboru.", + "Name" : "Názov", + "Size" : "Veľkosť", + "Modified" : "Upravené", + "_%n folder_::_%n folders_" : ["%n priečinok","%n priečinky","%n priečinkov"], + "_%n file_::_%n files_" : ["%n súbor","%n súbory","%n súborov"], + "You don’t have permission to upload or create files here" : "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory", + "_Uploading %n file_::_Uploading %n files_" : ["Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neplatné meno súboru.", + "Your storage is full, files can not be updated or synced anymore!" : "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!", + "Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložisko je takmer plné ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.", + "{dirs} and {files}" : "{dirs} a {files}", + "%s could not be renamed as it has been deleted" : "%s nebolo možné premenovať, pretože bol zmazaný", + "%s could not be renamed" : "%s nemohol byť premenovaný", + "Upload (max. %s)" : "Nahrať (max. %s)", + "File handling" : "Nastavenie správania sa k súborom", + "Maximum upload size" : "Maximálna veľkosť odosielaného súboru", + "max. possible: " : "najväčšie možné:", + "Save" : "Uložiť", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Použite túto linku pre prístup k vašim súborom cez WebDAV", + "New" : "Nový", + "New text file" : "Nový textový súbor", + "Text file" : "Textový súbor", + "New folder" : "Nový priečinok", + "Folder" : "Priečinok", + "From link" : "Z odkazu", + "Nothing in here. Upload something!" : "Žiadny súbor. Nahrajte niečo!", + "Download" : "Sťahovanie", + "Upload too large" : "Nahrávanie je príliš veľké", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", + "Files are being scanned, please wait." : "Čakajte, súbory sú prehľadávané.", + "Currently scanning" : "Prehľadáva sa" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php deleted file mode 100644 index 23806d87892694b45ab85a355dd828c83033ff2a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sk_SK.php +++ /dev/null @@ -1,96 +0,0 @@ - "Úložisko nie je dostupné", -"Storage invalid" => "Úložisko nie je platné", -"Unknown error" => "Neznáma chyba", -"Could not move %s - File with this name already exists" => "Nie je možné presunúť %s - súbor s týmto menom už existuje", -"Could not move %s" => "Nie je možné presunúť %s", -"Permission denied" => "Prístup bol odmietnutý", -"File name cannot be empty." => "Meno súboru nemôže byť prázdne", -"\"%s\" is an invalid file name." => "\"%s\" je neplatné meno súboru.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.", -"The target folder has been moved or deleted." => "Cieľový priečinok bol premiestnený alebo odstránený.", -"The name %s is already used in the folder %s. Please choose a different name." => "Názov %s už používa priečinok s%. Prosím zvoľte iný názov.", -"Not a valid source" => "Neplatný zdroj", -"Server is not allowed to open URLs, please check the server configuration" => "Server nie je oprávnený otvárať adresy URL. Overte nastavenia servera.", -"The file exceeds your quota by %s" => "Súbor prekračuje vašu kvótu o %s", -"Error while downloading %s to %s" => "Chyba pri sťahovaní súboru %s do %s", -"Error when creating the file" => "Chyba pri vytváraní súboru", -"Folder name cannot be empty." => "Názov priečinka nemôže byť prázdny.", -"Error when creating the folder" => "Chyba pri vytváraní priečinka", -"Unable to set upload directory." => "Nemožno nastaviť priečinok pre nahrané súbory.", -"Invalid Token" => "Neplatný token", -"No file was uploaded. Unknown error" => "Žiaden súbor nebol nahraný. Neznáma chyba", -"There is no error, the file uploaded with success" => "Nenastala žiadna chyba, súbor bol úspešne nahraný", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Nahraný súbor prekročil limit nastavený v upload_max_filesize v súbore php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Ukladaný súbor prekračuje nastavenie MAX_FILE_SIZE z volieb HTML formulára.", -"The uploaded file was only partially uploaded" => "Ukladaný súbor sa nahral len čiastočne", -"No file was uploaded" => "Žiadny súbor nebol uložený", -"Missing a temporary folder" => "Chýba dočasný priečinok", -"Failed to write to disk" => "Zápis na disk sa nepodaril", -"Not enough storage available" => "Nedostatok dostupného úložného priestoru", -"Upload failed. Could not find uploaded file" => "Nahrávanie zlyhalo. Nepodarilo sa nájsť nahrávaný súbor", -"Upload failed. Could not get file info." => "Nahrávanie zlyhalo. Nepodarilo sa získať informácie o súbore.", -"Invalid directory." => "Neplatný priečinok.", -"Files" => "Súbory", -"All files" => "Všetky súbory", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nemožno nahrať súbor {filename}, pretože je to priečinok, alebo má 0 bitov", -"Total file size {size1} exceeds upload limit {size2}" => "Celková veľkosť súboru {size1} prekračuje upload limit {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}", -"Upload cancelled." => "Odosielanie je zrušené.", -"Could not get result from server." => "Nepodarilo sa dostať výsledky zo servera.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", -"URL cannot be empty" => "URL nemôže byť prázdna", -"{new_name} already exists" => "{new_name} už existuje", -"Could not create file" => "Nemožno vytvoriť súbor", -"Could not create folder" => "Nemožno vytvoriť priečinok", -"Error fetching URL" => "Chyba pri načítavaní URL", -"Share" => "Zdieľať", -"Delete" => "Zmazať", -"Disconnect storage" => "Odpojiť úložisko", -"Unshare" => "Zrušiť zdieľanie", -"Delete permanently" => "Zmazať trvalo", -"Rename" => "Premenovať", -"Pending" => "Čaká", -"Error moving file." => "Chyba pri presune súboru.", -"Error moving file" => "Chyba pri presúvaní súboru", -"Error" => "Chyba", -"Could not rename file" => "Nemožno premenovať súbor", -"Error deleting file." => "Chyba pri mazaní súboru.", -"Name" => "Názov", -"Size" => "Veľkosť", -"Modified" => "Upravené", -"_%n folder_::_%n folders_" => array("%n priečinok","%n priečinky","%n priečinkov"), -"_%n file_::_%n files_" => array("%n súbor","%n súbory","%n súborov"), -"You don’t have permission to upload or create files here" => "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory", -"_Uploading %n file_::_Uploading %n files_" => array("Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov"), -"\"{name}\" is an invalid file name." => "\"{name}\" je neplatné meno súboru.", -"Your storage is full, files can not be updated or synced anymore!" => "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!", -"Your storage is almost full ({usedSpacePercent}%)" => "Vaše úložisko je takmer plné ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifrovanie bolo zakázané, ale vaše súbory sú stále zašifrované. Prosím, choďte do osobného nastavenia pre dešifrovanie súborov.", -"{dirs} and {files}" => "{dirs} a {files}", -"%s could not be renamed as it has been deleted" => "%s nebolo možné premenovať, pretože bol zmazaný", -"%s could not be renamed" => "%s nemohol byť premenovaný", -"Upload (max. %s)" => "Nahrať (max. %s)", -"File handling" => "Nastavenie správania sa k súborom", -"Maximum upload size" => "Maximálna veľkosť odosielaného súboru", -"max. possible: " => "najväčšie možné:", -"Save" => "Uložiť", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Použite túto linku pre prístup k vašim súborom cez WebDAV", -"New" => "Nový", -"New text file" => "Nový textový súbor", -"Text file" => "Textový súbor", -"New folder" => "Nový priečinok", -"Folder" => "Priečinok", -"From link" => "Z odkazu", -"Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!", -"Download" => "Sťahovanie", -"Upload too large" => "Nahrávanie je príliš veľké", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", -"Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.", -"Currently scanning" => "Prehľadáva sa" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js new file mode 100644 index 0000000000000000000000000000000000000000..6a8bcbe68a6126110af797ce7380e71ee6943524 --- /dev/null +++ b/apps/files/l10n/sl.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Na voljo ni dovolj prostora", + "Storage invalid" : "Določen prostor ni veljaven", + "Unknown error" : "Neznana napaka", + "Could not move %s - File with this name already exists" : "Datoteke %s ni mogoče premakniti - datoteka s tem imenom že obstaja.", + "Could not move %s" : "Datoteke %s ni mogoče premakniti", + "Permission denied" : "Za to opravilo ni ustreznih dovoljenj.", + "File name cannot be empty." : "Ime datoteke ne sme biti prazno polje.", + "\"%s\" is an invalid file name." : "\"%s\" je neveljavno ime datoteke.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neveljavno ime; znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni.", + "The target folder has been moved or deleted." : "Ciljna mapa je premaknjena ali izbrisana.", + "The name %s is already used in the folder %s. Please choose a different name." : "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.", + "Not a valid source" : "Vir ni veljaven", + "Server is not allowed to open URLs, please check the server configuration" : "Odpiranje naslovov URL preko strežnika ni dovoljeno. Preverite nastavitve strežnika.", + "The file exceeds your quota by %s" : "Datoteka presega omejitev velikosti za %s", + "Error while downloading %s to %s" : "Napaka med prejemanjem %s v mapo %s", + "Error when creating the file" : "Napaka med ustvarjanjem datoteke", + "Folder name cannot be empty." : "Ime mape ne more biti prazna vrednost.", + "Error when creating the folder" : "Napaka med ustvarjanjem mape", + "Unable to set upload directory." : "Mapo, v katero boste prenašali dokumente, ni mogoče določiti", + "Invalid Token" : "Neveljaven žeton", + "No file was uploaded. Unknown error" : "Ni poslane datoteke. Neznana napaka.", + "There is no error, the file uploaded with success" : "Datoteka je uspešno naložena.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Poslana datoteka presega dovoljeno velikost, ki je določena z možnostjo upload_max_filesize v datoteki php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Poslana datoteka presega velikost, ki jo določa parameter največje dovoljene velikosti v obrazcu HTML.", + "The uploaded file was only partially uploaded" : "Poslan je le del datoteke.", + "No file was uploaded" : "Ni poslane datoteke", + "Missing a temporary folder" : "Manjka začasna mapa", + "Failed to write to disk" : "Pisanje na disk je spodletelo", + "Not enough storage available" : "Na voljo ni dovolj prostora", + "Upload failed. Could not find uploaded file" : "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke.", + "Upload failed. Could not get file info." : "Pošiljanje je spodletelo. Ni mogoče pridobiti podrobnosti datoteke.", + "Invalid directory." : "Neveljavna mapa.", + "Files" : "Datoteke", + "All files" : "Vse datoteke", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ni mogoče poslati datoteke {filename}, saj je to ali mapa ali pa je velikost datoteke 0 bajtov.", + "Total file size {size1} exceeds upload limit {size2}" : "Skupna velikost {size1} presega omejitev velikosti {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", + "Upload cancelled." : "Pošiljanje je preklicano.", + "Could not get result from server." : "Ni mogoče pridobiti podatkov s strežnika.", + "File upload is in progress. Leaving the page now will cancel the upload." : "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.", + "URL cannot be empty" : "Polje naslova URL ne sme biti prazno", + "{new_name} already exists" : "{new_name} že obstaja", + "Could not create file" : "Ni mogoče ustvariti datoteke", + "Could not create folder" : "Ni mogoče ustvariti mape", + "Error fetching URL" : "Napaka pridobivanja naslova URL", + "Share" : "Souporaba", + "Delete" : "Izbriši", + "Disconnect storage" : "Odklopi shrambo", + "Unshare" : "Prekini souporabo", + "Delete permanently" : "Izbriši dokončno", + "Rename" : "Preimenuj", + "Pending" : "V čakanju ...", + "Error moving file." : "Napaka premikanja datoteke.", + "Error moving file" : "Napaka premikanja datoteke", + "Error" : "Napaka", + "Could not rename file" : "Ni mogoče preimenovati datoteke", + "Error deleting file." : "Napaka brisanja datoteke.", + "Name" : "Ime", + "Size" : "Velikost", + "Modified" : "Spremenjeno", + "_%n folder_::_%n folders_" : ["%n mapa","%n mapi","%n mape","%n map"], + "_%n file_::_%n files_" : ["%n datoteka","%n datoteki","%n datoteke","%n datotek"], + "You don’t have permission to upload or create files here" : "Ni ustreznih dovoljenj za pošiljanje ali ustvarjanje datotek na tem mestu.", + "_Uploading %n file_::_Uploading %n files_" : ["Posodabljanje %n datoteke","Posodabljanje %n datotek","Posodabljanje %n datotek","Posodabljanje %n datotek"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neveljavno ime datoteke.", + "Your storage is full, files can not be updated or synced anymore!" : "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in usklajevati!", + "Your storage is almost full ({usedSpacePercent}%)" : "Prostor za shranjevanje je skoraj do konca zaseden ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.", + "{dirs} and {files}" : "{dirs} in {files}", + "%s could not be renamed as it has been deleted" : "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.", + "%s could not be renamed" : "%s ni mogoče preimenovati", + "Upload (max. %s)" : "Pošiljanje (omejitev %s)", + "File handling" : "Upravljanje z datotekami", + "Maximum upload size" : "Največja velikost za pošiljanja", + "max. possible: " : "največ mogoče:", + "Save" : "Shrani", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Uporabite naslov za dostop do datotek peko sistema WebDAV.", + "New" : "Novo", + "New text file" : "Nova besedilna datoteka", + "Text file" : "Besedilna datoteka", + "New folder" : "Nova mapa", + "Folder" : "Mapa", + "From link" : "Iz povezave", + "Nothing in here. Upload something!" : "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!", + "Download" : "Prejmi", + "Upload too large" : "Prekoračenje omejitve velikosti", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.", + "Files are being scanned, please wait." : "Poteka preučevanje datotek, počakajte ...", + "Currently scanning" : "Poteka preverjanje" +}, +"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..c759bd2abfec0513b2efe3a0e70cbaabf7720dc9 --- /dev/null +++ b/apps/files/l10n/sl.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Na voljo ni dovolj prostora", + "Storage invalid" : "Določen prostor ni veljaven", + "Unknown error" : "Neznana napaka", + "Could not move %s - File with this name already exists" : "Datoteke %s ni mogoče premakniti - datoteka s tem imenom že obstaja.", + "Could not move %s" : "Datoteke %s ni mogoče premakniti", + "Permission denied" : "Za to opravilo ni ustreznih dovoljenj.", + "File name cannot be empty." : "Ime datoteke ne sme biti prazno polje.", + "\"%s\" is an invalid file name." : "\"%s\" je neveljavno ime datoteke.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neveljavno ime; znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni.", + "The target folder has been moved or deleted." : "Ciljna mapa je premaknjena ali izbrisana.", + "The name %s is already used in the folder %s. Please choose a different name." : "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.", + "Not a valid source" : "Vir ni veljaven", + "Server is not allowed to open URLs, please check the server configuration" : "Odpiranje naslovov URL preko strežnika ni dovoljeno. Preverite nastavitve strežnika.", + "The file exceeds your quota by %s" : "Datoteka presega omejitev velikosti za %s", + "Error while downloading %s to %s" : "Napaka med prejemanjem %s v mapo %s", + "Error when creating the file" : "Napaka med ustvarjanjem datoteke", + "Folder name cannot be empty." : "Ime mape ne more biti prazna vrednost.", + "Error when creating the folder" : "Napaka med ustvarjanjem mape", + "Unable to set upload directory." : "Mapo, v katero boste prenašali dokumente, ni mogoče določiti", + "Invalid Token" : "Neveljaven žeton", + "No file was uploaded. Unknown error" : "Ni poslane datoteke. Neznana napaka.", + "There is no error, the file uploaded with success" : "Datoteka je uspešno naložena.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Poslana datoteka presega dovoljeno velikost, ki je določena z možnostjo upload_max_filesize v datoteki php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Poslana datoteka presega velikost, ki jo določa parameter največje dovoljene velikosti v obrazcu HTML.", + "The uploaded file was only partially uploaded" : "Poslan je le del datoteke.", + "No file was uploaded" : "Ni poslane datoteke", + "Missing a temporary folder" : "Manjka začasna mapa", + "Failed to write to disk" : "Pisanje na disk je spodletelo", + "Not enough storage available" : "Na voljo ni dovolj prostora", + "Upload failed. Could not find uploaded file" : "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke.", + "Upload failed. Could not get file info." : "Pošiljanje je spodletelo. Ni mogoče pridobiti podrobnosti datoteke.", + "Invalid directory." : "Neveljavna mapa.", + "Files" : "Datoteke", + "All files" : "Vse datoteke", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ni mogoče poslati datoteke {filename}, saj je to ali mapa ali pa je velikost datoteke 0 bajtov.", + "Total file size {size1} exceeds upload limit {size2}" : "Skupna velikost {size1} presega omejitev velikosti {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", + "Upload cancelled." : "Pošiljanje je preklicano.", + "Could not get result from server." : "Ni mogoče pridobiti podatkov s strežnika.", + "File upload is in progress. Leaving the page now will cancel the upload." : "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.", + "URL cannot be empty" : "Polje naslova URL ne sme biti prazno", + "{new_name} already exists" : "{new_name} že obstaja", + "Could not create file" : "Ni mogoče ustvariti datoteke", + "Could not create folder" : "Ni mogoče ustvariti mape", + "Error fetching URL" : "Napaka pridobivanja naslova URL", + "Share" : "Souporaba", + "Delete" : "Izbriši", + "Disconnect storage" : "Odklopi shrambo", + "Unshare" : "Prekini souporabo", + "Delete permanently" : "Izbriši dokončno", + "Rename" : "Preimenuj", + "Pending" : "V čakanju ...", + "Error moving file." : "Napaka premikanja datoteke.", + "Error moving file" : "Napaka premikanja datoteke", + "Error" : "Napaka", + "Could not rename file" : "Ni mogoče preimenovati datoteke", + "Error deleting file." : "Napaka brisanja datoteke.", + "Name" : "Ime", + "Size" : "Velikost", + "Modified" : "Spremenjeno", + "_%n folder_::_%n folders_" : ["%n mapa","%n mapi","%n mape","%n map"], + "_%n file_::_%n files_" : ["%n datoteka","%n datoteki","%n datoteke","%n datotek"], + "You don’t have permission to upload or create files here" : "Ni ustreznih dovoljenj za pošiljanje ali ustvarjanje datotek na tem mestu.", + "_Uploading %n file_::_Uploading %n files_" : ["Posodabljanje %n datoteke","Posodabljanje %n datotek","Posodabljanje %n datotek","Posodabljanje %n datotek"], + "\"{name}\" is an invalid file name." : "\"{name}\" je neveljavno ime datoteke.", + "Your storage is full, files can not be updated or synced anymore!" : "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in usklajevati!", + "Your storage is almost full ({usedSpacePercent}%)" : "Prostor za shranjevanje je skoraj do konca zaseden ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.", + "{dirs} and {files}" : "{dirs} in {files}", + "%s could not be renamed as it has been deleted" : "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.", + "%s could not be renamed" : "%s ni mogoče preimenovati", + "Upload (max. %s)" : "Pošiljanje (omejitev %s)", + "File handling" : "Upravljanje z datotekami", + "Maximum upload size" : "Največja velikost za pošiljanja", + "max. possible: " : "največ mogoče:", + "Save" : "Shrani", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Uporabite naslov za dostop do datotek peko sistema WebDAV.", + "New" : "Novo", + "New text file" : "Nova besedilna datoteka", + "Text file" : "Besedilna datoteka", + "New folder" : "Nova mapa", + "Folder" : "Mapa", + "From link" : "Iz povezave", + "Nothing in here. Upload something!" : "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!", + "Download" : "Prejmi", + "Upload too large" : "Prekoračenje omejitve velikosti", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.", + "Files are being scanned, please wait." : "Poteka preučevanje datotek, počakajte ...", + "Currently scanning" : "Poteka preverjanje" +},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" +} \ No newline at end of file diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php deleted file mode 100644 index 4bddb133521b458f038dbc3fab04a420e57b01b0..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sl.php +++ /dev/null @@ -1,96 +0,0 @@ - "Na voljo ni dovolj prostora", -"Storage invalid" => "Določen prostor ni veljaven", -"Unknown error" => "Neznana napaka", -"Could not move %s - File with this name already exists" => "Datoteke %s ni mogoče premakniti - datoteka s tem imenom že obstaja.", -"Could not move %s" => "Datoteke %s ni mogoče premakniti", -"Permission denied" => "Za to opravilo ni ustreznih dovoljenj.", -"File name cannot be empty." => "Ime datoteke ne sme biti prazno polje.", -"\"%s\" is an invalid file name." => "\"%s\" je neveljavno ime datoteke.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neveljavno ime; znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni.", -"The target folder has been moved or deleted." => "Ciljna mapa je premaknjena ali izbrisana.", -"The name %s is already used in the folder %s. Please choose a different name." => "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.", -"Not a valid source" => "Vir ni veljaven", -"Server is not allowed to open URLs, please check the server configuration" => "Odpiranje naslovov URL preko strežnika ni dovoljeno. Preverite nastavitve strežnika.", -"The file exceeds your quota by %s" => "Datoteka presega omejitev velikosti za %s", -"Error while downloading %s to %s" => "Napaka med prejemanjem %s v mapo %s", -"Error when creating the file" => "Napaka med ustvarjanjem datoteke", -"Folder name cannot be empty." => "Ime mape ne more biti prazna vrednost.", -"Error when creating the folder" => "Napaka med ustvarjanjem mape", -"Unable to set upload directory." => "Mapo, v katero boste prenašali dokumente, ni mogoče določiti", -"Invalid Token" => "Neveljaven žeton", -"No file was uploaded. Unknown error" => "Ni poslane datoteke. Neznana napaka.", -"There is no error, the file uploaded with success" => "Datoteka je uspešno naložena.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Poslana datoteka presega dovoljeno velikost, ki je določena z možnostjo upload_max_filesize v datoteki php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Poslana datoteka presega velikost, ki jo določa parameter največje dovoljene velikosti v obrazcu HTML.", -"The uploaded file was only partially uploaded" => "Poslan je le del datoteke.", -"No file was uploaded" => "Ni poslane datoteke", -"Missing a temporary folder" => "Manjka začasna mapa", -"Failed to write to disk" => "Pisanje na disk je spodletelo", -"Not enough storage available" => "Na voljo ni dovolj prostora", -"Upload failed. Could not find uploaded file" => "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke.", -"Upload failed. Could not get file info." => "Pošiljanje je spodletelo. Ni mogoče pridobiti podrobnosti datoteke.", -"Invalid directory." => "Neveljavna mapa.", -"Files" => "Datoteke", -"All files" => "Vse datoteke", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Ni mogoče poslati datoteke {filename}, saj je to ali mapa ali pa je velikost datoteke 0 bajtov.", -"Total file size {size1} exceeds upload limit {size2}" => "Skupna velikost {size1} presega omejitev velikosti {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", -"Upload cancelled." => "Pošiljanje je preklicano.", -"Could not get result from server." => "Ni mogoče pridobiti podatkov s strežnika.", -"File upload is in progress. Leaving the page now will cancel the upload." => "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.", -"URL cannot be empty" => "Polje naslova URL ne sme biti prazno", -"{new_name} already exists" => "{new_name} že obstaja", -"Could not create file" => "Ni mogoče ustvariti datoteke", -"Could not create folder" => "Ni mogoče ustvariti mape", -"Error fetching URL" => "Napaka pridobivanja naslova URL", -"Share" => "Souporaba", -"Delete" => "Izbriši", -"Disconnect storage" => "Odklopi shrambo", -"Unshare" => "Prekini souporabo", -"Delete permanently" => "Izbriši dokončno", -"Rename" => "Preimenuj", -"Pending" => "V čakanju ...", -"Error moving file." => "Napaka premikanja datoteke.", -"Error moving file" => "Napaka premikanja datoteke", -"Error" => "Napaka", -"Could not rename file" => "Ni mogoče preimenovati datoteke", -"Error deleting file." => "Napaka brisanja datoteke.", -"Name" => "Ime", -"Size" => "Velikost", -"Modified" => "Spremenjeno", -"_%n folder_::_%n folders_" => array("%n mapa","%n mapi","%n mape","%n map"), -"_%n file_::_%n files_" => array("%n datoteka","%n datoteki","%n datoteke","%n datotek"), -"You don’t have permission to upload or create files here" => "Ni ustreznih dovoljenj za pošiljanje ali ustvarjanje datotek na tem mestu.", -"_Uploading %n file_::_Uploading %n files_" => array("Posodabljanje %n datoteke","Posodabljanje %n datotek","Posodabljanje %n datotek","Posodabljanje %n datotek"), -"\"{name}\" is an invalid file name." => "\"{name}\" je neveljavno ime datoteke.", -"Your storage is full, files can not be updated or synced anymore!" => "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in usklajevati!", -"Your storage is almost full ({usedSpacePercent}%)" => "Prostor za shranjevanje je skoraj do konca zaseden ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.", -"{dirs} and {files}" => "{dirs} in {files}", -"%s could not be renamed as it has been deleted" => "Datoteke %s ni mogoče preimenovati, ker je bila že prej izbrisana.", -"%s could not be renamed" => "%s ni mogoče preimenovati", -"Upload (max. %s)" => "Pošiljanje (omejitev %s)", -"File handling" => "Upravljanje z datotekami", -"Maximum upload size" => "Največja velikost za pošiljanja", -"max. possible: " => "največ mogoče:", -"Save" => "Shrani", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Uporabite naslov za dostop do datotek peko sistema WebDAV.", -"New" => "Novo", -"New text file" => "Nova besedilna datoteka", -"Text file" => "Besedilna datoteka", -"New folder" => "Nova mapa", -"Folder" => "Mapa", -"From link" => "Iz povezave", -"Nothing in here. Upload something!" => "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!", -"Download" => "Prejmi", -"Upload too large" => "Prekoračenje omejitve velikosti", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.", -"Files are being scanned, please wait." => "Poteka preučevanje datotek, počakajte ...", -"Currently scanning" => "Poteka preverjanje" -); -$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js new file mode 100644 index 0000000000000000000000000000000000000000..d85523ba0622ed5a64fd9a6d385071d7db95e9f3 --- /dev/null +++ b/apps/files/l10n/sq.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Hapësira e memorizimit nuk është e disponueshme", + "Storage invalid" : "Hapësirë memorizimi e pavlefshme", + "Unknown error" : "Gabim panjohur", + "Could not move %s - File with this name already exists" : "E pa mundur zhvendosja e %s - ekziston nje skedar me te njetin emer", + "Could not move %s" : "Nuk mund të zhvendoset %s", + "Permission denied" : "Nuk ka të drejtë", + "File name cannot be empty." : "Emri i skedarit nuk mund të jetë bosh.", + "\"%s\" is an invalid file name." : "\"%s\" është i pavlefshëm si emër skedari.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Emër jo i vlefshëm, '\\', '/', '<', '>', ':', '\"', '|', '?' dhe '*' nuk lejohen.", + "The target folder has been moved or deleted." : "Dosja e destinacionit është zhvendosur ose fshirë.", + "The name %s is already used in the folder %s. Please choose a different name." : "Emri %s është i përdorur në dosjen %s. Ju lutem zgjidhni një emër tjetër.", + "Not a valid source" : "Burim i pavlefshëm", + "Server is not allowed to open URLs, please check the server configuration" : "Serverit nuk i lejohet të hapë URL, ju lutem kontrolloni konfigurimin e serverit", + "The file exceeds your quota by %s" : "Ky skedar tejkalon kuotën tuaj me %s", + "Error while downloading %s to %s" : "Gabim gjatë shkarkimit të %s në %s", + "Error when creating the file" : "Gabim gjatë krijimit të skedarit", + "Folder name cannot be empty." : "Emri i dosjes nuk mund të jetë bosh.", + "Error when creating the folder" : "Gabim gjatë krijimit të dosjes", + "Unable to set upload directory." : "E pa mundur të vendoset dosja e ngarkimit", + "Invalid Token" : "Shenjë e gabuar", + "No file was uploaded. Unknown error" : "Asnjë skedar nuk u dërgua. Gabim i pa njohur", + "There is no error, the file uploaded with success" : "Skedari u ngarkua me sukses", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Skedari i ngarkuar tejkalon limitin hapsirës së lejuar në php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Skedari i ngarkuar tejlakon vlerën MAX_FILE_SIZE të përcaktuar në formën HTML", + "The uploaded file was only partially uploaded" : "Skedari është ngakruar vetëm pjesërisht", + "No file was uploaded" : "Asnjë skedar nuk është ngarkuar", + "Missing a temporary folder" : "Mungon dosja e përkohshme", + "Failed to write to disk" : "Dështoi shkrimi në disk", + "Not enough storage available" : "Hapsira e arkivimit e pamjaftueshme", + "Upload failed. Could not find uploaded file" : "Ngarkimi dështoi. Nuk mund të gjendet skedari i ngarkuar", + "Upload failed. Could not get file info." : "Ngarkimi dështoi. Nuk mund të gjej informacion mbi skedarin.", + "Invalid directory." : "Dosje e pavlefshme", + "Files" : "Skedarë", + "All files" : "Të gjithë", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nuk mund të ngarkohet {filename} sepse është dosje ose ka 0 byte", + "Total file size {size1} exceeds upload limit {size2}" : "Përmasa totale {size1} e skedarit tejkalon limitin e ngarkimit {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nuk ka hapësirë të mjaftueshme, ju po ngarkoni {size1} por vetëm {size2} është e lirë", + "Upload cancelled." : "Ngarkimi u anullua", + "Could not get result from server." : "Nuk mund të merret ndonjë rezultat nga serveri.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Skedari duke u ngarkuar. Largimi nga faqja do të anullojë ngarkimin", + "URL cannot be empty" : "URL-i nuk mund të jetë bosh", + "{new_name} already exists" : "{new_name} është ekzistues ", + "Could not create file" : "Skedari nuk mund të krijohet", + "Could not create folder" : "I pamundur krijimi i kartelës", + "Error fetching URL" : "Gabim në ngarkimin e URL", + "Share" : "Ndaj", + "Delete" : "Fshi", + "Disconnect storage" : "Shkëput hapësirën e memorizimit", + "Unshare" : "Hiq ndarjen", + "Delete permanently" : "Fshi përfundimisht", + "Rename" : "Riemëro", + "Pending" : "Në vijim", + "Error moving file." : "Gabim në lëvizjen e skedarëve.", + "Error moving file" : "Gabim lëvizjen dokumentave", + "Error" : "Gabim", + "Could not rename file" : "Riemërtimi i skedarit nuk është i mundur", + "Error deleting file." : "Gabim gjatë fshirjes së skedarit.", + "Name" : "Emri", + "Size" : "Madhësia", + "Modified" : "Ndryshuar", + "_%n folder_::_%n folders_" : ["%n dosje","%n dosje"], + "_%n file_::_%n files_" : ["%n skedar","%n skedarë"], + "You don’t have permission to upload or create files here" : "Ju nuk keni të drejta për të ngarkuar apo krijuar skedarë këtu", + "_Uploading %n file_::_Uploading %n files_" : ["Po ngarkoj %n skedar","Po ngarkoj %n skedarë"], + "\"{name}\" is an invalid file name." : "\"{name}\" është emër i pavlefshëm.", + "Your storage is full, files can not be updated or synced anymore!" : "Hapsira juaj e arkivimit është plot, skedarët nuk mund të përditësohen ose sinkronizohen!", + "Your storage is almost full ({usedSpacePercent}%)" : "Hapsira juaj e arkivimit është pothuajse në fund ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacioni i Shifrimit është i aktivizuar por çelësat tuaj nuk janë aktivizuar, ju lutem dilni dhe ri-hyni përseri në sistem", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Çelësi privat për Aplikacionin e Shifrimit është i pavlefshëm. Ju lutem përditësoni fjalëkalimin e çelësit tuaj privat në parametrat tuaj për të rimarrë qasje në skedarët tuaj të shifruar.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kodifikimi u çaktivizua por skedarët tuaj vazhdojnë të jenë të kodifikuar. Ju lutem shkoni tek parametrat personale për të dekodifikuar skedarët tuaj.", + "{dirs} and {files}" : "{dirs} dhe {files}", + "%s could not be renamed as it has been deleted" : "%s nuk mund të riemërtohet sepse është fshirë", + "%s could not be renamed" : "Nuk është i mundur riemërtimi i %s", + "Upload (max. %s)" : "Ngarko (maks. %s)", + "File handling" : "Trajtimi i Skedarëve", + "Maximum upload size" : "Madhësia maksimale e nagarkimit", + "max. possible: " : "maks i mundshëm", + "Save" : "Ruaj", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Përdorni këtë adresë për qasje në skedarët tuaj me anë të WebDAV", + "New" : "E re", + "New text file" : "Skedar i ri tekst", + "Text file" : "Skedar tekst", + "New folder" : "Dosje e're", + "Folder" : "Dosje", + "From link" : "Nga lidhja", + "Nothing in here. Upload something!" : "Këtu nuk ka asgje. Ngarko dicka", + "Download" : "Shkarko", + "Upload too large" : "Ngarkimi shumë i madh", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skedarët që po mundoheni të ngarkoni e tejkalojnë madhësinë maksimale të lejuar nga serveri.", + "Files are being scanned, please wait." : "Skanerizimi i skedarit në proces. Ju lutem prisni.", + "Currently scanning" : "Duke skanuar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json new file mode 100644 index 0000000000000000000000000000000000000000..f15bc950d03eb05afa050b1794973faa239ace66 --- /dev/null +++ b/apps/files/l10n/sq.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Hapësira e memorizimit nuk është e disponueshme", + "Storage invalid" : "Hapësirë memorizimi e pavlefshme", + "Unknown error" : "Gabim panjohur", + "Could not move %s - File with this name already exists" : "E pa mundur zhvendosja e %s - ekziston nje skedar me te njetin emer", + "Could not move %s" : "Nuk mund të zhvendoset %s", + "Permission denied" : "Nuk ka të drejtë", + "File name cannot be empty." : "Emri i skedarit nuk mund të jetë bosh.", + "\"%s\" is an invalid file name." : "\"%s\" është i pavlefshëm si emër skedari.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Emër jo i vlefshëm, '\\', '/', '<', '>', ':', '\"', '|', '?' dhe '*' nuk lejohen.", + "The target folder has been moved or deleted." : "Dosja e destinacionit është zhvendosur ose fshirë.", + "The name %s is already used in the folder %s. Please choose a different name." : "Emri %s është i përdorur në dosjen %s. Ju lutem zgjidhni një emër tjetër.", + "Not a valid source" : "Burim i pavlefshëm", + "Server is not allowed to open URLs, please check the server configuration" : "Serverit nuk i lejohet të hapë URL, ju lutem kontrolloni konfigurimin e serverit", + "The file exceeds your quota by %s" : "Ky skedar tejkalon kuotën tuaj me %s", + "Error while downloading %s to %s" : "Gabim gjatë shkarkimit të %s në %s", + "Error when creating the file" : "Gabim gjatë krijimit të skedarit", + "Folder name cannot be empty." : "Emri i dosjes nuk mund të jetë bosh.", + "Error when creating the folder" : "Gabim gjatë krijimit të dosjes", + "Unable to set upload directory." : "E pa mundur të vendoset dosja e ngarkimit", + "Invalid Token" : "Shenjë e gabuar", + "No file was uploaded. Unknown error" : "Asnjë skedar nuk u dërgua. Gabim i pa njohur", + "There is no error, the file uploaded with success" : "Skedari u ngarkua me sukses", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Skedari i ngarkuar tejkalon limitin hapsirës së lejuar në php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Skedari i ngarkuar tejlakon vlerën MAX_FILE_SIZE të përcaktuar në formën HTML", + "The uploaded file was only partially uploaded" : "Skedari është ngakruar vetëm pjesërisht", + "No file was uploaded" : "Asnjë skedar nuk është ngarkuar", + "Missing a temporary folder" : "Mungon dosja e përkohshme", + "Failed to write to disk" : "Dështoi shkrimi në disk", + "Not enough storage available" : "Hapsira e arkivimit e pamjaftueshme", + "Upload failed. Could not find uploaded file" : "Ngarkimi dështoi. Nuk mund të gjendet skedari i ngarkuar", + "Upload failed. Could not get file info." : "Ngarkimi dështoi. Nuk mund të gjej informacion mbi skedarin.", + "Invalid directory." : "Dosje e pavlefshme", + "Files" : "Skedarë", + "All files" : "Të gjithë", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nuk mund të ngarkohet {filename} sepse është dosje ose ka 0 byte", + "Total file size {size1} exceeds upload limit {size2}" : "Përmasa totale {size1} e skedarit tejkalon limitin e ngarkimit {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nuk ka hapësirë të mjaftueshme, ju po ngarkoni {size1} por vetëm {size2} është e lirë", + "Upload cancelled." : "Ngarkimi u anullua", + "Could not get result from server." : "Nuk mund të merret ndonjë rezultat nga serveri.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Skedari duke u ngarkuar. Largimi nga faqja do të anullojë ngarkimin", + "URL cannot be empty" : "URL-i nuk mund të jetë bosh", + "{new_name} already exists" : "{new_name} është ekzistues ", + "Could not create file" : "Skedari nuk mund të krijohet", + "Could not create folder" : "I pamundur krijimi i kartelës", + "Error fetching URL" : "Gabim në ngarkimin e URL", + "Share" : "Ndaj", + "Delete" : "Fshi", + "Disconnect storage" : "Shkëput hapësirën e memorizimit", + "Unshare" : "Hiq ndarjen", + "Delete permanently" : "Fshi përfundimisht", + "Rename" : "Riemëro", + "Pending" : "Në vijim", + "Error moving file." : "Gabim në lëvizjen e skedarëve.", + "Error moving file" : "Gabim lëvizjen dokumentave", + "Error" : "Gabim", + "Could not rename file" : "Riemërtimi i skedarit nuk është i mundur", + "Error deleting file." : "Gabim gjatë fshirjes së skedarit.", + "Name" : "Emri", + "Size" : "Madhësia", + "Modified" : "Ndryshuar", + "_%n folder_::_%n folders_" : ["%n dosje","%n dosje"], + "_%n file_::_%n files_" : ["%n skedar","%n skedarë"], + "You don’t have permission to upload or create files here" : "Ju nuk keni të drejta për të ngarkuar apo krijuar skedarë këtu", + "_Uploading %n file_::_Uploading %n files_" : ["Po ngarkoj %n skedar","Po ngarkoj %n skedarë"], + "\"{name}\" is an invalid file name." : "\"{name}\" është emër i pavlefshëm.", + "Your storage is full, files can not be updated or synced anymore!" : "Hapsira juaj e arkivimit është plot, skedarët nuk mund të përditësohen ose sinkronizohen!", + "Your storage is almost full ({usedSpacePercent}%)" : "Hapsira juaj e arkivimit është pothuajse në fund ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacioni i Shifrimit është i aktivizuar por çelësat tuaj nuk janë aktivizuar, ju lutem dilni dhe ri-hyni përseri në sistem", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Çelësi privat për Aplikacionin e Shifrimit është i pavlefshëm. Ju lutem përditësoni fjalëkalimin e çelësit tuaj privat në parametrat tuaj për të rimarrë qasje në skedarët tuaj të shifruar.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kodifikimi u çaktivizua por skedarët tuaj vazhdojnë të jenë të kodifikuar. Ju lutem shkoni tek parametrat personale për të dekodifikuar skedarët tuaj.", + "{dirs} and {files}" : "{dirs} dhe {files}", + "%s could not be renamed as it has been deleted" : "%s nuk mund të riemërtohet sepse është fshirë", + "%s could not be renamed" : "Nuk është i mundur riemërtimi i %s", + "Upload (max. %s)" : "Ngarko (maks. %s)", + "File handling" : "Trajtimi i Skedarëve", + "Maximum upload size" : "Madhësia maksimale e nagarkimit", + "max. possible: " : "maks i mundshëm", + "Save" : "Ruaj", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Përdorni këtë adresë për qasje në skedarët tuaj me anë të WebDAV", + "New" : "E re", + "New text file" : "Skedar i ri tekst", + "Text file" : "Skedar tekst", + "New folder" : "Dosje e're", + "Folder" : "Dosje", + "From link" : "Nga lidhja", + "Nothing in here. Upload something!" : "Këtu nuk ka asgje. Ngarko dicka", + "Download" : "Shkarko", + "Upload too large" : "Ngarkimi shumë i madh", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skedarët që po mundoheni të ngarkoni e tejkalojnë madhësinë maksimale të lejuar nga serveri.", + "Files are being scanned, please wait." : "Skanerizimi i skedarit në proces. Ju lutem prisni.", + "Currently scanning" : "Duke skanuar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/sq.php b/apps/files/l10n/sq.php deleted file mode 100644 index 5491d820d510ca5c67d4ddfbbb0c2aac1f08f3c3..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sq.php +++ /dev/null @@ -1,61 +0,0 @@ - "Gabim panjohur", -"Could not move %s - File with this name already exists" => "E pa mundur zhvendosja e %s - ekziston nje skedar me te njetin emer", -"Could not move %s" => "Nuk mund të zhvendoset %s", -"File name cannot be empty." => "Emri i skedarit nuk mund të jetë bosh.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Emër jo i vlefshëm, '\\', '/', '<', '>', ':', '\"', '|', '?' dhe '*' nuk lejohen.", -"Unable to set upload directory." => "E pa mundur të vendoset dosja e ngarkimit", -"Invalid Token" => "Shenjë e gabuar", -"No file was uploaded. Unknown error" => "Asnjë skedar nuk u dërgua. Gabim i pa njohur", -"There is no error, the file uploaded with success" => "Skedari u ngarkua me sukses", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Skedari i ngarkuar tejkalon limitin hapsirës së lejuar në php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Skedari i ngarkuar tejlakon vlerën MAX_FILE_SIZE të përcaktuar në formën HTML", -"The uploaded file was only partially uploaded" => "Skedari është ngakruar vetëm pjesërisht", -"No file was uploaded" => "Asnjë skedar nuk është ngarkuar", -"Missing a temporary folder" => "Mungon dosja e përkohshme", -"Failed to write to disk" => "Dështoi shkrimi në disk", -"Not enough storage available" => "Hapsira e arkivimit e pamjaftueshme", -"Invalid directory." => "Dosje e pavlefshme", -"Files" => "Skedarë", -"Upload cancelled." => "Ngarkimi u anullua", -"File upload is in progress. Leaving the page now will cancel the upload." => "Skedari duke u ngarkuar. Largimi nga faqja do të anullojë ngarkimin", -"URL cannot be empty" => "URL-i nuk mund të jetë bosh", -"{new_name} already exists" => "{new_name} është ekzistues ", -"Could not create folder" => "I pamundur krijimi i kartelës", -"Share" => "Ndaj", -"Delete" => "Fshi", -"Unshare" => "Hiq ndarjen", -"Delete permanently" => "Fshi përfundimisht", -"Rename" => "Riemëro", -"Pending" => "Në vijim", -"Error moving file" => "Gabim lëvizjen dokumentave", -"Error" => "Gabim", -"Name" => "Emri", -"Size" => "Madhësia", -"Modified" => "Ndryshuar", -"_%n folder_::_%n folders_" => array("%n dosje","%n dosje"), -"_%n file_::_%n files_" => array("%n skedar","%n skedarë"), -"_Uploading %n file_::_Uploading %n files_" => array("Po ngarkoj %n skedar","Po ngarkoj %n skedarë"), -"Your storage is full, files can not be updated or synced anymore!" => "Hapsira juaj e arkivimit është plot, skedarët nuk mund të përditësohen ose sinkronizohen!", -"Your storage is almost full ({usedSpacePercent}%)" => "Hapsira juaj e arkivimit është pothuajse në fund ({usedSpacePercent}%)", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Kodifikimi u çaktivizua por skedarët tuaj vazhdojnë të jenë të kodifikuar. Ju lutem shkoni tek parametrat personale për të dekodifikuar skedarët tuaj.", -"{dirs} and {files}" => "{dirs} dhe {files}", -"%s could not be renamed" => "Nuk është i mundur riemërtimi i %s", -"File handling" => "Trajtimi i Skedarëve", -"Maximum upload size" => "Madhësia maksimale e nagarkimit", -"max. possible: " => "maks i mundshëm", -"Save" => "Ruaj", -"WebDAV" => "WebDAV", -"New" => "E re", -"Text file" => "Skedar tekst", -"New folder" => "Dosje e're", -"Folder" => "Dosje", -"From link" => "Nga lidhja", -"Nothing in here. Upload something!" => "Këtu nuk ka asgje. Ngarko dicka", -"Download" => "Shkarko", -"Upload too large" => "Ngarkimi shumë i madh", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Skedarët që po mundoheni të ngarkoni e tejkalojnë madhësinë maksimale të lejuar nga serveri.", -"Files are being scanned, please wait." => "Skanerizimi i skedarit në proces. Ju lutem prisni." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js new file mode 100644 index 0000000000000000000000000000000000000000..a758c833ff5fde2dbe8652fe11274846480332bd --- /dev/null +++ b/apps/files/l10n/sr.js @@ -0,0 +1,52 @@ +OC.L10N.register( + "files", + { + "Could not move %s - File with this name already exists" : "Не могу да преместим %s – датотека с овим именом већ постоји", + "Could not move %s" : "Не могу да преместим %s", + "File name cannot be empty." : "Име датотеке не може бити празно.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Неисправан назив. Следећи знакови нису дозвољени: \\, /, <, >, :, \", |, ? и *.", + "No file was uploaded. Unknown error" : "Ниједна датотека није отпремљена услед непознате грешке", + "There is no error, the file uploaded with success" : "Није дошло до грешке. Датотека је успешно отпремљена.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Отпремљена датотека прелази смерницу upload_max_filesize у датотеци php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремљена датотека прелази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", + "The uploaded file was only partially uploaded" : "Датотека је делимично отпремљена", + "No file was uploaded" : "Датотека није отпремљена", + "Missing a temporary folder" : "Недостаје привремена фасцикла", + "Failed to write to disk" : "Не могу да пишем на диск", + "Not enough storage available" : "Нема довољно простора", + "Invalid directory." : "неисправна фасцикла.", + "Files" : "Датотеке", + "Upload cancelled." : "Отпремање је прекинуто.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.", + "{new_name} already exists" : "{new_name} већ постоји", + "Share" : "Дели", + "Delete" : "Обриши", + "Unshare" : "Укини дељење", + "Delete permanently" : "Обриши за стално", + "Rename" : "Преименуј", + "Pending" : "На чекању", + "Error" : "Грешка", + "Name" : "Име", + "Size" : "Величина", + "Modified" : "Измењено", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Датотеке више не могу бити ажуриране ни синхронизоване.", + "Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро па пуно ({usedSpacePercent}%)", + "File handling" : "Управљање датотекама", + "Maximum upload size" : "Највећа величина датотеке", + "max. possible: " : "највећа величина:", + "Save" : "Сачувај", + "WebDAV" : "WebDAV", + "New" : "Нова", + "Text file" : "текстуална датотека", + "Folder" : "фасцикла", + "From link" : "Са везе", + "Nothing in here. Upload something!" : "Овде нема ничег. Отпремите нешто!", + "Download" : "Преузми", + "Upload too large" : "Датотека је превелика", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеке које желите да отпремите прелазе ограничење у величини.", + "Files are being scanned, please wait." : "Скенирам датотеке…" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json new file mode 100644 index 0000000000000000000000000000000000000000..a68c3f8ad8dff7253d34f9c5f130c8fdbb87ff77 --- /dev/null +++ b/apps/files/l10n/sr.json @@ -0,0 +1,50 @@ +{ "translations": { + "Could not move %s - File with this name already exists" : "Не могу да преместим %s – датотека с овим именом већ постоји", + "Could not move %s" : "Не могу да преместим %s", + "File name cannot be empty." : "Име датотеке не може бити празно.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Неисправан назив. Следећи знакови нису дозвољени: \\, /, <, >, :, \", |, ? и *.", + "No file was uploaded. Unknown error" : "Ниједна датотека није отпремљена услед непознате грешке", + "There is no error, the file uploaded with success" : "Није дошло до грешке. Датотека је успешно отпремљена.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Отпремљена датотека прелази смерницу upload_max_filesize у датотеци php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремљена датотека прелази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", + "The uploaded file was only partially uploaded" : "Датотека је делимично отпремљена", + "No file was uploaded" : "Датотека није отпремљена", + "Missing a temporary folder" : "Недостаје привремена фасцикла", + "Failed to write to disk" : "Не могу да пишем на диск", + "Not enough storage available" : "Нема довољно простора", + "Invalid directory." : "неисправна фасцикла.", + "Files" : "Датотеке", + "Upload cancelled." : "Отпремање је прекинуто.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.", + "{new_name} already exists" : "{new_name} већ постоји", + "Share" : "Дели", + "Delete" : "Обриши", + "Unshare" : "Укини дељење", + "Delete permanently" : "Обриши за стално", + "Rename" : "Преименуј", + "Pending" : "На чекању", + "Error" : "Грешка", + "Name" : "Име", + "Size" : "Величина", + "Modified" : "Измењено", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Датотеке више не могу бити ажуриране ни синхронизоване.", + "Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро па пуно ({usedSpacePercent}%)", + "File handling" : "Управљање датотекама", + "Maximum upload size" : "Највећа величина датотеке", + "max. possible: " : "највећа величина:", + "Save" : "Сачувај", + "WebDAV" : "WebDAV", + "New" : "Нова", + "Text file" : "текстуална датотека", + "Folder" : "фасцикла", + "From link" : "Са везе", + "Nothing in here. Upload something!" : "Овде нема ничег. Отпремите нешто!", + "Download" : "Преузми", + "Upload too large" : "Датотека је превелика", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеке које желите да отпремите прелазе ограничење у величини.", + "Files are being scanned, please wait." : "Скенирам датотеке…" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php deleted file mode 100644 index 99a98fbd6dfdf4e1c9d360f8a7c5e14539761a55..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sr.php +++ /dev/null @@ -1,51 +0,0 @@ - "Не могу да преместим %s – датотека с овим именом већ постоји", -"Could not move %s" => "Не могу да преместим %s", -"File name cannot be empty." => "Име датотеке не може бити празно.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неисправан назив. Следећи знакови нису дозвољени: \\, /, <, >, :, \", |, ? и *.", -"No file was uploaded. Unknown error" => "Ниједна датотека није отпремљена услед непознате грешке", -"There is no error, the file uploaded with success" => "Није дошло до грешке. Датотека је успешно отпремљена.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Отпремљена датотека прелази смерницу upload_max_filesize у датотеци php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Отпремљена датотека прелази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", -"The uploaded file was only partially uploaded" => "Датотека је делимично отпремљена", -"No file was uploaded" => "Датотека није отпремљена", -"Missing a temporary folder" => "Недостаје привремена фасцикла", -"Failed to write to disk" => "Не могу да пишем на диск", -"Not enough storage available" => "Нема довољно простора", -"Invalid directory." => "неисправна фасцикла.", -"Files" => "Датотеке", -"Upload cancelled." => "Отпремање је прекинуто.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.", -"{new_name} already exists" => "{new_name} већ постоји", -"Share" => "Дели", -"Delete" => "Обриши", -"Unshare" => "Укини дељење", -"Delete permanently" => "Обриши за стално", -"Rename" => "Преименуј", -"Pending" => "На чекању", -"Error" => "Грешка", -"Name" => "Име", -"Size" => "Величина", -"Modified" => "Измењено", -"_%n folder_::_%n folders_" => array("","",""), -"_%n file_::_%n files_" => array("","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","",""), -"Your storage is full, files can not be updated or synced anymore!" => "Ваше складиште је пуно. Датотеке више не могу бити ажуриране ни синхронизоване.", -"Your storage is almost full ({usedSpacePercent}%)" => "Ваше складиште је скоро па пуно ({usedSpacePercent}%)", -"File handling" => "Управљање датотекама", -"Maximum upload size" => "Највећа величина датотеке", -"max. possible: " => "највећа величина:", -"Save" => "Сачувај", -"WebDAV" => "WebDAV", -"New" => "Нова", -"Text file" => "текстуална датотека", -"Folder" => "фасцикла", -"From link" => "Са везе", -"Nothing in here. Upload something!" => "Овде нема ничег. Отпремите нешто!", -"Download" => "Преузми", -"Upload too large" => "Датотека је превелика", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеке које желите да отпремите прелазе ограничење у величини.", -"Files are being scanned, please wait." => "Скенирам датотеке…" -); -$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);"; diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js new file mode 100644 index 0000000000000000000000000000000000000000..2209b673abd9128f26e3ac703af5e0ae27eed958 --- /dev/null +++ b/apps/files/l10n/sr@latin.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "files", + { + "There is no error, the file uploaded with success" : "Nema greške, fajl je uspešno poslat", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Poslati fajl prevazilazi direktivu MAX_FILE_SIZE koja je navedena u HTML formi", + "The uploaded file was only partially uploaded" : "Poslati fajl je samo delimično otpremljen!", + "No file was uploaded" : "Nijedan fajl nije poslat", + "Missing a temporary folder" : "Nedostaje privremena fascikla", + "Files" : "Fajlovi", + "Share" : "Podeli", + "Delete" : "Obriši", + "Unshare" : "Ukljoni deljenje", + "Rename" : "Preimenij", + "Error" : "Greška", + "Name" : "Ime", + "Size" : "Veličina", + "Modified" : "Zadnja izmena", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Maximum upload size" : "Maksimalna veličina pošiljke", + "Save" : "Snimi", + "Folder" : "Direktorijum", + "Nothing in here. Upload something!" : "Ovde nema ničeg. Pošaljite nešto!", + "Download" : "Preuzmi", + "Upload too large" : "Pošiljka je prevelika", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru." +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json new file mode 100644 index 0000000000000000000000000000000000000000..f130138bc55bcdf69c016ccf3cf00087f68a1011 --- /dev/null +++ b/apps/files/l10n/sr@latin.json @@ -0,0 +1,27 @@ +{ "translations": { + "There is no error, the file uploaded with success" : "Nema greške, fajl je uspešno poslat", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Poslati fajl prevazilazi direktivu MAX_FILE_SIZE koja je navedena u HTML formi", + "The uploaded file was only partially uploaded" : "Poslati fajl je samo delimično otpremljen!", + "No file was uploaded" : "Nijedan fajl nije poslat", + "Missing a temporary folder" : "Nedostaje privremena fascikla", + "Files" : "Fajlovi", + "Share" : "Podeli", + "Delete" : "Obriši", + "Unshare" : "Ukljoni deljenje", + "Rename" : "Preimenij", + "Error" : "Greška", + "Name" : "Ime", + "Size" : "Veličina", + "Modified" : "Zadnja izmena", + "_%n folder_::_%n folders_" : ["","",""], + "_%n file_::_%n files_" : ["","",""], + "_Uploading %n file_::_Uploading %n files_" : ["","",""], + "Maximum upload size" : "Maksimalna veličina pošiljke", + "Save" : "Snimi", + "Folder" : "Direktorijum", + "Nothing in here. Upload something!" : "Ovde nema ničeg. Pošaljite nešto!", + "Download" : "Preuzmi", + "Upload too large" : "Pošiljka je prevelika", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/sr@latin.php b/apps/files/l10n/sr@latin.php deleted file mode 100644 index 0eed9d5e1544852bc5541fd421c28704be955118..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sr@latin.php +++ /dev/null @@ -1,28 +0,0 @@ - "Nema greške, fajl je uspešno poslat", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Poslati fajl prevazilazi direktivu MAX_FILE_SIZE koja je navedena u HTML formi", -"The uploaded file was only partially uploaded" => "Poslati fajl je samo delimično otpremljen!", -"No file was uploaded" => "Nijedan fajl nije poslat", -"Missing a temporary folder" => "Nedostaje privremena fascikla", -"Files" => "Fajlovi", -"Share" => "Podeli", -"Delete" => "Obriši", -"Unshare" => "Ukljoni deljenje", -"Rename" => "Preimenij", -"Error" => "Greška", -"Name" => "Ime", -"Size" => "Veličina", -"Modified" => "Zadnja izmena", -"_%n folder_::_%n folders_" => array("","",""), -"_%n file_::_%n files_" => array("","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","",""), -"Maximum upload size" => "Maksimalna veličina pošiljke", -"Save" => "Snimi", -"Folder" => "Direktorijum", -"Nothing in here. Upload something!" => "Ovde nema ničeg. Pošaljite nešto!", -"Download" => "Preuzmi", -"Upload too large" => "Pošiljka je prevelika", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru." -); -$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);"; diff --git a/apps/files/l10n/su.js b/apps/files/l10n/su.js new file mode 100644 index 0000000000000000000000000000000000000000..d1bbfca2dd4eb9b3fef484ce382c395698fe43d2 --- /dev/null +++ b/apps/files/l10n/su.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/su.json b/apps/files/l10n/su.json new file mode 100644 index 0000000000000000000000000000000000000000..e493054d78afd282eca938e05712cc3d24d82cac --- /dev/null +++ b/apps/files/l10n/su.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/su.php b/apps/files/l10n/su.php deleted file mode 100644 index 70ab6572ba466c23b8066e18b9ee2f9cb2a7a827..0000000000000000000000000000000000000000 --- a/apps/files/l10n/su.php +++ /dev/null @@ -1,7 +0,0 @@ - array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array("") -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js new file mode 100644 index 0000000000000000000000000000000000000000..234731fec2b5cac7e3407eeba3ed1842c0e66def --- /dev/null +++ b/apps/files/l10n/sv.js @@ -0,0 +1,91 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Okänt fel", + "Could not move %s - File with this name already exists" : "Kunde inte flytta %s - Det finns redan en fil med detta namn", + "Could not move %s" : "Kan inte flytta %s", + "File name cannot be empty." : "Filnamn kan inte vara tomt.", + "\"%s\" is an invalid file name." : "\"%s\" är ett ogiltigt filnamn.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet.", + "The target folder has been moved or deleted." : "Målmappen har flyttats eller tagits bort.", + "The name %s is already used in the folder %s. Please choose a different name." : "Namnet %s används redan i katalogen %s. Välj ett annat namn.", + "Not a valid source" : "Inte en giltig källa", + "Server is not allowed to open URLs, please check the server configuration" : "Servern är inte tillåten att öppna URL:er, vänligen kontrollera server konfigurationen", + "Error while downloading %s to %s" : "Fel under nerladdning från %s till %s", + "Error when creating the file" : "Fel under skapande utav filen", + "Folder name cannot be empty." : "Katalognamn kan ej vara tomt.", + "Error when creating the folder" : "Fel under skapande utav en katalog", + "Unable to set upload directory." : "Kan inte sätta mapp för uppladdning.", + "Invalid Token" : "Ogiltig token", + "No file was uploaded. Unknown error" : "Ingen fil uppladdad. Okänt fel", + "There is no error, the file uploaded with success" : "Inga fel uppstod. Filen laddades upp utan problem.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den uppladdade filen överskrider MAX_FILE_SIZE direktivet som har angetts i HTML formuläret", + "The uploaded file was only partially uploaded" : "Den uppladdade filen var endast delvis uppladdad", + "No file was uploaded" : "Ingen fil laddades upp", + "Missing a temporary folder" : "En temporär mapp saknas", + "Failed to write to disk" : "Misslyckades spara till disk", + "Not enough storage available" : "Inte tillräckligt med lagringsutrymme tillgängligt", + "Upload failed. Could not find uploaded file" : "Uppladdning misslyckades. Kunde inte hitta den uppladdade filen", + "Upload failed. Could not get file info." : "Uppladdning misslyckades. Gick inte att hämta filinformation.", + "Invalid directory." : "Felaktig mapp.", + "Files" : "Filer", + "All files" : "Alla filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan inte ladda upp {filename} eftersom den antingen är en mapp eller har 0 bytes.", + "Total file size {size1} exceeds upload limit {size2}" : "Totala filstorleken {size1} överskrider uppladdningsgränsen {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", + "Upload cancelled." : "Uppladdning avbruten.", + "Could not get result from server." : "Gick inte att hämta resultat från server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.", + "URL cannot be empty" : "URL kan ej vara tomt", + "{new_name} already exists" : "{new_name} finns redan", + "Could not create file" : "Kunde ej skapa fil", + "Could not create folder" : "Kunde ej skapa katalog", + "Error fetching URL" : "Fel vid hämtning av URL", + "Share" : "Dela", + "Delete" : "Radera", + "Unshare" : "Sluta dela", + "Delete permanently" : "Radera permanent", + "Rename" : "Byt namn", + "Pending" : "Väntar", + "Error moving file." : "Fel vid flytt av fil.", + "Error moving file" : "Fel uppstod vid flyttning av fil", + "Error" : "Fel", + "Could not rename file" : "Kan ej byta filnamn", + "Error deleting file." : "Kunde inte ta bort filen.", + "Name" : "Namn", + "Size" : "Storlek", + "Modified" : "Ändrad", + "_%n folder_::_%n folders_" : ["%n mapp","%n mappar"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "You don’t have permission to upload or create files here" : "Du har ej tillåtelse att ladda upp eller skapa filer här", + "_Uploading %n file_::_Uploading %n files_" : ["Laddar upp %n fil","Laddar upp %n filer"], + "\"{name}\" is an invalid file name." : "\"{name}\" är ett ogiltligt filnamn.", + "Your storage is full, files can not be updated or synced anymore!" : "Ditt lagringsutrymme är fullt, filer kan inte längre uppdateras eller synkroniseras!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.", + "{dirs} and {files}" : "{dirs} och {files}", + "%s could not be renamed" : "%s kunde inte namnändras", + "Upload (max. %s)" : "Ladda upp (max. %s)", + "File handling" : "Filhantering", + "Maximum upload size" : "Maximal storlek att ladda upp", + "max. possible: " : "max. möjligt:", + "Save" : "Spara", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Använd denna adress till nå dina Filer via WebDAV", + "New" : "Ny", + "New text file" : "Ny textfil", + "Text file" : "Textfil", + "New folder" : "Ny mapp", + "Folder" : "Mapp", + "From link" : "Från länk", + "Nothing in here. Upload something!" : "Ingenting här. Ladda upp något!", + "Download" : "Ladda ner", + "Upload too large" : "För stor uppladdning", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.", + "Files are being scanned, please wait." : "Filer skannas, var god vänta", + "Currently scanning" : "sökning pågår" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json new file mode 100644 index 0000000000000000000000000000000000000000..36aa5d5984f6e59a5cc5f79eb505b4bc581ed8e3 --- /dev/null +++ b/apps/files/l10n/sv.json @@ -0,0 +1,89 @@ +{ "translations": { + "Unknown error" : "Okänt fel", + "Could not move %s - File with this name already exists" : "Kunde inte flytta %s - Det finns redan en fil med detta namn", + "Could not move %s" : "Kan inte flytta %s", + "File name cannot be empty." : "Filnamn kan inte vara tomt.", + "\"%s\" is an invalid file name." : "\"%s\" är ett ogiltigt filnamn.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet.", + "The target folder has been moved or deleted." : "Målmappen har flyttats eller tagits bort.", + "The name %s is already used in the folder %s. Please choose a different name." : "Namnet %s används redan i katalogen %s. Välj ett annat namn.", + "Not a valid source" : "Inte en giltig källa", + "Server is not allowed to open URLs, please check the server configuration" : "Servern är inte tillåten att öppna URL:er, vänligen kontrollera server konfigurationen", + "Error while downloading %s to %s" : "Fel under nerladdning från %s till %s", + "Error when creating the file" : "Fel under skapande utav filen", + "Folder name cannot be empty." : "Katalognamn kan ej vara tomt.", + "Error when creating the folder" : "Fel under skapande utav en katalog", + "Unable to set upload directory." : "Kan inte sätta mapp för uppladdning.", + "Invalid Token" : "Ogiltig token", + "No file was uploaded. Unknown error" : "Ingen fil uppladdad. Okänt fel", + "There is no error, the file uploaded with success" : "Inga fel uppstod. Filen laddades upp utan problem.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den uppladdade filen överskrider MAX_FILE_SIZE direktivet som har angetts i HTML formuläret", + "The uploaded file was only partially uploaded" : "Den uppladdade filen var endast delvis uppladdad", + "No file was uploaded" : "Ingen fil laddades upp", + "Missing a temporary folder" : "En temporär mapp saknas", + "Failed to write to disk" : "Misslyckades spara till disk", + "Not enough storage available" : "Inte tillräckligt med lagringsutrymme tillgängligt", + "Upload failed. Could not find uploaded file" : "Uppladdning misslyckades. Kunde inte hitta den uppladdade filen", + "Upload failed. Could not get file info." : "Uppladdning misslyckades. Gick inte att hämta filinformation.", + "Invalid directory." : "Felaktig mapp.", + "Files" : "Filer", + "All files" : "Alla filer", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan inte ladda upp {filename} eftersom den antingen är en mapp eller har 0 bytes.", + "Total file size {size1} exceeds upload limit {size2}" : "Totala filstorleken {size1} överskrider uppladdningsgränsen {size2}", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", + "Upload cancelled." : "Uppladdning avbruten.", + "Could not get result from server." : "Gick inte att hämta resultat från server.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.", + "URL cannot be empty" : "URL kan ej vara tomt", + "{new_name} already exists" : "{new_name} finns redan", + "Could not create file" : "Kunde ej skapa fil", + "Could not create folder" : "Kunde ej skapa katalog", + "Error fetching URL" : "Fel vid hämtning av URL", + "Share" : "Dela", + "Delete" : "Radera", + "Unshare" : "Sluta dela", + "Delete permanently" : "Radera permanent", + "Rename" : "Byt namn", + "Pending" : "Väntar", + "Error moving file." : "Fel vid flytt av fil.", + "Error moving file" : "Fel uppstod vid flyttning av fil", + "Error" : "Fel", + "Could not rename file" : "Kan ej byta filnamn", + "Error deleting file." : "Kunde inte ta bort filen.", + "Name" : "Namn", + "Size" : "Storlek", + "Modified" : "Ändrad", + "_%n folder_::_%n folders_" : ["%n mapp","%n mappar"], + "_%n file_::_%n files_" : ["%n fil","%n filer"], + "You don’t have permission to upload or create files here" : "Du har ej tillåtelse att ladda upp eller skapa filer här", + "_Uploading %n file_::_Uploading %n files_" : ["Laddar upp %n fil","Laddar upp %n filer"], + "\"{name}\" is an invalid file name." : "\"{name}\" är ett ogiltligt filnamn.", + "Your storage is full, files can not be updated or synced anymore!" : "Ditt lagringsutrymme är fullt, filer kan inte längre uppdateras eller synkroniseras!", + "Your storage is almost full ({usedSpacePercent}%)" : "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.", + "{dirs} and {files}" : "{dirs} och {files}", + "%s could not be renamed" : "%s kunde inte namnändras", + "Upload (max. %s)" : "Ladda upp (max. %s)", + "File handling" : "Filhantering", + "Maximum upload size" : "Maximal storlek att ladda upp", + "max. possible: " : "max. möjligt:", + "Save" : "Spara", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Använd denna adress till nå dina Filer via WebDAV", + "New" : "Ny", + "New text file" : "Ny textfil", + "Text file" : "Textfil", + "New folder" : "Ny mapp", + "Folder" : "Mapp", + "From link" : "Från länk", + "Nothing in here. Upload something!" : "Ingenting här. Ladda upp något!", + "Download" : "Ladda ner", + "Upload too large" : "För stor uppladdning", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.", + "Files are being scanned, please wait." : "Filer skannas, var god vänta", + "Currently scanning" : "sökning pågår" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php deleted file mode 100644 index 953946f3809aaf65ec48cef16e328d8953cbb803..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sv.php +++ /dev/null @@ -1,90 +0,0 @@ - "Okänt fel", -"Could not move %s - File with this name already exists" => "Kunde inte flytta %s - Det finns redan en fil med detta namn", -"Could not move %s" => "Kan inte flytta %s", -"File name cannot be empty." => "Filnamn kan inte vara tomt.", -"\"%s\" is an invalid file name." => "\"%s\" är ett ogiltigt filnamn.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet.", -"The target folder has been moved or deleted." => "Målmappen har flyttats eller tagits bort.", -"The name %s is already used in the folder %s. Please choose a different name." => "Namnet %s används redan i katalogen %s. Välj ett annat namn.", -"Not a valid source" => "Inte en giltig källa", -"Server is not allowed to open URLs, please check the server configuration" => "Servern är inte tillåten att öppna URL:er, vänligen kontrollera server konfigurationen", -"Error while downloading %s to %s" => "Fel under nerladdning från %s till %s", -"Error when creating the file" => "Fel under skapande utav filen", -"Folder name cannot be empty." => "Katalognamn kan ej vara tomt.", -"Error when creating the folder" => "Fel under skapande utav en katalog", -"Unable to set upload directory." => "Kan inte sätta mapp för uppladdning.", -"Invalid Token" => "Ogiltig token", -"No file was uploaded. Unknown error" => "Ingen fil uppladdad. Okänt fel", -"There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uppladdade filen överskrider MAX_FILE_SIZE direktivet som har angetts i HTML formuläret", -"The uploaded file was only partially uploaded" => "Den uppladdade filen var endast delvis uppladdad", -"No file was uploaded" => "Ingen fil laddades upp", -"Missing a temporary folder" => "En temporär mapp saknas", -"Failed to write to disk" => "Misslyckades spara till disk", -"Not enough storage available" => "Inte tillräckligt med lagringsutrymme tillgängligt", -"Upload failed. Could not find uploaded file" => "Uppladdning misslyckades. Kunde inte hitta den uppladdade filen", -"Upload failed. Could not get file info." => "Uppladdning misslyckades. Gick inte att hämta filinformation.", -"Invalid directory." => "Felaktig mapp.", -"Files" => "Filer", -"All files" => "Alla filer", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "Kan inte ladda upp {filename} eftersom den antingen är en mapp eller har 0 bytes.", -"Total file size {size1} exceeds upload limit {size2}" => "Totala filstorleken {size1} överskrider uppladdningsgränsen {size2}", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", -"Upload cancelled." => "Uppladdning avbruten.", -"Could not get result from server." => "Gick inte att hämta resultat från server.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.", -"URL cannot be empty" => "URL kan ej vara tomt", -"{new_name} already exists" => "{new_name} finns redan", -"Could not create file" => "Kunde ej skapa fil", -"Could not create folder" => "Kunde ej skapa katalog", -"Error fetching URL" => "Fel vid hämtning av URL", -"Share" => "Dela", -"Delete" => "Radera", -"Unshare" => "Sluta dela", -"Delete permanently" => "Radera permanent", -"Rename" => "Byt namn", -"Pending" => "Väntar", -"Error moving file." => "Fel vid flytt av fil.", -"Error moving file" => "Fel uppstod vid flyttning av fil", -"Error" => "Fel", -"Could not rename file" => "Kan ej byta filnamn", -"Error deleting file." => "Kunde inte ta bort filen.", -"Name" => "Namn", -"Size" => "Storlek", -"Modified" => "Ändrad", -"_%n folder_::_%n folders_" => array("%n mapp","%n mappar"), -"_%n file_::_%n files_" => array("%n fil","%n filer"), -"You don’t have permission to upload or create files here" => "Du har ej tillåtelse att ladda upp eller skapa filer här", -"_Uploading %n file_::_Uploading %n files_" => array("Laddar upp %n fil","Laddar upp %n filer"), -"\"{name}\" is an invalid file name." => "\"{name}\" är ett ogiltligt filnamn.", -"Your storage is full, files can not be updated or synced anymore!" => "Ditt lagringsutrymme är fullt, filer kan inte längre uppdateras eller synkroniseras!", -"Your storage is almost full ({usedSpacePercent}%)" => "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Kryptering inaktiverades men dina filer är fortfarande krypterade. Vänligen gå till sidan för dina personliga inställningar för att dekryptera dina filer.", -"{dirs} and {files}" => "{dirs} och {files}", -"%s could not be renamed" => "%s kunde inte namnändras", -"Upload (max. %s)" => "Ladda upp (max. %s)", -"File handling" => "Filhantering", -"Maximum upload size" => "Maximal storlek att ladda upp", -"max. possible: " => "max. möjligt:", -"Save" => "Spara", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Använd denna adress till nå dina Filer via WebDAV", -"New" => "Ny", -"New text file" => "Ny textfil", -"Text file" => "Textfil", -"New folder" => "Ny mapp", -"Folder" => "Mapp", -"From link" => "Från länk", -"Nothing in here. Upload something!" => "Ingenting här. Ladda upp något!", -"Download" => "Ladda ner", -"Upload too large" => "För stor uppladdning", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.", -"Files are being scanned, please wait." => "Filer skannas, var god vänta", -"Currently scanning" => "sökning pågår" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/sw_KE.js b/apps/files/l10n/sw_KE.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/sw_KE.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/sw_KE.json b/apps/files/l10n/sw_KE.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/sw_KE.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/sw_KE.php b/apps/files/l10n/sw_KE.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/sw_KE.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ta_IN.js b/apps/files/l10n/ta_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..b7aaa25ee5237feea8ef41801859680be25df311 --- /dev/null +++ b/apps/files/l10n/ta_IN.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files", + { + "Files" : "கோப்புகள்", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "New folder" : "புதிய கோப்புறை" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ta_IN.json b/apps/files/l10n/ta_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..955320c6c9458c23e90ac3e7f9c27ff859e82bc6 --- /dev/null +++ b/apps/files/l10n/ta_IN.json @@ -0,0 +1,8 @@ +{ "translations": { + "Files" : "கோப்புகள்", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "New folder" : "புதிய கோப்புறை" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ta_IN.php b/apps/files/l10n/ta_IN.php deleted file mode 100644 index 8266e21a44ef2aaf33bb4502d79ca8e326f993e3..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ta_IN.php +++ /dev/null @@ -1,9 +0,0 @@ - "கோப்புகள்", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"New folder" => "புதிய கோப்புறை" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ta_LK.js b/apps/files/l10n/ta_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..2014dd6ceb91afe76c2209b771c17a7be419d56c --- /dev/null +++ b/apps/files/l10n/ta_LK.js @@ -0,0 +1,42 @@ +OC.L10N.register( + "files", + { + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "செல்லுபடியற்ற பெயர்,'\\', '/', '<', '>', ':', '\"', '|', '?' மற்றும் '*' ஆகியன அனுமதிக்கப்படமாட்டாது.", + "No file was uploaded. Unknown error" : "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு", + "There is no error, the file uploaded with success" : "இங்கு வழு இல்லை, கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "பதிவேற்றப்பட்ட கோப்பானது HTML படிவத்தில் குறிப்பிடப்பட்டுள்ள MAX_FILE_SIZE directive ஐ விட கூடியது", + "The uploaded file was only partially uploaded" : "பதிவேற்றப்பட்ட கோப்பானது பகுதியாக மட்டுமே பதிவேற்றப்பட்டுள்ளது", + "No file was uploaded" : "எந்த கோப்பும் பதிவேற்றப்படவில்லை", + "Missing a temporary folder" : "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை", + "Failed to write to disk" : "வட்டில் எழுத முடியவில்லை", + "Files" : "கோப்புகள்", + "Upload cancelled." : "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது", + "File upload is in progress. Leaving the page now will cancel the upload." : "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.", + "{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது", + "Share" : "பகிர்வு", + "Delete" : "நீக்குக", + "Unshare" : "பகிரப்படாதது", + "Rename" : "பெயர்மாற்றம்", + "Pending" : "நிலுவையிலுள்ள", + "Error" : "வழு", + "Name" : "பெயர்", + "Size" : "அளவு", + "Modified" : "மாற்றப்பட்டது", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "கோப்பு கையாளுதல்", + "Maximum upload size" : "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ", + "max. possible: " : "ஆகக் கூடியது:", + "Save" : "சேமிக்க ", + "New" : "புதிய", + "Text file" : "கோப்பு உரை", + "Folder" : "கோப்புறை", + "From link" : "இணைப்பிலிருந்து", + "Nothing in here. Upload something!" : "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!", + "Download" : "பதிவிறக்குக", + "Upload too large" : "பதிவேற்றல் மிகப்பெரியது", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.", + "Files are being scanned, please wait." : "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ta_LK.json b/apps/files/l10n/ta_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..c8426f9eb325351e41d7e8771e04fd4455f2f82d --- /dev/null +++ b/apps/files/l10n/ta_LK.json @@ -0,0 +1,40 @@ +{ "translations": { + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "செல்லுபடியற்ற பெயர்,'\\', '/', '<', '>', ':', '\"', '|', '?' மற்றும் '*' ஆகியன அனுமதிக்கப்படமாட்டாது.", + "No file was uploaded. Unknown error" : "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு", + "There is no error, the file uploaded with success" : "இங்கு வழு இல்லை, கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "பதிவேற்றப்பட்ட கோப்பானது HTML படிவத்தில் குறிப்பிடப்பட்டுள்ள MAX_FILE_SIZE directive ஐ விட கூடியது", + "The uploaded file was only partially uploaded" : "பதிவேற்றப்பட்ட கோப்பானது பகுதியாக மட்டுமே பதிவேற்றப்பட்டுள்ளது", + "No file was uploaded" : "எந்த கோப்பும் பதிவேற்றப்படவில்லை", + "Missing a temporary folder" : "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை", + "Failed to write to disk" : "வட்டில் எழுத முடியவில்லை", + "Files" : "கோப்புகள்", + "Upload cancelled." : "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது", + "File upload is in progress. Leaving the page now will cancel the upload." : "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.", + "{new_name} already exists" : "{new_name} ஏற்கனவே உள்ளது", + "Share" : "பகிர்வு", + "Delete" : "நீக்குக", + "Unshare" : "பகிரப்படாதது", + "Rename" : "பெயர்மாற்றம்", + "Pending" : "நிலுவையிலுள்ள", + "Error" : "வழு", + "Name" : "பெயர்", + "Size" : "அளவு", + "Modified" : "மாற்றப்பட்டது", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "File handling" : "கோப்பு கையாளுதல்", + "Maximum upload size" : "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ", + "max. possible: " : "ஆகக் கூடியது:", + "Save" : "சேமிக்க ", + "New" : "புதிய", + "Text file" : "கோப்பு உரை", + "Folder" : "கோப்புறை", + "From link" : "இணைப்பிலிருந்து", + "Nothing in here. Upload something!" : "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!", + "Download" : "பதிவிறக்குக", + "Upload too large" : "பதிவேற்றல் மிகப்பெரியது", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.", + "Files are being scanned, please wait." : "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php deleted file mode 100644 index d492b0ae399dd872ed06981ce494e9cb51fa0a1a..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ta_LK.php +++ /dev/null @@ -1,41 +0,0 @@ -', ':', '\"', '|', '?' and '*' are not allowed." => "செல்லுபடியற்ற பெயர்,'\\', '/', '<', '>', ':', '\"', '|', '?' மற்றும் '*' ஆகியன அனுமதிக்கப்படமாட்டாது.", -"No file was uploaded. Unknown error" => "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு", -"There is no error, the file uploaded with success" => "இங்கு வழு இல்லை, கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "பதிவேற்றப்பட்ட கோப்பானது HTML படிவத்தில் குறிப்பிடப்பட்டுள்ள MAX_FILE_SIZE directive ஐ விட கூடியது", -"The uploaded file was only partially uploaded" => "பதிவேற்றப்பட்ட கோப்பானது பகுதியாக மட்டுமே பதிவேற்றப்பட்டுள்ளது", -"No file was uploaded" => "எந்த கோப்பும் பதிவேற்றப்படவில்லை", -"Missing a temporary folder" => "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை", -"Failed to write to disk" => "வட்டில் எழுத முடியவில்லை", -"Files" => "கோப்புகள்", -"Upload cancelled." => "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது", -"File upload is in progress. Leaving the page now will cancel the upload." => "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.", -"{new_name} already exists" => "{new_name} ஏற்கனவே உள்ளது", -"Share" => "பகிர்வு", -"Delete" => "நீக்குக", -"Unshare" => "பகிரப்படாதது", -"Rename" => "பெயர்மாற்றம்", -"Pending" => "நிலுவையிலுள்ள", -"Error" => "வழு", -"Name" => "பெயர்", -"Size" => "அளவு", -"Modified" => "மாற்றப்பட்டது", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"File handling" => "கோப்பு கையாளுதல்", -"Maximum upload size" => "பதிவேற்றக்கூடிய ஆகக்கூடிய அளவு ", -"max. possible: " => "ஆகக் கூடியது:", -"Save" => "சேமிக்க ", -"New" => "புதிய", -"Text file" => "கோப்பு உரை", -"Folder" => "கோப்புறை", -"From link" => "இணைப்பிலிருந்து", -"Nothing in here. Upload something!" => "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!", -"Download" => "பதிவிறக்குக", -"Upload too large" => "பதிவேற்றல் மிகப்பெரியது", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.", -"Files are being scanned, please wait." => "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/te.js b/apps/files/l10n/te.js new file mode 100644 index 0000000000000000000000000000000000000000..2d0a3ed3d9a9c9ee483de4c1817b89deab3e1ce4 --- /dev/null +++ b/apps/files/l10n/te.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "files", + { + "Delete" : "తొలగించు", + "Delete permanently" : "శాశ్వతంగా తొలగించు", + "Error" : "పొరపాటు", + "Name" : "పేరు", + "Size" : "పరిమాణం", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "భద్రపరచు", + "New folder" : "కొత్త సంచయం", + "Folder" : "సంచయం" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/te.json b/apps/files/l10n/te.json new file mode 100644 index 0000000000000000000000000000000000000000..efa952f212a3aa456c4663c6eee17882c25fde1e --- /dev/null +++ b/apps/files/l10n/te.json @@ -0,0 +1,14 @@ +{ "translations": { + "Delete" : "తొలగించు", + "Delete permanently" : "శాశ్వతంగా తొలగించు", + "Error" : "పొరపాటు", + "Name" : "పేరు", + "Size" : "పరిమాణం", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "భద్రపరచు", + "New folder" : "కొత్త సంచయం", + "Folder" : "సంచయం" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/te.php b/apps/files/l10n/te.php deleted file mode 100644 index ac70a956c0840cc03ede976a58ca6d110849a981..0000000000000000000000000000000000000000 --- a/apps/files/l10n/te.php +++ /dev/null @@ -1,15 +0,0 @@ - "తొలగించు", -"Delete permanently" => "శాశ్వతంగా తొలగించు", -"Error" => "పొరపాటు", -"Name" => "పేరు", -"Size" => "పరిమాణం", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "భద్రపరచు", -"New folder" => "కొత్త సంచయం", -"Folder" => "సంచయం" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/tg_TJ.js b/apps/files/l10n/tg_TJ.js new file mode 100644 index 0000000000000000000000000000000000000000..329844854f12270e1feb1f3796880143c60ebf82 --- /dev/null +++ b/apps/files/l10n/tg_TJ.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/tg_TJ.json b/apps/files/l10n/tg_TJ.json new file mode 100644 index 0000000000000000000000000000000000000000..37156658a86a89920e12d41aeb45ce406963f5ac --- /dev/null +++ b/apps/files/l10n/tg_TJ.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/tg_TJ.php b/apps/files/l10n/tg_TJ.php deleted file mode 100644 index 0157af093e92200cc7790497227e92e62d80165f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/tg_TJ.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/th_TH.js b/apps/files/l10n/th_TH.js new file mode 100644 index 0000000000000000000000000000000000000000..039d4562a7a5359f3078cc813f083fcbe4124083 --- /dev/null +++ b/apps/files/l10n/th_TH.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "Could not move %s - File with this name already exists" : "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว", + "Could not move %s" : "ไม่สามารถย้าย %s ได้", + "File name cannot be empty." : "ชื่อไฟล์ไม่สามารถเว้นว่างได้", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "ชื่อที่ใช้ไม่ถูกต้อง, '\\', '/', '<', '>', ':', '\"', '|', '?' และ '*' ไม่ได้รับอนุญาตให้ใช้งานได้", + "No file was uploaded. Unknown error" : "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "There is no error, the file uploaded with success" : "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ไฟล์ที่อัพโหลดมีขนาดไฟล์ใหญ่เกินจำนวนที่กำหนดไว้ในคำสั่ง MAX_FILE_SIZE ที่ถูกระบุไว้ในรูปแบบของ HTML", + "The uploaded file was only partially uploaded" : "ไฟล์ถูกอัพโหลดได้เพียงบางส่วนเท่านั้น", + "No file was uploaded" : "ไม่มีไฟล์ที่ถูกอัพโหลด", + "Missing a temporary folder" : "โฟลเดอร์ชั่วคราวเกิดการสูญหาย", + "Failed to write to disk" : "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", + "Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", + "Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง", + "Files" : "ไฟล์", + "Upload cancelled." : "การอัพโหลดถูกยกเลิก", + "File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก", + "{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ", + "Share" : "แชร์", + "Delete" : "ลบ", + "Unshare" : "ยกเลิกการแชร์", + "Rename" : "เปลี่ยนชื่อ", + "Pending" : "อยู่ระหว่างดำเนินการ", + "Error" : "ข้อผิดพลาด", + "Name" : "ชื่อ", + "Size" : "ขนาด", + "Modified" : "แก้ไขแล้ว", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป", + "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)", + "File handling" : "การจัดกาไฟล์", + "Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้", + "max. possible: " : "จำนวนสูงสุดที่สามารถทำได้: ", + "Save" : "บันทึก", + "WebDAV" : "WebDAV", + "New" : "อัพโหลดไฟล์ใหม่", + "Text file" : "ไฟล์ข้อความ", + "New folder" : "โฟลเดอร์ใหม่", + "Folder" : "แฟ้มเอกสาร", + "From link" : "จากลิงก์", + "Nothing in here. Upload something!" : "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!", + "Download" : "ดาวน์โหลด", + "Upload too large" : "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้", + "Files are being scanned, please wait." : "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่." +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/th_TH.json b/apps/files/l10n/th_TH.json new file mode 100644 index 0000000000000000000000000000000000000000..bd4afed4aeccc60088aa3c3ef3eb507f48098c89 --- /dev/null +++ b/apps/files/l10n/th_TH.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "Could not move %s - File with this name already exists" : "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว", + "Could not move %s" : "ไม่สามารถย้าย %s ได้", + "File name cannot be empty." : "ชื่อไฟล์ไม่สามารถเว้นว่างได้", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "ชื่อที่ใช้ไม่ถูกต้อง, '\\', '/', '<', '>', ':', '\"', '|', '?' และ '*' ไม่ได้รับอนุญาตให้ใช้งานได้", + "No file was uploaded. Unknown error" : "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "There is no error, the file uploaded with success" : "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ไฟล์ที่อัพโหลดมีขนาดไฟล์ใหญ่เกินจำนวนที่กำหนดไว้ในคำสั่ง MAX_FILE_SIZE ที่ถูกระบุไว้ในรูปแบบของ HTML", + "The uploaded file was only partially uploaded" : "ไฟล์ถูกอัพโหลดได้เพียงบางส่วนเท่านั้น", + "No file was uploaded" : "ไม่มีไฟล์ที่ถูกอัพโหลด", + "Missing a temporary folder" : "โฟลเดอร์ชั่วคราวเกิดการสูญหาย", + "Failed to write to disk" : "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", + "Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", + "Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง", + "Files" : "ไฟล์", + "Upload cancelled." : "การอัพโหลดถูกยกเลิก", + "File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก", + "{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ", + "Share" : "แชร์", + "Delete" : "ลบ", + "Unshare" : "ยกเลิกการแชร์", + "Rename" : "เปลี่ยนชื่อ", + "Pending" : "อยู่ระหว่างดำเนินการ", + "Error" : "ข้อผิดพลาด", + "Name" : "ชื่อ", + "Size" : "ขนาด", + "Modified" : "แก้ไขแล้ว", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป", + "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)", + "File handling" : "การจัดกาไฟล์", + "Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้", + "max. possible: " : "จำนวนสูงสุดที่สามารถทำได้: ", + "Save" : "บันทึก", + "WebDAV" : "WebDAV", + "New" : "อัพโหลดไฟล์ใหม่", + "Text file" : "ไฟล์ข้อความ", + "New folder" : "โฟลเดอร์ใหม่", + "Folder" : "แฟ้มเอกสาร", + "From link" : "จากลิงก์", + "Nothing in here. Upload something!" : "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!", + "Download" : "ดาวน์โหลด", + "Upload too large" : "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้", + "Files are being scanned, please wait." : "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php deleted file mode 100644 index ebe9b5aed7391caaca0db4e42e35896c807eb655..0000000000000000000000000000000000000000 --- a/apps/files/l10n/th_TH.php +++ /dev/null @@ -1,52 +0,0 @@ - "ข้อผิดพลาดที่ไม่ทราบสาเหตุ", -"Could not move %s - File with this name already exists" => "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว", -"Could not move %s" => "ไม่สามารถย้าย %s ได้", -"File name cannot be empty." => "ชื่อไฟล์ไม่สามารถเว้นว่างได้", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "ชื่อที่ใช้ไม่ถูกต้อง, '\\', '/', '<', '>', ':', '\"', '|', '?' และ '*' ไม่ได้รับอนุญาตให้ใช้งานได้", -"No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", -"There is no error, the file uploaded with success" => "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "ไฟล์ที่อัพโหลดมีขนาดไฟล์ใหญ่เกินจำนวนที่กำหนดไว้ในคำสั่ง MAX_FILE_SIZE ที่ถูกระบุไว้ในรูปแบบของ HTML", -"The uploaded file was only partially uploaded" => "ไฟล์ถูกอัพโหลดได้เพียงบางส่วนเท่านั้น", -"No file was uploaded" => "ไม่มีไฟล์ที่ถูกอัพโหลด", -"Missing a temporary folder" => "โฟลเดอร์ชั่วคราวเกิดการสูญหาย", -"Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", -"Not enough storage available" => "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", -"Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง", -"Files" => "ไฟล์", -"Upload cancelled." => "การอัพโหลดถูกยกเลิก", -"File upload is in progress. Leaving the page now will cancel the upload." => "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก", -"{new_name} already exists" => "{new_name} มีอยู่แล้วในระบบ", -"Share" => "แชร์", -"Delete" => "ลบ", -"Unshare" => "ยกเลิกการแชร์", -"Rename" => "เปลี่ยนชื่อ", -"Pending" => "อยู่ระหว่างดำเนินการ", -"Error" => "ข้อผิดพลาด", -"Name" => "ชื่อ", -"Size" => "ขนาด", -"Modified" => "แก้ไขแล้ว", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"Your storage is full, files can not be updated or synced anymore!" => "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป", -"Your storage is almost full ({usedSpacePercent}%)" => "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)", -"File handling" => "การจัดกาไฟล์", -"Maximum upload size" => "ขนาดไฟล์สูงสุดที่อัพโหลดได้", -"max. possible: " => "จำนวนสูงสุดที่สามารถทำได้: ", -"Save" => "บันทึก", -"WebDAV" => "WebDAV", -"New" => "อัพโหลดไฟล์ใหม่", -"Text file" => "ไฟล์ข้อความ", -"New folder" => "โฟลเดอร์ใหม่", -"Folder" => "แฟ้มเอกสาร", -"From link" => "จากลิงก์", -"Nothing in here. Upload something!" => "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!", -"Download" => "ดาวน์โหลด", -"Upload too large" => "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้", -"Files are being scanned, please wait." => "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/tl_PH.js b/apps/files/l10n/tl_PH.js new file mode 100644 index 0000000000000000000000000000000000000000..f085469f7317d44d6cbd5222227202b322fe5dcb --- /dev/null +++ b/apps/files/l10n/tl_PH.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/tl_PH.json b/apps/files/l10n/tl_PH.json new file mode 100644 index 0000000000000000000000000000000000000000..ba9792477cd03d9f6dc76e4722b7e629162b8e06 --- /dev/null +++ b/apps/files/l10n/tl_PH.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/tl_PH.php b/apps/files/l10n/tl_PH.php deleted file mode 100644 index 3c711e6b78a257d953a010dc2feba5ae4d139369..0000000000000000000000000000000000000000 --- a/apps/files/l10n/tl_PH.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js new file mode 100644 index 0000000000000000000000000000000000000000..81eaf6321129ac4d1cc44af75c6da7ca858966ab --- /dev/null +++ b/apps/files/l10n/tr.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Depolama mevcut değil", + "Storage invalid" : "Depolama geçersiz", + "Unknown error" : "Bilinmeyen hata", + "Could not move %s - File with this name already exists" : "%s taşınamadı. Bu isimde dosya zaten mevcut", + "Could not move %s" : "%s taşınamadı", + "Permission denied" : "Erişim reddedildi", + "File name cannot be empty." : "Dosya adı boş olamaz.", + "\"%s\" is an invalid file name." : "\"%s\" geçersiz bir dosya adı.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Geçersiz isim. '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.", + "The target folder has been moved or deleted." : "Hedef klasör taşındı veya silindi.", + "The name %s is already used in the folder %s. Please choose a different name." : "%s ismi zaten %s klasöründe kullanılıyor. Lütfen farklı bir isim seçin.", + "Not a valid source" : "Geçerli bir kaynak değil", + "Server is not allowed to open URLs, please check the server configuration" : "Sunucunun adresleri açma izni yok, lütfen sunucu yapılandırmasını denetleyin", + "The file exceeds your quota by %s" : "Dosya, kotanızı %s aşıyor", + "Error while downloading %s to %s" : "%s, %s içine indirilirken hata", + "Error when creating the file" : "Dosya oluşturulurken hata", + "Folder name cannot be empty." : "Klasör adı boş olamaz.", + "Error when creating the folder" : "Klasör oluşturulurken hata", + "Unable to set upload directory." : "Yükleme dizini ayarlanamadı.", + "Invalid Token" : "Geçersiz Belirteç", + "No file was uploaded. Unknown error" : "Dosya yüklenmedi. Bilinmeyen hata", + "There is no error, the file uploaded with success" : "Dosya başarıyla yüklendi, hata oluşmadı", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklenecek dosyanın boyutu HTML formunda belirtilen MAX_FILE_SIZE limitini aşıyor", + "The uploaded file was only partially uploaded" : "Dosya karşıya kısmen yüklenebildi", + "No file was uploaded" : "Hiç dosya gönderilmedi", + "Missing a temporary folder" : "Geçici bir dizin eksik", + "Failed to write to disk" : "Diske yazılamadı", + "Not enough storage available" : "Yeterli disk alanı yok", + "Upload failed. Could not find uploaded file" : "Yükleme başarısız. Yüklenen dosya bulunamadı", + "Upload failed. Could not get file info." : "Yükleme başarısız. Dosya bilgisi alınamadı.", + "Invalid directory." : "Geçersiz dizin.", + "Files" : "Dosyalar", + "All files" : "Tüm dosyalar", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi", + "Total file size {size1} exceeds upload limit {size2}" : "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut", + "Upload cancelled." : "Yükleme iptal edildi.", + "Could not get result from server." : "Sunucudan sonuç alınamadı.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dosya yükleme işlemi sürüyor. Şu anda sayfadan ayrılmak yükleme işlemini iptal edecek.", + "URL cannot be empty" : "URL boş olamaz", + "{new_name} already exists" : "{new_name} zaten mevcut", + "Could not create file" : "Dosya oluşturulamadı", + "Could not create folder" : "Klasör oluşturulamadı", + "Error fetching URL" : "Adres getirilirken hata", + "Share" : "Paylaş", + "Delete" : "Sil", + "Disconnect storage" : "Depolama bağlantısını kes", + "Unshare" : "Paylaşmayı Kaldır", + "Delete permanently" : "Kalıcı olarak sil", + "Rename" : "Yeniden adlandır", + "Pending" : "Bekliyor", + "Error moving file." : "Dosya taşıma hatası.", + "Error moving file" : "Dosya taşıma hatası", + "Error" : "Hata", + "Could not rename file" : "Dosya adlandırılamadı", + "Error deleting file." : "Dosya silinirken hata.", + "Name" : "İsim", + "Size" : "Boyut", + "Modified" : "Değiştirilme", + "_%n folder_::_%n folders_" : ["%n dizin","%n dizin"], + "_%n file_::_%n files_" : ["%n dosya","%n dosya"], + "You don’t have permission to upload or create files here" : "Buraya dosya yükleme veya oluşturma izniniz yok", + "_Uploading %n file_::_Uploading %n files_" : ["%n dosya yükleniyor","%n dosya yükleniyor"], + "\"{name}\" is an invalid file name." : "\"{name}\" geçersiz bir dosya adı.", + "Your storage is full, files can not be updated or synced anymore!" : "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.", + "Your storage is almost full ({usedSpacePercent}%)" : "Depolama alanınız neredeyse dolu (%{usedSpacePercent})", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.", + "{dirs} and {files}" : "{dirs} ve {files}", + "%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı", + "%s could not be renamed" : "%s yeniden adlandırılamadı", + "Upload (max. %s)" : "Yükle (azami: %s)", + "File handling" : "Dosya işlemleri", + "Maximum upload size" : "Azami yükleme boyutu", + "max. possible: " : "mümkün olan en fazla: ", + "Save" : "Kaydet", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Dosyalarınıza WebDAV aracılığıyla erişmek için bu adresi kullanın", + "New" : "Yeni", + "New text file" : "Yeni metin dosyası", + "Text file" : "Metin dosyası", + "New folder" : "Yeni klasör", + "Folder" : "Klasör", + "From link" : "Bağlantıdan", + "Nothing in here. Upload something!" : "Burada hiçbir şey yok. Bir şeyler yükleyin!", + "Download" : "İndir", + "Upload too large" : "Yükleme çok büyük", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yüklemeye çalıştığınız dosyalar bu sunucudaki azami yükleme boyutunu aşıyor.", + "Files are being scanned, please wait." : "Dosyalar taranıyor, lütfen bekleyin.", + "Currently scanning" : "Şu anda taranan" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..41ba10c4e7fd48b73cd8a7c7583764cdf5673494 --- /dev/null +++ b/apps/files/l10n/tr.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Depolama mevcut değil", + "Storage invalid" : "Depolama geçersiz", + "Unknown error" : "Bilinmeyen hata", + "Could not move %s - File with this name already exists" : "%s taşınamadı. Bu isimde dosya zaten mevcut", + "Could not move %s" : "%s taşınamadı", + "Permission denied" : "Erişim reddedildi", + "File name cannot be empty." : "Dosya adı boş olamaz.", + "\"%s\" is an invalid file name." : "\"%s\" geçersiz bir dosya adı.", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Geçersiz isim. '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.", + "The target folder has been moved or deleted." : "Hedef klasör taşındı veya silindi.", + "The name %s is already used in the folder %s. Please choose a different name." : "%s ismi zaten %s klasöründe kullanılıyor. Lütfen farklı bir isim seçin.", + "Not a valid source" : "Geçerli bir kaynak değil", + "Server is not allowed to open URLs, please check the server configuration" : "Sunucunun adresleri açma izni yok, lütfen sunucu yapılandırmasını denetleyin", + "The file exceeds your quota by %s" : "Dosya, kotanızı %s aşıyor", + "Error while downloading %s to %s" : "%s, %s içine indirilirken hata", + "Error when creating the file" : "Dosya oluşturulurken hata", + "Folder name cannot be empty." : "Klasör adı boş olamaz.", + "Error when creating the folder" : "Klasör oluşturulurken hata", + "Unable to set upload directory." : "Yükleme dizini ayarlanamadı.", + "Invalid Token" : "Geçersiz Belirteç", + "No file was uploaded. Unknown error" : "Dosya yüklenmedi. Bilinmeyen hata", + "There is no error, the file uploaded with success" : "Dosya başarıyla yüklendi, hata oluşmadı", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklenecek dosyanın boyutu HTML formunda belirtilen MAX_FILE_SIZE limitini aşıyor", + "The uploaded file was only partially uploaded" : "Dosya karşıya kısmen yüklenebildi", + "No file was uploaded" : "Hiç dosya gönderilmedi", + "Missing a temporary folder" : "Geçici bir dizin eksik", + "Failed to write to disk" : "Diske yazılamadı", + "Not enough storage available" : "Yeterli disk alanı yok", + "Upload failed. Could not find uploaded file" : "Yükleme başarısız. Yüklenen dosya bulunamadı", + "Upload failed. Could not get file info." : "Yükleme başarısız. Dosya bilgisi alınamadı.", + "Invalid directory." : "Geçersiz dizin.", + "Files" : "Dosyalar", + "All files" : "Tüm dosyalar", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi", + "Total file size {size1} exceeds upload limit {size2}" : "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut", + "Upload cancelled." : "Yükleme iptal edildi.", + "Could not get result from server." : "Sunucudan sonuç alınamadı.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Dosya yükleme işlemi sürüyor. Şu anda sayfadan ayrılmak yükleme işlemini iptal edecek.", + "URL cannot be empty" : "URL boş olamaz", + "{new_name} already exists" : "{new_name} zaten mevcut", + "Could not create file" : "Dosya oluşturulamadı", + "Could not create folder" : "Klasör oluşturulamadı", + "Error fetching URL" : "Adres getirilirken hata", + "Share" : "Paylaş", + "Delete" : "Sil", + "Disconnect storage" : "Depolama bağlantısını kes", + "Unshare" : "Paylaşmayı Kaldır", + "Delete permanently" : "Kalıcı olarak sil", + "Rename" : "Yeniden adlandır", + "Pending" : "Bekliyor", + "Error moving file." : "Dosya taşıma hatası.", + "Error moving file" : "Dosya taşıma hatası", + "Error" : "Hata", + "Could not rename file" : "Dosya adlandırılamadı", + "Error deleting file." : "Dosya silinirken hata.", + "Name" : "İsim", + "Size" : "Boyut", + "Modified" : "Değiştirilme", + "_%n folder_::_%n folders_" : ["%n dizin","%n dizin"], + "_%n file_::_%n files_" : ["%n dosya","%n dosya"], + "You don’t have permission to upload or create files here" : "Buraya dosya yükleme veya oluşturma izniniz yok", + "_Uploading %n file_::_Uploading %n files_" : ["%n dosya yükleniyor","%n dosya yükleniyor"], + "\"{name}\" is an invalid file name." : "\"{name}\" geçersiz bir dosya adı.", + "Your storage is full, files can not be updated or synced anymore!" : "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.", + "Your storage is almost full ({usedSpacePercent}%)" : "Depolama alanınız neredeyse dolu (%{usedSpacePercent})", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.", + "{dirs} and {files}" : "{dirs} ve {files}", + "%s could not be renamed as it has been deleted" : "%s, silindiği için adlandırılamadı", + "%s could not be renamed" : "%s yeniden adlandırılamadı", + "Upload (max. %s)" : "Yükle (azami: %s)", + "File handling" : "Dosya işlemleri", + "Maximum upload size" : "Azami yükleme boyutu", + "max. possible: " : "mümkün olan en fazla: ", + "Save" : "Kaydet", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Dosyalarınıza WebDAV aracılığıyla erişmek için bu adresi kullanın", + "New" : "Yeni", + "New text file" : "Yeni metin dosyası", + "Text file" : "Metin dosyası", + "New folder" : "Yeni klasör", + "Folder" : "Klasör", + "From link" : "Bağlantıdan", + "Nothing in here. Upload something!" : "Burada hiçbir şey yok. Bir şeyler yükleyin!", + "Download" : "İndir", + "Upload too large" : "Yükleme çok büyük", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yüklemeye çalıştığınız dosyalar bu sunucudaki azami yükleme boyutunu aşıyor.", + "Files are being scanned, please wait." : "Dosyalar taranıyor, lütfen bekleyin.", + "Currently scanning" : "Şu anda taranan" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php deleted file mode 100644 index 7bf746dba52f207c17c699b060e627d4cdfc62e5..0000000000000000000000000000000000000000 --- a/apps/files/l10n/tr.php +++ /dev/null @@ -1,96 +0,0 @@ - "Depolama mevcut değil", -"Storage invalid" => "Depolama geçersiz", -"Unknown error" => "Bilinmeyen hata", -"Could not move %s - File with this name already exists" => "%s taşınamadı. Bu isimde dosya zaten mevcut", -"Could not move %s" => "%s taşınamadı", -"Permission denied" => "Erişim reddedildi", -"File name cannot be empty." => "Dosya adı boş olamaz.", -"\"%s\" is an invalid file name." => "\"%s\" geçersiz bir dosya adı.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Geçersiz isim. '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.", -"The target folder has been moved or deleted." => "Hedef klasör taşındı veya silindi.", -"The name %s is already used in the folder %s. Please choose a different name." => "%s ismi zaten %s klasöründe kullanılıyor. Lütfen farklı bir isim seçin.", -"Not a valid source" => "Geçerli bir kaynak değil", -"Server is not allowed to open URLs, please check the server configuration" => "Sunucunun adresleri açma izni yok, lütfen sunucu yapılandırmasını denetleyin", -"The file exceeds your quota by %s" => "Dosya, kotanızı %s aşıyor", -"Error while downloading %s to %s" => "%s, %s içine indirilirken hata", -"Error when creating the file" => "Dosya oluşturulurken hata", -"Folder name cannot be empty." => "Klasör adı boş olamaz.", -"Error when creating the folder" => "Klasör oluşturulurken hata", -"Unable to set upload directory." => "Yükleme dizini ayarlanamadı.", -"Invalid Token" => "Geçersiz Belirteç", -"No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata", -"There is no error, the file uploaded with success" => "Dosya başarıyla yüklendi, hata oluşmadı", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Yüklenecek dosyanın boyutu HTML formunda belirtilen MAX_FILE_SIZE limitini aşıyor", -"The uploaded file was only partially uploaded" => "Dosya karşıya kısmen yüklenebildi", -"No file was uploaded" => "Hiç dosya gönderilmedi", -"Missing a temporary folder" => "Geçici bir dizin eksik", -"Failed to write to disk" => "Diske yazılamadı", -"Not enough storage available" => "Yeterli disk alanı yok", -"Upload failed. Could not find uploaded file" => "Yükleme başarısız. Yüklenen dosya bulunamadı", -"Upload failed. Could not get file info." => "Yükleme başarısız. Dosya bilgisi alınamadı.", -"Invalid directory." => "Geçersiz dizin.", -"Files" => "Dosyalar", -"All files" => "Tüm dosyalar", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi", -"Total file size {size1} exceeds upload limit {size2}" => "Toplam dosya boyutu {size1}, {size2} gönderme sınırını aşıyor", -"Not enough free space, you are uploading {size1} but only {size2} is left" => "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut", -"Upload cancelled." => "Yükleme iptal edildi.", -"Could not get result from server." => "Sunucudan sonuç alınamadı.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Dosya yükleme işlemi sürüyor. Şu anda sayfadan ayrılmak yükleme işlemini iptal edecek.", -"URL cannot be empty" => "URL boş olamaz", -"{new_name} already exists" => "{new_name} zaten mevcut", -"Could not create file" => "Dosya oluşturulamadı", -"Could not create folder" => "Klasör oluşturulamadı", -"Error fetching URL" => "Adres getirilirken hata", -"Share" => "Paylaş", -"Delete" => "Sil", -"Disconnect storage" => "Depolama bağlantısını kes", -"Unshare" => "Paylaşmayı Kaldır", -"Delete permanently" => "Kalıcı olarak sil", -"Rename" => "Yeniden adlandır", -"Pending" => "Bekliyor", -"Error moving file." => "Dosya taşıma hatası.", -"Error moving file" => "Dosya taşıma hatası", -"Error" => "Hata", -"Could not rename file" => "Dosya adlandırılamadı", -"Error deleting file." => "Dosya silinirken hata.", -"Name" => "İsim", -"Size" => "Boyut", -"Modified" => "Değiştirilme", -"_%n folder_::_%n folders_" => array("%n dizin","%n dizin"), -"_%n file_::_%n files_" => array("%n dosya","%n dosya"), -"You don’t have permission to upload or create files here" => "Buraya dosya yükleme veya oluşturma izniniz yok", -"_Uploading %n file_::_Uploading %n files_" => array("%n dosya yükleniyor","%n dosya yükleniyor"), -"\"{name}\" is an invalid file name." => "\"{name}\" geçersiz bir dosya adı.", -"Your storage is full, files can not be updated or synced anymore!" => "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.", -"Your storage is almost full ({usedSpacePercent}%)" => "Depolama alanınız neredeyse dolu (%{usedSpacePercent})", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Şifreleme işlemi durduruldu ancak dosyalarınız hala şifreli. Dosyalarınızın şifrelemesini kaldırmak için lütfen kişisel ayarlar kısmına geçin.", -"{dirs} and {files}" => "{dirs} ve {files}", -"%s could not be renamed as it has been deleted" => "%s, silindiği için adlandırılamadı", -"%s could not be renamed" => "%s yeniden adlandırılamadı", -"Upload (max. %s)" => "Yükle (azami: %s)", -"File handling" => "Dosya işlemleri", -"Maximum upload size" => "Azami yükleme boyutu", -"max. possible: " => "mümkün olan en fazla: ", -"Save" => "Kaydet", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Dosyalarınıza WebDAV aracılığıyla erişmek için bu adresi kullanın", -"New" => "Yeni", -"New text file" => "Yeni metin dosyası", -"Text file" => "Metin dosyası", -"New folder" => "Yeni klasör", -"Folder" => "Klasör", -"From link" => "Bağlantıdan", -"Nothing in here. Upload something!" => "Burada hiçbir şey yok. Bir şeyler yükleyin!", -"Download" => "İndir", -"Upload too large" => "Yükleme çok büyük", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Yüklemeye çalıştığınız dosyalar bu sunucudaki azami yükleme boyutunu aşıyor.", -"Files are being scanned, please wait." => "Dosyalar taranıyor, lütfen bekleyin.", -"Currently scanning" => "Şu anda taranan" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files/l10n/tzm.js b/apps/files/l10n/tzm.js new file mode 100644 index 0000000000000000000000000000000000000000..2a7c7f444298a1336801fdbe0ffe0b1bad70e523 --- /dev/null +++ b/apps/files/l10n/tzm.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"); diff --git a/apps/files/l10n/tzm.json b/apps/files/l10n/tzm.json new file mode 100644 index 0000000000000000000000000000000000000000..63a463dce66e067ec1dfbbec0962feb858d2f025 --- /dev/null +++ b/apps/files/l10n/tzm.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;" +} \ No newline at end of file diff --git a/apps/files/l10n/tzm.php b/apps/files/l10n/tzm.php deleted file mode 100644 index c50e35da623e6da0de48674c910af7064243e7d0..0000000000000000000000000000000000000000 --- a/apps/files/l10n/tzm.php +++ /dev/null @@ -1,7 +0,0 @@ - array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"; diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js new file mode 100644 index 0000000000000000000000000000000000000000..cfa6db88c4a86a7fe9580bffc99d790ca2b819dc --- /dev/null +++ b/apps/files/l10n/ug.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "يوچۇن خاتالىق", + "Could not move %s" : "%s يۆتكىيەلمەيدۇ", + "No file was uploaded. Unknown error" : "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق", + "No file was uploaded" : "ھېچقانداق ھۆججەت يۈكلەنمىدى", + "Missing a temporary folder" : "ۋاقىتلىق قىسقۇچ كەم.", + "Failed to write to disk" : "دىسكىغا يازالمىدى", + "Not enough storage available" : "يېتەرلىك ساقلاش بوشلۇقى يوق", + "Files" : "ھۆججەتلەر", + "Upload cancelled." : "يۈكلەشتىن ۋاز كەچتى.", + "File upload is in progress. Leaving the page now will cancel the upload." : "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.", + "{new_name} already exists" : "{new_name} مەۋجۇت", + "Share" : "ھەمبەھىر", + "Delete" : "ئۆچۈر", + "Unshare" : "ھەمبەھىرلىمە", + "Delete permanently" : "مەڭگۈلۈك ئۆچۈر", + "Rename" : "ئات ئۆزگەرت", + "Pending" : "كۈتۈۋاتىدۇ", + "Error" : "خاتالىق", + "Name" : "ئاتى", + "Size" : "چوڭلۇقى", + "Modified" : "ئۆزگەرتكەن", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Save" : "ساقلا", + "WebDAV" : "WebDAV", + "New" : "يېڭى", + "Text file" : "تېكىست ھۆججەت", + "New folder" : "يېڭى قىسقۇچ", + "Folder" : "قىسقۇچ", + "Nothing in here. Upload something!" : "بۇ جايدا ھېچنېمە يوق. Upload something!", + "Download" : "چۈشۈر", + "Upload too large" : "يۈكلەندىغىنى بەك چوڭ" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json new file mode 100644 index 0000000000000000000000000000000000000000..19c010492e70b7f5967776fc5e98cee00a5296e7 --- /dev/null +++ b/apps/files/l10n/ug.json @@ -0,0 +1,36 @@ +{ "translations": { + "Unknown error" : "يوچۇن خاتالىق", + "Could not move %s" : "%s يۆتكىيەلمەيدۇ", + "No file was uploaded. Unknown error" : "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق", + "No file was uploaded" : "ھېچقانداق ھۆججەت يۈكلەنمىدى", + "Missing a temporary folder" : "ۋاقىتلىق قىسقۇچ كەم.", + "Failed to write to disk" : "دىسكىغا يازالمىدى", + "Not enough storage available" : "يېتەرلىك ساقلاش بوشلۇقى يوق", + "Files" : "ھۆججەتلەر", + "Upload cancelled." : "يۈكلەشتىن ۋاز كەچتى.", + "File upload is in progress. Leaving the page now will cancel the upload." : "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.", + "{new_name} already exists" : "{new_name} مەۋجۇت", + "Share" : "ھەمبەھىر", + "Delete" : "ئۆچۈر", + "Unshare" : "ھەمبەھىرلىمە", + "Delete permanently" : "مەڭگۈلۈك ئۆچۈر", + "Rename" : "ئات ئۆزگەرت", + "Pending" : "كۈتۈۋاتىدۇ", + "Error" : "خاتالىق", + "Name" : "ئاتى", + "Size" : "چوڭلۇقى", + "Modified" : "ئۆزگەرتكەن", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "Save" : "ساقلا", + "WebDAV" : "WebDAV", + "New" : "يېڭى", + "Text file" : "تېكىست ھۆججەت", + "New folder" : "يېڭى قىسقۇچ", + "Folder" : "قىسقۇچ", + "Nothing in here. Upload something!" : "بۇ جايدا ھېچنېمە يوق. Upload something!", + "Download" : "چۈشۈر", + "Upload too large" : "يۈكلەندىغىنى بەك چوڭ" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/ug.php b/apps/files/l10n/ug.php deleted file mode 100644 index da132edc9eff4184b1466a49a89c7b7244aa0526..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ug.php +++ /dev/null @@ -1,37 +0,0 @@ - "يوچۇن خاتالىق", -"Could not move %s" => "%s يۆتكىيەلمەيدۇ", -"No file was uploaded. Unknown error" => "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق", -"No file was uploaded" => "ھېچقانداق ھۆججەت يۈكلەنمىدى", -"Missing a temporary folder" => "ۋاقىتلىق قىسقۇچ كەم.", -"Failed to write to disk" => "دىسكىغا يازالمىدى", -"Not enough storage available" => "يېتەرلىك ساقلاش بوشلۇقى يوق", -"Files" => "ھۆججەتلەر", -"Upload cancelled." => "يۈكلەشتىن ۋاز كەچتى.", -"File upload is in progress. Leaving the page now will cancel the upload." => "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.", -"{new_name} already exists" => "{new_name} مەۋجۇت", -"Share" => "ھەمبەھىر", -"Delete" => "ئۆچۈر", -"Unshare" => "ھەمبەھىرلىمە", -"Delete permanently" => "مەڭگۈلۈك ئۆچۈر", -"Rename" => "ئات ئۆزگەرت", -"Pending" => "كۈتۈۋاتىدۇ", -"Error" => "خاتالىق", -"Name" => "ئاتى", -"Size" => "چوڭلۇقى", -"Modified" => "ئۆزگەرتكەن", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"Save" => "ساقلا", -"WebDAV" => "WebDAV", -"New" => "يېڭى", -"Text file" => "تېكىست ھۆججەت", -"New folder" => "يېڭى قىسقۇچ", -"Folder" => "قىسقۇچ", -"Nothing in here. Upload something!" => "بۇ جايدا ھېچنېمە يوق. Upload something!", -"Download" => "چۈشۈر", -"Upload too large" => "يۈكلەندىغىنى بەك چوڭ" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js new file mode 100644 index 0000000000000000000000000000000000000000..b2bbbcbfc4cf4cb9a7731e06adc7166bc8782d83 --- /dev/null +++ b/apps/files/l10n/uk.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "Сховище не доступне", + "Storage invalid" : "Неправильне сховище", + "Unknown error" : "Невідома помилка", + "Could not move %s - File with this name already exists" : "Не вдалося перемістити %s - Файл з таким ім'ям вже існує", + "Could not move %s" : "Не вдалося перемістити %s", + "Permission denied" : "Доступ заборонено", + "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" : "Серверу заборонено відкривати посилання, перевірте конфігурацію", + "The file exceeds your quota by %s" : "Файл перевищує вашу квоту на %s", + "Error while downloading %s to %s" : "Помилка завантаження %s до %s", + "Error when creating the file" : "Помилка створення файлу", + "Folder name cannot be empty." : "Ім'я теки не може бути порожнім.", + "Error when creating the folder" : "Помилка створення теки", + "Unable to set upload directory." : "Не вдалося встановити каталог завантаження.", + "Invalid Token" : "Невірний Маркер", + "No file was uploaded. Unknown error" : "Не завантажено жодного файлу. Невідома помилка", + "There is no error, the file uploaded with success" : "Файл успішно вивантажено без помилок.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Розмір відвантаженого файлу перевищує директиву MAX_FILE_SIZE вказану в HTML формі", + "The uploaded file was only partially uploaded" : "Файл відвантажено лише частково", + "No file was uploaded" : "Не відвантажено жодного файлу", + "Missing a temporary folder" : "Відсутній тимчасовий каталог", + "Failed to write to disk" : "Невдалося записати на диск", + "Not enough storage available" : "Місця більше немає", + "Upload failed. Could not find uploaded file" : "Завантаження не вдалося. Неможливо знайти завантажений файл.", + "Upload failed. Could not get file info." : "Завантаження не вдалося. Неможливо отримати інформацію про файл.", + "Invalid directory." : "Невірний каталог.", + "Files" : "Файли", + "All 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." : "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", + "URL cannot be empty" : "URL не може бути порожнім", + "{new_name} already exists" : "{new_name} вже існує", + "Could not create file" : "Не вдалося створити файл", + "Could not create folder" : "Не вдалося створити теку", + "Error fetching URL" : "Помилка отримання URL", + "Share" : "Поділитися", + "Delete" : "Видалити", + "Disconnect storage" : "Від’єднати сховище", + "Unshare" : "Закрити доступ", + "Delete permanently" : "Видалити назавжди", + "Rename" : "Перейменувати", + "Pending" : "Очікування", + "Error moving file." : "Помилка переміщення файлу.", + "Error moving file" : "Помилка переміщення файлу", + "Error" : "Помилка", + "Could not rename file" : "Неможливо перейменувати файл", + "Error deleting file." : "Помилка видалення файлу.", + "Name" : "Ім'я", + "Size" : "Розмір", + "Modified" : "Змінено", + "_%n folder_::_%n folders_" : ["%n тека ","теки : %n ","теки : %n "], + "_%n file_::_%n files_" : ["%n файл ","файли : %n ","файли : %n "], + "You don’t have permission to upload or create files here" : "У вас недостатньо прав для завантаження або створення файлів тут", + "_Uploading %n file_::_Uploading %n files_" : ["Завантаження %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" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.", + "{dirs} and {files}" : "{dirs} і {files}", + "%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений", + "%s could not be renamed" : "%s не може бути перейменований", + "Upload (max. %s)" : "Завантаження (макс. %s)", + "File handling" : "Робота з файлами", + "Maximum upload size" : "Максимальний розмір відвантажень", + "max. possible: " : "макс. можливе:", + "Save" : "Зберегти", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Для доступу до файлів через WebDAV використовуйте це посилання", + "New" : "Створити", + "New text file" : "Новий текстовий файл", + "Text file" : "Текстовий файл", + "New folder" : "Нова тека", + "Folder" : "Тека", + "From link" : "З посилання", + "Nothing in here. Upload something!" : "Тут нічого немає. Відвантажте що-небудь!", + "Download" : "Завантажити", + "Upload too large" : "Файл занадто великий", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.", + "Files are being scanned, please wait." : "Файли скануються, зачекайте, будь-ласка.", + "Currently scanning" : "Триває перевірка" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json new file mode 100644 index 0000000000000000000000000000000000000000..6c8a5be4f5c5b86012473b3f5d2e479140ec5dcf --- /dev/null +++ b/apps/files/l10n/uk.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "Сховище не доступне", + "Storage invalid" : "Неправильне сховище", + "Unknown error" : "Невідома помилка", + "Could not move %s - File with this name already exists" : "Не вдалося перемістити %s - Файл з таким ім'ям вже існує", + "Could not move %s" : "Не вдалося перемістити %s", + "Permission denied" : "Доступ заборонено", + "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" : "Серверу заборонено відкривати посилання, перевірте конфігурацію", + "The file exceeds your quota by %s" : "Файл перевищує вашу квоту на %s", + "Error while downloading %s to %s" : "Помилка завантаження %s до %s", + "Error when creating the file" : "Помилка створення файлу", + "Folder name cannot be empty." : "Ім'я теки не може бути порожнім.", + "Error when creating the folder" : "Помилка створення теки", + "Unable to set upload directory." : "Не вдалося встановити каталог завантаження.", + "Invalid Token" : "Невірний Маркер", + "No file was uploaded. Unknown error" : "Не завантажено жодного файлу. Невідома помилка", + "There is no error, the file uploaded with success" : "Файл успішно вивантажено без помилок.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Розмір відвантаженого файлу перевищує директиву MAX_FILE_SIZE вказану в HTML формі", + "The uploaded file was only partially uploaded" : "Файл відвантажено лише частково", + "No file was uploaded" : "Не відвантажено жодного файлу", + "Missing a temporary folder" : "Відсутній тимчасовий каталог", + "Failed to write to disk" : "Невдалося записати на диск", + "Not enough storage available" : "Місця більше немає", + "Upload failed. Could not find uploaded file" : "Завантаження не вдалося. Неможливо знайти завантажений файл.", + "Upload failed. Could not get file info." : "Завантаження не вдалося. Неможливо отримати інформацію про файл.", + "Invalid directory." : "Невірний каталог.", + "Files" : "Файли", + "All 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." : "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", + "URL cannot be empty" : "URL не може бути порожнім", + "{new_name} already exists" : "{new_name} вже існує", + "Could not create file" : "Не вдалося створити файл", + "Could not create folder" : "Не вдалося створити теку", + "Error fetching URL" : "Помилка отримання URL", + "Share" : "Поділитися", + "Delete" : "Видалити", + "Disconnect storage" : "Від’єднати сховище", + "Unshare" : "Закрити доступ", + "Delete permanently" : "Видалити назавжди", + "Rename" : "Перейменувати", + "Pending" : "Очікування", + "Error moving file." : "Помилка переміщення файлу.", + "Error moving file" : "Помилка переміщення файлу", + "Error" : "Помилка", + "Could not rename file" : "Неможливо перейменувати файл", + "Error deleting file." : "Помилка видалення файлу.", + "Name" : "Ім'я", + "Size" : "Розмір", + "Modified" : "Змінено", + "_%n folder_::_%n folders_" : ["%n тека ","теки : %n ","теки : %n "], + "_%n file_::_%n files_" : ["%n файл ","файли : %n ","файли : %n "], + "You don’t have permission to upload or create files here" : "У вас недостатньо прав для завантаження або створення файлів тут", + "_Uploading %n file_::_Uploading %n files_" : ["Завантаження %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" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.", + "{dirs} and {files}" : "{dirs} і {files}", + "%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений", + "%s could not be renamed" : "%s не може бути перейменований", + "Upload (max. %s)" : "Завантаження (макс. %s)", + "File handling" : "Робота з файлами", + "Maximum upload size" : "Максимальний розмір відвантажень", + "max. possible: " : "макс. можливе:", + "Save" : "Зберегти", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Для доступу до файлів через WebDAV використовуйте це посилання", + "New" : "Створити", + "New text file" : "Новий текстовий файл", + "Text file" : "Текстовий файл", + "New folder" : "Нова тека", + "Folder" : "Тека", + "From link" : "З посилання", + "Nothing in here. Upload something!" : "Тут нічого немає. Відвантажте що-небудь!", + "Download" : "Завантажити", + "Upload too large" : "Файл занадто великий", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.", + "Files are being scanned, please wait." : "Файли скануються, зачекайте, будь-ласка.", + "Currently scanning" : "Триває перевірка" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php deleted file mode 100644 index dc9e4b64c141c1a4924f2b530df3bc7ca9644aa8..0000000000000000000000000000000000000000 --- a/apps/files/l10n/uk.php +++ /dev/null @@ -1,87 +0,0 @@ - "Невідома помилка", -"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. Оберіть інше ім'я.", -"Server is not allowed to open URLs, please check the server configuration" => "Серверу заборонено відкривати посилання, перевірте конфігурацію", -"Error while downloading %s to %s" => "Помилка завантаження %s до %s", -"Error when creating the file" => "Помилка створення файлу", -"Folder name cannot be empty." => "Ім'я теки не може бути порожнім.", -"Error when creating the folder" => "Помилка створення теки", -"Unable to set upload directory." => "Не вдалося встановити каталог завантаження.", -"No file was uploaded. Unknown error" => "Не завантажено жодного файлу. Невідома помилка", -"There is no error, the file uploaded with success" => "Файл успішно вивантажено без помилок.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Розмір відвантаженого файлу перевищує директиву MAX_FILE_SIZE вказану в HTML формі", -"The uploaded file was only partially uploaded" => "Файл відвантажено лише частково", -"No file was uploaded" => "Не відвантажено жодного файлу", -"Missing a temporary folder" => "Відсутній тимчасовий каталог", -"Failed to write to disk" => "Невдалося записати на диск", -"Not enough storage available" => "Місця більше немає", -"Upload failed. Could not find uploaded file" => "Завантаження не вдалося. Неможливо знайти завантажений файл.", -"Upload failed. Could not get file info." => "Завантаження не вдалося. Неможливо отримати інформацію про файл.", -"Invalid directory." => "Невірний каталог.", -"Files" => "Файли", -"All 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." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", -"URL cannot be empty" => "URL не може бути порожнім", -"{new_name} already exists" => "{new_name} вже існує", -"Could not create file" => "Не вдалося створити файл", -"Could not create folder" => "Не вдалося створити теку", -"Error fetching URL" => "Помилка отримання URL", -"Share" => "Поділитися", -"Delete" => "Видалити", -"Unshare" => "Закрити доступ", -"Delete permanently" => "Видалити назавжди", -"Rename" => "Перейменувати", -"Pending" => "Очікування", -"Error moving file." => "Помилка переміщення файлу.", -"Error moving file" => "Помилка переміщення файлу", -"Error" => "Помилка", -"Could not rename file" => "Неможливо перейменувати файл", -"Error deleting file." => "Помилка видалення файлу.", -"Name" => "Ім'я", -"Size" => "Розмір", -"Modified" => "Змінено", -"_%n folder_::_%n folders_" => array("%n тека","%n тека","%n теки"), -"_%n file_::_%n files_" => array("%n файл","%n файлів","%n файли"), -"You don’t have permission to upload or create files here" => "У вас недостатньо прав для завантаження або створення файлів тут", -"_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" => "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.", -"%s could not be renamed" => "%s не може бути перейменований", -"Upload (max. %s)" => "Завантаження (макс. %s)", -"File handling" => "Робота з файлами", -"Maximum upload size" => "Максимальний розмір відвантажень", -"max. possible: " => "макс.можливе:", -"Save" => "Зберегти", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "Для доступу до файлів через WebDAV використовуйте це посилання", -"New" => "Створити", -"New text file" => "Новий текстовий файл", -"Text file" => "Текстовий файл", -"New folder" => "Нова тека", -"Folder" => "Тека", -"From link" => "З посилання", -"Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!", -"Download" => "Завантажити", -"Upload too large" => "Файл занадто великий", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.", -"Files are being scanned, please wait." => "Файли скануються, зачекайте, будь-ласка.", -"Currently scanning" => "Триває перевірка" -); -$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);"; diff --git a/apps/files/l10n/ur.js b/apps/files/l10n/ur.js new file mode 100644 index 0000000000000000000000000000000000000000..0700689b60dd2ae029c3da05a6967af480f3ff35 --- /dev/null +++ b/apps/files/l10n/ur.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files", + { + "Error" : "خرابی", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ur.json b/apps/files/l10n/ur.json new file mode 100644 index 0000000000000000000000000000000000000000..c5fe11055dbf8d2840232f843537371c4efa0201 --- /dev/null +++ b/apps/files/l10n/ur.json @@ -0,0 +1,7 @@ +{ "translations": { + "Error" : "خرابی", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""] +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ur.php b/apps/files/l10n/ur.php deleted file mode 100644 index 8d85d55266ee43e5667f7e25a872cc7708012f2f..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ur.php +++ /dev/null @@ -1,8 +0,0 @@ - "خرابی", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("","") -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/ur_PK.js b/apps/files/l10n/ur_PK.js new file mode 100644 index 0000000000000000000000000000000000000000..c0be28aa0d4a316603b477dd8ad3970f6e360ef8 --- /dev/null +++ b/apps/files/l10n/ur_PK.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "غیر معروف خرابی", + "Share" : "تقسیم", + "Delete" : "حذف کریں", + "Unshare" : "شئیرنگ ختم کریں", + "Error" : "ایرر", + "Name" : "اسم", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "حفظ", + "Download" : "ڈاؤن لوڈ،" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ur_PK.json b/apps/files/l10n/ur_PK.json new file mode 100644 index 0000000000000000000000000000000000000000..1ceef01a4426482bbad358b1c1e8c7c01e0b5240 --- /dev/null +++ b/apps/files/l10n/ur_PK.json @@ -0,0 +1,14 @@ +{ "translations": { + "Unknown error" : "غیر معروف خرابی", + "Share" : "تقسیم", + "Delete" : "حذف کریں", + "Unshare" : "شئیرنگ ختم کریں", + "Error" : "ایرر", + "Name" : "اسم", + "_%n folder_::_%n folders_" : ["",""], + "_%n file_::_%n files_" : ["",""], + "_Uploading %n file_::_Uploading %n files_" : ["",""], + "Save" : "حفظ", + "Download" : "ڈاؤن لوڈ،" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files/l10n/ur_PK.php b/apps/files/l10n/ur_PK.php deleted file mode 100644 index 583ebb8048960fea16f2e56cb553876d3cd088fd..0000000000000000000000000000000000000000 --- a/apps/files/l10n/ur_PK.php +++ /dev/null @@ -1,15 +0,0 @@ - "غیر معروف خرابی", -"Share" => "تقسیم", -"Delete" => "حذف کریں", -"Unshare" => "شئیرنگ ختم کریں", -"Error" => "ایرر", -"Name" => "اسم", -"_%n folder_::_%n folders_" => array("",""), -"_%n file_::_%n files_" => array("",""), -"_Uploading %n file_::_Uploading %n files_" => array("",""), -"Save" => "حفظ", -"Download" => "ڈاؤن لوڈ،" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/uz.js b/apps/files/l10n/uz.js new file mode 100644 index 0000000000000000000000000000000000000000..d1bbfca2dd4eb9b3fef484ce382c395698fe43d2 --- /dev/null +++ b/apps/files/l10n/uz.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files", + { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/uz.json b/apps/files/l10n/uz.json new file mode 100644 index 0000000000000000000000000000000000000000..e493054d78afd282eca938e05712cc3d24d82cac --- /dev/null +++ b/apps/files/l10n/uz.json @@ -0,0 +1,6 @@ +{ "translations": { + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""] +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/uz.php b/apps/files/l10n/uz.php deleted file mode 100644 index 70ab6572ba466c23b8066e18b9ee2f9cb2a7a827..0000000000000000000000000000000000000000 --- a/apps/files/l10n/uz.php +++ /dev/null @@ -1,7 +0,0 @@ - array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array("") -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js new file mode 100644 index 0000000000000000000000000000000000000000..744f37082feab975642ab8aa3a2c284491086e62 --- /dev/null +++ b/apps/files/l10n/vi.js @@ -0,0 +1,79 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "Lỗi chưa biết", + "Could not move %s - File with this name already exists" : "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống", + "Could not move %s" : "Không thể di chuyển %s", + "File name cannot be empty." : "Tên file không được rỗng", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng.", + "The name %s is already used in the folder %s. Please choose a different name." : "Tên %s đã được sử dụng trong thư mục %s. Hãy chọn tên khác.", + "Not a valid source" : "Nguồn không hợp lệ", + "Server is not allowed to open URLs, please check the server configuration" : "Server cấm mở URLs, vui lòng kiểm tra lại cấu hình server", + "Error while downloading %s to %s" : "Lỗi trong trong quá trình tải %s từ %s", + "Error when creating the file" : "Lỗi khi tạo file", + "Folder name cannot be empty." : "Tên thư mục không thể để trống", + "Error when creating the folder" : "Lỗi khi tạo thư mục", + "Unable to set upload directory." : "Không thể thiết lập thư mục tải lên.", + "Invalid Token" : "Xác thực không hợp lệ", + "No file was uploaded. Unknown error" : "Không có tập tin nào được tải lên. Lỗi không xác định", + "There is no error, the file uploaded with success" : "Không có lỗi, các tập tin đã được tải lên thành công", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Tập tin được tải lên vượt quá MAX_FILE_SIZE được quy định trong mẫu HTML", + "The uploaded file was only partially uploaded" : "Các tập tin được tải lên chỉ tải lên được một phần", + "No file was uploaded" : "Chưa có file nào được tải lên", + "Missing a temporary folder" : "Không tìm thấy thư mục tạm", + "Failed to write to disk" : "Không thể ghi ", + "Not enough storage available" : "Không đủ không gian lưu trữ", + "Upload failed. Could not find uploaded file" : "Tải lên thất bại. Không thể tìm thấy tập tin được tải lên", + "Upload failed. Could not get file info." : "Tải lên thất bại. Không thể có được thông tin tập tin.", + "Invalid directory." : "Thư mục không hợp lệ", + "Files" : "Tập tin", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "không thể tải {filename} lên do nó là một thư mục hoặc có kích thước bằng 0 byte", + "Upload cancelled." : "Hủy tải lên", + "Could not get result from server." : "Không thể nhận được kết quả từ máy chủ.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", + "URL cannot be empty" : "URL không thể để trống", + "{new_name} already exists" : "{new_name} đã tồn tại", + "Could not create file" : "Không thể tạo file", + "Could not create folder" : "Không thể tạo thư mục", + "Share" : "Chia sẻ", + "Delete" : "Xóa", + "Unshare" : "Bỏ chia sẻ", + "Delete permanently" : "Xóa vĩnh vễn", + "Rename" : "Sửa tên", + "Pending" : "Đang chờ", + "Error moving file" : "Lỗi di chuyển tập tin", + "Error" : "Lỗi", + "Could not rename file" : "Không thể đổi tên file", + "Error deleting file." : "Lỗi xóa file,", + "Name" : "Tên", + "Size" : "Kích cỡ", + "Modified" : "Thay đổi", + "_%n folder_::_%n folders_" : ["%n thư mục"], + "_%n file_::_%n files_" : ["%n tập tin"], + "You don’t have permission to upload or create files here" : "Bạn không có quyền upload hoặc tạo files ở đây", + "_Uploading %n file_::_Uploading %n files_" : ["Đang tải lên %n tập tin"], + "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", + "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.", + "{dirs} and {files}" : "{dirs} và {files}", + "%s could not be renamed" : "%s không thể đổi tên", + "File handling" : "Xử lý tập tin", + "Maximum upload size" : "Kích thước tối đa ", + "max. possible: " : "tối đa cho phép:", + "Save" : "Lưu", + "WebDAV" : "WebDAV", + "New" : "Tạo mới", + "New text file" : "File text mới", + "Text file" : "Tập tin văn bản", + "New folder" : "Tạo thư mục", + "Folder" : "Thư mục", + "From link" : "Từ liên kết", + "Nothing in here. Upload something!" : "Không có gì ở đây .Hãy tải lên một cái gì đó !", + "Download" : "Tải về", + "Upload too large" : "Tập tin tải lên quá lớn", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .", + "Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ." +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json new file mode 100644 index 0000000000000000000000000000000000000000..32e953b68e16c1ebecf44e67a7fa6e9989be4ec6 --- /dev/null +++ b/apps/files/l10n/vi.json @@ -0,0 +1,77 @@ +{ "translations": { + "Unknown error" : "Lỗi chưa biết", + "Could not move %s - File with this name already exists" : "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống", + "Could not move %s" : "Không thể di chuyển %s", + "File name cannot be empty." : "Tên file không được rỗng", + "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng.", + "The name %s is already used in the folder %s. Please choose a different name." : "Tên %s đã được sử dụng trong thư mục %s. Hãy chọn tên khác.", + "Not a valid source" : "Nguồn không hợp lệ", + "Server is not allowed to open URLs, please check the server configuration" : "Server cấm mở URLs, vui lòng kiểm tra lại cấu hình server", + "Error while downloading %s to %s" : "Lỗi trong trong quá trình tải %s từ %s", + "Error when creating the file" : "Lỗi khi tạo file", + "Folder name cannot be empty." : "Tên thư mục không thể để trống", + "Error when creating the folder" : "Lỗi khi tạo thư mục", + "Unable to set upload directory." : "Không thể thiết lập thư mục tải lên.", + "Invalid Token" : "Xác thực không hợp lệ", + "No file was uploaded. Unknown error" : "Không có tập tin nào được tải lên. Lỗi không xác định", + "There is no error, the file uploaded with success" : "Không có lỗi, các tập tin đã được tải lên thành công", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Tập tin được tải lên vượt quá MAX_FILE_SIZE được quy định trong mẫu HTML", + "The uploaded file was only partially uploaded" : "Các tập tin được tải lên chỉ tải lên được một phần", + "No file was uploaded" : "Chưa có file nào được tải lên", + "Missing a temporary folder" : "Không tìm thấy thư mục tạm", + "Failed to write to disk" : "Không thể ghi ", + "Not enough storage available" : "Không đủ không gian lưu trữ", + "Upload failed. Could not find uploaded file" : "Tải lên thất bại. Không thể tìm thấy tập tin được tải lên", + "Upload failed. Could not get file info." : "Tải lên thất bại. Không thể có được thông tin tập tin.", + "Invalid directory." : "Thư mục không hợp lệ", + "Files" : "Tập tin", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "không thể tải {filename} lên do nó là một thư mục hoặc có kích thước bằng 0 byte", + "Upload cancelled." : "Hủy tải lên", + "Could not get result from server." : "Không thể nhận được kết quả từ máy chủ.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", + "URL cannot be empty" : "URL không thể để trống", + "{new_name} already exists" : "{new_name} đã tồn tại", + "Could not create file" : "Không thể tạo file", + "Could not create folder" : "Không thể tạo thư mục", + "Share" : "Chia sẻ", + "Delete" : "Xóa", + "Unshare" : "Bỏ chia sẻ", + "Delete permanently" : "Xóa vĩnh vễn", + "Rename" : "Sửa tên", + "Pending" : "Đang chờ", + "Error moving file" : "Lỗi di chuyển tập tin", + "Error" : "Lỗi", + "Could not rename file" : "Không thể đổi tên file", + "Error deleting file." : "Lỗi xóa file,", + "Name" : "Tên", + "Size" : "Kích cỡ", + "Modified" : "Thay đổi", + "_%n folder_::_%n folders_" : ["%n thư mục"], + "_%n file_::_%n files_" : ["%n tập tin"], + "You don’t have permission to upload or create files here" : "Bạn không có quyền upload hoặc tạo files ở đây", + "_Uploading %n file_::_Uploading %n files_" : ["Đang tải lên %n tập tin"], + "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", + "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.", + "{dirs} and {files}" : "{dirs} và {files}", + "%s could not be renamed" : "%s không thể đổi tên", + "File handling" : "Xử lý tập tin", + "Maximum upload size" : "Kích thước tối đa ", + "max. possible: " : "tối đa cho phép:", + "Save" : "Lưu", + "WebDAV" : "WebDAV", + "New" : "Tạo mới", + "New text file" : "File text mới", + "Text file" : "Tập tin văn bản", + "New folder" : "Tạo thư mục", + "Folder" : "Thư mục", + "From link" : "Từ liên kết", + "Nothing in here. Upload something!" : "Không có gì ở đây .Hãy tải lên một cái gì đó !", + "Download" : "Tải về", + "Upload too large" : "Tập tin tải lên quá lớn", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .", + "Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php deleted file mode 100644 index a754b9d5a5ddba0816bdff4c8ac8e8b0c16d32c7..0000000000000000000000000000000000000000 --- a/apps/files/l10n/vi.php +++ /dev/null @@ -1,78 +0,0 @@ - "Lỗi chưa biết", -"Could not move %s - File with this name already exists" => "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống", -"Could not move %s" => "Không thể di chuyển %s", -"File name cannot be empty." => "Tên file không được rỗng", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng.", -"The name %s is already used in the folder %s. Please choose a different name." => "Tên %s đã được sử dụng trong thư mục %s. Hãy chọn tên khác.", -"Not a valid source" => "Nguồn không hợp lệ", -"Server is not allowed to open URLs, please check the server configuration" => "Server cấm mở URLs, vui lòng kiểm tra lại cấu hình server", -"Error while downloading %s to %s" => "Lỗi trong trong quá trình tải %s từ %s", -"Error when creating the file" => "Lỗi khi tạo file", -"Folder name cannot be empty." => "Tên thư mục không thể để trống", -"Error when creating the folder" => "Lỗi khi tạo thư mục", -"Unable to set upload directory." => "Không thể thiết lập thư mục tải lên.", -"Invalid Token" => "Xác thực không hợp lệ", -"No file was uploaded. Unknown error" => "Không có tập tin nào được tải lên. Lỗi không xác định", -"There is no error, the file uploaded with success" => "Không có lỗi, các tập tin đã được tải lên thành công", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Tập tin được tải lên vượt quá MAX_FILE_SIZE được quy định trong mẫu HTML", -"The uploaded file was only partially uploaded" => "Các tập tin được tải lên chỉ tải lên được một phần", -"No file was uploaded" => "Chưa có file nào được tải lên", -"Missing a temporary folder" => "Không tìm thấy thư mục tạm", -"Failed to write to disk" => "Không thể ghi ", -"Not enough storage available" => "Không đủ không gian lưu trữ", -"Upload failed. Could not find uploaded file" => "Tải lên thất bại. Không thể tìm thấy tập tin được tải lên", -"Upload failed. Could not get file info." => "Tải lên thất bại. Không thể có được thông tin tập tin.", -"Invalid directory." => "Thư mục không hợp lệ", -"Files" => "Tập tin", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "không thể tải {filename} lên do nó là một thư mục hoặc có kích thước bằng 0 byte", -"Upload cancelled." => "Hủy tải lên", -"Could not get result from server." => "Không thể nhận được kết quả từ máy chủ.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", -"URL cannot be empty" => "URL không thể để trống", -"{new_name} already exists" => "{new_name} đã tồn tại", -"Could not create file" => "Không thể tạo file", -"Could not create folder" => "Không thể tạo thư mục", -"Share" => "Chia sẻ", -"Delete" => "Xóa", -"Unshare" => "Bỏ chia sẻ", -"Delete permanently" => "Xóa vĩnh vễn", -"Rename" => "Sửa tên", -"Pending" => "Đang chờ", -"Error moving file" => "Lỗi di chuyển tập tin", -"Error" => "Lỗi", -"Could not rename file" => "Không thể đổi tên file", -"Error deleting file." => "Lỗi xóa file,", -"Name" => "Tên", -"Size" => "Kích cỡ", -"Modified" => "Thay đổi", -"_%n folder_::_%n folders_" => array("%n thư mục"), -"_%n file_::_%n files_" => array("%n tập tin"), -"You don’t have permission to upload or create files here" => "Bạn không có quyền upload hoặc tạo files ở đây", -"_Uploading %n file_::_Uploading %n files_" => array("Đang tải lên %n tập tin"), -"Your storage is full, files can not be updated or synced anymore!" => "Your storage is full, files can not be updated or synced anymore!", -"Your storage is almost full ({usedSpacePercent}%)" => "Your storage is almost full ({usedSpacePercent}%)", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Mã hóa đã bị vô hiệu nhưng những tập tin của bạn vẫn được mã hóa. Vui lòng vào phần thiết lập cá nhân để giải mã chúng.", -"{dirs} and {files}" => "{dirs} và {files}", -"%s could not be renamed" => "%s không thể đổi tên", -"File handling" => "Xử lý tập tin", -"Maximum upload size" => "Kích thước tối đa ", -"max. possible: " => "tối đa cho phép:", -"Save" => "Lưu", -"WebDAV" => "WebDAV", -"New" => "Tạo mới", -"New text file" => "File text mới", -"Text file" => "Tập tin văn bản", -"New folder" => "Tạo thư mục", -"Folder" => "Thư mục", -"From link" => "Từ liên kết", -"Nothing in here. Upload something!" => "Không có gì ở đây .Hãy tải lên một cái gì đó !", -"Download" => "Tải về", -"Upload too large" => "Tập tin tải lên quá lớn", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .", -"Files are being scanned, please wait." => "Tập tin đang được quét ,vui lòng chờ." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js new file mode 100644 index 0000000000000000000000000000000000000000..502c673764e9c9590c422b4a0dca8f7428eb00fe --- /dev/null +++ b/apps/files/l10n/zh_CN.js @@ -0,0 +1,94 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "存储空间不可用", + "Storage invalid" : "存储空间无效", + "Unknown error" : "未知错误", + "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网址,请检查服务器配置", + "Error while downloading %s to %s" : "当下载 %s 到 %s 时出错", + "Error when creating the file" : "当创建文件是出错", + "Folder name cannot be empty." : "文件夹名称不能为空", + "Error when creating the folder" : "创建文件夹出错", + "Unable to set upload directory." : "无法设置上传文件夹。", + "Invalid Token" : "无效密匙", + "No file was uploaded. Unknown error" : "没有文件被上传。未知错误", + "There is no error, the file uploaded with success" : "文件上传成功,没有错误发生", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "上传文件大小已超过php.ini中upload_max_filesize所规定的值", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "上传的文件长度超出了 HTML 表单中 MAX_FILE_SIZE 的限制", + "The uploaded file was only partially uploaded" : "已上传文件只上传了部分(不完整)", + "No file was uploaded" : "没有文件被上传", + "Missing a temporary folder" : "缺少临时目录", + "Failed to write to disk" : "写入磁盘失败", + "Not enough storage available" : "没有足够的存储空间", + "Upload failed. Could not find uploaded file" : "上传失败。不能发现上传的文件", + "Upload failed. Could not get file info." : "上传失败。不能获取文件信息。", + "Invalid directory." : "无效文件夹。", + "Files" : "文件", + "All files" : "全部文件", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "不能上传文件 {filename} ,由于它是一个目录或者为0字节", + "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." : "文件正在上传中。现在离开此页会导致上传动作被取消。", + "URL cannot be empty" : "URL不能为空", + "{new_name} already exists" : "{new_name} 已存在", + "Could not create file" : "不能创建文件", + "Could not create folder" : "不能创建文件夹", + "Error fetching URL" : "获取URL出错", + "Share" : "分享", + "Delete" : "删除", + "Disconnect storage" : "断开储存连接", + "Unshare" : "取消共享", + "Delete permanently" : "永久删除", + "Rename" : "重命名", + "Pending" : "等待", + "Error moving file." : "移动文件出错。", + "Error moving file" : "移动文件错误", + "Error" : "错误", + "Could not rename file" : "不能重命名文件", + "Error deleting file." : "删除文件出错。", + "Name" : "名称", + "Size" : "大小", + "Modified" : "修改日期", + "_%n folder_::_%n folders_" : ["%n 文件夹"], + "_%n file_::_%n files_" : ["%n个文件"], + "You don’t have permission to upload or create files here" : "您没有权限来上传湖州哦和创建文件", + "_Uploading %n file_::_Uploading %n files_" : ["上传 %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" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。", + "{dirs} and {files}" : "{dirs} 和 {files}", + "%s could not be renamed" : "%s 不能被重命名", + "Upload (max. %s)" : "上传 (最大 %s)", + "File handling" : "文件处理", + "Maximum upload size" : "最大上传大小", + "max. possible: " : "最大允许: ", + "Save" : "保存", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "使用这个地址 通过 WebDAV 访问您的文件", + "New" : "新建", + "New text file" : "创建文本文件", + "Text file" : "文本文件", + "New folder" : "增加文件夹", + "Folder" : "文件夹", + "From link" : "来自链接", + "Nothing in here. Upload something!" : "这里还什么都没有。上传些东西吧!", + "Download" : "下载", + "Upload too large" : "上传文件过大", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "您正尝试上传的文件超过了此服务器可以上传的最大容量限制", + "Files are being scanned, please wait." : "文件正在被扫描,请稍候。", + "Currently scanning" : "正在扫描" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json new file mode 100644 index 0000000000000000000000000000000000000000..a0244f1965a18ae2dbfad4ae63a05c0217c1bd8e --- /dev/null +++ b/apps/files/l10n/zh_CN.json @@ -0,0 +1,92 @@ +{ "translations": { + "Storage not available" : "存储空间不可用", + "Storage invalid" : "存储空间无效", + "Unknown error" : "未知错误", + "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网址,请检查服务器配置", + "Error while downloading %s to %s" : "当下载 %s 到 %s 时出错", + "Error when creating the file" : "当创建文件是出错", + "Folder name cannot be empty." : "文件夹名称不能为空", + "Error when creating the folder" : "创建文件夹出错", + "Unable to set upload directory." : "无法设置上传文件夹。", + "Invalid Token" : "无效密匙", + "No file was uploaded. Unknown error" : "没有文件被上传。未知错误", + "There is no error, the file uploaded with success" : "文件上传成功,没有错误发生", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "上传文件大小已超过php.ini中upload_max_filesize所规定的值", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "上传的文件长度超出了 HTML 表单中 MAX_FILE_SIZE 的限制", + "The uploaded file was only partially uploaded" : "已上传文件只上传了部分(不完整)", + "No file was uploaded" : "没有文件被上传", + "Missing a temporary folder" : "缺少临时目录", + "Failed to write to disk" : "写入磁盘失败", + "Not enough storage available" : "没有足够的存储空间", + "Upload failed. Could not find uploaded file" : "上传失败。不能发现上传的文件", + "Upload failed. Could not get file info." : "上传失败。不能获取文件信息。", + "Invalid directory." : "无效文件夹。", + "Files" : "文件", + "All files" : "全部文件", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "不能上传文件 {filename} ,由于它是一个目录或者为0字节", + "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." : "文件正在上传中。现在离开此页会导致上传动作被取消。", + "URL cannot be empty" : "URL不能为空", + "{new_name} already exists" : "{new_name} 已存在", + "Could not create file" : "不能创建文件", + "Could not create folder" : "不能创建文件夹", + "Error fetching URL" : "获取URL出错", + "Share" : "分享", + "Delete" : "删除", + "Disconnect storage" : "断开储存连接", + "Unshare" : "取消共享", + "Delete permanently" : "永久删除", + "Rename" : "重命名", + "Pending" : "等待", + "Error moving file." : "移动文件出错。", + "Error moving file" : "移动文件错误", + "Error" : "错误", + "Could not rename file" : "不能重命名文件", + "Error deleting file." : "删除文件出错。", + "Name" : "名称", + "Size" : "大小", + "Modified" : "修改日期", + "_%n folder_::_%n folders_" : ["%n 文件夹"], + "_%n file_::_%n files_" : ["%n个文件"], + "You don’t have permission to upload or create files here" : "您没有权限来上传湖州哦和创建文件", + "_Uploading %n file_::_Uploading %n files_" : ["上传 %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" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。", + "{dirs} and {files}" : "{dirs} 和 {files}", + "%s could not be renamed" : "%s 不能被重命名", + "Upload (max. %s)" : "上传 (最大 %s)", + "File handling" : "文件处理", + "Maximum upload size" : "最大上传大小", + "max. possible: " : "最大允许: ", + "Save" : "保存", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "使用这个地址 通过 WebDAV 访问您的文件", + "New" : "新建", + "New text file" : "创建文本文件", + "Text file" : "文本文件", + "New folder" : "增加文件夹", + "Folder" : "文件夹", + "From link" : "来自链接", + "Nothing in here. Upload something!" : "这里还什么都没有。上传些东西吧!", + "Download" : "下载", + "Upload too large" : "上传文件过大", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "您正尝试上传的文件超过了此服务器可以上传的最大容量限制", + "Files are being scanned, please wait." : "文件正在被扫描,请稍候。", + "Currently scanning" : "正在扫描" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php deleted file mode 100644 index f24218f278416f10e962c97e344f6716435da0b5..0000000000000000000000000000000000000000 --- a/apps/files/l10n/zh_CN.php +++ /dev/null @@ -1,93 +0,0 @@ - "存储空间不可用", -"Storage invalid" => "存储空间无效", -"Unknown error" => "未知错误", -"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网址,请检查服务器配置", -"Error while downloading %s to %s" => "当下载 %s 到 %s 时出错", -"Error when creating the file" => "当创建文件是出错", -"Folder name cannot be empty." => "文件夹名称不能为空", -"Error when creating the folder" => "创建文件夹出错", -"Unable to set upload directory." => "无法设置上传文件夹。", -"Invalid Token" => "无效密匙", -"No file was uploaded. Unknown error" => "没有文件被上传。未知错误", -"There is no error, the file uploaded with success" => "文件上传成功,没有错误发生", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上传文件大小已超过php.ini中upload_max_filesize所规定的值", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件长度超出了 HTML 表单中 MAX_FILE_SIZE 的限制", -"The uploaded file was only partially uploaded" => "已上传文件只上传了部分(不完整)", -"No file was uploaded" => "没有文件被上传", -"Missing a temporary folder" => "缺少临时目录", -"Failed to write to disk" => "写入磁盘失败", -"Not enough storage available" => "没有足够的存储空间", -"Upload failed. Could not find uploaded file" => "上传失败。不能发现上传的文件", -"Upload failed. Could not get file info." => "上传失败。不能获取文件信息。", -"Invalid directory." => "无效文件夹。", -"Files" => "文件", -"All files" => "全部文件", -"Unable to upload {filename} as it is a directory or has 0 bytes" => "不能上传文件 {filename} ,由于它是一个目录或者为0字节", -"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." => "文件正在上传中。现在离开此页会导致上传动作被取消。", -"URL cannot be empty" => "URL不能为空", -"{new_name} already exists" => "{new_name} 已存在", -"Could not create file" => "不能创建文件", -"Could not create folder" => "不能创建文件夹", -"Error fetching URL" => "获取URL出错", -"Share" => "分享", -"Delete" => "删除", -"Disconnect storage" => "断开储存连接", -"Unshare" => "取消共享", -"Delete permanently" => "永久删除", -"Rename" => "重命名", -"Pending" => "等待", -"Error moving file." => "移动文件出错。", -"Error moving file" => "移动文件错误", -"Error" => "错误", -"Could not rename file" => "不能重命名文件", -"Error deleting file." => "删除文件出错。", -"Name" => "名称", -"Size" => "大小", -"Modified" => "修改日期", -"_%n folder_::_%n folders_" => array("%n 文件夹"), -"_%n file_::_%n files_" => array("%n个文件"), -"You don’t have permission to upload or create files here" => "您没有权限来上传湖州哦和创建文件", -"_Uploading %n file_::_Uploading %n files_" => array("上传 %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" => "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "加密是被禁用的,但是您的文件还是被加密了。请到您的个人配置里设置文件加密选项。", -"{dirs} and {files}" => "{dirs} 和 {files}", -"%s could not be renamed" => "%s 不能被重命名", -"Upload (max. %s)" => "上传 (最大 %s)", -"File handling" => "文件处理", -"Maximum upload size" => "最大上传大小", -"max. possible: " => "最大允许: ", -"Save" => "保存", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "使用这个地址 通过 WebDAV 访问您的文件", -"New" => "新建", -"New text file" => "创建文本文件", -"Text file" => "文本文件", -"New folder" => "增加文件夹", -"Folder" => "文件夹", -"From link" => "来自链接", -"Nothing in here. Upload something!" => "这里还什么都没有。上传些东西吧!", -"Download" => "下载", -"Upload too large" => "上传文件过大", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您正尝试上传的文件超过了此服务器可以上传的最大容量限制", -"Files are being scanned, please wait." => "文件正在被扫描,请稍候。", -"Currently scanning" => "正在扫描" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js new file mode 100644 index 0000000000000000000000000000000000000000..e3e2aec65a07c59a86a009cbc07d0766043df4c9 --- /dev/null +++ b/apps/files/l10n/zh_HK.js @@ -0,0 +1,25 @@ +OC.L10N.register( + "files", + { + "Unknown error" : "不明錯誤", + "Files" : "文件", + "All files" : "所有文件", + "Share" : "分享", + "Delete" : "刪除", + "Unshare" : "取消分享", + "Rename" : "重新命名", + "Error" : "錯誤", + "Name" : "名稱", + "Size" : "大小", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "{dirs} and {files}" : "{dirs} 和 {files}", + "Save" : "儲存", + "WebDAV" : "WebDAV", + "New" : "新增", + "New folder" : "新資料夾", + "Folder" : "資料夾", + "Download" : "下載" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json new file mode 100644 index 0000000000000000000000000000000000000000..da0632f08821705a711f95b279ce751395fba2c1 --- /dev/null +++ b/apps/files/l10n/zh_HK.json @@ -0,0 +1,23 @@ +{ "translations": { + "Unknown error" : "不明錯誤", + "Files" : "文件", + "All files" : "所有文件", + "Share" : "分享", + "Delete" : "刪除", + "Unshare" : "取消分享", + "Rename" : "重新命名", + "Error" : "錯誤", + "Name" : "名稱", + "Size" : "大小", + "_%n folder_::_%n folders_" : [""], + "_%n file_::_%n files_" : [""], + "_Uploading %n file_::_Uploading %n files_" : [""], + "{dirs} and {files}" : "{dirs} 和 {files}", + "Save" : "儲存", + "WebDAV" : "WebDAV", + "New" : "新增", + "New folder" : "新資料夾", + "Folder" : "資料夾", + "Download" : "下載" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/zh_HK.php b/apps/files/l10n/zh_HK.php deleted file mode 100644 index 8868bd21c8d4d36c785f98daaea16bca53c248c6..0000000000000000000000000000000000000000 --- a/apps/files/l10n/zh_HK.php +++ /dev/null @@ -1,24 +0,0 @@ - "不明錯誤", -"Files" => "文件", -"All files" => "所有文件", -"Share" => "分享", -"Delete" => "刪除", -"Unshare" => "取消分享", -"Rename" => "重新命名", -"Error" => "錯誤", -"Name" => "名稱", -"Size" => "大小", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"{dirs} and {files}" => "{dirs} 和 {files}", -"Save" => "儲存", -"WebDAV" => "WebDAV", -"New" => "新增", -"New folder" => "新資料夾", -"Folder" => "資料夾", -"Download" => "下載" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js new file mode 100644 index 0000000000000000000000000000000000000000..73e17fa47fc5a2cd2b2498c83e4e3b678f9fc036 --- /dev/null +++ b/apps/files/l10n/zh_TW.js @@ -0,0 +1,97 @@ +OC.L10N.register( + "files", + { + "Storage not available" : "無法存取儲存空間", + "Storage invalid" : "無效的儲存空間", + "Unknown error" : "未知的錯誤", + "Could not move %s - File with this name already exists" : "無法移動 %s ,同名的檔案已經存在", + "Could not move %s" : "無法移動 %s", + "Permission denied" : "存取被拒", + "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 ,請檢查伺服器設定", + "The file exceeds your quota by %s" : "這個檔案大小超出配額 %s", + "Error while downloading %s to %s" : "下載 %s 到 %s 失敗", + "Error when creating the file" : "建立檔案失敗", + "Folder name cannot be empty." : "資料夾名稱不能留空", + "Error when creating the folder" : "建立資料夾失敗", + "Unable to set upload directory." : "無法設定上傳目錄", + "Invalid Token" : "無效的 token", + "No file was uploaded. Unknown error" : "沒有檔案被上傳,原因未知", + "There is no error, the file uploaded with success" : "一切都順利,檔案上傳成功", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "上傳的檔案大小超過 HTML 表單中 MAX_FILE_SIZE 的限制", + "The uploaded file was only partially uploaded" : "只有檔案的一部分被上傳", + "No file was uploaded" : "沒有檔案被上傳", + "Missing a temporary folder" : "找不到暫存資料夾", + "Failed to write to disk" : "寫入硬碟失敗", + "Not enough storage available" : "儲存空間不足", + "Upload failed. Could not find uploaded file" : "上傳失敗,找不到上傳的檔案", + "Upload failed. Could not get file info." : "上傳失敗,無法取得檔案資訊", + "Invalid directory." : "無效的資料夾", + "Files" : "檔案", + "All 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." : "檔案上傳中,離開此頁面將會取消上傳。", + "URL cannot be empty" : "URL 不能留空", + "{new_name} already exists" : "{new_name} 已經存在", + "Could not create file" : "無法建立檔案", + "Could not create folder" : "無法建立資料夾", + "Error fetching URL" : "抓取 URL 發生錯誤", + "Share" : "分享", + "Delete" : "刪除", + "Disconnect storage" : "斷開儲存空間連接", + "Unshare" : "取消分享", + "Delete permanently" : "永久刪除", + "Rename" : "重新命名", + "Pending" : "等候中", + "Error moving file." : "移動檔案發生錯誤", + "Error moving file" : "移動檔案失敗", + "Error" : "錯誤", + "Could not rename file" : "無法重新命名", + "Error deleting file." : "刪除檔案發生錯誤", + "Name" : "名稱", + "Size" : "大小", + "Modified" : "修改時間", + "_%n folder_::_%n folders_" : ["%n 個資料夾"], + "_%n file_::_%n files_" : ["%n 個檔案"], + "You don’t have permission to upload or create files here" : "您沒有權限在這裡上傳或建立檔案", + "_Uploading %n file_::_Uploading %n files_" : ["%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" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。", + "{dirs} and {files}" : "{dirs} 和 {files}", + "%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名", + "%s could not be renamed" : "無法重新命名 %s", + "Upload (max. %s)" : "上傳(至多 %s)", + "File handling" : "檔案處理", + "Maximum upload size" : "上傳限制", + "max. possible: " : "最大允許:", + "Save" : "儲存", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "使用這個地址來透過 WebDAV 存取檔案", + "New" : "新增", + "New text file" : "新文字檔", + "Text file" : "文字檔", + "New folder" : "新資料夾", + "Folder" : "資料夾", + "From link" : "從連結", + "Nothing in here. Upload something!" : "這裡還沒有東西,上傳一些吧!", + "Download" : "下載", + "Upload too large" : "上傳過大", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "您試圖上傳的檔案大小超過伺服器的限制。", + "Files are being scanned, please wait." : "正在掃描檔案,請稍等。", + "Currently scanning" : "正在掃描" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json new file mode 100644 index 0000000000000000000000000000000000000000..f55b936a40feab8a9f4bb2bd56e05feb6d76ea66 --- /dev/null +++ b/apps/files/l10n/zh_TW.json @@ -0,0 +1,95 @@ +{ "translations": { + "Storage not available" : "無法存取儲存空間", + "Storage invalid" : "無效的儲存空間", + "Unknown error" : "未知的錯誤", + "Could not move %s - File with this name already exists" : "無法移動 %s ,同名的檔案已經存在", + "Could not move %s" : "無法移動 %s", + "Permission denied" : "存取被拒", + "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 ,請檢查伺服器設定", + "The file exceeds your quota by %s" : "這個檔案大小超出配額 %s", + "Error while downloading %s to %s" : "下載 %s 到 %s 失敗", + "Error when creating the file" : "建立檔案失敗", + "Folder name cannot be empty." : "資料夾名稱不能留空", + "Error when creating the folder" : "建立資料夾失敗", + "Unable to set upload directory." : "無法設定上傳目錄", + "Invalid Token" : "無效的 token", + "No file was uploaded. Unknown error" : "沒有檔案被上傳,原因未知", + "There is no error, the file uploaded with success" : "一切都順利,檔案上傳成功", + "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "上傳的檔案大小超過 HTML 表單中 MAX_FILE_SIZE 的限制", + "The uploaded file was only partially uploaded" : "只有檔案的一部分被上傳", + "No file was uploaded" : "沒有檔案被上傳", + "Missing a temporary folder" : "找不到暫存資料夾", + "Failed to write to disk" : "寫入硬碟失敗", + "Not enough storage available" : "儲存空間不足", + "Upload failed. Could not find uploaded file" : "上傳失敗,找不到上傳的檔案", + "Upload failed. Could not get file info." : "上傳失敗,無法取得檔案資訊", + "Invalid directory." : "無效的資料夾", + "Files" : "檔案", + "All 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." : "檔案上傳中,離開此頁面將會取消上傳。", + "URL cannot be empty" : "URL 不能留空", + "{new_name} already exists" : "{new_name} 已經存在", + "Could not create file" : "無法建立檔案", + "Could not create folder" : "無法建立資料夾", + "Error fetching URL" : "抓取 URL 發生錯誤", + "Share" : "分享", + "Delete" : "刪除", + "Disconnect storage" : "斷開儲存空間連接", + "Unshare" : "取消分享", + "Delete permanently" : "永久刪除", + "Rename" : "重新命名", + "Pending" : "等候中", + "Error moving file." : "移動檔案發生錯誤", + "Error moving file" : "移動檔案失敗", + "Error" : "錯誤", + "Could not rename file" : "無法重新命名", + "Error deleting file." : "刪除檔案發生錯誤", + "Name" : "名稱", + "Size" : "大小", + "Modified" : "修改時間", + "_%n folder_::_%n folders_" : ["%n 個資料夾"], + "_%n file_::_%n files_" : ["%n 個檔案"], + "You don’t have permission to upload or create files here" : "您沒有權限在這裡上傳或建立檔案", + "_Uploading %n file_::_Uploading %n files_" : ["%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" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", + "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", + "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。", + "{dirs} and {files}" : "{dirs} 和 {files}", + "%s could not be renamed as it has been deleted" : "%s 已經被刪除了所以無法重新命名", + "%s could not be renamed" : "無法重新命名 %s", + "Upload (max. %s)" : "上傳(至多 %s)", + "File handling" : "檔案處理", + "Maximum upload size" : "上傳限制", + "max. possible: " : "最大允許:", + "Save" : "儲存", + "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "使用這個地址來透過 WebDAV 存取檔案", + "New" : "新增", + "New text file" : "新文字檔", + "Text file" : "文字檔", + "New folder" : "新資料夾", + "Folder" : "資料夾", + "From link" : "從連結", + "Nothing in here. Upload something!" : "這裡還沒有東西,上傳一些吧!", + "Download" : "下載", + "Upload too large" : "上傳過大", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "您試圖上傳的檔案大小超過伺服器的限制。", + "Files are being scanned, please wait." : "正在掃描檔案,請稍等。", + "Currently scanning" : "正在掃描" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php deleted file mode 100644 index 67084f28a5506d35a1fac0e050eda21f954b52e3..0000000000000000000000000000000000000000 --- a/apps/files/l10n/zh_TW.php +++ /dev/null @@ -1,94 +0,0 @@ - "無法存取儲存空間", -"Storage invalid" => "無效的儲存空間", -"Unknown error" => "未知的錯誤", -"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 ,請檢查伺服器設定", -"The file exceeds your quota by %s" => "這個檔案大小超出配額 %s", -"Error while downloading %s to %s" => "下載 %s 到 %s 失敗", -"Error when creating the file" => "建立檔案失敗", -"Folder name cannot be empty." => "資料夾名稱不能留空", -"Error when creating the folder" => "建立資料夾失敗", -"Unable to set upload directory." => "無法設定上傳目錄", -"Invalid Token" => "無效的 token", -"No file was uploaded. Unknown error" => "沒有檔案被上傳,原因未知", -"There is no error, the file uploaded with success" => "一切都順利,檔案上傳成功", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上傳的檔案大小超過 HTML 表單中 MAX_FILE_SIZE 的限制", -"The uploaded file was only partially uploaded" => "只有檔案的一部分被上傳", -"No file was uploaded" => "沒有檔案被上傳", -"Missing a temporary folder" => "找不到暫存資料夾", -"Failed to write to disk" => "寫入硬碟失敗", -"Not enough storage available" => "儲存空間不足", -"Upload failed. Could not find uploaded file" => "上傳失敗,找不到上傳的檔案", -"Upload failed. Could not get file info." => "上傳失敗,無法取得檔案資訊", -"Invalid directory." => "無效的資料夾", -"Files" => "檔案", -"All 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." => "檔案上傳中,離開此頁面將會取消上傳。", -"URL cannot be empty" => "URL 不能留空", -"{new_name} already exists" => "{new_name} 已經存在", -"Could not create file" => "無法建立檔案", -"Could not create folder" => "無法建立資料夾", -"Error fetching URL" => "抓取 URL 發生錯誤", -"Share" => "分享", -"Delete" => "刪除", -"Disconnect storage" => "斷開儲存空間連接", -"Unshare" => "取消分享", -"Delete permanently" => "永久刪除", -"Rename" => "重新命名", -"Pending" => "等候中", -"Error moving file." => "移動檔案發生錯誤", -"Error moving file" => "移動檔案失敗", -"Error" => "錯誤", -"Could not rename file" => "無法重新命名", -"Error deleting file." => "刪除檔案發生錯誤", -"Name" => "名稱", -"Size" => "大小", -"Modified" => "修改時間", -"_%n folder_::_%n folders_" => array("%n 個資料夾"), -"_%n file_::_%n files_" => array("%n 個檔案"), -"You don’t have permission to upload or create files here" => "您沒有權限在這裡上傳或建立檔案", -"_Uploading %n file_::_Uploading %n files_" => array("%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" => "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", -"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", -"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。", -"{dirs} and {files}" => "{dirs} 和 {files}", -"%s could not be renamed" => "無法重新命名 %s", -"Upload (max. %s)" => "上傳(至多 %s)", -"File handling" => "檔案處理", -"Maximum upload size" => "上傳限制", -"max. possible: " => "最大允許:", -"Save" => "儲存", -"WebDAV" => "WebDAV", -"Use this address to access your Files via WebDAV" => "使用這個地址來透過 WebDAV 存取檔案", -"New" => "新增", -"New text file" => "新文字檔", -"Text file" => "文字檔", -"New folder" => "新資料夾", -"Folder" => "資料夾", -"From link" => "從連結", -"Nothing in here. Upload something!" => "這裡還沒有東西,上傳一些吧!", -"Download" => "下載", -"Upload too large" => "上傳過大", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案大小超過伺服器的限制。", -"Files are being scanned, please wait." => "正在掃描檔案,請稍等。", -"Currently scanning" => "正在掃描" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/lib/capabilities.php b/apps/files/lib/capabilities.php index d4820e931baea1fc5afce85c27e2e3798e0d2cc0..690cc314ccd6151e9c9636dc265271e1f95fda32 100644 --- a/apps/files/lib/capabilities.php +++ b/apps/files/lib/capabilities.php @@ -15,7 +15,6 @@ class Capabilities { 'capabilities' => array( 'files' => array( 'bigfilechunking' => true, - 'undelete' => true, ), ), )); diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index 6a6db9276a04d1081d6d9ae9782c86b6d52e70f2..97b9d8e704427b0c7e2498aad293059de876a426 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -8,6 +8,8 @@ namespace OCA\Files; +use OCP\Files\FileInfo; + /** * Helper class for manipulating file information */ @@ -58,7 +60,7 @@ class Helper * @param \OCP\Files\FileInfo $b file * @return int -1 if $a must come before $b, 1 otherwise */ - public static function compareFileNames($a, $b) { + public static function compareFileNames(FileInfo $a, FileInfo $b) { $aType = $a->getType(); $bType = $b->getType(); if ($aType === 'dir' and $bType !== 'dir') { @@ -77,7 +79,7 @@ class Helper * @param \OCP\Files\FileInfo $b file * @return int -1 if $a must come before $b, 1 otherwise */ - public static function compareTimestamp($a, $b) { + public static function compareTimestamp(FileInfo $a, FileInfo $b) { $aTime = $a->getMTime(); $bTime = $b->getMTime(); return ($aTime < $bTime) ? -1 : 1; @@ -90,7 +92,7 @@ class Helper * @param \OCP\Files\FileInfo $b file * @return int -1 if $a must come before $b, 1 otherwise */ - public static function compareSize($a, $b) { + public static function compareSize(FileInfo $a, FileInfo $b) { $aSize = $a->getSize(); $bSize = $b->getSize(); return ($aSize < $bSize) ? -1 : 1; @@ -102,7 +104,7 @@ class Helper * @param \OCP\Files\FileInfo $i * @return array formatted file info */ - public static function formatFileInfo($i) { + public static function formatFileInfo(FileInfo $i) { $entry = array(); $entry['id'] = $i['fileid']; @@ -147,6 +149,7 @@ class Helper /** * Format file info for JSON * @param \OCP\Files\FileInfo[] $fileInfos file infos + * @return array */ public static function formatFileInfos($fileInfos) { $files = array(); diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php index 5ed8b1931f4e8138cd4c7f2a7a758baa4dba2e99..48aed05823b45b17a012540f46fa513a755e4a78 100644 --- a/apps/files/tests/ajax_rename.php +++ b/apps/files/tests/ajax_rename.php @@ -21,7 +21,7 @@ * */ -class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase { +class Test_OC_Files_App_Rename extends \Test\TestCase { private static $user; /** @@ -34,7 +34,13 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase { */ private $files; - function setUp() { + private $originalStorage; + + protected function setUp() { + parent::setUp(); + + $this->originalStorage = \OC\Files\Filesystem::getStorage('/'); + // mock OC_L10n if (!self::$user) { self::$user = uniqid(); @@ -59,10 +65,13 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase { $this->files = new \OCA\Files\App($viewMock, $l10nMock); } - function tearDown() { + protected function tearDown() { $result = \OC_User::deleteUser(self::$user); $this->assertTrue($result); \OC\Files\Filesystem::tearDown(); + \OC\Files\Filesystem::mount($this->originalStorage, array(), '/'); + + parent::tearDown(); } /** diff --git a/apps/files/tests/helper.php b/apps/files/tests/helper.php index f269cc70ed55e7dc57df10e61197a3abb49d31f4..da902f4f78a6d506e70678c3dbfe80f09208774b 100644 --- a/apps/files/tests/helper.php +++ b/apps/files/tests/helper.php @@ -6,14 +6,12 @@ * See the COPYING-README file. */ -require_once __DIR__ . '/../lib/helper.php'; - use OCA\Files; /** * Class Test_Files_Helper */ -class Test_Files_Helper extends \PHPUnit_Framework_TestCase { +class Test_Files_Helper extends \Test\TestCase { private function makeFileInfo($name, $size, $mtime, $isDir = false) { return new \OC\Files\FileInfo( @@ -92,7 +90,7 @@ class Test_Files_Helper extends \PHPUnit_Framework_TestCase { $this->assertEquals( $expectedOrder, $fileNames - ); + ); } } diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 94b52b395e56e116f30ce137186308fa57f9bbc9..21f8a12f4b5f0e5ef17ca56bee6764b26f1b0648 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -20,7 +20,7 @@ */ describe('OCA.Files.FileList tests', function() { - var testFiles, alertStub, notificationStub, fileList; + var testFiles, alertStub, notificationStub, fileList, pageSizeStub; var bcResizeStub; /** @@ -97,7 +97,8 @@ describe('OCA.Files.FileList tests', function() { name: 'One.txt', mimetype: 'text/plain', size: 12, - etag: 'abc' + etag: 'abc', + permissions: OC.PERMISSION_ALL }, { id: 2, type: 'file', @@ -105,6 +106,7 @@ describe('OCA.Files.FileList tests', function() { mimetype: 'image/jpeg', size: 12049, etag: 'def', + permissions: OC.PERMISSION_ALL }, { id: 3, type: 'file', @@ -112,15 +114,17 @@ describe('OCA.Files.FileList tests', function() { mimetype: 'application/pdf', size: 58009, etag: '123', + permissions: OC.PERMISSION_ALL }, { id: 4, type: 'dir', name: 'somedir', mimetype: 'httpd/unix-directory', size: 250, - etag: '456' + etag: '456', + permissions: OC.PERMISSION_ALL }]; - + pageSizeStub = sinon.stub(OCA.Files.FileList.prototype, 'pageSize').returns(20); fileList = new OCA.Files.FileList($('#app-content-files')); }); afterEach(function() { @@ -130,6 +134,7 @@ describe('OCA.Files.FileList tests', function() { notificationStub.restore(); alertStub.restore(); bcResizeStub.restore(); + pageSizeStub.restore(); }); describe('Getters', function() { it('Returns the current directory', function() { @@ -218,13 +223,13 @@ describe('OCA.Files.FileList tests', function() { expect($tr).toBeDefined(); expect($tr[0].tagName.toLowerCase()).toEqual('tr'); - expect($tr.attr('data-id')).toEqual(null); + expect($tr.attr('data-id')).toBeUndefined(); expect($tr.attr('data-type')).toEqual('file'); expect($tr.attr('data-file')).toEqual('testFile.txt'); - expect($tr.attr('data-size')).toEqual(null); - expect($tr.attr('data-etag')).toEqual(null); + expect($tr.attr('data-size')).toBeUndefined(); + expect($tr.attr('data-etag')).toBeUndefined(); expect($tr.attr('data-permissions')).toEqual('31'); - expect($tr.attr('data-mime')).toEqual(null); + expect($tr.attr('data-mime')).toBeUndefined(); expect($tr.attr('data-mtime')).toEqual('123456'); expect($tr.find('.filesize').text()).toEqual('Pending'); @@ -239,11 +244,11 @@ describe('OCA.Files.FileList tests', function() { expect($tr).toBeDefined(); expect($tr[0].tagName.toLowerCase()).toEqual('tr'); - expect($tr.attr('data-id')).toEqual(null); + expect($tr.attr('data-id')).toBeUndefined(); expect($tr.attr('data-type')).toEqual('dir'); expect($tr.attr('data-file')).toEqual('testFolder'); - expect($tr.attr('data-size')).toEqual(null); - expect($tr.attr('data-etag')).toEqual(null); + expect($tr.attr('data-size')).toBeUndefined(); + expect($tr.attr('data-etag')).toBeUndefined(); expect($tr.attr('data-permissions')).toEqual('31'); expect($tr.attr('data-mime')).toEqual('httpd/unix-directory'); expect($tr.attr('data-mtime')).toEqual('123456'); @@ -814,7 +819,7 @@ describe('OCA.Files.FileList tests', function() { fileList.$fileList.on('fileActionsReady', handler); fileList._nextPage(); expect(handler.calledOnce).toEqual(true); - expect(handler.getCall(0).args[0].$files.length).toEqual(fileList.pageSize); + expect(handler.getCall(0).args[0].$files.length).toEqual(fileList.pageSize()); }); it('does not trigger "fileActionsReady" event after single add with silent argument', function() { var handler = sinon.stub(); @@ -1478,6 +1483,17 @@ describe('OCA.Files.FileList tests', function() { $('.select-all').click(); expect(fileList.$el.find('.delete-selected').hasClass('hidden')).toEqual(true); }); + it('show doesnt show the delete action if one or more files are not deletable', function () { + fileList.setFiles(testFiles); + $('#permissions').val(OC.PERMISSION_READ | OC.PERMISSION_DELETE); + $('.select-all').click(); + expect(fileList.$el.find('.delete-selected').hasClass('hidden')).toEqual(false); + testFiles[0].permissions = OC.PERMISSION_READ; + $('.select-all').click(); + fileList.setFiles(testFiles); + $('.select-all').click(); + expect(fileList.$el.find('.delete-selected').hasClass('hidden')).toEqual(true); + }); }); describe('Actions', function() { beforeEach(function() { @@ -1494,7 +1510,8 @@ describe('OCA.Files.FileList tests', function() { mimetype: 'text/plain', type: 'file', size: 12, - etag: 'abc' + etag: 'abc', + permissions: OC.PERMISSION_ALL }); expect(files[1]).toEqual({ id: 3, @@ -1502,7 +1519,8 @@ describe('OCA.Files.FileList tests', function() { name: 'Three.pdf', mimetype: 'application/pdf', size: 58009, - etag: '123' + etag: '123', + permissions: OC.PERMISSION_ALL }); expect(files[2]).toEqual({ id: 4, @@ -1510,7 +1528,8 @@ describe('OCA.Files.FileList tests', function() { name: 'somedir', mimetype: 'httpd/unix-directory', size: 250, - etag: '456' + etag: '456', + permissions: OC.PERMISSION_ALL }); }); it('Removing a file removes it from the selection', function() { @@ -1523,7 +1542,8 @@ describe('OCA.Files.FileList tests', function() { mimetype: 'text/plain', type: 'file', size: 12, - etag: 'abc' + etag: 'abc', + permissions: OC.PERMISSION_ALL }); expect(files[1]).toEqual({ id: 4, @@ -1531,7 +1551,8 @@ describe('OCA.Files.FileList tests', function() { name: 'somedir', mimetype: 'httpd/unix-directory', size: 250, - etag: '456' + etag: '456', + permissions: OC.PERMISSION_ALL }); }); describe('Download', function() { diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php index bf647f2c8fa94d0094a5b04e95423190d69a9532..01b76a969b619ca6f1b1092467a2258900ca4f0f 100644 --- a/apps/files_encryption/ajax/changeRecoveryPassword.php +++ b/apps/files_encryption/ajax/changeRecoveryPassword.php @@ -55,16 +55,15 @@ $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; $keyId = $util->getRecoveryKeyId(); -$keyPath = '/owncloud_private_key/' . $keyId . '.private.key'; -$encryptedRecoveryKey = $view->file_get_contents($keyPath); -$decryptedRecoveryKey = \OCA\Encryption\Crypt::decryptPrivateKey($encryptedRecoveryKey, $oldPassword); +$encryptedRecoveryKey = Encryption\Keymanager::getPrivateSystemKey($keyId); +$decryptedRecoveryKey = $encryptedRecoveryKey ? \OCA\Encryption\Crypt::decryptPrivateKey($encryptedRecoveryKey, $oldPassword) : false; if ($decryptedRecoveryKey) { $cipher = \OCA\Encryption\Helper::getCipher(); $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword, $cipher); if ($encryptedKey) { - \OCA\Encryption\Keymanager::setPrivateSystemKey($encryptedKey, $keyId . '.private.key'); + \OCA\Encryption\Keymanager::setPrivateSystemKey($encryptedKey, $keyId); $return = true; } } diff --git a/apps/files_encryption/ajax/updatePrivateKeyPassword.php b/apps/files_encryption/ajax/updatePrivateKeyPassword.php index f88e9c64dfda477136a7530947777c16b387fc25..97da3811a0ffb663ca0cc0684f919efc5dcaf5d5 100644 --- a/apps/files_encryption/ajax/updatePrivateKeyPassword.php +++ b/apps/files_encryption/ajax/updatePrivateKeyPassword.php @@ -18,6 +18,7 @@ use OCA\Encryption; $l = \OC::$server->getL10N('core'); $return = false; +$errorMessage = $l->t('Could not update the private key password.'); $oldPassword = $_POST['oldPassword']; $newPassword = $_POST['newPassword']; @@ -25,14 +26,18 @@ $newPassword = $_POST['newPassword']; $view = new \OC\Files\View('/'); $session = new \OCA\Encryption\Session($view); $user = \OCP\User::getUser(); +$loginName = \OC::$server->getUserSession()->getLoginName(); + +// check new password +$passwordCorrect = \OCP\User::checkPassword($loginName, $newPassword); + +if ($passwordCorrect !== false) { $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; -$keyPath = '/' . $user . '/files_encryption/' . $user . '.private.key'; - -$encryptedKey = $view->file_get_contents($keyPath); -$decryptedKey = \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, $oldPassword); +$encryptedKey = Encryption\Keymanager::getPrivateKey($view, $user); +$decryptedKey = $encryptedKey ? \OCA\Encryption\Crypt::decryptPrivateKey($encryptedKey, $oldPassword) : false; if ($decryptedKey) { $cipher = \OCA\Encryption\Helper::getCipher(); @@ -42,14 +47,22 @@ if ($decryptedKey) { $session->setPrivateKey($decryptedKey); $return = true; } +} else { + $result = false; + $errorMessage = $l->t('The old password was not correct, please try again.'); } \OC_FileProxy::$enabled = $proxyStatus; +} else { + $result = false; + $errorMessage = $l->t('The current log-in password was not correct, please try again.'); +} + // success or failure if ($return) { $session->setInitialized(\OCA\Encryption\Session::INIT_SUCCESSFUL); \OCP\JSON::success(array('data' => array('message' => $l->t('Private key password successfully updated.')))); } else { - \OCP\JSON::error(array('data' => array('message' => $l->t('Could not update the private key password. Maybe the old password was not correct.')))); + \OCP\JSON::error(array('data' => array('message' => $errorMessage))); } diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 922d9885164e14120b913ccd3993c827529aac3d..8bf422a612ee80adfa5a151b940af4f51c4cf165 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -11,9 +11,11 @@ OC::$CLASSPATH['OCA\Encryption\Capabilities'] = 'files_encryption/lib/capabiliti OC::$CLASSPATH['OCA\Encryption\Helper'] = 'files_encryption/lib/helper.php'; // Exceptions -OC::$CLASSPATH['OCA\Encryption\Exceptions\MultiKeyEncryptException'] = 'files_encryption/lib/exceptions.php'; -OC::$CLASSPATH['OCA\Encryption\Exceptions\MultiKeyDecryptException'] = 'files_encryption/lib/exceptions.php'; +OC::$CLASSPATH['OCA\Encryption\Exception\MultiKeyEncryptException'] = 'files_encryption/exception/multiKeyEncryptException.php'; +OC::$CLASSPATH['OCA\Encryption\Exception\MultiKeyDecryptException'] = 'files_encryption/exception/multiKeyDecryptException.php'; +OC::$CLASSPATH['OCA\Encryption\Exception\EncryptionException'] = 'files_encryption/exception/encryptionException.php'; +\OCP\Util::addTranslations('files_encryption'); \OCP\Util::addscript('files_encryption', 'encryption'); \OCP\Util::addscript('files_encryption', 'detect-migration'); diff --git a/apps/files_encryption/appinfo/info.xml b/apps/files_encryption/appinfo/info.xml index 2208cc7348318468a63a176d06bab84e20d0908b..6fcef693bede812dfb00ca77f6361a6d7bb7efae 100644 --- a/apps/files_encryption/appinfo/info.xml +++ b/apps/files_encryption/appinfo/info.xml @@ -2,14 +2,17 @@ files_encryption Server-side Encryption - This app encrypts and decrypts your data on the server. This means that a malicious administrator could intercept your data or encryption keys. The main purpose of server-side encryption is to encrypt files stored on externally mounted storages. The administrator of the external storage will not be able to access your encryption keys or your unencrypted data. Before you activate the app, please read up on encryption in the User and Administrator Manual + + This application encrypts all files accessed by ownCloud at rest, wherever they are stored. As an example, with this application enabled, external cloud based Amazon S3 storage will be encrypted, protecting this data on storage outside of the control of the Admin. When this application is enabled for the first time, all files are encrypted as users log in and are prompted for their password. The recommended recovery key option enables recovery of files in case the key is lost. + Note that this app encrypts all files that are touched by ownCloud, so external storage providers and applications such as SharePoint will see new files encrypted when they are accessed. Encryption is based on AES 128 or 256 bit keys. More information is available in the Encryption documentation + AGPL Sam Tuke, Bjoern Schiessle, Florin Peter 4 true - http://doc.owncloud.org/server/7.0/user_manual/files/encryption.html - http://doc.owncloud.org/server/7.0/admin_manual/configuration/configuration_encryption.html + user-encryption + admin-encryption false diff --git a/apps/files_encryption/appinfo/update.php b/apps/files_encryption/appinfo/update.php index a29667ec6b6bc567c1d42ff895360d99d8bc1d3e..957cf7469744acbc59cae0e6b0cac555fd348807 100644 --- a/apps/files_encryption/appinfo/update.php +++ b/apps/files_encryption/appinfo/update.php @@ -4,7 +4,8 @@ use OCA\Files_Encryption\Migration; $installedVersion=OCP\Config::getAppValue('files_encryption', 'installed_version'); -if (version_compare($installedVersion, '0.6', '<')) { +// Migration OC7 -> OC8 +if (version_compare($installedVersion, '0.7', '<')) { $m = new Migration(); - $m->dropTableEncryption(); + $m->reorganizeFolderStructure(); } diff --git a/apps/files_encryption/appinfo/version b/apps/files_encryption/appinfo/version index ee6cdce3c29053ac99607147be5be250efa001bd..faef31a4357c48d6e4c55e84c8be8e3bc9055e20 100644 --- a/apps/files_encryption/appinfo/version +++ b/apps/files_encryption/appinfo/version @@ -1 +1 @@ -0.6.1 +0.7.0 diff --git a/apps/files_encryption/exception/encryptionException.php b/apps/files_encryption/exception/encryptionException.php new file mode 100644 index 0000000000000000000000000000000000000000..de1f16b4f4baaef01f9d145b8a5f84a5b2611e4a --- /dev/null +++ b/apps/files_encryption/exception/encryptionException.php @@ -0,0 +1,50 @@ + + * + * 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 . + * + */ + +namespace OCA\Encryption\Exception; + +/** + * Base class for all encryption exception + * + * Possible Error Codes: + * 10 - generic error + * 20 - unexpected end of encryption header + * 30 - unexpected blog size + * 40 - encryption header to large + * 50 - unknown cipher + * 60 - encryption failed + * 70 - decryption failed + * 80 - empty data + * 90 - private key missing + */ +class EncryptionException extends \Exception { + const GENERIC = 10; + const UNEXPECTED_END_OF_ENCRYPTION_HEADER = 20; + const UNEXPECTED_BLOG_SIZE = 30; + const ENCRYPTION_HEADER_TO_LARGE = 40; + const UNKNOWN_CIPHER = 50; + const ENCRYPTION_FAILED = 60; + const DECRYPTION_FAILED = 70; + const EMPTY_DATA = 80; + const PRIVATE_KEY_MISSING = 90; +} diff --git a/apps/files_encryption/exception/multiKeyDecryptException.php b/apps/files_encryption/exception/multiKeyDecryptException.php new file mode 100644 index 0000000000000000000000000000000000000000..c1e40e045e0bb121b1e5c669f467ea875c223a5f --- /dev/null +++ b/apps/files_encryption/exception/multiKeyDecryptException.php @@ -0,0 +1,34 @@ + + * + * 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 . + * + */ + +namespace OCA\Encryption\Exception; + +/** + * Throw this encryption if multi key decryption failed + * + * Possible error codes: + * 110 - openssl_open failed + */ +class MultiKeyDecryptException extends EncryptionException { + const OPENSSL_OPEN_FAILED = 110; +} diff --git a/apps/files_encryption/exception/multiKeyEncryptException.php b/apps/files_encryption/exception/multiKeyEncryptException.php new file mode 100644 index 0000000000000000000000000000000000000000..e3aa7de591f91794ca4c9337ecc9f06ad6cb23a9 --- /dev/null +++ b/apps/files_encryption/exception/multiKeyEncryptException.php @@ -0,0 +1,34 @@ + + * + * 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 . + * + */ + +namespace OCA\Encryption\Exception; + +/** + * Throw this exception if multi key encrytion fails + * + * Possible error codes: + * 110 - openssl_seal failed + */ +class MultiKeyEncryptException extends EncryptionException { + const OPENSSL_SEAL_FAILED = 110; +} diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e004d4a1d63a69f1b9ce091aca1cad251ce05c9a..d40e6b3d124ca7d5cbde4d383989206f487d8147 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -3,8 +3,10 @@ /** * ownCloud * - * @author Sam Tuke - * @copyright 2012 Sam Tuke samtuke@owncloud.org + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Sam Tuke + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -35,7 +37,7 @@ class Hooks { // file for which we want to delete the keys after the delete operation was successful private static $deleteFiles = array(); // file for which we want to delete the keys after the delete operation was successful - private static $umountedFiles = array(); + private static $unmountedFiles = array(); /** * Startup encryption backend upon user login @@ -150,18 +152,7 @@ class Hooks { public static function postDeleteUser($params) { if (\OCP\App::isEnabled('files_encryption')) { - $view = new \OC\Files\View('/'); - - // cleanup public key - $publicKey = '/public-keys/' . $params['uid'] . '.public.key'; - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $view->unlink($publicKey); - - \OC_FileProxy::$enabled = $proxyStatus; + Keymanager::deletePublicKey(new \OC\Files\View(), $params['uid']); } } @@ -242,7 +233,7 @@ class Hooks { \OC_FileProxy::$enabled = false; // Save public key - $view->file_put_contents('/public-keys/' . $user . '.public.key', $keypair['publicKey']); + Keymanager::setPublicKey($keypair['publicKey'], $user); // Encrypt private key with new password $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword, Helper::getCipher()); @@ -263,6 +254,19 @@ class Hooks { } } + /** + * after password reset we create a new key pair for the user + * + * @param array $params + */ + public static function postPasswordReset($params) { + $uid = $params['uid']; + $password = $params['password']; + + $util = new Util(new \OC\Files\View(), $uid); + $util->replaceUserKeys($password); + } + /* * check if files can be encrypted to every user. */ @@ -277,7 +281,7 @@ class Hooks { $l = new \OC_L10N('files_encryption'); $users = array(); - $view = new \OC\Files\View('/public-keys/'); + $view = new \OC\Files\View('/'); switch ($params['shareType']) { case \OCP\Share::SHARE_TYPE_USER: @@ -290,7 +294,7 @@ class Hooks { $notConfigured = array(); foreach ($users as $user) { - if (!$view->file_exists($user . '.public.key')) { + if (!Keymanager::publicKeyExists($view, $user)) { $notConfigured[] = $user; } } @@ -315,7 +319,7 @@ class Hooks { $path = \OC\Files\Filesystem::getPath($params['fileSource']); - self::updateKeyfiles($path, $params['itemType']); + self::updateKeyfiles($path); } } @@ -323,9 +327,8 @@ class Hooks { * update keyfiles and share keys recursively * * @param string $path to the file/folder - * @param string $type 'file' or 'folder' */ - private static function updateKeyfiles($path, $type) { + private static function updateKeyfiles($path) { $view = new \OC\Files\View('/'); $userId = \OCP\User::getUser(); $session = new \OCA\Encryption\Session($view); @@ -337,7 +340,7 @@ class Hooks { $mountPoint = $mount->getMountPoint(); // if a folder was shared, get a list of all (sub-)folders - if ($type === 'folder') { + if ($view->is_dir('/' . $userId . '/files' . $path)) { $allFiles = $util->getAllFiles($path, $mountPoint); } else { $allFiles = array($path); @@ -394,11 +397,10 @@ class Hooks { // Unshare every user who no longer has access to the file $delUsers = array_diff($userIds, $sharingUsers); - - list($owner, $ownerPath) = $util->getUidAndFilename($path); + $keyPath = Keymanager::getKeyPath($view, $util, $path); // delete share key - Keymanager::delShareKey($view, $delUsers, $ownerPath, $owner); + Keymanager::delShareKey($view, $delUsers, $keyPath, $userId, $path); } } @@ -409,52 +411,39 @@ class Hooks { * @param array $params with the old path and the new path */ public static function preRename($params) { - $user = \OCP\User::getUser(); - $view = new \OC\Files\View('/'); - $util = new Util($view, $user); - list($ownerOld, $pathOld) = $util->getUidAndFilename($params['oldpath']); - - // we only need to rename the keys if the rename happens on the same mountpoint - // otherwise we perform a stream copy, so we get a new set of keys - $mp1 = $view->getMountPoint('/' . $user . '/files/' . $params['oldpath']); - $mp2 = $view->getMountPoint('/' . $user . '/files/' . $params['newpath']); - - $type = $view->is_dir('/' . $user . '/files/' . $params['oldpath']) ? 'folder' : 'file'; - - if ($mp1 === $mp2) { - self::$renamedFiles[$params['oldpath']] = array( - 'uid' => $ownerOld, - 'path' => $pathOld, - 'type' => $type, - 'operation' => 'rename', - ); - - } + self::preRenameOrCopy($params, 'rename'); } /** - * mark file as renamed so that we know the original source after the file was renamed + * mark file as copied so that we know the original source after the file was copied * @param array $params with the old path and the new path */ public static function preCopy($params) { + self::preRenameOrCopy($params, 'copy'); + } + + private static function preRenameOrCopy($params, $operation) { $user = \OCP\User::getUser(); $view = new \OC\Files\View('/'); $util = new Util($view, $user); - list($ownerOld, $pathOld) = $util->getUidAndFilename($params['oldpath']); // we only need to rename the keys if the rename happens on the same mountpoint // otherwise we perform a stream copy, so we get a new set of keys $mp1 = $view->getMountPoint('/' . $user . '/files/' . $params['oldpath']); $mp2 = $view->getMountPoint('/' . $user . '/files/' . $params['newpath']); - $type = $view->is_dir('/' . $user . '/files/' . $params['oldpath']) ? 'folder' : 'file'; + $oldKeysPath = Keymanager::getKeyPath($view, $util, $params['oldpath']); if ($mp1 === $mp2) { self::$renamedFiles[$params['oldpath']] = array( - 'uid' => $ownerOld, - 'path' => $pathOld, - 'type' => $type, - 'operation' => 'copy'); + 'operation' => $operation, + 'oldKeysPath' => $oldKeysPath, + ); + } else { + self::$renamedFiles[$params['oldpath']] = array( + 'operation' => 'cleanup', + 'oldKeysPath' => $oldKeysPath, + ); } } @@ -469,87 +458,40 @@ class Hooks { return true; } - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - $view = new \OC\Files\View('/'); $userId = \OCP\User::getUser(); $util = new Util($view, $userId); - if (isset(self::$renamedFiles[$params['oldpath']]['uid']) && - isset(self::$renamedFiles[$params['oldpath']]['path'])) { - $ownerOld = self::$renamedFiles[$params['oldpath']]['uid']; - $pathOld = self::$renamedFiles[$params['oldpath']]['path']; - $type = self::$renamedFiles[$params['oldpath']]['type']; + if (isset(self::$renamedFiles[$params['oldpath']]['operation']) && + isset(self::$renamedFiles[$params['oldpath']]['oldKeysPath'])) { $operation = self::$renamedFiles[$params['oldpath']]['operation']; + $oldKeysPath = self::$renamedFiles[$params['oldpath']]['oldKeysPath']; unset(self::$renamedFiles[$params['oldpath']]); + if ($operation === 'cleanup') { + return $view->unlink($oldKeysPath); + } } else { \OCP\Util::writeLog('Encryption library', "can't get path and owner from the file before it was renamed", \OCP\Util::DEBUG); - \OC_FileProxy::$enabled = $proxyStatus; return false; } list($ownerNew, $pathNew) = $util->getUidAndFilename($params['newpath']); - // Format paths to be relative to user files dir - if ($util->isSystemWideMountPoint($pathOld)) { - $oldKeyfilePath = 'files_encryption/keyfiles/' . $pathOld; - $oldShareKeyPath = 'files_encryption/share-keys/' . $pathOld; - } else { - $oldKeyfilePath = $ownerOld . '/' . 'files_encryption/keyfiles/' . $pathOld; - $oldShareKeyPath = $ownerOld . '/' . 'files_encryption/share-keys/' . $pathOld; - } - if ($util->isSystemWideMountPoint($pathNew)) { - $newKeyfilePath = 'files_encryption/keyfiles/' . $pathNew; - $newShareKeyPath = 'files_encryption/share-keys/' . $pathNew; - } else { - $newKeyfilePath = $ownerNew . '/files_encryption/keyfiles/' . $pathNew; - $newShareKeyPath = $ownerNew . '/files_encryption/share-keys/' . $pathNew; - } - - // create new key folders if it doesn't exists - if (!$view->file_exists(dirname($newShareKeyPath))) { - $view->mkdir(dirname($newShareKeyPath)); - } - if (!$view->file_exists(dirname($newKeyfilePath))) { - $view->mkdir(dirname($newKeyfilePath)); - } - - // handle share keys - if ($type === 'file') { - $oldKeyfilePath .= '.key'; - $newKeyfilePath .= '.key'; - - // handle share-keys - $matches = Helper::findShareKeys($pathOld, $oldShareKeyPath, $view); - if (count($matches) === 0) { - \OC_Log::write( - 'Encryption library', 'No share keys found for "' . $pathOld . '"', - \OC_Log::WARN - ); - } - foreach ($matches as $src) { - $dst = \OC\Files\Filesystem::normalizePath(str_replace($pathOld, $pathNew, $src)); - $view->$operation($src, $dst); - } - + $newKeysPath = 'files_encryption/keys/' . $pathNew; } else { - // handle share-keys folders - $view->$operation($oldShareKeyPath, $newShareKeyPath); + $newKeysPath = $ownerNew . '/files_encryption/keys/' . $pathNew; } - // Rename keyfile so it isn't orphaned - if ($view->file_exists($oldKeyfilePath)) { - $view->$operation($oldKeyfilePath, $newKeyfilePath); + // create key folders if it doesn't exists + if (!$view->file_exists(dirname($newKeysPath))) { + $view->mkdir(dirname($newKeysPath)); } + $view->$operation($oldKeysPath, $newKeysPath); // update sharing-keys - self::updateKeyfiles($params['newpath'], $type); - - \OC_FileProxy::$enabled = $proxyStatus; + self::updateKeyfiles($params['newpath']); } /** @@ -585,37 +527,28 @@ class Hooks { */ public static function postDelete($params) { - if (!isset(self::$deleteFiles[$params[\OC\Files\Filesystem::signal_param_path]])) { + $path = $params[\OC\Files\Filesystem::signal_param_path]; + + if (!isset(self::$deleteFiles[$path])) { return true; } - $deletedFile = self::$deleteFiles[$params[\OC\Files\Filesystem::signal_param_path]]; - $path = $deletedFile['path']; - $user = $deletedFile['uid']; + $deletedFile = self::$deleteFiles[$path]; + $keyPath = $deletedFile['keyPath']; // we don't need to remember the file any longer - unset(self::$deleteFiles[$params[\OC\Files\Filesystem::signal_param_path]]); + unset(self::$deleteFiles[$path]); $view = new \OC\Files\View('/'); // return if the file still exists and wasn't deleted correctly - if ($view->file_exists('/' . $user . '/files/' . $path)) { + if ($view->file_exists('/' . \OCP\User::getUser() . '/files/' . $path)) { return true; } - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - // Delete keyfile & shareKey so it isn't orphaned - if (!Keymanager::deleteFileKey($view, $path, $user)) { - \OCP\Util::writeLog('Encryption library', - 'Keyfile or shareKey could not be deleted for file "' . $user.'/files/'.$path . '"', \OCP\Util::ERROR); - } - - Keymanager::delAllShareKeys($view, $user, $path); + $view->unlink($keyPath); - \OC_FileProxy::$enabled = $proxyStatus; } /** @@ -624,6 +557,7 @@ class Hooks { * @return boolean|null */ public static function preDelete($params) { + $view = new \OC\Files\View('/'); $path = $params[\OC\Files\Filesystem::signal_param_path]; // skip this method if the trash bin is enabled or if we delete a file @@ -632,68 +566,61 @@ class Hooks { return true; } - $util = new Util(new \OC\Files\View('/'), \OCP\USER::getUser()); - list($owner, $ownerPath) = $util->getUidAndFilename($path); + $util = new Util($view, \OCP\USER::getUser()); + + $keysPath = Keymanager::getKeyPath($view, $util, $path); - self::$deleteFiles[$params[\OC\Files\Filesystem::signal_param_path]] = array( - 'uid' => $owner, - 'path' => $ownerPath); + self::$deleteFiles[$path] = array( + 'keyPath' => $keysPath); } /** * unmount file from yourself * remember files/folders which get unmounted */ - public static function preUmount($params) { + public static function preUnmount($params) { + $view = new \OC\Files\View('/'); + $user = \OCP\User::getUser(); $path = $params[\OC\Files\Filesystem::signal_param_path]; - $user = \OCP\USER::getUser(); - - $view = new \OC\Files\View(); - $itemType = $view->is_dir('/' . $user . '/files' . $path) ? 'folder' : 'file'; $util = new Util($view, $user); list($owner, $ownerPath) = $util->getUidAndFilename($path); - self::$umountedFiles[$params[\OC\Files\Filesystem::signal_param_path]] = array( - 'uid' => $owner, - 'path' => $ownerPath, - 'itemType' => $itemType); + $keysPath = Keymanager::getKeyPath($view, $util, $path); + + self::$unmountedFiles[$path] = array( + 'keyPath' => $keysPath, + 'owner' => $owner, + 'ownerPath' => $ownerPath + ); } /** * unmount file from yourself */ - public static function postUmount($params) { + public static function postUnmount($params) { - if (!isset(self::$umountedFiles[$params[\OC\Files\Filesystem::signal_param_path]])) { + $path = $params[\OC\Files\Filesystem::signal_param_path]; + $user = \OCP\User::getUser(); + + if (!isset(self::$unmountedFiles[$path])) { return true; } - $umountedFile = self::$umountedFiles[$params[\OC\Files\Filesystem::signal_param_path]]; - $path = $umountedFile['path']; - $user = $umountedFile['uid']; - $itemType = $umountedFile['itemType']; + $umountedFile = self::$unmountedFiles[$path]; + $keyPath = $umountedFile['keyPath']; + $owner = $umountedFile['owner']; + $ownerPath = $umountedFile['ownerPath']; $view = new \OC\Files\View(); - $util = new Util($view, $user); // we don't need to remember the file any longer - unset(self::$umountedFiles[$params[\OC\Files\Filesystem::signal_param_path]]); + unset(self::$unmountedFiles[$path]); - // if we unshare a folder we need a list of all (sub-)files - if ($itemType === 'folder') { - $allFiles = $util->getAllFiles($path); - } else { - $allFiles = array($path); - } - - foreach ($allFiles as $path) { - - // check if the user still has access to the file, otherwise delete share key - $sharingUsers = \OCP\Share::getUsersSharingFile($path, $user); - if (!in_array(\OCP\User::getUser(), $sharingUsers['users'])) { - Keymanager::delShareKey($view, array(\OCP\User::getUser()), $path, $user); - } + // check if the user still has access to the file, otherwise delete share key + $sharingUsers = \OCP\Share::getUsersSharingFile($path, $user); + if (!in_array(\OCP\User::getUser(), $sharingUsers['users'])) { + Keymanager::delShareKey($view, array(\OCP\User::getUser()), $keyPath, $owner, $ownerPath); } } diff --git a/apps/files_encryption/img/app.svg b/apps/files_encryption/img/app.svg new file mode 100644 index 0000000000000000000000000000000000000000..1157c71c66e10eec076d776a9f7676a6bfb02095 --- /dev/null +++ b/apps/files_encryption/img/app.svg @@ -0,0 +1,51 @@ + +image/svg+xml \ No newline at end of file diff --git a/apps/files_encryption/js/encryption.js b/apps/files_encryption/js/encryption.js index 65ffabe55e62193f9524d68ca883ce92959b433c..d2d1c3a1fc505dd41dc22dbf2798e4fbd0b4c6b2 100644 --- a/apps/files_encryption/js/encryption.js +++ b/apps/files_encryption/js/encryption.js @@ -5,6 +5,10 @@ * See the COPYING-README file. */ +/** + * @namespace + * @memberOf OC + */ OC.Encryption={ MIGRATION_OPEN:0, MIGRATION_COMPLETED:1, diff --git a/apps/files_encryption/l10n/ar.js b/apps/files_encryption/l10n/ar.js new file mode 100644 index 0000000000000000000000000000000000000000..9f51322cf92b11e223ab6c90b5ee6564f3afe937 --- /dev/null +++ b/apps/files_encryption/l10n/ar.js @@ -0,0 +1,42 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "خطأ غير معروف. ", + "Recovery key successfully enabled" : "تم بنجاح تفعيل مفتاح الاستعادة", + "Could not disable recovery key. Please check your recovery key password!" : "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!", + "Recovery key successfully disabled" : "تم تعطيل مفتاح الاستعادة بنجاح", + "Password successfully changed." : "تم تغيير كلمة المرور بنجاح.", + "Could not change the password. Maybe the old password was not correct." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", + "Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.", + "File recovery settings updated" : "اعدادات ملف الاستعادة تم تحديثه", + "Could not update file recovery" : "تعذر تحديث ملف الاستعادة", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "برنامج التشفير لم يتم تهيئتة ! من الممكن ان برنامج التشفير تم اعادة تفعيلة خلال الجلسة. يرجى تسجيل الخروج ومن ثم تسجيل الدخول مجددا لتهيئة برنامج التشفير.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "مفتاحك الخاص غير صالح! ربما تم تغيير كلمة المرور خارج %s (مثل:مجلد شركتك). يمكنك تحديث كلمة المرور في الاعدادات الشخصية لإستعادة الوصول الى ملفاتك المشفرة.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", + "Unknown error. Please check your system settings or contact your administrator" : "خطأ غير معروف, الرجاء التحقق من إعدادات نظامك أو راسل المدير", + "Missing requirements." : "متطلبات ناقصة.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "يرجى التاكد من ان اصدار PHP 5.3.3 او احدث , مثبت و التاكد من ان OpenSSL مفعل و مهيئ بشكل صحيح. حتى الان برنامج التتشفير تم تعطيلة.", + "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 %spersonal settings%s." : " .%spersonal settings%s إنتقل مباشرة إلى ", + "Encryption" : "التشفير", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", + "Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):", + "Recovery key password" : "استعادة كلمة مرور المفتاح", + "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح", + "Enabled" : "مفعلة", + "Disabled" : "معطلة", + "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", + "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح", + "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح", + "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد", + "Change Password" : "عدل كلمة السر", + " If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", + "Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول", + "Current log-in password" : "كلمة المرور الحالية الخاصة بالدخول", + "Update Private Key Password" : "تحديث كلمة المرور لـ المفتاح الخاص", + "Enable password recovery:" : "تفعيل استعادة كلمة المرور:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور" +}, +"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/files_encryption/l10n/ar.json b/apps/files_encryption/l10n/ar.json new file mode 100644 index 0000000000000000000000000000000000000000..d7caa1b31d005e34cac777993196c7ef0bce576f --- /dev/null +++ b/apps/files_encryption/l10n/ar.json @@ -0,0 +1,40 @@ +{ "translations": { + "Unknown error" : "خطأ غير معروف. ", + "Recovery key successfully enabled" : "تم بنجاح تفعيل مفتاح الاستعادة", + "Could not disable recovery key. Please check your recovery key password!" : "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!", + "Recovery key successfully disabled" : "تم تعطيل مفتاح الاستعادة بنجاح", + "Password successfully changed." : "تم تغيير كلمة المرور بنجاح.", + "Could not change the password. Maybe the old password was not correct." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", + "Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.", + "File recovery settings updated" : "اعدادات ملف الاستعادة تم تحديثه", + "Could not update file recovery" : "تعذر تحديث ملف الاستعادة", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "برنامج التشفير لم يتم تهيئتة ! من الممكن ان برنامج التشفير تم اعادة تفعيلة خلال الجلسة. يرجى تسجيل الخروج ومن ثم تسجيل الدخول مجددا لتهيئة برنامج التشفير.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "مفتاحك الخاص غير صالح! ربما تم تغيير كلمة المرور خارج %s (مثل:مجلد شركتك). يمكنك تحديث كلمة المرور في الاعدادات الشخصية لإستعادة الوصول الى ملفاتك المشفرة.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", + "Unknown error. Please check your system settings or contact your administrator" : "خطأ غير معروف, الرجاء التحقق من إعدادات نظامك أو راسل المدير", + "Missing requirements." : "متطلبات ناقصة.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "يرجى التاكد من ان اصدار PHP 5.3.3 او احدث , مثبت و التاكد من ان OpenSSL مفعل و مهيئ بشكل صحيح. حتى الان برنامج التتشفير تم تعطيلة.", + "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 %spersonal settings%s." : " .%spersonal settings%s إنتقل مباشرة إلى ", + "Encryption" : "التشفير", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", + "Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):", + "Recovery key password" : "استعادة كلمة مرور المفتاح", + "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح", + "Enabled" : "مفعلة", + "Disabled" : "معطلة", + "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", + "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح", + "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح", + "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد", + "Change Password" : "عدل كلمة السر", + " If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", + "Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول", + "Current log-in password" : "كلمة المرور الحالية الخاصة بالدخول", + "Update Private Key Password" : "تحديث كلمة المرور لـ المفتاح الخاص", + "Enable password recovery:" : "تفعيل استعادة كلمة المرور:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور" +},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ar.php b/apps/files_encryption/l10n/ar.php deleted file mode 100644 index 1e3b4aaec4fe6234a6b66986a902952db544503e..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ar.php +++ /dev/null @@ -1,42 +0,0 @@ - "تم بنجاح تفعيل مفتاح الاستعادة", -"Could not enable recovery key. Please check your recovery key password!" => "لا يمكن تفعيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!", -"Recovery key successfully disabled" => "تم تعطيل مفتاح الاستعادة بنجاح", -"Could not disable recovery key. Please check your recovery key password!" => "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!", -"Password successfully changed." => "تم تغيير كلمة المرور بنجاح.", -"Could not change the password. Maybe the old password was not correct." => "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", -"Private key password successfully updated." => "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.", -"Could not update the private key password. Maybe the old password was not correct." => "لا يمكن تحديث كلمة مرور المفتاح الخاص. من الممكن ان كلمة المرور القديمة غير صحيحة.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "برنامج التشفير لم يتم تهيئتة ! من الممكن ان برنامج التشفير تم اعادة تفعيلة خلال الجلسة. يرجى تسجيل الخروج ومن ثم تسجيل الدخول مجددا لتهيئة برنامج التشفير.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "مفتاحك الخاص غير صالح! ربما تم تغيير كلمة المرور خارج %s (مثل:مجلد شركتك). يمكنك تحديث كلمة المرور في الاعدادات الشخصية لإستعادة الوصول الى ملفاتك المشفرة.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", -"Unknown error. Please check your system settings or contact your administrator" => "خطأ غير معروف, الرجاء التحقق من إعدادات نظامك أو راسل المدير", -"Missing requirements." => "متطلبات ناقصة.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "يرجى التاكد من ان اصدار PHP 5.3.3 او احدث , مثبت و التاكد من ان OpenSSL مفعل و مهيئ بشكل صحيح. حتى الان برنامج التتشفير تم تعطيلة.", -"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 %spersonal settings%s." => " .%spersonal settings%s إنتقل مباشرة إلى ", -"Encryption" => "التشفير", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", -"Enable recovery key (allow to recover users files in case of password loss):" => "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):", -"Recovery key password" => "استعادة كلمة مرور المفتاح", -"Repeat Recovery key password" => "كرر كلمة المرور لـ استعادة المفتاح", -"Enabled" => "مفعلة", -"Disabled" => "معطلة", -"Change recovery key password:" => "تعديل كلمة المرور استعادة المفتاح:", -"Old Recovery key password" => "كلمة المرور القديمة لـ استعامة المفتاح", -"New Recovery key password" => "تعيين كلمة مرور جديدة لـ استعادة المفتاح", -"Repeat New Recovery key password" => "كرر كلمة المرور لـ استعادة المفتاح من جديد", -"Change Password" => "عدل كلمة السر", -" If you don't remember your old password you can ask your administrator to recover your files." => "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", -"Old log-in password" => "كلمة المرور القديمة الخاصة بالدخول", -"Current log-in password" => "كلمة المرور الحالية الخاصة بالدخول", -"Update Private Key Password" => "تحديث كلمة المرور لـ المفتاح الخاص", -"Enable password recovery:" => "تفعيل استعادة كلمة المرور:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور", -"File recovery settings updated" => "اعدادات ملف الاستعادة تم تحديثه", -"Could not update file recovery" => "تعذر تحديث ملف الاستعادة" -); -$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"; diff --git a/apps/files_encryption/l10n/ast.js b/apps/files_encryption/l10n/ast.js new file mode 100644 index 0000000000000000000000000000000000000000..c909d4ee0212c38d9c83706727eef6447142b9d7 --- /dev/null +++ b/apps/files_encryption/l10n/ast.js @@ -0,0 +1,43 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Fallu desconocíu", + "Recovery key successfully enabled" : "Habilitóse la recuperación de ficheros", + "Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Password successfully changed." : "Camudóse la contraseña", + "Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.", + "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.", + "File recovery settings updated" : "Opciones de recuperación de ficheros anovada", + "Could not update file recovery" : "Nun pudo anovase la recuperación de ficheros", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡L'aplicación de cifráu nun s'anició! Seique se restableciera mentanto la sesión. Por favor intenta zarrar la sesión y volver a aniciala p'aniciar l'aplicación de cifráu.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡La clave privada nun ye válida! Seique la contraseña se camudase dende fuera de %s (Ex:El to direutoriu corporativu). Pues anovar la contraseña de la clave privada nes tos opciones personales pa recuperar l'accesu a los ficheros.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", + "Unknown error. Please check your system settings or contact your administrator" : "Fallu desconocíu. Por favor, comprueba los axustes del sistema o contauta col alministrador", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrate de que PHP 5.3.3 o postreru ta instaláu y que la estensión OpenSSL de PHP ta habilitada y configurada correutamente. Pel momentu, l'aplicación de cifráu deshabilitóse.", + "Following users are not set up for encryption:" : "Los siguientes usuarios nun se configuraron pal cifráu:", + "Initial encryption started... This can take some time. Please wait." : "Cifráu aniciáu..... Esto pue llevar un tiempu. Por favor espera.", + "Initial encryption running... Please try again later." : "Cifráu inicial en cursu... Inténtalo dempués.", + "Go directly to your %spersonal settings%s." : "Dir direutamente a los tos %saxustes personales%s.", + "Encryption" : "Cifráu", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);", + "Recovery key password" : "Contraseña de clave de recuperación", + "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación", + "Enabled" : "Habilitar", + "Disabled" : "Deshabilitáu", + "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", + "Old Recovery key password" : "Clave de recuperación vieya", + "New Recovery key password" : "Clave de recuperación nueva", + "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva", + "Change Password" : "Camudar contraseña", + "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", + "Old log-in password" : "Contraseña d'accesu vieya", + "Current log-in password" : "Contraseña d'accesu actual", + "Update Private Key Password" : "Anovar Contraseña de Clave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ast.json b/apps/files_encryption/l10n/ast.json new file mode 100644 index 0000000000000000000000000000000000000000..d34a727863dfbc1a58823a59efadce26e8e8db7f --- /dev/null +++ b/apps/files_encryption/l10n/ast.json @@ -0,0 +1,41 @@ +{ "translations": { + "Unknown error" : "Fallu desconocíu", + "Recovery key successfully enabled" : "Habilitóse la recuperación de ficheros", + "Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Password successfully changed." : "Camudóse la contraseña", + "Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.", + "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.", + "File recovery settings updated" : "Opciones de recuperación de ficheros anovada", + "Could not update file recovery" : "Nun pudo anovase la recuperación de ficheros", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡L'aplicación de cifráu nun s'anició! Seique se restableciera mentanto la sesión. Por favor intenta zarrar la sesión y volver a aniciala p'aniciar l'aplicación de cifráu.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡La clave privada nun ye válida! Seique la contraseña se camudase dende fuera de %s (Ex:El to direutoriu corporativu). Pues anovar la contraseña de la clave privada nes tos opciones personales pa recuperar l'accesu a los ficheros.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", + "Unknown error. Please check your system settings or contact your administrator" : "Fallu desconocíu. Por favor, comprueba los axustes del sistema o contauta col alministrador", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrate de que PHP 5.3.3 o postreru ta instaláu y que la estensión OpenSSL de PHP ta habilitada y configurada correutamente. Pel momentu, l'aplicación de cifráu deshabilitóse.", + "Following users are not set up for encryption:" : "Los siguientes usuarios nun se configuraron pal cifráu:", + "Initial encryption started... This can take some time. Please wait." : "Cifráu aniciáu..... Esto pue llevar un tiempu. Por favor espera.", + "Initial encryption running... Please try again later." : "Cifráu inicial en cursu... Inténtalo dempués.", + "Go directly to your %spersonal settings%s." : "Dir direutamente a los tos %saxustes personales%s.", + "Encryption" : "Cifráu", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);", + "Recovery key password" : "Contraseña de clave de recuperación", + "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación", + "Enabled" : "Habilitar", + "Disabled" : "Deshabilitáu", + "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", + "Old Recovery key password" : "Clave de recuperación vieya", + "New Recovery key password" : "Clave de recuperación nueva", + "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva", + "Change Password" : "Camudar contraseña", + "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", + "Old log-in password" : "Contraseña d'accesu vieya", + "Current log-in password" : "Contraseña d'accesu actual", + "Update Private Key Password" : "Anovar Contraseña de Clave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ast.php b/apps/files_encryption/l10n/ast.php deleted file mode 100644 index abc41b36f37fdab3d476623ffc4e25e2213d345b..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ast.php +++ /dev/null @@ -1,43 +0,0 @@ - "Habilitóse la recuperación de ficheros", -"Could not enable recovery key. Please check your recovery key password!" => "Nun pudo habilitase la clave de recuperación. Por favor comprueba la contraseña.", -"Recovery key successfully disabled" => "Clave de recuperación deshabilitada", -"Could not disable recovery key. Please check your recovery key password!" => "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!", -"Password successfully changed." => "Camudóse la contraseña", -"Could not change the password. Maybe the old password was not correct." => "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.", -"Private key password successfully updated." => "Contraseña de clave privada anovada correchamente.", -"Could not update the private key password. Maybe the old password was not correct." => "Nun pudo camudase la contraseña. Pue que la contraseña antigua nun seya correuta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡L'aplicación de cifráu nun s'anició! Seique se restableciera mentanto la sesión. Por favor intenta zarrar la sesión y volver a aniciala p'aniciar l'aplicación de cifráu.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡La clave privada nun ye válida! Seique la contraseña se camudase dende fuera de %s (Ex:El to direutoriu corporativu). Pues anovar la contraseña de la clave privada nes tos opciones personales pa recuperar l'accesu a los ficheros.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", -"Unknown error. Please check your system settings or contact your administrator" => "Fallu desconocíu. Por favor, comprueba los axustes del sistema o contauta col alministrador", -"Missing requirements." => "Requisitos incompletos.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrate de que PHP 5.3.3 o postreru ta instaláu y que la estensión OpenSSL de PHP ta habilitada y configurada correutamente. Pel momentu, l'aplicación de cifráu deshabilitóse.", -"Following users are not set up for encryption:" => "Los siguientes usuarios nun se configuraron pal cifráu:", -"Initial encryption started... This can take some time. Please wait." => "Cifráu aniciáu..... Esto pue llevar un tiempu. Por favor espera.", -"Initial encryption running... Please try again later." => "Cifráu inicial en cursu... Inténtalo dempués.", -"Go directly to your %spersonal settings%s." => "Dir direutamente a los tos %saxustes personales%s.", -"Encryption" => "Cifráu", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", -"Enable recovery key (allow to recover users files in case of password loss):" => "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);", -"Recovery key password" => "Contraseña de clave de recuperación", -"Repeat Recovery key password" => "Repeti la contraseña de clave de recuperación", -"Enabled" => "Habilitar", -"Disabled" => "Deshabilitáu", -"Change recovery key password:" => "Camudar la contraseña de la clave de recuperación", -"Old Recovery key password" => "Clave de recuperación vieya", -"New Recovery key password" => "Clave de recuperación nueva", -"Repeat New Recovery key password" => "Repetir la clave de recuperación nueva", -"Change Password" => "Camudar contraseña", -"Set your old private key password to your current log-in password:" => "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", -"Old log-in password" => "Contraseña d'accesu vieya", -"Current log-in password" => "Contraseña d'accesu actual", -"Update Private Key Password" => "Anovar Contraseña de Clave Privada", -"Enable password recovery:" => "Habilitar la recuperación de contraseña:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña", -"File recovery settings updated" => "Opciones de recuperación de ficheros anovada", -"Could not update file recovery" => "Nun pudo anovase la recuperación de ficheros" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/az.js b/apps/files_encryption/l10n/az.js new file mode 100644 index 0000000000000000000000000000000000000000..29c4bc2633dac30faeac81824a2f9c9759157bcf --- /dev/null +++ b/apps/files_encryption/l10n/az.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Bəlli olmayan səhv baş verdi", + "Recovery key successfully enabled" : "Bərpa açarı uğurla aktivləşdi", + "Could not disable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.", + "Recovery key successfully disabled" : "Bərpa açarı uğurla söndürüldü", + "Password successfully changed." : "Şifrə uğurla dəyişdirildi.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sizin gizli açarınız doğru deyil! Təxmin edilir ki, sizin şifrə %s-dən kənarda dəyişdirilib(misal üçün sizin koorporativ qovluq). Siz öz şifrələnmiş fayllarınıza yetkinizi bərpa etmək üçün, öz şifrənizi şəxsi quraşdırmalarınızda yeniləyə bilərsiniz.", + "Unknown error. Please check your system settings or contact your administrator" : "Tanınmayan səhv. Xahiş olunur sistem quraşdırmalarınızı yoxlayın yada öz inzibatçınızla əlaqə yaradın", + "Missing requirements." : "Taləbatlar çatışmır.", + "Initial encryption running... Please try again later." : "İlkin şifrələnmə işləyir... Xahiş olunur birazdan yenidən müraciət edəsiniz.", + "Go directly to your %spersonal settings%s." : "Birbaşa öz %sşəxsi quraşdırmalarınıza%s gedin.", + "Encryption" : "Şifrələnmə" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/az.json b/apps/files_encryption/l10n/az.json new file mode 100644 index 0000000000000000000000000000000000000000..f801dd0b2478731e2971bbac61cbd557923e9c0a --- /dev/null +++ b/apps/files_encryption/l10n/az.json @@ -0,0 +1,14 @@ +{ "translations": { + "Unknown error" : "Bəlli olmayan səhv baş verdi", + "Recovery key successfully enabled" : "Bərpa açarı uğurla aktivləşdi", + "Could not disable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.", + "Recovery key successfully disabled" : "Bərpa açarı uğurla söndürüldü", + "Password successfully changed." : "Şifrə uğurla dəyişdirildi.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sizin gizli açarınız doğru deyil! Təxmin edilir ki, sizin şifrə %s-dən kənarda dəyişdirilib(misal üçün sizin koorporativ qovluq). Siz öz şifrələnmiş fayllarınıza yetkinizi bərpa etmək üçün, öz şifrənizi şəxsi quraşdırmalarınızda yeniləyə bilərsiniz.", + "Unknown error. Please check your system settings or contact your administrator" : "Tanınmayan səhv. Xahiş olunur sistem quraşdırmalarınızı yoxlayın yada öz inzibatçınızla əlaqə yaradın", + "Missing requirements." : "Taləbatlar çatışmır.", + "Initial encryption running... Please try again later." : "İlkin şifrələnmə işləyir... Xahiş olunur birazdan yenidən müraciət edəsiniz.", + "Go directly to your %spersonal settings%s." : "Birbaşa öz %sşəxsi quraşdırmalarınıza%s gedin.", + "Encryption" : "Şifrələnmə" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/az.php b/apps/files_encryption/l10n/az.php deleted file mode 100644 index 887bf07565c0ff79133f1cee6666f999efe8d9cb..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/az.php +++ /dev/null @@ -1,15 +0,0 @@ - "Bərpa açarı uğurla aktivləşdi", -"Could not enable recovery key. Please check your recovery key password!" => "Geriqaytarılma açarının aktivləşdirilməsi mümkün olmadı. Xahiş olunur geriqaytarılma açarı üçün tələb edilən şifrəni yoxlayasınız.", -"Recovery key successfully disabled" => "Bərpa açarı uğurla söndürüldü", -"Could not disable recovery key. Please check your recovery key password!" => "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.", -"Password successfully changed." => "Şifrə uğurla dəyişdirildi.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Sizin gizli açarınız doğru deyil! Təxmin edilir ki, sizin şifrə %s-dən kənarda dəyişdirilib(misal üçün sizin koorporativ qovluq). Siz öz şifrələnmiş fayllarınıza yetkinizi bərpa etmək üçün, öz şifrənizi şəxsi quraşdırmalarınızda yeniləyə bilərsiniz.", -"Unknown error. Please check your system settings or contact your administrator" => "Tanınmayan səhv. Xahiş olunur sistem quraşdırmalarınızı yoxlayın yada öz inzibatçınızla əlaqə yaradın", -"Missing requirements." => "Taləbatlar çatışmır.", -"Initial encryption running... Please try again later." => "İlkin şifrələnmə işləyir... Xahiş olunur birazdan yenidən müraciət edəsiniz.", -"Go directly to your %spersonal settings%s." => "Birbaşa öz %sşəxsi quraşdırmalarınıza%s gedin.", -"Encryption" => "Şifrələnmə" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/bg_BG.js b/apps/files_encryption/l10n/bg_BG.js new file mode 100644 index 0000000000000000000000000000000000000000..87ffacc697dbe564513f20a184fca0f4168542c9 --- /dev/null +++ b/apps/files_encryption/l10n/bg_BG.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Непозната грешка.", + "Missing recovery key password" : "Липсва парола за възстановяване", + "Please repeat the recovery key password" : "Повтори новата парола за възстановяване", + "Repeated recovery key password does not match the provided recovery key password" : "Повторената парола за възстановяване не съвпада със зададената парола за възстановяване", + "Recovery key successfully enabled" : "Успешно включване на опцията ключ за възстановяване.", + "Could not disable recovery key. Please check your recovery key password!" : "Неуспешно изключване на ключа за възстановяване. Моля, провери паролата за ключа за възстановяване!", + "Recovery key successfully disabled" : "Успешно изключване на ключа за възстановяване.", + "Please provide the old recovery password" : "Моля, въведи старата парола за възстановяване", + "Please provide a new recovery password" : "Моля, задай нова парола за възстановяване", + "Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване", + "Password successfully changed." : "Паролата е успешно променена.", + "Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", + "Could not update the private key password." : "Неуспешна промяна на паролата на личния ключ", + "The old password was not correct, please try again." : "Старата парола е грешна, опитай отново.", + "The current log-in password was not correct, please try again." : "Грешна парола за вписване, опитай отново.", + "Private key password successfully updated." : "Успешно променена тайната парола за ключа.", + "File recovery settings updated" : "Настройките за възстановяване на файлове са променени.", + "Could not update file recovery" : "Неуспешна промяна на настройките за възстановяване на файлове.", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Неуспешна инициализация на криптиращото приложение! Може би криптиращото приложение бе включено по време на твоята сесия. Отпиши се и се впиши обратно за да инциализираш криптиращото приложение.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Твоят таен ключ е невалиден! Вероятно твоята парола беше променена извън %s(пр. твоята корпоративна директория). Можеш да промениш своят таен ключ в Лични настройки, за да възстановиш достъпа до криптираните файлове.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", + "Unknown error. Please check your system settings or contact your administrator" : "Непозната грешка. Моля, провери системните настройки или се свържи с администратора.", + "Missing requirements." : "Липсва задължителна информация.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Моля, увери се, че PHP 5.3.3 или по-нова версия е инсталирана, и че OpenSSL заедно съответната PHP добавка са включени и правилно настроени. За сега, криптиращото приложение ще бъде изключено.", + "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 %spersonal settings%s." : "Отиде направо към твоите %sлични настройки%s.", + "Encryption" : "Криптиране", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):", + "Recovery key password" : "Парола за възстановяане на ключа", + "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа", + "Enabled" : "Включено", + "Disabled" : "Изключено", + "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", + "Old Recovery key password" : "Старата парола за въстановяване на ключа", + "New Recovery key password" : "Новата парола за възстановяване на ключа", + "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа", + "Change Password" : "Промени Паролата", + "Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.", + "Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ако не помниш старата парола помоли администратора да възстанови файловете ти.", + "Old log-in password" : "Стара парола за вписване", + "Current log-in password" : "Текуща парола за вписване", + "Update Private Key Password" : "Промени Тайната Парола за Ключа", + "Enable password recovery:" : "Включи опцията възстановяване на паролата:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/bg_BG.json b/apps/files_encryption/l10n/bg_BG.json new file mode 100644 index 0000000000000000000000000000000000000000..6e0ac83b4949668b0b17da253c34dcf1ce80ca28 --- /dev/null +++ b/apps/files_encryption/l10n/bg_BG.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Непозната грешка.", + "Missing recovery key password" : "Липсва парола за възстановяване", + "Please repeat the recovery key password" : "Повтори новата парола за възстановяване", + "Repeated recovery key password does not match the provided recovery key password" : "Повторената парола за възстановяване не съвпада със зададената парола за възстановяване", + "Recovery key successfully enabled" : "Успешно включване на опцията ключ за възстановяване.", + "Could not disable recovery key. Please check your recovery key password!" : "Неуспешно изключване на ключа за възстановяване. Моля, провери паролата за ключа за възстановяване!", + "Recovery key successfully disabled" : "Успешно изключване на ключа за възстановяване.", + "Please provide the old recovery password" : "Моля, въведи старата парола за възстановяване", + "Please provide a new recovery password" : "Моля, задай нова парола за възстановяване", + "Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване", + "Password successfully changed." : "Паролата е успешно променена.", + "Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", + "Could not update the private key password." : "Неуспешна промяна на паролата на личния ключ", + "The old password was not correct, please try again." : "Старата парола е грешна, опитай отново.", + "The current log-in password was not correct, please try again." : "Грешна парола за вписване, опитай отново.", + "Private key password successfully updated." : "Успешно променена тайната парола за ключа.", + "File recovery settings updated" : "Настройките за възстановяване на файлове са променени.", + "Could not update file recovery" : "Неуспешна промяна на настройките за възстановяване на файлове.", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Неуспешна инициализация на криптиращото приложение! Може би криптиращото приложение бе включено по време на твоята сесия. Отпиши се и се впиши обратно за да инциализираш криптиращото приложение.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Твоят таен ключ е невалиден! Вероятно твоята парола беше променена извън %s(пр. твоята корпоративна директория). Можеш да промениш своят таен ключ в Лични настройки, за да възстановиш достъпа до криптираните файлове.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", + "Unknown error. Please check your system settings or contact your administrator" : "Непозната грешка. Моля, провери системните настройки или се свържи с администратора.", + "Missing requirements." : "Липсва задължителна информация.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Моля, увери се, че PHP 5.3.3 или по-нова версия е инсталирана, и че OpenSSL заедно съответната PHP добавка са включени и правилно настроени. За сега, криптиращото приложение ще бъде изключено.", + "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 %spersonal settings%s." : "Отиде направо към твоите %sлични настройки%s.", + "Encryption" : "Криптиране", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):", + "Recovery key password" : "Парола за възстановяане на ключа", + "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа", + "Enabled" : "Включено", + "Disabled" : "Изключено", + "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", + "Old Recovery key password" : "Старата парола за въстановяване на ключа", + "New Recovery key password" : "Новата парола за възстановяване на ключа", + "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа", + "Change Password" : "Промени Паролата", + "Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.", + "Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ако не помниш старата парола помоли администратора да възстанови файловете ти.", + "Old log-in password" : "Стара парола за вписване", + "Current log-in password" : "Текуща парола за вписване", + "Update Private Key Password" : "Промени Тайната Парола за Ключа", + "Enable password recovery:" : "Включи опцията възстановяване на паролата:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/bg_BG.php b/apps/files_encryption/l10n/bg_BG.php deleted file mode 100644 index fc6b40de0a88134eeb05a6af1b4f92cf022fd201..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/bg_BG.php +++ /dev/null @@ -1,44 +0,0 @@ - "Успешно включване на опцията ключ за възстановяване.", -"Could not enable recovery key. Please check your recovery key password!" => "Неуспешно включване на опцията ключ за възстановяване. Моля, провери паролата за ключа за възстановяване.", -"Recovery key successfully disabled" => "Успешно изключване на ключа за възстановяване.", -"Could not disable recovery key. Please check your recovery key password!" => "Неуспешно изключване на ключа за възстановяване. Моля, провери паролата за ключа за възстановяване!", -"Password successfully changed." => "Паролата е успешно променена.", -"Could not change the password. Maybe the old password was not correct." => "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", -"Private key password successfully updated." => "Успешно променена тайната парола за ключа.", -"Could not update the private key password. Maybe the old password was not correct." => "Неуспешна промяна на тайната парола за ключа. Може би старата парола е грешно въведена.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Неуспешна инициализация на криптиращото приложение! Може би криптиращото приложение бе включено по време на твоята сесия. Отпиши се и се впиши обратно за да инциализираш криптиращото приложение.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Твоят таен ключ е невалиден! Вероятно твоята парола беше променена извън %s(пр. твоята корпоративна директория). Можеш да промениш своят таен ключ в Лични настройки, за да възстановиш достъпа до криптираните файлове.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", -"Unknown error. Please check your system settings or contact your administrator" => "Непозната грешка. Моля, провери системните настройки или се свържи с администратора.", -"Missing requirements." => "Липсва задължителна информация.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Моля, увери се, че PHP 5.3.3 или по-нова версия е инсталирана, и че OpenSSL заедно съответната PHP добавка са включени и правилно настроени. За сега, криптиращото приложение ще бъде изключено.", -"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 %spersonal settings%s." => "Отиде направо към твоите %sлични настройки%s.", -"Encryption" => "Криптиране", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):", -"Recovery key password" => "Парола за възстановяане на ключа", -"Repeat Recovery key password" => "Повтори паролата за възстановяване на ключа", -"Enabled" => "Включено", -"Disabled" => "Изключено", -"Change recovery key password:" => "Промени паролата за въстановяване на ключа:", -"Old Recovery key password" => "Старата парола за въстановяване на ключа", -"New Recovery key password" => "Новата парола за възстановяване на ключа", -"Repeat New Recovery key password" => "Повтори новата паролза за възстановяване на ключа", -"Change Password" => "Промени Паролата", -"Your private key password no longer matches your log-in password." => "Личният ти ключ не съвпада с паролата за вписване.", -"Set your old private key password to your current log-in password:" => "Промени паролата за тайния ти включ на паролата за вписване:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Ако не помниш старата парола помоли администратора да възстанови файловете ти.", -"Old log-in password" => "Стара парола за вписване", -"Current log-in password" => "Текуща парола за вписване", -"Update Private Key Password" => "Промени Тайната Парола за Ключа", -"Enable password recovery:" => "Включи опцията възстановяване на паролата:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола.", -"File recovery settings updated" => "Настройките за възстановяване на файлове са променени.", -"Could not update file recovery" => "Неуспешна промяна на настройките за възстановяване на файлове." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/bn_BD.js b/apps/files_encryption/l10n/bn_BD.js new file mode 100644 index 0000000000000000000000000000000000000000..b3986d9668d57acb3188cbe425a6a5532e9fe8b0 --- /dev/null +++ b/apps/files_encryption/l10n/bn_BD.js @@ -0,0 +1,23 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "অজানা জটিলতা", + "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", + "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", + "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", + "Missing requirements." : "প্রয়োজনানুযায়ী ঘাটতি আছে।", + "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 %spersonal settings%s." : "সরাসরি আপনার %spersonal settings%s এ যান।", + "Encryption" : "সংকেতায়ন", + "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", + "Enabled" : "কার্যকর", + "Disabled" : "অকার্যকর", + "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", + "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", + "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ", + "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", + "Change Password" : "কূটশব্দ পরিবর্তন করুন" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/bn_BD.json b/apps/files_encryption/l10n/bn_BD.json new file mode 100644 index 0000000000000000000000000000000000000000..d1febcda0bb0cb92860b87b3f027b0512066a7d5 --- /dev/null +++ b/apps/files_encryption/l10n/bn_BD.json @@ -0,0 +1,21 @@ +{ "translations": { + "Unknown error" : "অজানা জটিলতা", + "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", + "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", + "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", + "Missing requirements." : "প্রয়োজনানুযায়ী ঘাটতি আছে।", + "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 %spersonal settings%s." : "সরাসরি আপনার %spersonal settings%s এ যান।", + "Encryption" : "সংকেতায়ন", + "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", + "Enabled" : "কার্যকর", + "Disabled" : "অকার্যকর", + "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", + "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", + "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ", + "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", + "Change Password" : "কূটশব্দ পরিবর্তন করুন" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/bn_BD.php b/apps/files_encryption/l10n/bn_BD.php deleted file mode 100644 index 3d4c848d6ef6d4ea75be02a78ba0d997b5fe07b3..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/bn_BD.php +++ /dev/null @@ -1,21 +0,0 @@ - "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", -"Recovery key successfully disabled" => "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", -"Password successfully changed." => "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", -"Missing requirements." => "প্রয়োজনানুযায়ী ঘাটতি আছে।", -"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 %spersonal settings%s." => "সরাসরি আপনার %spersonal settings%s এ যান।", -"Encryption" => "সংকেতায়ন", -"Repeat Recovery key password" => "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", -"Enabled" => "কার্যকর", -"Disabled" => "অকার্যকর", -"Change recovery key password:" => "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", -"Old Recovery key password" => "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", -"New Recovery key password" => "পূণরূদ্ধার কি এর নতুন কুটশব্দ", -"Repeat New Recovery key password" => "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", -"Change Password" => "কূটশব্দ পরিবর্তন করুন" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/ca.js b/apps/files_encryption/l10n/ca.js new file mode 100644 index 0000000000000000000000000000000000000000..2cc924a75237ed8a03dd5d60693f1bf92324df99 --- /dev/null +++ b/apps/files_encryption/l10n/ca.js @@ -0,0 +1,44 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Error desconegut", + "Recovery key successfully enabled" : "La clau de recuperació s'ha activat", + "Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", + "Recovery key successfully disabled" : "La clau de recuperació s'ha descativat", + "Password successfully changed." : "La contrasenya s'ha canviat.", + "Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", + "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", + "File recovery settings updated" : "S'han actualitzat els arranjaments de recuperació de fitxers", + "Could not update file recovery" : "No s'ha pogut actualitzar la recuperació de fitxers", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'aplicació d'encriptació no està inicialitzada! Potser l'aplicació d'encriptació ha estat reiniciada durant la sessió. Intenteu sortir i acreditar-vos de nou per reinicialitzar l'aplicació d'encriptació.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada no és vàlida! Probablement la contrasenya va ser canviada des de fora de %s (per exemple, en el directori de l'empresa). Vostè pot actualitzar la contrasenya de clau privada en la seva configuració personal per poder recuperar l'accés en els arxius xifrats.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", + "Unknown error. Please check your system settings or contact your administrator" : "Error desconegut. Comproveu l'arranjament del sistema o aviseu a l'administrador", + "Missing requirements." : "Manca de requisits.", + "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." : "Assegureu-vos que teniu instal·lat PHP 5.3.3 o una versió superior i que està activat Open SSL i habilitada i configurada correctament l'extensió de PHP. De moment, l'aplicació d'encriptació s'ha desactivat.", + "Following users are not set up for encryption:" : "Els usuaris següents no estan configurats per a l'encriptació:", + "Initial encryption started... This can take some time. Please wait." : "La encriptació inicial ha començat... Pot trigar una estona, espereu.", + "Initial encryption running... Please try again later." : "encriptació inicial en procés... Proveu-ho més tard.", + "Go directly to your %spersonal settings%s." : "Vés directament a l'%sarranjament personal%s.", + "Encryption" : "Xifrat", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):", + "Recovery key password" : "Clau de recuperació de la contrasenya", + "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya", + "Enabled" : "Activat", + "Disabled" : "Desactivat", + "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", + "Old Recovery key password" : "Antiga clau de recuperació de contrasenya", + "New Recovery key password" : "Nova clau de recuperació de contrasenya", + "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya", + "Change Password" : "Canvia la contrasenya", + "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", + "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", + "Old log-in password" : "Contrasenya anterior d'accés", + "Current log-in password" : "Contrasenya d'accés actual", + "Update Private Key Password" : "Actualitza la contrasenya de clau privada", + "Enable password recovery:" : "Habilita la recuperació de contrasenya:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ca.json b/apps/files_encryption/l10n/ca.json new file mode 100644 index 0000000000000000000000000000000000000000..378af112cf24b9f3e99f1a74c6aa5655b7bd9f67 --- /dev/null +++ b/apps/files_encryption/l10n/ca.json @@ -0,0 +1,42 @@ +{ "translations": { + "Unknown error" : "Error desconegut", + "Recovery key successfully enabled" : "La clau de recuperació s'ha activat", + "Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", + "Recovery key successfully disabled" : "La clau de recuperació s'ha descativat", + "Password successfully changed." : "La contrasenya s'ha canviat.", + "Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", + "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", + "File recovery settings updated" : "S'han actualitzat els arranjaments de recuperació de fitxers", + "Could not update file recovery" : "No s'ha pogut actualitzar la recuperació de fitxers", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'aplicació d'encriptació no està inicialitzada! Potser l'aplicació d'encriptació ha estat reiniciada durant la sessió. Intenteu sortir i acreditar-vos de nou per reinicialitzar l'aplicació d'encriptació.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada no és vàlida! Probablement la contrasenya va ser canviada des de fora de %s (per exemple, en el directori de l'empresa). Vostè pot actualitzar la contrasenya de clau privada en la seva configuració personal per poder recuperar l'accés en els arxius xifrats.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", + "Unknown error. Please check your system settings or contact your administrator" : "Error desconegut. Comproveu l'arranjament del sistema o aviseu a l'administrador", + "Missing requirements." : "Manca de requisits.", + "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." : "Assegureu-vos que teniu instal·lat PHP 5.3.3 o una versió superior i que està activat Open SSL i habilitada i configurada correctament l'extensió de PHP. De moment, l'aplicació d'encriptació s'ha desactivat.", + "Following users are not set up for encryption:" : "Els usuaris següents no estan configurats per a l'encriptació:", + "Initial encryption started... This can take some time. Please wait." : "La encriptació inicial ha començat... Pot trigar una estona, espereu.", + "Initial encryption running... Please try again later." : "encriptació inicial en procés... Proveu-ho més tard.", + "Go directly to your %spersonal settings%s." : "Vés directament a l'%sarranjament personal%s.", + "Encryption" : "Xifrat", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):", + "Recovery key password" : "Clau de recuperació de la contrasenya", + "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya", + "Enabled" : "Activat", + "Disabled" : "Desactivat", + "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", + "Old Recovery key password" : "Antiga clau de recuperació de contrasenya", + "New Recovery key password" : "Nova clau de recuperació de contrasenya", + "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya", + "Change Password" : "Canvia la contrasenya", + "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", + "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", + "Old log-in password" : "Contrasenya anterior d'accés", + "Current log-in password" : "Contrasenya d'accés actual", + "Update Private Key Password" : "Actualitza la contrasenya de clau privada", + "Enable password recovery:" : "Habilita la recuperació de contrasenya:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ca.php b/apps/files_encryption/l10n/ca.php deleted file mode 100644 index c3eb258a4d8f9a794204e56ec87d83b7297c30f1..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ca.php +++ /dev/null @@ -1,44 +0,0 @@ - "La clau de recuperació s'ha activat", -"Could not enable recovery key. Please check your recovery key password!" => "No s'ha pogut activar la clau de recuperació. Comproveu contrasenya de la clau de recuperació!", -"Recovery key successfully disabled" => "La clau de recuperació s'ha descativat", -"Could not disable recovery key. Please check your recovery key password!" => "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", -"Password successfully changed." => "La contrasenya s'ha canviat.", -"Could not change the password. Maybe the old password was not correct." => "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", -"Private key password successfully updated." => "La contrasenya de la clau privada s'ha actualitzat.", -"Could not update the private key password. Maybe the old password was not correct." => "No s'ha pogut actualitzar la contrasenya de la clau privada. Potser la contrasenya anterior no era correcta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "L'aplicació d'encriptació no està inicialitzada! Potser l'aplicació d'encriptació ha estat reiniciada durant la sessió. Intenteu sortir i acreditar-vos de nou per reinicialitzar l'aplicació d'encriptació.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "La clau privada no és vàlida! Probablement la contrasenya va ser canviada des de fora de %s (per exemple, en el directori de l'empresa). Vostè pot actualitzar la contrasenya de clau privada en la seva configuració personal per poder recuperar l'accés en els arxius xifrats.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", -"Unknown error. Please check your system settings or contact your administrator" => "Error desconegut. Comproveu l'arranjament del sistema o aviseu a l'administrador", -"Missing requirements." => "Manca de requisits.", -"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." => "Assegureu-vos que teniu instal·lat PHP 5.3.3 o una versió superior i que està activat Open SSL i habilitada i configurada correctament l'extensió de PHP. De moment, l'aplicació d'encriptació s'ha desactivat.", -"Following users are not set up for encryption:" => "Els usuaris següents no estan configurats per a l'encriptació:", -"Initial encryption started... This can take some time. Please wait." => "La encriptació inicial ha començat... Pot trigar una estona, espereu.", -"Initial encryption running... Please try again later." => "encriptació inicial en procés... Proveu-ho més tard.", -"Go directly to your %spersonal settings%s." => "Vés directament a l'%sarranjament personal%s.", -"Encryption" => "Xifrat", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):", -"Recovery key password" => "Clau de recuperació de la contrasenya", -"Repeat Recovery key password" => "Repetiu la clau de recuperació de contrasenya", -"Enabled" => "Activat", -"Disabled" => "Desactivat", -"Change recovery key password:" => "Canvia la clau de recuperació de contrasenya:", -"Old Recovery key password" => "Antiga clau de recuperació de contrasenya", -"New Recovery key password" => "Nova clau de recuperació de contrasenya", -"Repeat New Recovery key password" => "Repetiu la nova clau de recuperació de contrasenya", -"Change Password" => "Canvia la contrasenya", -"Your private key password no longer matches your log-in password." => "La clau privada ja no es correspon amb la contrasenya d'accés:", -"Set your old private key password to your current log-in password:" => "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", -"Old log-in password" => "Contrasenya anterior d'accés", -"Current log-in password" => "Contrasenya d'accés actual", -"Update Private Key Password" => "Actualitza la contrasenya de clau privada", -"Enable password recovery:" => "Habilita la recuperació de contrasenya:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya", -"File recovery settings updated" => "S'han actualitzat els arranjaments de recuperació de fitxers", -"Could not update file recovery" => "No s'ha pogut actualitzar la recuperació de fitxers" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/cs_CZ.js b/apps/files_encryption/l10n/cs_CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..5d4d36557b73aada320979b2150b8607521813e6 --- /dev/null +++ b/apps/files_encryption/l10n/cs_CZ.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Neznámá chyba", + "Missing recovery key password" : "Chybí heslo klíče pro obnovu", + "Please repeat the recovery key password" : "Zopakujte prosím heslo klíče pro obnovu", + "Repeated recovery key password does not match the provided recovery key password" : "Opakované heslo pro obnovu nesouhlasí se zadaným heslem", + "Recovery key successfully enabled" : "Záchranný klíč byl úspěšně povolen", + "Could not disable recovery key. Please check your recovery key password!" : "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo vašeho záchranného klíče!", + "Recovery key successfully disabled" : "Záchranný klíč byl úspěšně zakázán", + "Please provide the old recovery password" : "Zadejte prosím staré heslo pro obnovu", + "Please provide a new recovery password" : "Zadejte prosím nové heslo pro obnovu", + "Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu", + "Password successfully changed." : "Heslo bylo úspěšně změněno.", + "Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.", + "Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.", + "The old password was not correct, please try again." : "Staré heslo nebylo zadáno správně, zkuste to prosím znovu.", + "The current log-in password was not correct, please try again." : "Současné přihlašovací heslo nebylo zadáno správně, zkuste to prosím znovu.", + "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.", + "File recovery settings updated" : "Možnosti záchrany souborů aktualizovány", + "Could not update file recovery" : "Nelze nastavit záchranu souborů", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikace pro šifrování není inicializována! Je možné, že aplikace byla znovu aktivována během vašeho přihlášení. Zkuste se prosím odhlásit a znovu přihlásit pro provedení inicializace šifrovací aplikace.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno vně systému %s (např. ve vašem firemním adresáři). Heslo vašeho soukromého klíče můžete změnit ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", + "Unknown error. Please check your system settings or contact your administrator" : "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.", + "Missing requirements." : "Nesplněné závislosti.", + "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." : "Ujistěte se prosím, že máte nainstalované PHP 5.3.3 nebo novější a že máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Prozatím byla aplikace pro šifrování vypnuta.", + "Following users are not set up for encryption:" : "Následující uživatelé nemají nastavené šifrování:", + "Initial encryption started... This can take some time. Please wait." : "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.", + "Initial encryption running... Please try again later." : "Probíhá počáteční šifrování... Zkuste to prosím znovu později.", + "Go directly to your %spersonal settings%s." : "Přejít přímo do svého %sosobního nastavení%s.", + "Encryption" : "Šifrování", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", + "Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)", + "Recovery key password" : "Heslo klíče pro obnovu", + "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu", + "Enabled" : "Povoleno", + "Disabled" : "Zakázáno", + "Change recovery key password:" : "Změna hesla klíče pro obnovu:", + "Old Recovery key password" : "Původní heslo klíče pro obnovu", + "New Recovery key password" : "Nové heslo klíče pro obnovu", + "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu", + "Change Password" : "Změnit heslo", + "Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", + "Set your old private key password to your current log-in password:" : "Změňte vaše staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete vaše původní heslo, můžete požádat správce o obnovu vašich souborů.", + "Old log-in password" : "Původní přihlašovací heslo", + "Current log-in password" : "Aktuální přihlašovací heslo", + "Update Private Key Password" : "Změnit heslo soukromého klíče", + "Enable password recovery:" : "Povolit obnovu hesla:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_encryption/l10n/cs_CZ.json b/apps/files_encryption/l10n/cs_CZ.json new file mode 100644 index 0000000000000000000000000000000000000000..3f25a78695edce3b6ac235ceb771cef4669db3a0 --- /dev/null +++ b/apps/files_encryption/l10n/cs_CZ.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Neznámá chyba", + "Missing recovery key password" : "Chybí heslo klíče pro obnovu", + "Please repeat the recovery key password" : "Zopakujte prosím heslo klíče pro obnovu", + "Repeated recovery key password does not match the provided recovery key password" : "Opakované heslo pro obnovu nesouhlasí se zadaným heslem", + "Recovery key successfully enabled" : "Záchranný klíč byl úspěšně povolen", + "Could not disable recovery key. Please check your recovery key password!" : "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo vašeho záchranného klíče!", + "Recovery key successfully disabled" : "Záchranný klíč byl úspěšně zakázán", + "Please provide the old recovery password" : "Zadejte prosím staré heslo pro obnovu", + "Please provide a new recovery password" : "Zadejte prosím nové heslo pro obnovu", + "Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu", + "Password successfully changed." : "Heslo bylo úspěšně změněno.", + "Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.", + "Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.", + "The old password was not correct, please try again." : "Staré heslo nebylo zadáno správně, zkuste to prosím znovu.", + "The current log-in password was not correct, please try again." : "Současné přihlašovací heslo nebylo zadáno správně, zkuste to prosím znovu.", + "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.", + "File recovery settings updated" : "Možnosti záchrany souborů aktualizovány", + "Could not update file recovery" : "Nelze nastavit záchranu souborů", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikace pro šifrování není inicializována! Je možné, že aplikace byla znovu aktivována během vašeho přihlášení. Zkuste se prosím odhlásit a znovu přihlásit pro provedení inicializace šifrovací aplikace.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno vně systému %s (např. ve vašem firemním adresáři). Heslo vašeho soukromého klíče můžete změnit ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", + "Unknown error. Please check your system settings or contact your administrator" : "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.", + "Missing requirements." : "Nesplněné závislosti.", + "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." : "Ujistěte se prosím, že máte nainstalované PHP 5.3.3 nebo novější a že máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Prozatím byla aplikace pro šifrování vypnuta.", + "Following users are not set up for encryption:" : "Následující uživatelé nemají nastavené šifrování:", + "Initial encryption started... This can take some time. Please wait." : "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.", + "Initial encryption running... Please try again later." : "Probíhá počáteční šifrování... Zkuste to prosím znovu později.", + "Go directly to your %spersonal settings%s." : "Přejít přímo do svého %sosobního nastavení%s.", + "Encryption" : "Šifrování", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", + "Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)", + "Recovery key password" : "Heslo klíče pro obnovu", + "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu", + "Enabled" : "Povoleno", + "Disabled" : "Zakázáno", + "Change recovery key password:" : "Změna hesla klíče pro obnovu:", + "Old Recovery key password" : "Původní heslo klíče pro obnovu", + "New Recovery key password" : "Nové heslo klíče pro obnovu", + "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu", + "Change Password" : "Změnit heslo", + "Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", + "Set your old private key password to your current log-in password:" : "Změňte vaše staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete vaše původní heslo, můžete požádat správce o obnovu vašich souborů.", + "Old log-in password" : "Původní přihlašovací heslo", + "Current log-in password" : "Aktuální přihlašovací heslo", + "Update Private Key Password" : "Změnit heslo soukromého klíče", + "Enable password recovery:" : "Povolit obnovu hesla:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php deleted file mode 100644 index 0b3e1c48bee3b885b206e846d643779841b68ff5..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/cs_CZ.php +++ /dev/null @@ -1,44 +0,0 @@ - "Záchranný klíč byl úspěšně povolen", -"Could not enable recovery key. Please check your recovery key password!" => "Nepodařilo se povolit záchranný klíč. Zkontrolujte prosím vaše heslo záchranného klíče!", -"Recovery key successfully disabled" => "Záchranný klíč byl úspěšně zakázán", -"Could not disable recovery key. Please check your recovery key password!" => "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo vašeho záchranného klíče!", -"Password successfully changed." => "Heslo bylo úspěšně změněno.", -"Could not change the password. Maybe the old password was not correct." => "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.", -"Private key password successfully updated." => "Heslo soukromého klíče úspěšně aktualizováno.", -"Could not update the private key password. Maybe the old password was not correct." => "Nelze aktualizovat heslo soukromého klíče. Možná nebylo staré heslo správně.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplikace pro šifrování není inicializována! Je možné, že aplikace byla znovu aktivována během vašeho přihlášení. Zkuste se prosím odhlásit a znovu přihlásit pro provedení inicializace šifrovací aplikace.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno vně systému %s (např. ve vašem firemním adresáři). Heslo vašeho soukromého klíče můžete změnit ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", -"Unknown error. Please check your system settings or contact your administrator" => "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.", -"Missing requirements." => "Nesplněné závislosti.", -"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." => "Ujistěte se prosím, že máte nainstalované PHP 5.3.3 nebo novější a že máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Prozatím byla aplikace pro šifrování vypnuta.", -"Following users are not set up for encryption:" => "Následující uživatelé nemají nastavené šifrování:", -"Initial encryption started... This can take some time. Please wait." => "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.", -"Initial encryption running... Please try again later." => "Probíhá počáteční šifrování... Zkuste to prosím znovu později.", -"Go directly to your %spersonal settings%s." => "Přejít přímo do svého %sosobního nastavení%s.", -"Encryption" => "Šifrování", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", -"Enable recovery key (allow to recover users files in case of password loss):" => "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)", -"Recovery key password" => "Heslo klíče pro obnovu", -"Repeat Recovery key password" => "Zopakujte heslo klíče pro obnovu", -"Enabled" => "Povoleno", -"Disabled" => "Zakázáno", -"Change recovery key password:" => "Změna hesla klíče pro obnovu:", -"Old Recovery key password" => "Původní heslo klíče pro obnovu", -"New Recovery key password" => "Nové heslo klíče pro obnovu", -"Repeat New Recovery key password" => "Zopakujte nové heslo klíče pro obnovu", -"Change Password" => "Změnit heslo", -"Your private key password no longer matches your log-in password." => "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", -"Set your old private key password to your current log-in password:" => "Změňte vaše staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Pokud si nepamatujete vaše původní heslo, můžete požádat správce o obnovu vašich souborů.", -"Old log-in password" => "Původní přihlašovací heslo", -"Current log-in password" => "Aktuální přihlašovací heslo", -"Update Private Key Password" => "Změnit heslo soukromého klíče", -"Enable password recovery:" => "Povolit obnovu hesla:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo", -"File recovery settings updated" => "Možnosti záchrany souborů aktualizovány", -"Could not update file recovery" => "Nelze nastavit záchranu souborů" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_encryption/l10n/cy_GB.js b/apps/files_encryption/l10n/cy_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..03b6d253b385059c83da9e0f63af592ffeb61c05 --- /dev/null +++ b/apps/files_encryption/l10n/cy_GB.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Encryption" : "Amgryptiad" +}, +"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/files_encryption/l10n/cy_GB.json b/apps/files_encryption/l10n/cy_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..ed3f6b2fb92dbc330a3b2ea8577d89ce3b0a6ff1 --- /dev/null +++ b/apps/files_encryption/l10n/cy_GB.json @@ -0,0 +1,4 @@ +{ "translations": { + "Encryption" : "Amgryptiad" +},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/cy_GB.php b/apps/files_encryption/l10n/cy_GB.php deleted file mode 100644 index 6d3b898d002472e6ecf457c7672d52d273086107..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/cy_GB.php +++ /dev/null @@ -1,5 +0,0 @@ - "Amgryptiad" -); -$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"; diff --git a/apps/files_encryption/l10n/da.js b/apps/files_encryption/l10n/da.js new file mode 100644 index 0000000000000000000000000000000000000000..95e3a115cd7b510d10ceb207d767717d024acba0 --- /dev/null +++ b/apps/files_encryption/l10n/da.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Ukendt fejl", + "Missing recovery key password" : "Der mangler kodeord for gendannelsesnøgle", + "Please repeat the recovery key password" : "Gentag venligst kodeordet for gendannelsesnøglen", + "Repeated recovery key password does not match the provided recovery key password" : "Det gentagne kodeord for gendannelsesnøglen stemmer ikke med det angivne kodeord for gendannelsesnøglen", + "Recovery key successfully enabled" : "Gendannelsesnøgle aktiveret med succes", + "Could not disable recovery key. Please check your recovery key password!" : "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!", + "Recovery key successfully disabled" : "Gendannelsesnøgle deaktiveret succesfuldt", + "Please provide the old recovery password" : "Angiv venligst det gamle kodeord for gendannelsesnøglen", + "Please provide a new recovery password" : "Angiv venligst et nyt kodeord til gendannelse", + "Please repeat the new recovery password" : "Gentag venligst det nye kodeord til gendannelse", + "Password successfully changed." : "Kodeordet blev ændret succesfuldt", + "Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.", + "Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.", + "The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.", + "The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.", + "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.", + "File recovery settings updated" : "Filgendannelsesindstillinger opdateret", + "Could not update file recovery" : "Kunne ikke opdatere filgendannelse", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.", + "Unknown error. Please check your system settings or contact your administrator" : "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator", + "Missing requirements." : "Manglende betingelser.", + "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." : "Sørg for at PHP 5.3.3 eller nyere er installeret og at OpenSSL sammen med PHP-udvidelsen er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.", + "Following users are not set up for encryption:" : "Følgende brugere er ikke sat op til kryptering:", + "Initial encryption started... This can take some time. Please wait." : "Førstegangskrypteringen er påbegyndt... Dette kan tage nogen tid. Vent venligst.", + "Initial encryption running... Please try again later." : "Kryptering foretages... Prøv venligst igen senere.", + "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige indstillinger%s.", + "Encryption" : "Kryptering", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):", + "Recovery key password" : "Gendannelsesnøgle kodeord", + "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", + "Enabled" : "Aktiveret", + "Disabled" : "Deaktiveret", + "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", + "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord", + "New Recovery key password" : "Ny Gendannelsesnøgle kodeord", + "Repeat New Recovery key password" : "Gentag dannelse af ny gendannaleses nøglekode", + "Change Password" : "Skift Kodeord", + "Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", + "Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", + " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", + "Old log-in password" : "Gammelt login kodeord", + "Current log-in password" : "Nuvrende login kodeord", + "Update Private Key Password" : "Opdater Privat Nøgle Kodeord", + "Enable password recovery:" : "Aktiver kodeord gendannelse:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/da.json b/apps/files_encryption/l10n/da.json new file mode 100644 index 0000000000000000000000000000000000000000..141d6998d47550d60cfb3754fd463362c2e3d6f7 --- /dev/null +++ b/apps/files_encryption/l10n/da.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Ukendt fejl", + "Missing recovery key password" : "Der mangler kodeord for gendannelsesnøgle", + "Please repeat the recovery key password" : "Gentag venligst kodeordet for gendannelsesnøglen", + "Repeated recovery key password does not match the provided recovery key password" : "Det gentagne kodeord for gendannelsesnøglen stemmer ikke med det angivne kodeord for gendannelsesnøglen", + "Recovery key successfully enabled" : "Gendannelsesnøgle aktiveret med succes", + "Could not disable recovery key. Please check your recovery key password!" : "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!", + "Recovery key successfully disabled" : "Gendannelsesnøgle deaktiveret succesfuldt", + "Please provide the old recovery password" : "Angiv venligst det gamle kodeord for gendannelsesnøglen", + "Please provide a new recovery password" : "Angiv venligst et nyt kodeord til gendannelse", + "Please repeat the new recovery password" : "Gentag venligst det nye kodeord til gendannelse", + "Password successfully changed." : "Kodeordet blev ændret succesfuldt", + "Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.", + "Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.", + "The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.", + "The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.", + "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.", + "File recovery settings updated" : "Filgendannelsesindstillinger opdateret", + "Could not update file recovery" : "Kunne ikke opdatere filgendannelse", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.", + "Unknown error. Please check your system settings or contact your administrator" : "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator", + "Missing requirements." : "Manglende betingelser.", + "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." : "Sørg for at PHP 5.3.3 eller nyere er installeret og at OpenSSL sammen med PHP-udvidelsen er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.", + "Following users are not set up for encryption:" : "Følgende brugere er ikke sat op til kryptering:", + "Initial encryption started... This can take some time. Please wait." : "Førstegangskrypteringen er påbegyndt... Dette kan tage nogen tid. Vent venligst.", + "Initial encryption running... Please try again later." : "Kryptering foretages... Prøv venligst igen senere.", + "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige indstillinger%s.", + "Encryption" : "Kryptering", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):", + "Recovery key password" : "Gendannelsesnøgle kodeord", + "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", + "Enabled" : "Aktiveret", + "Disabled" : "Deaktiveret", + "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", + "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord", + "New Recovery key password" : "Ny Gendannelsesnøgle kodeord", + "Repeat New Recovery key password" : "Gentag dannelse af ny gendannaleses nøglekode", + "Change Password" : "Skift Kodeord", + "Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", + "Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", + " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", + "Old log-in password" : "Gammelt login kodeord", + "Current log-in password" : "Nuvrende login kodeord", + "Update Private Key Password" : "Opdater Privat Nøgle Kodeord", + "Enable password recovery:" : "Aktiver kodeord gendannelse:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/da.php b/apps/files_encryption/l10n/da.php deleted file mode 100644 index dc2cf9e24759bbdfba9c55ccdf7f7bd118ac3a5b..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/da.php +++ /dev/null @@ -1,44 +0,0 @@ - "Gendannelsesnøgle aktiveret med succes", -"Could not enable recovery key. Please check your recovery key password!" => "Kunne ikke aktivere gendannelsesnøgle. Kontroller venligst dit gendannelsesnøgle kodeord!", -"Recovery key successfully disabled" => "Gendannelsesnøgle deaktiveret succesfuldt", -"Could not disable recovery key. Please check your recovery key password!" => "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!", -"Password successfully changed." => "Kodeordet blev ændret succesfuldt", -"Could not change the password. Maybe the old password was not correct." => "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.", -"Private key password successfully updated." => "Privat nøgle kodeord succesfuldt opdateret.", -"Could not update the private key password. Maybe the old password was not correct." => "Kunne ikke opdatere det private nøgle kodeord-. Måske var det gamle kodeord forkert.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.", -"Unknown error. Please check your system settings or contact your administrator" => "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator", -"Missing requirements." => "Manglende betingelser.", -"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." => "Sørg for at PHP 5.3.3 eller nyere er installeret og at OpenSSL sammen med PHP-udvidelsen er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.", -"Following users are not set up for encryption:" => "Følgende brugere er ikke sat op til kryptering:", -"Initial encryption started... This can take some time. Please wait." => "Førstegangskryptering er påbegyndt... Dette kan tage nogen tid. Vent venligst.", -"Initial encryption running... Please try again later." => "Kryptering foretages... Prøv venligst igen senere.", -"Go directly to your %spersonal settings%s." => "Gå direkte til dine %spersonlige indstillinger%s.", -"Encryption" => "Kryptering", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krypteringsprogrammet er aktiveret, men din nøgle er ikke igangsat. Log venligst ud og ind igen.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):", -"Recovery key password" => "Gendannelsesnøgle kodeord", -"Repeat Recovery key password" => "Gentag gendannelse af nøglekoden", -"Enabled" => "Aktiveret", -"Disabled" => "Deaktiveret", -"Change recovery key password:" => "Skift gendannelsesnøgle kodeord:", -"Old Recovery key password" => "Gammel Gendannelsesnøgle kodeord", -"New Recovery key password" => "Ny Gendannelsesnøgle kodeord", -"Repeat New Recovery key password" => "Gentag dannelse af ny gendannaleses nøglekode", -"Change Password" => "Skift Kodeord", -"Your private key password no longer matches your log-in password." => "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", -"Set your old private key password to your current log-in password:" => "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", -" If you don't remember your old password you can ask your administrator to recover your files." => "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", -"Old log-in password" => "Gammelt login kodeord", -"Current log-in password" => "Nuvrende login kodeord", -"Update Private Key Password" => "Opdater Privat Nøgle Kodeord", -"Enable password recovery:" => "Aktiver kodeord gendannelse:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord", -"File recovery settings updated" => "Filgendannelsesindstillinger opdateret", -"Could not update file recovery" => "Kunne ikke opdatere filgendannelse" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/de.js b/apps/files_encryption/l10n/de.js new file mode 100644 index 0000000000000000000000000000000000000000..e02b6cd473c5f3ebe21cb6c552534d7a803f899f --- /dev/null +++ b/apps/files_encryption/l10n/de.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Unbekannter Fehler", + "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", + "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", + "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", + "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", + "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!", + "Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.", + "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", + "Please provide a new recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", + "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", + "Password successfully changed." : "Dein Passwort wurde geändert.", + "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.", + "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", + "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuche es noch einmal.", + "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuche es noch einmal.", + "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert", + "File recovery settings updated" : "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert", + "Could not update file recovery" : "Dateiwiederherstellung konnte nicht aktualisiert werden", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", + "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator", + "Missing requirements." : "Fehlende Vorraussetzungen", + "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." : "Bitte stelle sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", + "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", + "Initial encryption started... This can take some time. Please wait." : "Initialverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.", + "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.", + "Go directly to your %spersonal settings%s." : "Direkt zu Deinen %spersonal settings%s wechseln.", + "Encryption" : "Verschlüsselung", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):", + "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", + "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", + "Enabled" : "Aktiviert", + "Disabled" : "Deaktiviert", + "Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:", + "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort", + "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort", + "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", + "Change Password" : "Passwort ändern", + "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort darf nicht länger mit dem Anmeldepasswort übereinstimmen.", + "Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", + "Old log-in password" : "Altes Login Passwort", + "Current log-in password" : "Aktuelles Passwort", + "Update Private Key Password" : "Passwort für den privaten Schlüssel aktualisieren", + "Enable password recovery:" : "Passwortwiederherstellung aktivieren:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/de.json b/apps/files_encryption/l10n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..c3077fc61a93535203b1351b151c723d9954b0c0 --- /dev/null +++ b/apps/files_encryption/l10n/de.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Unbekannter Fehler", + "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", + "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", + "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", + "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", + "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!", + "Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.", + "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", + "Please provide a new recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", + "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", + "Password successfully changed." : "Dein Passwort wurde geändert.", + "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.", + "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", + "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuche es noch einmal.", + "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuche es noch einmal.", + "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert", + "File recovery settings updated" : "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert", + "Could not update file recovery" : "Dateiwiederherstellung konnte nicht aktualisiert werden", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", + "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator", + "Missing requirements." : "Fehlende Vorraussetzungen", + "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." : "Bitte stelle sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", + "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", + "Initial encryption started... This can take some time. Please wait." : "Initialverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.", + "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.", + "Go directly to your %spersonal settings%s." : "Direkt zu Deinen %spersonal settings%s wechseln.", + "Encryption" : "Verschlüsselung", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):", + "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", + "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", + "Enabled" : "Aktiviert", + "Disabled" : "Deaktiviert", + "Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:", + "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort", + "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort", + "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", + "Change Password" : "Passwort ändern", + "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort darf nicht länger mit dem Anmeldepasswort übereinstimmen.", + "Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", + "Old log-in password" : "Altes Login Passwort", + "Current log-in password" : "Aktuelles Passwort", + "Update Private Key Password" : "Passwort für den privaten Schlüssel aktualisieren", + "Enable password recovery:" : "Passwortwiederherstellung aktivieren:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php deleted file mode 100644 index 392a66393a9009373b128e7c16ef56f6261c4eef..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/de.php +++ /dev/null @@ -1,44 +0,0 @@ - "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", -"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfe Dein Wiederherstellungspasswort!", -"Recovery key successfully disabled" => "Wiederherstellungsschlüssel deaktiviert.", -"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!", -"Password successfully changed." => "Dein Passwort wurde geändert.", -"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.", -"Private key password successfully updated." => "Passwort des privaten Schlüssels erfolgreich aktualisiert", -"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Eventuell war das alte Passwort falsch.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", -"Unknown error. Please check your system settings or contact your administrator" => "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator", -"Missing requirements." => "Fehlende Vorraussetzungen", -"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." => "Bitte stelle sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", -"Following users are not set up for encryption:" => "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", -"Initial encryption started... This can take some time. Please wait." => "Initialverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.", -"Initial encryption running... Please try again later." => "Initiale Verschlüsselung läuft... Bitte versuche es später wieder.", -"Go directly to your %spersonal settings%s." => "Wechsle direkt zu Deinen %spersonal settings%s.", -"Encryption" => "Verschlüsselung", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):", -"Recovery key password" => "Wiederherstellungsschlüssel-Passwort", -"Repeat Recovery key password" => "Schlüssel-Passwort zur Wiederherstellung wiederholen", -"Enabled" => "Aktiviert", -"Disabled" => "Deaktiviert", -"Change recovery key password:" => "Wiederherstellungsschlüssel-Passwort ändern:", -"Old Recovery key password" => "Altes Wiederherstellungsschlüssel-Passwort", -"New Recovery key password" => "Neues Wiederherstellungsschlüssel-Passwort", -"Repeat New Recovery key password" => "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", -"Change Password" => "Passwort ändern", -"Your private key password no longer matches your log-in password." => "Das Privatschlüsselpasswort darf nicht länger mit den Login-Passwort übereinstimmen.", -"Set your old private key password to your current log-in password:" => "Setze Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Login-Passwort:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", -"Old log-in password" => "Altes Login Passwort", -"Current log-in password" => "Aktuelles Passwort", -"Update Private Key Password" => "Passwort für den privaten Schlüssel aktualisieren", -"Enable password recovery:" => "Passwortwiederherstellung aktivieren:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst", -"File recovery settings updated" => "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert", -"Could not update file recovery" => "Dateiwiederherstellung konnte nicht aktualisiert werden" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/de_CH.js b/apps/files_encryption/l10n/de_CH.js new file mode 100644 index 0000000000000000000000000000000000000000..1f5a01e679866b862156ecbcd22069ec51b1bce3 --- /dev/null +++ b/apps/files_encryption/l10n/de_CH.js @@ -0,0 +1,33 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Unbekannter Fehler", + "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", + "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", + "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", + "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", + "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", + "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", + "Could not update the private key password. Maybe the old password was not correct." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.", + "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", + "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", + "Missing requirements." : "Fehlende Voraussetzungen", + "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." : "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", + "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", + "Encryption" : "Verschlüsselung", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", + "Recovery key password" : "Wiederherstellungschlüsselpasswort", + "Enabled" : "Aktiviert", + "Disabled" : "Deaktiviert", + "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", + "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", + "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", + "Change Password" : "Passwort ändern", + " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", + "Old log-in password" : "Altes Login-Passwort", + "Current log-in password" : "Momentanes Login-Passwort", + "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", + "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/de_CH.json b/apps/files_encryption/l10n/de_CH.json new file mode 100644 index 0000000000000000000000000000000000000000..244d0946bfe5928d8ba5e63f21cd0efaedce458f --- /dev/null +++ b/apps/files_encryption/l10n/de_CH.json @@ -0,0 +1,31 @@ +{ "translations": { + "Unknown error" : "Unbekannter Fehler", + "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", + "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", + "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", + "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", + "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", + "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", + "Could not update the private key password. Maybe the old password was not correct." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.", + "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", + "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", + "Missing requirements." : "Fehlende Voraussetzungen", + "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." : "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", + "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", + "Encryption" : "Verschlüsselung", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", + "Recovery key password" : "Wiederherstellungschlüsselpasswort", + "Enabled" : "Aktiviert", + "Disabled" : "Deaktiviert", + "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", + "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", + "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", + "Change Password" : "Passwort ändern", + " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", + "Old log-in password" : "Altes Login-Passwort", + "Current log-in password" : "Momentanes Login-Passwort", + "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", + "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/de_CH.php b/apps/files_encryption/l10n/de_CH.php deleted file mode 100644 index 67abceee26780591fbbc12198a8a083c270713c6..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/de_CH.php +++ /dev/null @@ -1,32 +0,0 @@ - "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", -"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", -"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", -"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", -"Password successfully changed." => "Das Passwort wurde erfolgreich geändert.", -"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", -"Private key password successfully updated." => "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", -"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.", -"Missing requirements." => "Fehlende Voraussetzungen", -"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." => "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", -"Following users are not set up for encryption:" => "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", -"Encryption" => "Verschlüsselung", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", -"Recovery key password" => "Wiederherstellungschlüsselpasswort", -"Enabled" => "Aktiviert", -"Disabled" => "Deaktiviert", -"Change recovery key password:" => "Wiederherstellungsschlüsselpasswort ändern", -"Old Recovery key password" => "Altes Wiederherstellungsschlüsselpasswort", -"New Recovery key password" => "Neues Wiederherstellungsschlüsselpasswort ", -"Change Password" => "Passwort ändern", -" If you don't remember your old password you can ask your administrator to recover your files." => "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", -"Old log-in password" => "Altes Login-Passwort", -"Current log-in password" => "Momentanes Login-Passwort", -"Update Private Key Password" => "Das Passwort des privaten Schlüssels aktualisieren", -"Enable password recovery:" => "Die Passwort-Wiederherstellung aktivieren:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.", -"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", -"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/de_DE.js b/apps/files_encryption/l10n/de_DE.js new file mode 100644 index 0000000000000000000000000000000000000000..84dd13df2a9b508119c37f9ce56cffbb908c9a98 --- /dev/null +++ b/apps/files_encryption/l10n/de_DE.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Unbekannter Fehler", + "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", + "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", + "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", + "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", + "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", + "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", + "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", + "Please provide a new recovery password" : "Bitte das neue Passwort zur Wiederherstellung eingeben", + "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", + "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", + "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", + "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", + "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuchen Sie es noch einmal.", + "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuchen Sie es noch einmal.", + "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", + "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", + "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuchen Sie sich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ihr privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Ihr Passwort geändert (z.B. in Ihrem gemeinsamen Verzeichnis). Sie können das Passwort Ihres privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Ihre Dateien zu gelangen.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.", + "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator", + "Missing requirements." : "Fehlende Voraussetzungen", + "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." : "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", + "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", + "Initial encryption started... This can take some time. Please wait." : "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.", + "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.", + "Go directly to your %spersonal settings%s." : "Wechseln Sie direkt zu Ihren %spersonal settings%s.", + "Encryption" : "Verschlüsselung", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", + "Recovery key password" : "Wiederherstellungschlüsselpasswort", + "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", + "Enabled" : "Aktiviert", + "Disabled" : "Deaktiviert", + "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", + "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", + "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", + "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen", + "Change Password" : "Passwort ändern", + "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.", + "Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", + "Old log-in password" : "Altes Anmeldepasswort", + "Current log-in password" : "Aktuelles Anmeldepasswort", + "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", + "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/de_DE.json b/apps/files_encryption/l10n/de_DE.json new file mode 100644 index 0000000000000000000000000000000000000000..0e9ee5084c4a7acd8a80bc1c0c122b8058905776 --- /dev/null +++ b/apps/files_encryption/l10n/de_DE.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Unbekannter Fehler", + "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", + "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", + "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", + "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", + "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", + "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", + "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", + "Please provide a new recovery password" : "Bitte das neue Passwort zur Wiederherstellung eingeben", + "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", + "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", + "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", + "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", + "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuchen Sie es noch einmal.", + "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuchen Sie es noch einmal.", + "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", + "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", + "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuchen Sie sich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ihr privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Ihr Passwort geändert (z.B. in Ihrem gemeinsamen Verzeichnis). Sie können das Passwort Ihres privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Ihre Dateien zu gelangen.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.", + "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator", + "Missing requirements." : "Fehlende Voraussetzungen", + "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." : "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", + "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", + "Initial encryption started... This can take some time. Please wait." : "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.", + "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.", + "Go directly to your %spersonal settings%s." : "Wechseln Sie direkt zu Ihren %spersonal settings%s.", + "Encryption" : "Verschlüsselung", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", + "Recovery key password" : "Wiederherstellungschlüsselpasswort", + "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", + "Enabled" : "Aktiviert", + "Disabled" : "Deaktiviert", + "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", + "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", + "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", + "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen", + "Change Password" : "Passwort ändern", + "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.", + "Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", + "Old log-in password" : "Altes Anmeldepasswort", + "Current log-in password" : "Aktuelles Anmeldepasswort", + "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", + "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php deleted file mode 100644 index 85470cd8abf0dc496d64f2aae450becd4213ca9e..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/de_DE.php +++ /dev/null @@ -1,44 +0,0 @@ - "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", -"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", -"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", -"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", -"Password successfully changed." => "Das Passwort wurde erfolgreich geändert.", -"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", -"Private key password successfully updated." => "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", -"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuchen Sie sich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Ihr privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Ihr Passwort geändert (z.B. in Ihrem gemeinsamen Verzeichnis). Sie können das Passwort Ihres privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Ihre Dateien zu gelangen.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Datei-Besitzer, dass er die Datei nochmals mit Ihnen teilt.", -"Unknown error. Please check your system settings or contact your administrator" => "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator", -"Missing requirements." => "Fehlende Voraussetzungen", -"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." => "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", -"Following users are not set up for encryption:" => "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", -"Initial encryption started... This can take some time. Please wait." => "Anfangsverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.", -"Initial encryption running... Please try again later." => "Anfangsverschlüsselung läuft... Bitte versuchen Sie es später wieder.", -"Go directly to your %spersonal settings%s." => "Wechseln Sie direkt zu Ihren %spersonal settings%s.", -"Encryption" => "Verschlüsselung", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden sich nochmals ab und wieder an.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", -"Recovery key password" => "Wiederherstellungschlüsselpasswort", -"Repeat Recovery key password" => "Schlüssel-Passwort zur Wiederherstellung wiederholen", -"Enabled" => "Aktiviert", -"Disabled" => "Deaktiviert", -"Change recovery key password:" => "Wiederherstellungsschlüsselpasswort ändern", -"Old Recovery key password" => "Altes Wiederherstellungsschlüsselpasswort", -"New Recovery key password" => "Neues Wiederherstellungsschlüsselpasswort ", -"Repeat New Recovery key password" => "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", -"Change Password" => "Passwort ändern", -"Your private key password no longer matches your log-in password." => "Das Privatschlüsselpasswort darf nicht länger mit den Login-Passwort übereinstimmen.", -"Set your old private key password to your current log-in password:" => "Setzen Sie Ihr altes Privatschlüsselpasswort auf Ihr aktuelles LogIn-Passwort:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", -"Old log-in password" => "Altes Login-Passwort", -"Current log-in password" => "Momentanes Login-Passwort", -"Update Private Key Password" => "Das Passwort des privaten Schlüssels aktualisieren", -"Enable password recovery:" => "Die Passwort-Wiederherstellung aktivieren:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.", -"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", -"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/el.js b/apps/files_encryption/l10n/el.js new file mode 100644 index 0000000000000000000000000000000000000000..03a94c2a85e312763f3dd474bce8c542acb76d41 --- /dev/null +++ b/apps/files_encryption/l10n/el.js @@ -0,0 +1,51 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Άγνωστο σφάλμα", + "Missing recovery key password" : "Λείπει το κλειδί επαναφοράς κωδικού", + "Please repeat the recovery key password" : "Παρακαλώ επαναλάβετε το κλειδί επαναφοράς κωδικού", + "Repeated recovery key password does not match the provided recovery key password" : "Η επανάληψη του κλειδιού επαναφοράς κωδικού δεν ταιριάζει με το δοσμένο κλειδί επαναφοράς κωδικού", + "Recovery key successfully enabled" : "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης", + "Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", + "Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", + "Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς", + "Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς", + "Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς", + "Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.", + "Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", + "The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", + "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", + "File recovery settings updated" : "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν", + "Could not update file recovery" : "Αποτυχία ενημέρωσης ανάκτησης αρχείων", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", + "Unknown error. Please check your system settings or contact your administrator" : "Άγνωστο σφάλμα. Παρακαλώ ελέγξτε τις ρυθμίσεις του συστήματό σας ή επικοινωνήστε με τον διαχειριστή συστημάτων σας", + "Missing requirements." : "Προαπαιτούμενα που απουσιάζουν.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Παρακαλώ επιβεβαιώστε ότι η PHP 5.3.3 ή νεότερη είναι εγκατεστημένη και ότι το OpenSSL μαζί με το PHP extension είναι ενεργοποιήμένο και έχει ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.", + "Following users are not set up for encryption:" : "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:", + "Initial encryption started... This can take some time. Please wait." : "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε.", + "Initial encryption running... Please try again later." : "Εκτέλεση αρχικής κρυπτογράφησης... Παρακαλώ προσπαθήστε αργότερα.", + "Go directly to your %spersonal settings%s." : "Πηγαίνετε κατ'ευθείαν στις %sπροσωπικές ρυθμίσεις%s σας.", + "Encryption" : "Κρυπτογράφηση", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):", + "Recovery key password" : "Επαναφορά κωδικού κλειδιού", + "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού", + "Enabled" : "Ενεργοποιημένο", + "Disabled" : "Απενεργοποιημένο", + "Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:", + "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού", + "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού", + "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", + "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", + "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", + "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", + "Old log-in password" : "Παλαιό συνθηματικό εισόδου", + "Current log-in password" : "Τρέχον συνθηματικό πρόσβασης", + "Update Private Key Password" : "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης", + "Enable password recovery:" : "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/el.json b/apps/files_encryption/l10n/el.json new file mode 100644 index 0000000000000000000000000000000000000000..13ed5ab7755cf3fdb858487834300fc81d95802a --- /dev/null +++ b/apps/files_encryption/l10n/el.json @@ -0,0 +1,49 @@ +{ "translations": { + "Unknown error" : "Άγνωστο σφάλμα", + "Missing recovery key password" : "Λείπει το κλειδί επαναφοράς κωδικού", + "Please repeat the recovery key password" : "Παρακαλώ επαναλάβετε το κλειδί επαναφοράς κωδικού", + "Repeated recovery key password does not match the provided recovery key password" : "Η επανάληψη του κλειδιού επαναφοράς κωδικού δεν ταιριάζει με το δοσμένο κλειδί επαναφοράς κωδικού", + "Recovery key successfully enabled" : "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης", + "Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", + "Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", + "Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς", + "Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς", + "Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς", + "Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.", + "Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", + "The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", + "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", + "File recovery settings updated" : "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν", + "Could not update file recovery" : "Αποτυχία ενημέρωσης ανάκτησης αρχείων", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", + "Unknown error. Please check your system settings or contact your administrator" : "Άγνωστο σφάλμα. Παρακαλώ ελέγξτε τις ρυθμίσεις του συστήματό σας ή επικοινωνήστε με τον διαχειριστή συστημάτων σας", + "Missing requirements." : "Προαπαιτούμενα που απουσιάζουν.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Παρακαλώ επιβεβαιώστε ότι η PHP 5.3.3 ή νεότερη είναι εγκατεστημένη και ότι το OpenSSL μαζί με το PHP extension είναι ενεργοποιήμένο και έχει ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.", + "Following users are not set up for encryption:" : "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:", + "Initial encryption started... This can take some time. Please wait." : "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε.", + "Initial encryption running... Please try again later." : "Εκτέλεση αρχικής κρυπτογράφησης... Παρακαλώ προσπαθήστε αργότερα.", + "Go directly to your %spersonal settings%s." : "Πηγαίνετε κατ'ευθείαν στις %sπροσωπικές ρυθμίσεις%s σας.", + "Encryption" : "Κρυπτογράφηση", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):", + "Recovery key password" : "Επαναφορά κωδικού κλειδιού", + "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού", + "Enabled" : "Ενεργοποιημένο", + "Disabled" : "Απενεργοποιημένο", + "Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:", + "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού", + "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού", + "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", + "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", + "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", + "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", + "Old log-in password" : "Παλαιό συνθηματικό εισόδου", + "Current log-in password" : "Τρέχον συνθηματικό πρόσβασης", + "Update Private Key Password" : "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης", + "Enable password recovery:" : "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php deleted file mode 100644 index c208b25ebad8111d5adb79be7d456267838f1e21..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/el.php +++ /dev/null @@ -1,44 +0,0 @@ - "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης", -"Could not enable recovery key. Please check your recovery key password!" => "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", -"Recovery key successfully disabled" => "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", -"Could not disable recovery key. Please check your recovery key password!" => "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", -"Password successfully changed." => "Ο κωδικός αλλάχτηκε επιτυχώς.", -"Could not change the password. Maybe the old password was not correct." => "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", -"Private key password successfully updated." => "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", -"Could not update the private key password. Maybe the old password was not correct." => "Αποτυχία ενημέρωσης του κωδικού για το προσωπικό κλειδί. Ενδεχομένως ο παλιός κωδικός δεν ήταν σωστός.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", -"Unknown error. Please check your system settings or contact your administrator" => "Άγνωστο σφάλμα. Παρακαλώ ελέγξτε τις ρυθμίσεις του συστήματό σας ή επικοινωνήστε με τον διαχειριστή συστημάτων σας", -"Missing requirements." => "Προαπαιτούμενα που απουσιάζουν.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Παρακαλώ επιβεβαιώστε ότι η PHP 5.3.3 ή νεότερη είναι εγκατεστημένη και ότι το OpenSSL μαζί με το PHP extension είναι ενεργοποιήμένο και έχει ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.", -"Following users are not set up for encryption:" => "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:", -"Initial encryption started... This can take some time. Please wait." => "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε.", -"Initial encryption running... Please try again later." => "Εκτέλεση αρχικής κρυπτογράφησης... Παρακαλώ προσπαθήστε αργότερα.", -"Go directly to your %spersonal settings%s." => "Πηγαίνετε κατ'ευθείαν στις %sπροσωπικές ρυθμίσεις%s σας.", -"Encryption" => "Κρυπτογράφηση", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):", -"Recovery key password" => "Επαναφορά κωδικού κλειδιού", -"Repeat Recovery key password" => "Επαναλάβετε το κλειδί επαναφοράς κωδικού", -"Enabled" => "Ενεργοποιημένο", -"Disabled" => "Απενεργοποιημένο", -"Change recovery key password:" => "Αλλαγή κλειδιού επαναφοράς κωδικού:", -"Old Recovery key password" => "Παλιό κλειδί επαναφοράς κωδικού", -"New Recovery key password" => "Νέο κλειδί επαναφοράς κωδικού", -"Repeat New Recovery key password" => "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", -"Change Password" => "Αλλαγή Κωδικού Πρόσβασης", -"Your private key password no longer matches your log-in password." => "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", -"Set your old private key password to your current log-in password:" => "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", -" If you don't remember your old password you can ask your administrator to recover your files." => "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", -"Old log-in password" => "Παλαιό συνθηματικό εισόδου", -"Current log-in password" => "Τρέχον συνθηματικό πρόσβασης", -"Update Private Key Password" => "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης", -"Enable password recovery:" => "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας", -"File recovery settings updated" => "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν", -"Could not update file recovery" => "Αποτυχία ενημέρωσης ανάκτησης αρχείων" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/en_GB.js b/apps/files_encryption/l10n/en_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..cae7d2c9679a6888411531e72105199b657a186c --- /dev/null +++ b/apps/files_encryption/l10n/en_GB.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Unknown error", + "Missing recovery key password" : "Missing recovery key password", + "Please repeat the recovery key password" : "Please repeat the recovery key password", + "Repeated recovery key password does not match the provided recovery key password" : "Repeated recovery key password does not match the provided recovery key password", + "Recovery key successfully enabled" : "Recovery key enabled successfully", + "Could not disable recovery key. Please check your recovery key password!" : "Could not disable recovery key. Please check your recovery key password!", + "Recovery key successfully disabled" : "Recovery key disabled successfully", + "Please provide the old recovery password" : "Please provide the old recovery password", + "Please provide a new recovery password" : "Please provide a new recovery password", + "Please repeat the new recovery password" : "Please repeat the new recovery password", + "Password successfully changed." : "Password changed successfully.", + "Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.", + "Could not update the private key password." : "Could not update the private key password.", + "The old password was not correct, please try again." : "The old password was not correct, please try again.", + "The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.", + "Private key password successfully updated." : "Private key password updated successfully.", + "File recovery settings updated" : "File recovery settings updated", + "Could not update file recovery" : "Could not update file recovery", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Encryption app not initialised! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialise the encryption app.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", + "Unknown error. Please check your system settings or contact your administrator" : "Unknown error. Please check your system settings or contact your administrator", + "Missing requirements." : "Missing requirements.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "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.", + "Following users are not set up for encryption:" : "Following users are not set up for encryption:", + "Initial encryption started... This can take some time. Please wait." : "Initial encryption started... This can take some time. Please wait.", + "Initial encryption running... Please try again later." : "Initial encryption running... Please try again later.", + "Go directly to your %spersonal settings%s." : "Go directly to your %spersonal settings%s.", + "Encryption" : "Encryption", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", + "Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):", + "Recovery key password" : "Recovery key password", + "Repeat Recovery key password" : "Repeat recovery key password", + "Enabled" : "Enabled", + "Disabled" : "Disabled", + "Change recovery key password:" : "Change recovery key password:", + "Old Recovery key password" : "Old recovery key password", + "New Recovery key password" : "New recovery key password", + "Repeat New Recovery key password" : "Repeat new recovery key password", + "Change Password" : "Change Password", + "Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.", + "Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:", + " If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.", + "Old log-in password" : "Old login password", + "Current log-in password" : "Current login password", + "Update Private Key Password" : "Update Private Key Password", + "Enable password recovery:" : "Enable password recovery:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/en_GB.json b/apps/files_encryption/l10n/en_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..d0b9ece178102038d153177b68da6b4b62a972f9 --- /dev/null +++ b/apps/files_encryption/l10n/en_GB.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Unknown error", + "Missing recovery key password" : "Missing recovery key password", + "Please repeat the recovery key password" : "Please repeat the recovery key password", + "Repeated recovery key password does not match the provided recovery key password" : "Repeated recovery key password does not match the provided recovery key password", + "Recovery key successfully enabled" : "Recovery key enabled successfully", + "Could not disable recovery key. Please check your recovery key password!" : "Could not disable recovery key. Please check your recovery key password!", + "Recovery key successfully disabled" : "Recovery key disabled successfully", + "Please provide the old recovery password" : "Please provide the old recovery password", + "Please provide a new recovery password" : "Please provide a new recovery password", + "Please repeat the new recovery password" : "Please repeat the new recovery password", + "Password successfully changed." : "Password changed successfully.", + "Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.", + "Could not update the private key password." : "Could not update the private key password.", + "The old password was not correct, please try again." : "The old password was not correct, please try again.", + "The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.", + "Private key password successfully updated." : "Private key password updated successfully.", + "File recovery settings updated" : "File recovery settings updated", + "Could not update file recovery" : "Could not update file recovery", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Encryption app not initialised! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialise the encryption app.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", + "Unknown error. Please check your system settings or contact your administrator" : "Unknown error. Please check your system settings or contact your administrator", + "Missing requirements." : "Missing requirements.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "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.", + "Following users are not set up for encryption:" : "Following users are not set up for encryption:", + "Initial encryption started... This can take some time. Please wait." : "Initial encryption started... This can take some time. Please wait.", + "Initial encryption running... Please try again later." : "Initial encryption running... Please try again later.", + "Go directly to your %spersonal settings%s." : "Go directly to your %spersonal settings%s.", + "Encryption" : "Encryption", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", + "Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):", + "Recovery key password" : "Recovery key password", + "Repeat Recovery key password" : "Repeat recovery key password", + "Enabled" : "Enabled", + "Disabled" : "Disabled", + "Change recovery key password:" : "Change recovery key password:", + "Old Recovery key password" : "Old recovery key password", + "New Recovery key password" : "New recovery key password", + "Repeat New Recovery key password" : "Repeat new recovery key password", + "Change Password" : "Change Password", + "Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.", + "Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:", + " If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.", + "Old log-in password" : "Old login password", + "Current log-in password" : "Current login password", + "Update Private Key Password" : "Update Private Key Password", + "Enable password recovery:" : "Enable password recovery:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/en_GB.php b/apps/files_encryption/l10n/en_GB.php deleted file mode 100644 index 21f69496183f2abdea41f55ac74dfa3c72e8274b..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/en_GB.php +++ /dev/null @@ -1,44 +0,0 @@ - "Recovery key enabled successfully", -"Could not enable recovery key. Please check your recovery key password!" => "Could not enable recovery key. Please check your recovery key password!", -"Recovery key successfully disabled" => "Recovery key disabled successfully", -"Could not disable recovery key. Please check your recovery key password!" => "Could not disable recovery key. Please check your recovery key password!", -"Password successfully changed." => "Password changed successfully.", -"Could not change the password. Maybe the old password was not correct." => "Could not change the password. Maybe the old password was incorrect.", -"Private key password successfully updated." => "Private key password updated successfully.", -"Could not update the private key password. Maybe the old password was not correct." => "Could not update the private key password. Maybe the old password was not correct.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Encryption app not initialised! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialise the encryption app.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", -"Unknown error. Please check your system settings or contact your administrator" => "Unknown error. Please check your system settings or contact your administrator", -"Missing requirements." => "Missing requirements.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "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.", -"Following users are not set up for encryption:" => "Following users are not set up for encryption:", -"Initial encryption started... This can take some time. Please wait." => "Initial encryption started... This can take some time. Please wait.", -"Initial encryption running... Please try again later." => "Initial encryption running... Please try again later.", -"Go directly to your %spersonal settings%s." => "Go directly to your %spersonal settings%s.", -"Encryption" => "Encryption", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", -"Enable recovery key (allow to recover users files in case of password loss):" => "Enable recovery key (allow to recover users files in case of password loss):", -"Recovery key password" => "Recovery key password", -"Repeat Recovery key password" => "Repeat recovery key password", -"Enabled" => "Enabled", -"Disabled" => "Disabled", -"Change recovery key password:" => "Change recovery key password:", -"Old Recovery key password" => "Old recovery key password", -"New Recovery key password" => "New recovery key password", -"Repeat New Recovery key password" => "Repeat new recovery key password", -"Change Password" => "Change Password", -"Your private key password no longer matches your log-in password." => "Your private key password no longer matches your log-in password.", -"Set your old private key password to your current log-in password:" => "Set your old private key password to your current log-in password:", -" If you don't remember your old password you can ask your administrator to recover your files." => " If you don't remember your old password you can ask your administrator to recover your files.", -"Old log-in password" => "Old login password", -"Current log-in password" => "Current login password", -"Update Private Key Password" => "Update Private Key Password", -"Enable password recovery:" => "Enable password recovery:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss", -"File recovery settings updated" => "File recovery settings updated", -"Could not update file recovery" => "Could not update file recovery" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/eo.js b/apps/files_encryption/l10n/eo.js new file mode 100644 index 0000000000000000000000000000000000000000..8b014abba044269d900a173a6e6cf05f7b2e30bd --- /dev/null +++ b/apps/files_encryption/l10n/eo.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Nekonata eraro", + "Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.", + "Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.", + "Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.", + "Missing requirements." : "Mankas neproj.", + "Encryption" : "Ĉifrado", + "Enabled" : "Kapabligita", + "Disabled" : "Malkapabligita", + "Change Password" : "Ŝarĝi pasvorton", + "Old log-in password" : "Malnova ensaluta pasvorto", + "Current log-in password" : "Nuna ensaluta pasvorto", + "Update Private Key Password" : "Ĝisdatigi la pasvorton de la malpublika klavo", + "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/eo.json b/apps/files_encryption/l10n/eo.json new file mode 100644 index 0000000000000000000000000000000000000000..221c29addecfbfca53f26d772a18502cc0b4b662 --- /dev/null +++ b/apps/files_encryption/l10n/eo.json @@ -0,0 +1,16 @@ +{ "translations": { + "Unknown error" : "Nekonata eraro", + "Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.", + "Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.", + "Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.", + "Missing requirements." : "Mankas neproj.", + "Encryption" : "Ĉifrado", + "Enabled" : "Kapabligita", + "Disabled" : "Malkapabligita", + "Change Password" : "Ŝarĝi pasvorton", + "Old log-in password" : "Malnova ensaluta pasvorto", + "Current log-in password" : "Nuna ensaluta pasvorto", + "Update Private Key Password" : "Ĝisdatigi la pasvorton de la malpublika klavo", + "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/eo.php b/apps/files_encryption/l10n/eo.php deleted file mode 100644 index 95ccafffe0690bfbe01331002b5dbf277147ab30..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/eo.php +++ /dev/null @@ -1,16 +0,0 @@ - "La pasvorto sukcese ŝanĝiĝis.", -"Could not change the password. Maybe the old password was not correct." => "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.", -"Private key password successfully updated." => "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.", -"Missing requirements." => "Mankas neproj.", -"Encryption" => "Ĉifrado", -"Enabled" => "Kapabligita", -"Disabled" => "Malkapabligita", -"Change Password" => "Ŝarĝi pasvorton", -"Old log-in password" => "Malnova ensaluta pasvorto", -"Current log-in password" => "Nuna ensaluta pasvorto", -"Update Private Key Password" => "Ĝisdatigi la pasvorton de la malpublika klavo", -"Enable password recovery:" => "Kapabligi restaŭron de pasvorto:" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/es.js b/apps/files_encryption/l10n/es.js new file mode 100644 index 0000000000000000000000000000000000000000..28f52666d45e430c21cbfa8c4eb0084c499bf9a5 --- /dev/null +++ b/apps/files_encryption/l10n/es.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Error desconocido", + "Missing recovery key password" : "Falta contraseña de recuperacion.", + "Please repeat the recovery key password" : "Por favor repita la contraseña de recuperacion", + "Repeated recovery key password does not match the provided recovery key password" : "la contraseña de recuperacion repetida no es igual a la contraseña de recuperacion", + "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", + "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Please provide the old recovery password" : "Por favor ingrese su antigua contraseña de recuperacion", + "Please provide a new recovery password" : "Por favor ingrese una nueva contraseña de recuperacion", + "Please repeat the new recovery password" : "Por favor repita su nueva contraseña de recuperacion", + "Password successfully changed." : "Su contraseña ha sido cambiada", + "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", + "Could not update the private key password." : "No se pudo actualizar la contraseña de clave privada.", + "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.", + "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.", + "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", + "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", + "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", + "Unknown error. Please check your system settings or contact your administrator" : "Error desconocido. Revise la configuración de su sistema o contacte a su administrador", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", + "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", + "Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada..... Esto puede tomar un tiempo. Por favor espere.", + "Initial encryption running... Please try again later." : "Cifrado inicial en curso... Inténtelo más tarde.", + "Go directly to your %spersonal settings%s." : "Ir directamente a %sOpciones%s.", + "Encryption" : "Cifrado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);", + "Recovery key password" : "Contraseña de clave de recuperación", + "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", + "Enabled" : "Habilitar", + "Disabled" : "Deshabilitado", + "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", + "Old Recovery key password" : "Antigua clave de recuperación", + "New Recovery key password" : "Nueva clave de recuperación", + "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", + "Change Password" : "Cambiar contraseña", + "Your private key password no longer matches your log-in password." : "Tu contraseña de clave privada ya no concuerda con tu contraseña de inicio.", + "Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", + "Old log-in password" : "Contraseña de acceso antigua", + "Current log-in password" : "Contraseña de acceso actual", + "Update Private Key Password" : "Actualizar Contraseña de Clave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es.json b/apps/files_encryption/l10n/es.json new file mode 100644 index 0000000000000000000000000000000000000000..8bed1ad1aba73c2a57b58c5d5fbac2d2a57bf7e0 --- /dev/null +++ b/apps/files_encryption/l10n/es.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Error desconocido", + "Missing recovery key password" : "Falta contraseña de recuperacion.", + "Please repeat the recovery key password" : "Por favor repita la contraseña de recuperacion", + "Repeated recovery key password does not match the provided recovery key password" : "la contraseña de recuperacion repetida no es igual a la contraseña de recuperacion", + "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", + "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Please provide the old recovery password" : "Por favor ingrese su antigua contraseña de recuperacion", + "Please provide a new recovery password" : "Por favor ingrese una nueva contraseña de recuperacion", + "Please repeat the new recovery password" : "Por favor repita su nueva contraseña de recuperacion", + "Password successfully changed." : "Su contraseña ha sido cambiada", + "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", + "Could not update the private key password." : "No se pudo actualizar la contraseña de clave privada.", + "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.", + "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.", + "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", + "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", + "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", + "Unknown error. Please check your system settings or contact your administrator" : "Error desconocido. Revise la configuración de su sistema o contacte a su administrador", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", + "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", + "Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada..... Esto puede tomar un tiempo. Por favor espere.", + "Initial encryption running... Please try again later." : "Cifrado inicial en curso... Inténtelo más tarde.", + "Go directly to your %spersonal settings%s." : "Ir directamente a %sOpciones%s.", + "Encryption" : "Cifrado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);", + "Recovery key password" : "Contraseña de clave de recuperación", + "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", + "Enabled" : "Habilitar", + "Disabled" : "Deshabilitado", + "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", + "Old Recovery key password" : "Antigua clave de recuperación", + "New Recovery key password" : "Nueva clave de recuperación", + "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", + "Change Password" : "Cambiar contraseña", + "Your private key password no longer matches your log-in password." : "Tu contraseña de clave privada ya no concuerda con tu contraseña de inicio.", + "Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", + "Old log-in password" : "Contraseña de acceso antigua", + "Current log-in password" : "Contraseña de acceso actual", + "Update Private Key Password" : "Actualizar Contraseña de Clave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php deleted file mode 100644 index 3c4f89a09ab288b74cbfcdf20974ae8e06cefeac..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/es.php +++ /dev/null @@ -1,44 +0,0 @@ - "Se ha habilitado la recuperación de archivos", -"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.", -"Recovery key successfully disabled" => "Clave de recuperación deshabilitada", -"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", -"Password successfully changed." => "Su contraseña ha sido cambiada", -"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", -"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.", -"Could not update the private key password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Puede que la contraseña antigua no sea correcta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", -"Unknown error. Please check your system settings or contact your administrator" => "Error desconocido. Revise la configuración de su sistema o contacte a su administrador", -"Missing requirements." => "Requisitos incompletos.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", -"Following users are not set up for encryption:" => "Los siguientes usuarios no han sido configurados para el cifrado:", -"Initial encryption started... This can take some time. Please wait." => "Encriptación iniciada..... Esto puede tomar un tiempo. Por favor espere.", -"Initial encryption running... Please try again later." => "Cifrado inicial en curso... Inténtelo más tarde.", -"Go directly to your %spersonal settings%s." => "Ir directamente a %sOpciones%s.", -"Encryption" => "Cifrado", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La app de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);", -"Recovery key password" => "Contraseña de clave de recuperación", -"Repeat Recovery key password" => "Repite la contraseña de clave de recuperación", -"Enabled" => "Habilitar", -"Disabled" => "Deshabilitado", -"Change recovery key password:" => "Cambiar la contraseña de la clave de recuperación", -"Old Recovery key password" => "Antigua clave de recuperación", -"New Recovery key password" => "Nueva clave de recuperación", -"Repeat New Recovery key password" => "Repetir la nueva clave de recuperación", -"Change Password" => "Cambiar contraseña", -"Your private key password no longer matches your log-in password." => "Tu contraseña de clave privada ya no concuerda con tu contraseña de inicio.", -"Set your old private key password to your current log-in password:" => "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", -"Old log-in password" => "Contraseña de acceso antigua", -"Current log-in password" => "Contraseña de acceso actual", -"Update Private Key Password" => "Actualizar Contraseña de Clave Privada", -"Enable password recovery:" => "Habilitar la recuperación de contraseña:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña", -"File recovery settings updated" => "Opciones de recuperación de archivos actualizada", -"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/es_AR.js b/apps/files_encryption/l10n/es_AR.js new file mode 100644 index 0000000000000000000000000000000000000000..bde0e9206892ea4fe03963247017e71272f5f836 --- /dev/null +++ b/apps/files_encryption/l10n/es_AR.js @@ -0,0 +1,40 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Error desconocido", + "Recovery key successfully enabled" : "Se habilitó la recuperación de archivos", + "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Password successfully changed." : "Tu contraseña fue cambiada", + "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.", + "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", + "File recovery settings updated" : "Las opciones de recuperación de archivos fueron actualizadas", + "Could not update file recovery" : "No fue posible actualizar la recuperación de archivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de encriptación no está inicializada! Es probable que la aplicación fue re-habilitada durante tu sesión. Intenta salir y iniciar sesión para volverla a iniciar.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Tu llave privada no es válida! Aparenta que tu clave fue cambiada fuera de %s (de tus directorios). Puedes actualizar la contraseña de tu clave privadaen las configuraciones personales para recobrar el acceso a tus archivos encriptados.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrese de que PHP 5.3.3 o una versión más reciente esté instalado y que OpenSSL junto con la extensión PHP esté habilitado y configurado apropiadamente. Por ahora, la aplicación de encriptación ha sido deshabilitada.", + "Following users are not set up for encryption:" : "Los siguientes usuarios no fueron configurados para encriptar:", + "Initial encryption started... This can take some time. Please wait." : "Encriptación inicial comenzada... Esto puede durar un tiempo. Por favor espere.", + "Initial encryption running... Please try again later." : "Encriptación inicial corriendo... Por favor intente mas tarde. ", + "Encryption" : "Encriptación", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):", + "Recovery key password" : "Contraseña de recuperación de clave", + "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación", + "Enabled" : "Habilitado", + "Disabled" : "Deshabilitado", + "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", + "Old Recovery key password" : "Contraseña antigua de recuperación de clave", + "New Recovery key password" : "Nueva contraseña de recuperación de clave", + "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación", + "Change Password" : "Cambiar contraseña", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", + "Old log-in password" : "Contraseña anterior", + "Current log-in password" : "Contraseña actual", + "Update Private Key Password" : "Actualizar contraseña de la clave privada", + "Enable password recovery:" : "Habilitar recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es_AR.json b/apps/files_encryption/l10n/es_AR.json new file mode 100644 index 0000000000000000000000000000000000000000..6251abd7ec63c919134d1255c55512b5d47b009c --- /dev/null +++ b/apps/files_encryption/l10n/es_AR.json @@ -0,0 +1,38 @@ +{ "translations": { + "Unknown error" : "Error desconocido", + "Recovery key successfully enabled" : "Se habilitó la recuperación de archivos", + "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Password successfully changed." : "Tu contraseña fue cambiada", + "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.", + "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", + "File recovery settings updated" : "Las opciones de recuperación de archivos fueron actualizadas", + "Could not update file recovery" : "No fue posible actualizar la recuperación de archivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de encriptación no está inicializada! Es probable que la aplicación fue re-habilitada durante tu sesión. Intenta salir y iniciar sesión para volverla a iniciar.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Tu llave privada no es válida! Aparenta que tu clave fue cambiada fuera de %s (de tus directorios). Puedes actualizar la contraseña de tu clave privadaen las configuraciones personales para recobrar el acceso a tus archivos encriptados.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrese de que PHP 5.3.3 o una versión más reciente esté instalado y que OpenSSL junto con la extensión PHP esté habilitado y configurado apropiadamente. Por ahora, la aplicación de encriptación ha sido deshabilitada.", + "Following users are not set up for encryption:" : "Los siguientes usuarios no fueron configurados para encriptar:", + "Initial encryption started... This can take some time. Please wait." : "Encriptación inicial comenzada... Esto puede durar un tiempo. Por favor espere.", + "Initial encryption running... Please try again later." : "Encriptación inicial corriendo... Por favor intente mas tarde. ", + "Encryption" : "Encriptación", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):", + "Recovery key password" : "Contraseña de recuperación de clave", + "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación", + "Enabled" : "Habilitado", + "Disabled" : "Deshabilitado", + "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", + "Old Recovery key password" : "Contraseña antigua de recuperación de clave", + "New Recovery key password" : "Nueva contraseña de recuperación de clave", + "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación", + "Change Password" : "Cambiar contraseña", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", + "Old log-in password" : "Contraseña anterior", + "Current log-in password" : "Contraseña actual", + "Update Private Key Password" : "Actualizar contraseña de la clave privada", + "Enable password recovery:" : "Habilitar recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es_AR.php b/apps/files_encryption/l10n/es_AR.php deleted file mode 100644 index b32a76e1b39a554540374ab0bf4b1abcd31d6296..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/es_AR.php +++ /dev/null @@ -1,40 +0,0 @@ - "Se habilitó la recuperación de archivos", -"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor, comprobá tu contraseña.", -"Recovery key successfully disabled" => "Clave de recuperación deshabilitada", -"Could not disable recovery key. Please check your recovery key password!" => "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.", -"Password successfully changed." => "Tu contraseña fue cambiada", -"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.", -"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.", -"Could not update the private key password. Maybe the old password was not correct." => "No fue posible actualizar la contraseña de clave privada. Tal vez la contraseña anterior no es correcta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de encriptación no está inicializada! Es probable que la aplicación fue re-habilitada durante tu sesión. Intenta salir y iniciar sesión para volverla a iniciar.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Tu llave privada no es válida! Aparenta que tu clave fue cambiada fuera de %s (de tus directorios). Puedes actualizar la contraseña de tu clave privadaen las configuraciones personales para recobrar el acceso a tus archivos encriptados.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", -"Missing requirements." => "Requisitos incompletos.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o una versión más reciente esté instalado y que OpenSSL junto con la extensión PHP esté habilitado y configurado apropiadamente. Por ahora, la aplicación de encriptación ha sido deshabilitada.", -"Following users are not set up for encryption:" => "Los siguientes usuarios no fueron configurados para encriptar:", -"Initial encryption started... This can take some time. Please wait." => "Encriptación inicial comenzada... Esto puede durar un tiempo. Por favor espere.", -"Initial encryption running... Please try again later." => "Encriptación inicial corriendo... Por favor intente mas tarde. ", -"Encryption" => "Encriptación", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", -"Enable recovery key (allow to recover users files in case of password loss):" => "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):", -"Recovery key password" => "Contraseña de recuperación de clave", -"Repeat Recovery key password" => "Repetir la contraseña de la clave de recuperación", -"Enabled" => "Habilitado", -"Disabled" => "Deshabilitado", -"Change recovery key password:" => "Cambiar contraseña para recuperar la clave:", -"Old Recovery key password" => "Contraseña antigua de recuperación de clave", -"New Recovery key password" => "Nueva contraseña de recuperación de clave", -"Repeat New Recovery key password" => "Repetir Nueva contraseña para la clave de recuperación", -"Change Password" => "Cambiar contraseña", -" If you don't remember your old password you can ask your administrator to recover your files." => "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", -"Old log-in password" => "Contraseña anterior", -"Current log-in password" => "Contraseña actual", -"Update Private Key Password" => "Actualizar contraseña de la clave privada", -"Enable password recovery:" => "Habilitar recuperación de contraseña:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña", -"File recovery settings updated" => "Las opciones de recuperación de archivos fueron actualizadas", -"Could not update file recovery" => "No fue posible actualizar la recuperación de archivos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/es_CL.js b/apps/files_encryption/l10n/es_CL.js new file mode 100644 index 0000000000000000000000000000000000000000..5863354a6f1197bbf094a4a1786eabb33775afc7 --- /dev/null +++ b/apps/files_encryption/l10n/es_CL.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Error desconocido" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es_CL.json b/apps/files_encryption/l10n/es_CL.json new file mode 100644 index 0000000000000000000000000000000000000000..8573fba4ca123913cd0134081a4e61e335cbc929 --- /dev/null +++ b/apps/files_encryption/l10n/es_CL.json @@ -0,0 +1,4 @@ +{ "translations": { + "Unknown error" : "Error desconocido" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es_MX.js b/apps/files_encryption/l10n/es_MX.js new file mode 100644 index 0000000000000000000000000000000000000000..99a633c6e43984cb25fa0d2134b7f2024693c6d8 --- /dev/null +++ b/apps/files_encryption/l10n/es_MX.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Error desconocido", + "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", + "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Password successfully changed." : "Su contraseña ha sido cambiada", + "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", + "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", + "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", + "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", + "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", + "Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada... Esto puede tomar un tiempo. Por favor espere.", + "Encryption" : "Cifrado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);", + "Recovery key password" : "Contraseña de clave de recuperación", + "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", + "Enabled" : "Habilitar", + "Disabled" : "Deshabilitado", + "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", + "Old Recovery key password" : "Antigua clave de recuperación", + "New Recovery key password" : "Nueva clave de recuperación", + "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", + "Change Password" : "Cambiar contraseña", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", + "Old log-in password" : "Contraseña de acceso antigua", + "Current log-in password" : "Contraseña de acceso actual", + "Update Private Key Password" : "Actualizar Contraseña de Clave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es_MX.json b/apps/files_encryption/l10n/es_MX.json new file mode 100644 index 0000000000000000000000000000000000000000..fe257ee670aeb8d7dcc510252309a1089a41f574 --- /dev/null +++ b/apps/files_encryption/l10n/es_MX.json @@ -0,0 +1,37 @@ +{ "translations": { + "Unknown error" : "Error desconocido", + "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", + "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", + "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", + "Password successfully changed." : "Su contraseña ha sido cambiada", + "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", + "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", + "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", + "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", + "Missing requirements." : "Requisitos incompletos.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", + "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", + "Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada... Esto puede tomar un tiempo. Por favor espere.", + "Encryption" : "Cifrado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);", + "Recovery key password" : "Contraseña de clave de recuperación", + "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", + "Enabled" : "Habilitar", + "Disabled" : "Deshabilitado", + "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", + "Old Recovery key password" : "Antigua clave de recuperación", + "New Recovery key password" : "Nueva clave de recuperación", + "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", + "Change Password" : "Cambiar contraseña", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", + "Old log-in password" : "Contraseña de acceso antigua", + "Current log-in password" : "Contraseña de acceso actual", + "Update Private Key Password" : "Actualizar Contraseña de Clave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es_MX.php b/apps/files_encryption/l10n/es_MX.php deleted file mode 100644 index ddd9737a901d6de31ba9c8aef9cd0bf96c590c5a..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/es_MX.php +++ /dev/null @@ -1,39 +0,0 @@ - "Se ha habilitado la recuperación de archivos", -"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.", -"Recovery key successfully disabled" => "Clave de recuperación deshabilitada", -"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", -"Password successfully changed." => "Su contraseña ha sido cambiada", -"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", -"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.", -"Could not update the private key password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Puede que la contraseña antigua no sea correcta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", -"Missing requirements." => "Requisitos incompletos.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", -"Following users are not set up for encryption:" => "Los siguientes usuarios no han sido configurados para el cifrado:", -"Initial encryption started... This can take some time. Please wait." => "Encriptación iniciada... Esto puede tomar un tiempo. Por favor espere.", -"Encryption" => "Cifrado", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);", -"Recovery key password" => "Contraseña de clave de recuperación", -"Repeat Recovery key password" => "Repite la contraseña de clave de recuperación", -"Enabled" => "Habilitar", -"Disabled" => "Deshabilitado", -"Change recovery key password:" => "Cambiar la contraseña de la clave de recuperación", -"Old Recovery key password" => "Antigua clave de recuperación", -"New Recovery key password" => "Nueva clave de recuperación", -"Repeat New Recovery key password" => "Repetir la nueva clave de recuperación", -"Change Password" => "Cambiar contraseña", -" If you don't remember your old password you can ask your administrator to recover your files." => "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", -"Old log-in password" => "Contraseña de acceso antigua", -"Current log-in password" => "Contraseña de acceso actual", -"Update Private Key Password" => "Actualizar Contraseña de Clave Privada", -"Enable password recovery:" => "Habilitar la recuperación de contraseña:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña", -"File recovery settings updated" => "Opciones de recuperación de archivos actualizada", -"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/et_EE.js b/apps/files_encryption/l10n/et_EE.js new file mode 100644 index 0000000000000000000000000000000000000000..93fa8084ff9e0dc93bf8faf23c5ccb5c0ebfd7e6 --- /dev/null +++ b/apps/files_encryption/l10n/et_EE.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Tundmatu viga", + "Missing recovery key password" : "Muuda taastevõtme parool", + "Please repeat the recovery key password" : "Palun korda uut taastevõtme parooli", + "Repeated recovery key password does not match the provided recovery key password" : "Lahtritesse sisestatud taastevõtme paroolid ei kattu", + "Recovery key successfully enabled" : "Taastevõtme lubamine õnnestus", + "Could not disable recovery key. Please check your recovery key password!" : "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!", + "Recovery key successfully disabled" : "Taastevõtme keelamine õnnestus", + "Please provide the old recovery password" : "Palun sisesta vana taastevõtme parool", + "Please provide a new recovery password" : "Palun sisesta uus taastevõtme parool", + "Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli", + "Password successfully changed." : "Parool edukalt vahetatud.", + "Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.", + "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.", + "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.", + "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.", + "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.", + "File recovery settings updated" : "Faili taaste seaded uuendatud", + "Could not update file recovery" : "Ei suuda uuendada taastefaili", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krüpteerimise rakend pole käivitatud. Võib-olla krüpteerimise rakend taaskäivitati sinu sessiooni kestel. Palun proovi logida välja ning uuesti sisse käivitamaks krüpteerimise rakendit.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sinu provaatne võti pole kehtiv! Tõenäoliselt mudueti parooli väljaspool kausta %s (nt. sinu ettevõtte kaust). Sa saad uuendada oma privaatse võtme parooli oma isiklikes seadetes, et taastada ligipääs sinu krüpteeritud failidele.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", + "Unknown error. Please check your system settings or contact your administrator" : "Tundmatu viga. Palun võta ühendust oma administraatoriga.", + "Missing requirements." : "Nõutavad on puudu.", + "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." : "Palun veendu, et on paigaldatud PHP 5.3.3 või uuem ning PHP OpenSSL laiendus on lubatud ning seadistatud korrektselt. Hetkel krüpteerimise rakendus on peatatud.", + "Following users are not set up for encryption:" : "Järgmised kasutajad pole seadistatud krüpteeringuks:", + "Initial encryption started... This can take some time. Please wait." : "Algne krüpteerimine käivitati... See võib võtta natuke aega. Palun oota.", + "Initial encryption running... Please try again later." : "Toimub esmane krüpteerimine... Palun proovi hiljem uuesti.", + "Go directly to your %spersonal settings%s." : "Liigi otse oma %s isiklike seadete %s juurde.", + "Encryption" : "Krüpteerimine", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):", + "Recovery key password" : "Taastevõtme parool", + "Repeat Recovery key password" : "Korda taastevõtme parooli", + "Enabled" : "Sisse lülitatud", + "Disabled" : "Väljalülitatud", + "Change recovery key password:" : "Muuda taastevõtme parooli:", + "Old Recovery key password" : "Vana taastevõtme parool", + "New Recovery key password" : "Uus taastevõtme parool", + "Repeat New Recovery key password" : "Korda uut taastevõtme parooli", + "Change Password" : "Muuda parooli", + "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", + "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Kui sa ei mäleta oma vana parooli, siis palu oma süsteemihalduril taastada ligipääs failidele.", + "Old log-in password" : "Vana sisselogimise parool", + "Current log-in password" : "Praegune sisselogimise parool", + "Update Private Key Password" : "Uuenda privaatse võtme parooli", + "Enable password recovery:" : "Luba parooli taaste:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/et_EE.json b/apps/files_encryption/l10n/et_EE.json new file mode 100644 index 0000000000000000000000000000000000000000..873bc8945d7054733cfb558e4f25bc776412bf2d --- /dev/null +++ b/apps/files_encryption/l10n/et_EE.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Tundmatu viga", + "Missing recovery key password" : "Muuda taastevõtme parool", + "Please repeat the recovery key password" : "Palun korda uut taastevõtme parooli", + "Repeated recovery key password does not match the provided recovery key password" : "Lahtritesse sisestatud taastevõtme paroolid ei kattu", + "Recovery key successfully enabled" : "Taastevõtme lubamine õnnestus", + "Could not disable recovery key. Please check your recovery key password!" : "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!", + "Recovery key successfully disabled" : "Taastevõtme keelamine õnnestus", + "Please provide the old recovery password" : "Palun sisesta vana taastevõtme parool", + "Please provide a new recovery password" : "Palun sisesta uus taastevõtme parool", + "Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli", + "Password successfully changed." : "Parool edukalt vahetatud.", + "Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.", + "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.", + "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.", + "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.", + "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.", + "File recovery settings updated" : "Faili taaste seaded uuendatud", + "Could not update file recovery" : "Ei suuda uuendada taastefaili", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krüpteerimise rakend pole käivitatud. Võib-olla krüpteerimise rakend taaskäivitati sinu sessiooni kestel. Palun proovi logida välja ning uuesti sisse käivitamaks krüpteerimise rakendit.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sinu provaatne võti pole kehtiv! Tõenäoliselt mudueti parooli väljaspool kausta %s (nt. sinu ettevõtte kaust). Sa saad uuendada oma privaatse võtme parooli oma isiklikes seadetes, et taastada ligipääs sinu krüpteeritud failidele.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", + "Unknown error. Please check your system settings or contact your administrator" : "Tundmatu viga. Palun võta ühendust oma administraatoriga.", + "Missing requirements." : "Nõutavad on puudu.", + "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." : "Palun veendu, et on paigaldatud PHP 5.3.3 või uuem ning PHP OpenSSL laiendus on lubatud ning seadistatud korrektselt. Hetkel krüpteerimise rakendus on peatatud.", + "Following users are not set up for encryption:" : "Järgmised kasutajad pole seadistatud krüpteeringuks:", + "Initial encryption started... This can take some time. Please wait." : "Algne krüpteerimine käivitati... See võib võtta natuke aega. Palun oota.", + "Initial encryption running... Please try again later." : "Toimub esmane krüpteerimine... Palun proovi hiljem uuesti.", + "Go directly to your %spersonal settings%s." : "Liigi otse oma %s isiklike seadete %s juurde.", + "Encryption" : "Krüpteerimine", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):", + "Recovery key password" : "Taastevõtme parool", + "Repeat Recovery key password" : "Korda taastevõtme parooli", + "Enabled" : "Sisse lülitatud", + "Disabled" : "Väljalülitatud", + "Change recovery key password:" : "Muuda taastevõtme parooli:", + "Old Recovery key password" : "Vana taastevõtme parool", + "New Recovery key password" : "Uus taastevõtme parool", + "Repeat New Recovery key password" : "Korda uut taastevõtme parooli", + "Change Password" : "Muuda parooli", + "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", + "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Kui sa ei mäleta oma vana parooli, siis palu oma süsteemihalduril taastada ligipääs failidele.", + "Old log-in password" : "Vana sisselogimise parool", + "Current log-in password" : "Praegune sisselogimise parool", + "Update Private Key Password" : "Uuenda privaatse võtme parooli", + "Enable password recovery:" : "Luba parooli taaste:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/et_EE.php b/apps/files_encryption/l10n/et_EE.php deleted file mode 100644 index bbf0ee4dca37f2b78f8b2f4d1fd8209a20f32925..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/et_EE.php +++ /dev/null @@ -1,44 +0,0 @@ - "Taastevõtme lubamine õnnestus", -"Could not enable recovery key. Please check your recovery key password!" => "Ei suutnud lubada taastevõtit. Palun kontrolli oma taastevõtme parooli!", -"Recovery key successfully disabled" => "Taastevõtme keelamine õnnestus", -"Could not disable recovery key. Please check your recovery key password!" => "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!", -"Password successfully changed." => "Parool edukalt vahetatud.", -"Could not change the password. Maybe the old password was not correct." => "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.", -"Private key password successfully updated." => "Privaatse võtme parool edukalt uuendatud.", -"Could not update the private key password. Maybe the old password was not correct." => "Ei suutnud uuendada privaatse võtme parooli. Võib-olla polnud vana parool õige.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krüpteerimise rakend pole käivitatud. Võib-olla krüpteerimise rakend taaskäivitati sinu sessiooni kestel. Palun proovi logida välja ning uuesti sisse käivitamaks krüpteerimise rakendit.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Sinu provaatne võti pole kehtiv! Tõenäoliselt mudueti parooli väljaspool kausta %s (nt. sinu ettevõtte kaust). Sa saad uuendada oma privaatse võtme parooli oma isiklikes seadetes, et taastada ligipääs sinu krüpteeritud failidele.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", -"Unknown error. Please check your system settings or contact your administrator" => "Tundmatu viga. Palun võta ühendust oma administraatoriga.", -"Missing requirements." => "Nõutavad on puudu.", -"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." => "Palun veendu, et on paigaldatud PHP 5.3.3 või uuem ning PHP OpenSSL laiendus on lubatud ning seadistatud korrektselt. Hetkel krüpteerimise rakendus on peatatud.", -"Following users are not set up for encryption:" => "Järgmised kasutajad pole seadistatud krüpteeringuks:", -"Initial encryption started... This can take some time. Please wait." => "Algne krüpteerimine käivitati... See võib võtta natuke aega. Palun oota.", -"Initial encryption running... Please try again later." => "Toimub esmane krüpteerimine... Palun proovi hiljem uuesti.", -"Go directly to your %spersonal settings%s." => "Liigi otse oma %s isiklike seadete %s juurde.", -"Encryption" => "Krüpteerimine", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):", -"Recovery key password" => "Taastevõtme parool", -"Repeat Recovery key password" => "Korda taastevõtme parooli", -"Enabled" => "Sisse lülitatud", -"Disabled" => "Väljalülitatud", -"Change recovery key password:" => "Muuda taastevõtme parooli:", -"Old Recovery key password" => "Vana taastevõtme parool", -"New Recovery key password" => "Uus taastevõtme parool", -"Repeat New Recovery key password" => "Korda uut taastevõtme parooli", -"Change Password" => "Muuda parooli", -"Your private key password no longer matches your log-in password." => "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", -"Set your old private key password to your current log-in password:" => "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", -" If you don't remember your old password you can ask your administrator to recover your files." => "Kui sa ei mäleta oma vana parooli, siis palu oma süsteemihalduril taastada ligipääs failidele.", -"Old log-in password" => "Vana sisselogimise parool", -"Current log-in password" => "Praegune sisselogimise parool", -"Update Private Key Password" => "Uuenda privaatse võtme parooli", -"Enable password recovery:" => "Luba parooli taaste:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul", -"File recovery settings updated" => "Faili taaste seaded uuendatud", -"Could not update file recovery" => "Ei suuda uuendada taastefaili" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/eu.js b/apps/files_encryption/l10n/eu.js new file mode 100644 index 0000000000000000000000000000000000000000..d5c23d016f0e2efaf46b538b33c6dcc06f783a2e --- /dev/null +++ b/apps/files_encryption/l10n/eu.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Errore ezezaguna", + "Missing recovery key password" : "Berreskurapen gakoaren pasahitza falta da", + "Please repeat the recovery key password" : "Mesedez errepikatu berreskuratze gakoaren pasahitza", + "Repeated recovery key password does not match the provided recovery key password" : "Errepikatutako berreskuratze gakoaren pasahitza ez dator bat berreskuratze gakoaren pasahitzarekin", + "Recovery key successfully enabled" : "Berreskuratze gakoa behar bezala gaitua", + "Could not disable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", + "Recovery key successfully disabled" : "Berreskuratze gakoa behar bezala desgaitu da", + "Please provide the old recovery password" : "Mesedez sartu berreskuratze pasahitz zaharra", + "Please provide a new recovery password" : "Mesedez sartu berreskuratze pasahitz berria", + "Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria", + "Password successfully changed." : "Pasahitza behar bezala aldatu da.", + "Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", + "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", + "File recovery settings updated" : "Fitxategi berreskuratze ezarpenak eguneratuak", + "Could not update file recovery" : "Ezin da fitxategi berreskuratzea eguneratu", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", + "Unknown error. Please check your system settings or contact your administrator" : "Errore ezezaguna. Mesedez, egiaztatu zure sistemaren ezarpenak edo jarri zure administrariarekin kontaktuan.", + "Missing requirements." : "Eskakizun batzuk ez dira betetzen.", + "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." : "Mesedez ziurtatu PHP 5.3.3 edo berriago bat instalatuta dagoela eta OpenSSL PHP hedapenarekin gaitua eta ongi konfiguratuta dagoela. Oraingoz, enkriptazio aplikazioa desgaituta dago.", + "Following users are not set up for encryption:" : "Hurrengo erabiltzaileak ez daude enktriptatzeko konfiguratutak:", + "Initial encryption started... This can take some time. Please wait." : "Hasierako enkriptazioa hasi da... Honek denbora har dezake. Mesedez itxaron.", + "Initial encryption running... Please try again later." : "Hasierako enkriptaketa abian... mesedez, saiatu beranduago.", + "Go directly to your %spersonal settings%s." : "Joan zuzenean zure %sezarpen pertsonaletara%s.", + "Encryption" : "Enkriptazioa", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", + "Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):", + "Recovery key password" : "Berreskuratze gako pasahitza", + "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza", + "Enabled" : "Gaitua", + "Disabled" : "Ez-gaitua", + "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", + "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra", + "New Recovery key password" : "Berreskuratze gako pasahitz berria", + "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza", + "Change Password" : "Aldatu Pasahitza", + "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", + "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", + "Old log-in password" : "Sartzeko pasahitz zaharra", + "Current log-in password" : "Sartzeko oraingo pasahitza", + "Update Private Key Password" : "Eguneratu gako pasahitza pribatua", + "Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/eu.json b/apps/files_encryption/l10n/eu.json new file mode 100644 index 0000000000000000000000000000000000000000..3b932fd769e94e0de113f74097cd4e8ed392cecf --- /dev/null +++ b/apps/files_encryption/l10n/eu.json @@ -0,0 +1,48 @@ +{ "translations": { + "Unknown error" : "Errore ezezaguna", + "Missing recovery key password" : "Berreskurapen gakoaren pasahitza falta da", + "Please repeat the recovery key password" : "Mesedez errepikatu berreskuratze gakoaren pasahitza", + "Repeated recovery key password does not match the provided recovery key password" : "Errepikatutako berreskuratze gakoaren pasahitza ez dator bat berreskuratze gakoaren pasahitzarekin", + "Recovery key successfully enabled" : "Berreskuratze gakoa behar bezala gaitua", + "Could not disable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", + "Recovery key successfully disabled" : "Berreskuratze gakoa behar bezala desgaitu da", + "Please provide the old recovery password" : "Mesedez sartu berreskuratze pasahitz zaharra", + "Please provide a new recovery password" : "Mesedez sartu berreskuratze pasahitz berria", + "Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria", + "Password successfully changed." : "Pasahitza behar bezala aldatu da.", + "Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", + "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", + "File recovery settings updated" : "Fitxategi berreskuratze ezarpenak eguneratuak", + "Could not update file recovery" : "Ezin da fitxategi berreskuratzea eguneratu", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", + "Unknown error. Please check your system settings or contact your administrator" : "Errore ezezaguna. Mesedez, egiaztatu zure sistemaren ezarpenak edo jarri zure administrariarekin kontaktuan.", + "Missing requirements." : "Eskakizun batzuk ez dira betetzen.", + "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." : "Mesedez ziurtatu PHP 5.3.3 edo berriago bat instalatuta dagoela eta OpenSSL PHP hedapenarekin gaitua eta ongi konfiguratuta dagoela. Oraingoz, enkriptazio aplikazioa desgaituta dago.", + "Following users are not set up for encryption:" : "Hurrengo erabiltzaileak ez daude enktriptatzeko konfiguratutak:", + "Initial encryption started... This can take some time. Please wait." : "Hasierako enkriptazioa hasi da... Honek denbora har dezake. Mesedez itxaron.", + "Initial encryption running... Please try again later." : "Hasierako enkriptaketa abian... mesedez, saiatu beranduago.", + "Go directly to your %spersonal settings%s." : "Joan zuzenean zure %sezarpen pertsonaletara%s.", + "Encryption" : "Enkriptazioa", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", + "Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):", + "Recovery key password" : "Berreskuratze gako pasahitza", + "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza", + "Enabled" : "Gaitua", + "Disabled" : "Ez-gaitua", + "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", + "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra", + "New Recovery key password" : "Berreskuratze gako pasahitz berria", + "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza", + "Change Password" : "Aldatu Pasahitza", + "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", + "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", + "Old log-in password" : "Sartzeko pasahitz zaharra", + "Current log-in password" : "Sartzeko oraingo pasahitza", + "Update Private Key Password" : "Eguneratu gako pasahitza pribatua", + "Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/eu.php b/apps/files_encryption/l10n/eu.php deleted file mode 100644 index 69de4a25b1b0f6b8016dbf5d8703d23b816edc5c..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/eu.php +++ /dev/null @@ -1,44 +0,0 @@ - "Berreskuratze gakoa behar bezala gaitua", -"Could not enable recovery key. Please check your recovery key password!" => "Ezin da berreskuratze gako gaitu. Egiaztatu berreskuratze gako pasahitza!", -"Recovery key successfully disabled" => "Berreskuratze gakoa behar bezala desgaitu da", -"Could not disable recovery key. Please check your recovery key password!" => "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", -"Password successfully changed." => "Pasahitza behar bezala aldatu da.", -"Could not change the password. Maybe the old password was not correct." => "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", -"Private key password successfully updated." => "Gako pasahitz pribatu behar bezala eguneratu da.", -"Could not update the private key password. Maybe the old password was not correct." => "Ezin izan da gako pribatu pasahitza eguneratu. Agian pasahitz zaharra okerrekoa da.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", -"Unknown error. Please check your system settings or contact your administrator" => "Errore ezezaguna. Mesedez, egiaztatu zure sistemaren ezarpenak edo jarri zure administrariarekin kontaktuan.", -"Missing requirements." => "Eskakizun batzuk ez dira betetzen.", -"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." => "Mesedez ziurtatu PHP 5.3.3 edo berriago bat instalatuta dagoela eta OpenSSL PHP hedapenarekin gaitua eta ongi konfiguratuta dagoela. Oraingoz, enkriptazio aplikazioa desgaituta dago.", -"Following users are not set up for encryption:" => "Hurrengo erabiltzaileak ez daude enktriptatzeko konfiguratutak:", -"Initial encryption started... This can take some time. Please wait." => "Hasierako enkriptazioa hasi da... Honek denbora har dezake. Mesedez itxaron.", -"Initial encryption running... Please try again later." => "Hasierako enkriptaketa abian... mesedez, saiatu beranduago.", -"Go directly to your %spersonal settings%s." => "Joan zuzenean zure %sezarpen pertsonaletara%s.", -"Encryption" => "Enkriptazioa", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", -"Enable recovery key (allow to recover users files in case of password loss):" => "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):", -"Recovery key password" => "Berreskuratze gako pasahitza", -"Repeat Recovery key password" => "Errepikatu berreskuratze gakoaren pasahitza", -"Enabled" => "Gaitua", -"Disabled" => "Ez-gaitua", -"Change recovery key password:" => "Aldatu berreskuratze gako pasahitza:", -"Old Recovery key password" => "Berreskuratze gako pasahitz zaharra", -"New Recovery key password" => "Berreskuratze gako pasahitz berria", -"Repeat New Recovery key password" => "Errepikatu berreskuratze gako berriaren pasahitza", -"Change Password" => "Aldatu Pasahitza", -"Your private key password no longer matches your log-in password." => "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", -"Set your old private key password to your current log-in password:" => "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", -"Old log-in password" => "Sartzeko pasahitz zaharra", -"Current log-in password" => "Sartzeko oraingo pasahitza", -"Update Private Key Password" => "Eguneratu gako pasahitza pribatua", -"Enable password recovery:" => "Gaitu pasahitzaren berreskuratzea:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan", -"File recovery settings updated" => "Fitxategi berreskuratze ezarpenak eguneratuak", -"Could not update file recovery" => "Ezin da fitxategi berreskuratzea eguneratu" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/fa.js b/apps/files_encryption/l10n/fa.js new file mode 100644 index 0000000000000000000000000000000000000000..037dc26e6816f552745011efbeb8f62c8e0c4080 --- /dev/null +++ b/apps/files_encryption/l10n/fa.js @@ -0,0 +1,31 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "خطای نامشخص", + "Recovery key successfully enabled" : "کلید بازیابی با موفقیت فعال شده است.", + "Could not disable recovery key. Please check your recovery key password!" : "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!", + "Recovery key successfully disabled" : "کلید بازیابی با موفقیت غیر فعال شده است.", + "Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.", + "Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.", + "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.", + "File recovery settings updated" : "تنظیمات بازیابی فایل به روز شده است.", + "Could not update file recovery" : "به روز رسانی بازیابی فایل را نمی تواند انجام دهد.", + "Missing requirements." : "نیازمندی های گمشده", + "Following users are not set up for encryption:" : "کاربران زیر برای رمزنگاری تنظیم نشده اند", + "Encryption" : "رمزگذاری", + "Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):", + "Recovery key password" : "رمزعبور کلید بازیابی", + "Enabled" : "فعال شده", + "Disabled" : "غیرفعال شده", + "Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:", + "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ", + "New Recovery key password" : "رمزعبور جدید کلید بازیابی", + "Change Password" : "تغییر رمزعبور", + " If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", + "Old log-in password" : "رمزعبور قدیمی", + "Current log-in password" : "رمزعبور فعلی", + "Update Private Key Password" : "به روز رسانی رمزعبور کلید خصوصی", + "Enable password recovery:" : "فعال سازی بازیابی رمزعبور:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید." +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/fa.json b/apps/files_encryption/l10n/fa.json new file mode 100644 index 0000000000000000000000000000000000000000..0c89886d41271a7297dd4c1b9fd0b4e9ebe514d3 --- /dev/null +++ b/apps/files_encryption/l10n/fa.json @@ -0,0 +1,29 @@ +{ "translations": { + "Unknown error" : "خطای نامشخص", + "Recovery key successfully enabled" : "کلید بازیابی با موفقیت فعال شده است.", + "Could not disable recovery key. Please check your recovery key password!" : "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!", + "Recovery key successfully disabled" : "کلید بازیابی با موفقیت غیر فعال شده است.", + "Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.", + "Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.", + "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.", + "File recovery settings updated" : "تنظیمات بازیابی فایل به روز شده است.", + "Could not update file recovery" : "به روز رسانی بازیابی فایل را نمی تواند انجام دهد.", + "Missing requirements." : "نیازمندی های گمشده", + "Following users are not set up for encryption:" : "کاربران زیر برای رمزنگاری تنظیم نشده اند", + "Encryption" : "رمزگذاری", + "Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):", + "Recovery key password" : "رمزعبور کلید بازیابی", + "Enabled" : "فعال شده", + "Disabled" : "غیرفعال شده", + "Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:", + "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ", + "New Recovery key password" : "رمزعبور جدید کلید بازیابی", + "Change Password" : "تغییر رمزعبور", + " If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", + "Old log-in password" : "رمزعبور قدیمی", + "Current log-in password" : "رمزعبور فعلی", + "Update Private Key Password" : "به روز رسانی رمزعبور کلید خصوصی", + "Enable password recovery:" : "فعال سازی بازیابی رمزعبور:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/fa.php b/apps/files_encryption/l10n/fa.php deleted file mode 100644 index 2c3a2261baa7f7b66a2001f1c16fa4fec5f36cbf..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/fa.php +++ /dev/null @@ -1,31 +0,0 @@ - "کلید بازیابی با موفقیت فعال شده است.", -"Could not enable recovery key. Please check your recovery key password!" => "کلید بازیابی نمی تواند فعال شود. لطفا رمزعبور کلید بازیابی خود را بررسی نمایید!", -"Recovery key successfully disabled" => "کلید بازیابی با موفقیت غیر فعال شده است.", -"Could not disable recovery key. Please check your recovery key password!" => "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!", -"Password successfully changed." => "رمزعبور با موفقیت تغییر یافت.", -"Could not change the password. Maybe the old password was not correct." => "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.", -"Private key password successfully updated." => "رمزعبور کلید خصوصی با موفقیت به روز شد.", -"Could not update the private key password. Maybe the old password was not correct." => "رمزعبور کلید خصوصی را نمی تواند به روز کند. شاید رمزعبور قدیمی صحیح نمی باشد.", -"Missing requirements." => "نیازمندی های گمشده", -"Following users are not set up for encryption:" => "کاربران زیر برای رمزنگاری تنظیم نشده اند", -"Encryption" => "رمزگذاری", -"Enable recovery key (allow to recover users files in case of password loss):" => "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):", -"Recovery key password" => "رمزعبور کلید بازیابی", -"Enabled" => "فعال شده", -"Disabled" => "غیرفعال شده", -"Change recovery key password:" => "تغییر رمزعبور کلید بازیابی:", -"Old Recovery key password" => "رمزعبور قدیمی کلید بازیابی ", -"New Recovery key password" => "رمزعبور جدید کلید بازیابی", -"Change Password" => "تغییر رمزعبور", -" If you don't remember your old password you can ask your administrator to recover your files." => "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", -"Old log-in password" => "رمزعبور قدیمی", -"Current log-in password" => "رمزعبور فعلی", -"Update Private Key Password" => "به روز رسانی رمزعبور کلید خصوصی", -"Enable password recovery:" => "فعال سازی بازیابی رمزعبور:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید.", -"File recovery settings updated" => "تنظیمات بازیابی فایل به روز شده است.", -"Could not update file recovery" => "به روز رسانی بازیابی فایل را نمی تواند انجام دهد." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/fi_FI.js b/apps/files_encryption/l10n/fi_FI.js new file mode 100644 index 0000000000000000000000000000000000000000..aff16f1fcddef0b0b4994a06e7b45874d12402c1 --- /dev/null +++ b/apps/files_encryption/l10n/fi_FI.js @@ -0,0 +1,35 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Tuntematon virhe", + "Recovery key successfully enabled" : "Palautusavain kytketty päälle onnistuneesti", + "Password successfully changed." : "Salasana vaihdettiin onnistuneesti.", + "Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.", + "The old password was not correct, please try again." : "Vanha salasana oli väärin, yritä uudelleen.", + "Private key password successfully updated." : "Yksityisen avaimen salasana päivitetty onnistuneesti.", + "File recovery settings updated" : "Tiedostopalautuksen asetukset päivitetty", + "Unknown error. Please check your system settings or contact your administrator" : "Tuntematon virhe. Tarkista järjestelmän asetukset tai ole yhteydessä ylläpitäjään.", + "Missing requirements." : "Puuttuvat vaatimukset.", + "Following users are not set up for encryption:" : "Seuraavat käyttäjät eivät ole määrittäneet salausta:", + "Initial encryption started... This can take some time. Please wait." : "Ensimmäinen salauskerta käynnistetty... Tämä saattaa kestää hetken.", + "Initial encryption running... Please try again later." : "Ensimmäinen salauskerta on meneillään... Yritä myöhemmin uudelleen.", + "Go directly to your %spersonal settings%s." : "Siirry suoraan %shenkilökohtaisiin asetuksiisi%s.", + "Encryption" : "Salaus", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):", + "Recovery key password" : "Palautusavaimen salasana", + "Repeat Recovery key password" : "Toista palautusavaimen salasana", + "Enabled" : "Käytössä", + "Disabled" : "Ei käytössä", + "Change recovery key password:" : "Vaihda palautusavaimen salasana:", + "Old Recovery key password" : "Vanha palautusavaimen salasana", + "New Recovery key password" : "Uusi palautusavaimen salasana", + "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana", + "Change Password" : "Vaihda salasana", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", + "Old log-in password" : "Vanha kirjautumissalasana", + "Current log-in password" : "Nykyinen kirjautumissalasana", + "Update Private Key Password" : "Päivitä yksityisen avaimen salasana", + "Enable password recovery:" : "Ota salasanan palautus käyttöön:" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/fi_FI.json b/apps/files_encryption/l10n/fi_FI.json new file mode 100644 index 0000000000000000000000000000000000000000..348f8aeb1fe299188adda20b9d74a1795b05288b --- /dev/null +++ b/apps/files_encryption/l10n/fi_FI.json @@ -0,0 +1,33 @@ +{ "translations": { + "Unknown error" : "Tuntematon virhe", + "Recovery key successfully enabled" : "Palautusavain kytketty päälle onnistuneesti", + "Password successfully changed." : "Salasana vaihdettiin onnistuneesti.", + "Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.", + "The old password was not correct, please try again." : "Vanha salasana oli väärin, yritä uudelleen.", + "Private key password successfully updated." : "Yksityisen avaimen salasana päivitetty onnistuneesti.", + "File recovery settings updated" : "Tiedostopalautuksen asetukset päivitetty", + "Unknown error. Please check your system settings or contact your administrator" : "Tuntematon virhe. Tarkista järjestelmän asetukset tai ole yhteydessä ylläpitäjään.", + "Missing requirements." : "Puuttuvat vaatimukset.", + "Following users are not set up for encryption:" : "Seuraavat käyttäjät eivät ole määrittäneet salausta:", + "Initial encryption started... This can take some time. Please wait." : "Ensimmäinen salauskerta käynnistetty... Tämä saattaa kestää hetken.", + "Initial encryption running... Please try again later." : "Ensimmäinen salauskerta on meneillään... Yritä myöhemmin uudelleen.", + "Go directly to your %spersonal settings%s." : "Siirry suoraan %shenkilökohtaisiin asetuksiisi%s.", + "Encryption" : "Salaus", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):", + "Recovery key password" : "Palautusavaimen salasana", + "Repeat Recovery key password" : "Toista palautusavaimen salasana", + "Enabled" : "Käytössä", + "Disabled" : "Ei käytössä", + "Change recovery key password:" : "Vaihda palautusavaimen salasana:", + "Old Recovery key password" : "Vanha palautusavaimen salasana", + "New Recovery key password" : "Uusi palautusavaimen salasana", + "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana", + "Change Password" : "Vaihda salasana", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", + "Old log-in password" : "Vanha kirjautumissalasana", + "Current log-in password" : "Nykyinen kirjautumissalasana", + "Update Private Key Password" : "Päivitä yksityisen avaimen salasana", + "Enable password recovery:" : "Ota salasanan palautus käyttöön:" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php deleted file mode 100644 index 1b545da4dc5ca5d671f606b7f553b19a6cab60ee..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/fi_FI.php +++ /dev/null @@ -1,32 +0,0 @@ - "Palautusavain kytketty päälle onnistuneesti", -"Could not enable recovery key. Please check your recovery key password!" => "Palautusavaimen käyttöönotto epäonnistui. Tarkista palautusavaimesi salasana!", -"Password successfully changed." => "Salasana vaihdettiin onnistuneesti.", -"Could not change the password. Maybe the old password was not correct." => "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.", -"Private key password successfully updated." => "Yksityisen avaimen salasana päivitetty onnistuneesti.", -"Unknown error. Please check your system settings or contact your administrator" => "Tuntematon virhe. Tarkista järjestelmän asetukset tai ole yhteydessä ylläpitäjään.", -"Following users are not set up for encryption:" => "Seuraavat käyttäjät eivät ole määrittäneet salausta:", -"Initial encryption started... This can take some time. Please wait." => "Ensimmäinen salauskerta käynnistetty... Tämä saattaa kestää hetken.", -"Initial encryption running... Please try again later." => "Ensimmäinen salauskerta on meneillään... Yritä myöhemmin uudelleen.", -"Go directly to your %spersonal settings%s." => "Siirry suoraan %shenkilökohtaisiin asetuksiisi%s.", -"Encryption" => "Salaus", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):", -"Recovery key password" => "Palautusavaimen salasana", -"Repeat Recovery key password" => "Toista palautusavaimen salasana", -"Enabled" => "Käytössä", -"Disabled" => "Ei käytössä", -"Change recovery key password:" => "Vaihda palautusavaimen salasana:", -"Old Recovery key password" => "Vanha palautusavaimen salasana", -"New Recovery key password" => "Uusi palautusavaimen salasana", -"Repeat New Recovery key password" => "Toista uusi palautusavaimen salasana", -"Change Password" => "Vaihda salasana", -" If you don't remember your old password you can ask your administrator to recover your files." => "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", -"Old log-in password" => "Vanha kirjautumis-salasana", -"Current log-in password" => "Nykyinen kirjautumis-salasana", -"Update Private Key Password" => "Päivitä yksityisen avaimen salasana", -"Enable password recovery:" => "Ota salasanan palautus käyttöön:", -"File recovery settings updated" => "Tiedostopalautuksen asetukset päivitetty" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/fr.js b/apps/files_encryption/l10n/fr.js new file mode 100644 index 0000000000000000000000000000000000000000..b5bcaff19c27eb46663574437aada12fa1b863ab --- /dev/null +++ b/apps/files_encryption/l10n/fr.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Erreur Inconnue ", + "Missing recovery key password" : "Mot de passe de la clef de récupération manquant", + "Please repeat the recovery key password" : "Répétez le mot de passe de la clé de récupération", + "Repeated recovery key password does not match the provided recovery key password" : "Le mot de passe de la clé de récupération et sa répétition ne sont pas identiques.", + "Recovery key successfully enabled" : "Clé de récupération activée avec succès", + "Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !", + "Recovery key successfully disabled" : "Clé de récupération désactivée avec succès", + "Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération", + "Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération", + "Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération", + "Password successfully changed." : "Mot de passe changé avec succès.", + "Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.", + "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clé privée.", + "The old password was not correct, please try again." : "L'ancien mot de passe est incorrect. Veuillez réessayer.", + "The current log-in password was not correct, please try again." : "Le mot de passe actuel n'est pas correct, veuillez réessayer.", + "Private key password successfully updated." : "Mot de passe de la clé privé mis à jour avec succès.", + "File recovery settings updated" : "Paramètres de récupération de fichiers mis à jour", + "Could not update file recovery" : "Ne peut pas remettre à jour les fichiers de récupération", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée est invalide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.", + "Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.", + "Missing requirements." : "Système minimum requis non respecté.", + "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." : "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée.", + "Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :", + "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.", + "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.", + "Go directly to your %spersonal settings%s." : "Allerz directement à vos %spersonal settings%s.", + "Encryption" : "Chiffrement", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).", + "Recovery key password" : "Mot de passe de la clef de récupération", + "Repeat Recovery key password" : "Répétez le mot de passe de la clé de récupération", + "Enabled" : "Activé", + "Disabled" : "Désactivé", + "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", + "Old Recovery key password" : "Ancien mot de passe de la clef de récupération", + "New Recovery key password" : "Nouveau mot de passe de la clef de récupération", + "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clé de récupération", + "Change Password" : "Changer de mot de passe", + "Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", + "Set your old private key password to your current log-in password:" : "Configurez le mot de passe de votre ancienne clef privée avec votre mot de passe courant de connexion :", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", + "Old log-in password" : "Ancien mot de passe de connexion", + "Current log-in password" : "Actuel mot de passe de connexion", + "Update Private Key Password" : "Mettre à jour le mot de passe de votre clé privée", + "Enable password recovery:" : "Activer la récupération du mot de passe :", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_encryption/l10n/fr.json b/apps/files_encryption/l10n/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..24de660bb3c2554ff93f9ab5a2dc4628c7b9051f --- /dev/null +++ b/apps/files_encryption/l10n/fr.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Erreur Inconnue ", + "Missing recovery key password" : "Mot de passe de la clef de récupération manquant", + "Please repeat the recovery key password" : "Répétez le mot de passe de la clé de récupération", + "Repeated recovery key password does not match the provided recovery key password" : "Le mot de passe de la clé de récupération et sa répétition ne sont pas identiques.", + "Recovery key successfully enabled" : "Clé de récupération activée avec succès", + "Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !", + "Recovery key successfully disabled" : "Clé de récupération désactivée avec succès", + "Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération", + "Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération", + "Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération", + "Password successfully changed." : "Mot de passe changé avec succès.", + "Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.", + "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clé privée.", + "The old password was not correct, please try again." : "L'ancien mot de passe est incorrect. Veuillez réessayer.", + "The current log-in password was not correct, please try again." : "Le mot de passe actuel n'est pas correct, veuillez réessayer.", + "Private key password successfully updated." : "Mot de passe de la clé privé mis à jour avec succès.", + "File recovery settings updated" : "Paramètres de récupération de fichiers mis à jour", + "Could not update file recovery" : "Ne peut pas remettre à jour les fichiers de récupération", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée est invalide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.", + "Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.", + "Missing requirements." : "Système minimum requis non respecté.", + "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." : "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée.", + "Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :", + "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.", + "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.", + "Go directly to your %spersonal settings%s." : "Allerz directement à vos %spersonal settings%s.", + "Encryption" : "Chiffrement", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).", + "Recovery key password" : "Mot de passe de la clef de récupération", + "Repeat Recovery key password" : "Répétez le mot de passe de la clé de récupération", + "Enabled" : "Activé", + "Disabled" : "Désactivé", + "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", + "Old Recovery key password" : "Ancien mot de passe de la clef de récupération", + "New Recovery key password" : "Nouveau mot de passe de la clef de récupération", + "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clé de récupération", + "Change Password" : "Changer de mot de passe", + "Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", + "Set your old private key password to your current log-in password:" : "Configurez le mot de passe de votre ancienne clef privée avec votre mot de passe courant de connexion :", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", + "Old log-in password" : "Ancien mot de passe de connexion", + "Current log-in password" : "Actuel mot de passe de connexion", + "Update Private Key Password" : "Mettre à jour le mot de passe de votre clé privée", + "Enable password recovery:" : "Activer la récupération du mot de passe :", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php deleted file mode 100644 index c78f6aaabd65170985170d26fc43679e044ed347..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/fr.php +++ /dev/null @@ -1,44 +0,0 @@ - "Clé de récupération activée avec succès", -"Could not enable recovery key. Please check your recovery key password!" => "Impossible d'activer la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !", -"Recovery key successfully disabled" => "Clé de récupération désactivée avec succès", -"Could not disable recovery key. Please check your recovery key password!" => "Impossible de désactiver la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !", -"Password successfully changed." => "Mot de passe changé avec succès ", -"Could not change the password. Maybe the old password was not correct." => "Ne peut pas changer le mot de passe. L'ancien mot de passe est peut-être incorrect.", -"Private key password successfully updated." => "Mot de passe de la clé privé mis à jour avec succès.", -"Could not update the private key password. Maybe the old password was not correct." => "Impossible de mettre à jour le mot de passe de la clé privé. Peut-être que l'ancien mot de passe n'était pas correcte.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Votre clef privée est invalide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.", -"Unknown error. Please check your system settings or contact your administrator" => "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.", -"Missing requirements." => "Système minimum requis non respecté.", -"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." => "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée.", -"Following users are not set up for encryption:" => "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :", -"Initial encryption started... This can take some time. Please wait." => "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.", -"Initial encryption running... Please try again later." => "Chiffrement initial en cours... Veuillez re-essayer ultérieurement.", -"Go directly to your %spersonal settings%s." => "Allerz directement à vos %spersonal settings%s.", -"Encryption" => "Chiffrement", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'application de chiffrement est activée mais vos clés ne sont pas initialisées, veuillez vous déconnecter et ensuite vous reconnecter.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).", -"Recovery key password" => "Mot de passe de la clef de récupération", -"Repeat Recovery key password" => "Répétez le mot de passe de la clé de récupération", -"Enabled" => "Activer", -"Disabled" => "Désactiver", -"Change recovery key password:" => "Modifier le mot de passe de la clef de récupération :", -"Old Recovery key password" => "Ancien mot de passe de la clef de récupération", -"New Recovery key password" => "Nouveau mot de passe de la clef de récupération", -"Repeat New Recovery key password" => "Répétez le nouveau mot de passe de la clé de récupération", -"Change Password" => "Changer de mot de passe", -"Your private key password no longer matches your log-in password." => "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", -"Set your old private key password to your current log-in password:" => "Configurez le mot de passe de votre ancienne clef privée avec votre mot de passe courant de connexion :", -" If you don't remember your old password you can ask your administrator to recover your files." => "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", -"Old log-in password" => "Ancien mot de passe de connexion", -"Current log-in password" => "Actuel mot de passe de connexion", -"Update Private Key Password" => "Mettre à jour le mot de passe de votre clé privée", -"Enable password recovery:" => "Activer la récupération du mot de passe :", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe", -"File recovery settings updated" => "Paramètres de récupération de fichiers mis à jour", -"Could not update file recovery" => "Ne peut pas remettre à jour les fichiers de récupération" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_encryption/l10n/gl.js b/apps/files_encryption/l10n/gl.js new file mode 100644 index 0000000000000000000000000000000000000000..d32e9f600fb260a26730c32c8286c55bb2b813c9 --- /dev/null +++ b/apps/files_encryption/l10n/gl.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Produciuse un erro descoñecido", + "Missing recovery key password" : "Falta a chave de recuperación", + "Please repeat the recovery key password" : "Por favor repita a chave de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación establecida", + "Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación", + "Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", + "Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación", + "Please provide the old recovery password" : "Por favor introduza a chave de recuperación anterior", + "Please provide a new recovery password" : "Por favor introduza a nova chave de recuperación", + "Please repeat the new recovery password" : "Por favor repita a nova chave de recuperación", + "Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente", + "Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", + "Private key password successfully updated." : "A chave privada foi actualizada correctamente.", + "File recovery settings updated" : "Actualizouse o ficheiro de axustes de recuperación", + "Could not update file recovery" : "Non foi posíbel actualizar o ficheiro de recuperación", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Non se iniciou a aplicación de cifrado! Quizais volva a activarse durante a sesión. Tente pechar a sesión e volver iniciala para que tamén se inicie a aplicación de cifrado.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada non é correcta! É probábel que o seu contrasinal teña sido cambiado desde o exterior do %s (p.ex. o seu directorio corporativo). Vostede pode actualizar o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", + "Unknown error. Please check your system settings or contact your administrator" : "Produciuse un erro descoñecido. Comprobe os axustes do sistema ou contacte co administrador", + "Missing requirements." : "Non se cumpren os requisitos.", + "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." : "Asegúrese de que está instalado o PHP 5.3.3 ou posterior e de que o OpenSSL xunto coa extensión PHP estean activados e configurados correctamente. Polo de agora foi desactivada a aplicación de cifrado.", + "Following users are not set up for encryption:" : "Os seguintes usuarios non teñen configuración para o cifrado:", + "Initial encryption started... This can take some time. Please wait." : "Comezou o cifrado inicial... Isto pode levar bastante tempo. Agarde.", + "Initial encryption running... Please try again later." : "O cifrado inicial está en execución... Tenteo máis tarde.", + "Go directly to your %spersonal settings%s." : "Vaia directamente aos seus %saxustes persoais%s.", + "Encryption" : "Cifrado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):", + "Recovery key password" : "Contrasinal da chave de recuperación", + "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", + "Enabled" : "Activado", + "Disabled" : "Desactivado", + "Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:", + "Old Recovery key password" : "Antigo contrasinal da chave de recuperación", + "New Recovery key password" : "Novo contrasinal da chave de recuperación", + "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación", + "Change Password" : "Cambiar o contrasinal", + "Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", + "Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", + "Old log-in password" : "Contrasinal antigo de acceso", + "Current log-in password" : "Contrasinal actual de acceso", + "Update Private Key Password" : "Actualizar o contrasinal da chave privada", + "Enable password recovery:" : "Activar o contrasinal de recuperación:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/gl.json b/apps/files_encryption/l10n/gl.json new file mode 100644 index 0000000000000000000000000000000000000000..8ffcafe8e8868af70489606c89d00779fce66e23 --- /dev/null +++ b/apps/files_encryption/l10n/gl.json @@ -0,0 +1,48 @@ +{ "translations": { + "Unknown error" : "Produciuse un erro descoñecido", + "Missing recovery key password" : "Falta a chave de recuperación", + "Please repeat the recovery key password" : "Por favor repita a chave de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación establecida", + "Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación", + "Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", + "Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación", + "Please provide the old recovery password" : "Por favor introduza a chave de recuperación anterior", + "Please provide a new recovery password" : "Por favor introduza a nova chave de recuperación", + "Please repeat the new recovery password" : "Por favor repita a nova chave de recuperación", + "Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente", + "Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", + "Private key password successfully updated." : "A chave privada foi actualizada correctamente.", + "File recovery settings updated" : "Actualizouse o ficheiro de axustes de recuperación", + "Could not update file recovery" : "Non foi posíbel actualizar o ficheiro de recuperación", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Non se iniciou a aplicación de cifrado! Quizais volva a activarse durante a sesión. Tente pechar a sesión e volver iniciala para que tamén se inicie a aplicación de cifrado.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada non é correcta! É probábel que o seu contrasinal teña sido cambiado desde o exterior do %s (p.ex. o seu directorio corporativo). Vostede pode actualizar o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", + "Unknown error. Please check your system settings or contact your administrator" : "Produciuse un erro descoñecido. Comprobe os axustes do sistema ou contacte co administrador", + "Missing requirements." : "Non se cumpren os requisitos.", + "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." : "Asegúrese de que está instalado o PHP 5.3.3 ou posterior e de que o OpenSSL xunto coa extensión PHP estean activados e configurados correctamente. Polo de agora foi desactivada a aplicación de cifrado.", + "Following users are not set up for encryption:" : "Os seguintes usuarios non teñen configuración para o cifrado:", + "Initial encryption started... This can take some time. Please wait." : "Comezou o cifrado inicial... Isto pode levar bastante tempo. Agarde.", + "Initial encryption running... Please try again later." : "O cifrado inicial está en execución... Tenteo máis tarde.", + "Go directly to your %spersonal settings%s." : "Vaia directamente aos seus %saxustes persoais%s.", + "Encryption" : "Cifrado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):", + "Recovery key password" : "Contrasinal da chave de recuperación", + "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", + "Enabled" : "Activado", + "Disabled" : "Desactivado", + "Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:", + "Old Recovery key password" : "Antigo contrasinal da chave de recuperación", + "New Recovery key password" : "Novo contrasinal da chave de recuperación", + "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación", + "Change Password" : "Cambiar o contrasinal", + "Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", + "Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", + "Old log-in password" : "Contrasinal antigo de acceso", + "Current log-in password" : "Contrasinal actual de acceso", + "Update Private Key Password" : "Actualizar o contrasinal da chave privada", + "Enable password recovery:" : "Activar o contrasinal de recuperación:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/gl.php b/apps/files_encryption/l10n/gl.php deleted file mode 100644 index 7498d0728b835d3e3925260aeaa5c078122d3fb8..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/gl.php +++ /dev/null @@ -1,44 +0,0 @@ - "Activada satisfactoriamente a chave de recuperación", -"Could not enable recovery key. Please check your recovery key password!" => "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", -"Recovery key successfully disabled" => "Desactivada satisfactoriamente a chave de recuperación", -"Could not disable recovery key. Please check your recovery key password!" => "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", -"Password successfully changed." => "O contrasinal foi cambiado satisfactoriamente", -"Could not change the password. Maybe the old password was not correct." => "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", -"Private key password successfully updated." => "A chave privada foi actualizada correctamente.", -"Could not update the private key password. Maybe the old password was not correct." => "Non foi posíbel actualizar o contrasinal da chave privada. É probábel que o contrasinal antigo non sexa correcto.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Non se iniciou a aplicación de cifrado! Quizais volva a activarse durante a sesión. Tente pechar a sesión e volver iniciala para que tamén se inicie a aplicación de cifrado.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "A chave privada non é correcta! É probábel que o seu contrasinal teña sido cambiado desde o exterior do %s (p.ex. o seu directorio corporativo). Vostede pode actualizar o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", -"Unknown error. Please check your system settings or contact your administrator" => "Produciuse un erro descoñecido. Comprobe os axustes do sistema ou contacte co administrador", -"Missing requirements." => "Non se cumpren os requisitos.", -"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." => "Asegúrese de que está instalado o PHP 5.3.3 ou posterior e de que o OpenSSL xunto coa extensión PHP estean activados e configurados correctamente. Polo de agora foi desactivada a aplicación de cifrado.", -"Following users are not set up for encryption:" => "Os seguintes usuarios non teñen configuración para o cifrado:", -"Initial encryption started... This can take some time. Please wait." => "Comezou o cifrado inicial... Isto pode levar bastante tempo. Agarde.", -"Initial encryption running... Please try again later." => "O cifrado inicial está en execución... Tenteo máis tarde.", -"Go directly to your %spersonal settings%s." => "Vaia directamente aos seus %saxustes persoais%s.", -"Encryption" => "Cifrado", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "A aplicación de cifrado está activada, mais as chaves non foron inicializadas, saia da sesión e volva a acceder de novo", -"Enable recovery key (allow to recover users files in case of password loss):" => "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):", -"Recovery key password" => "Contrasinal da chave de recuperación", -"Repeat Recovery key password" => "Repita o contrasinal da chave de recuperación", -"Enabled" => "Activado", -"Disabled" => "Desactivado", -"Change recovery key password:" => "Cambiar o contrasinal da chave de la recuperación:", -"Old Recovery key password" => "Antigo contrasinal da chave de recuperación", -"New Recovery key password" => "Novo contrasinal da chave de recuperación", -"Repeat New Recovery key password" => "Repita o novo contrasinal da chave de recuperación", -"Change Password" => "Cambiar o contrasinal", -"Your private key password no longer matches your log-in password." => "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", -"Set your old private key password to your current log-in password:" => "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", -"Old log-in password" => "Contrasinal antigo de acceso", -"Current log-in password" => "Contrasinal actual de acceso", -"Update Private Key Password" => "Actualizar o contrasinal da chave privada", -"Enable password recovery:" => "Activar o contrasinal de recuperación:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal", -"File recovery settings updated" => "Actualizouse o ficheiro de axustes de recuperación", -"Could not update file recovery" => "Non foi posíbel actualizar o ficheiro de recuperación" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/he.js b/apps/files_encryption/l10n/he.js new file mode 100644 index 0000000000000000000000000000000000000000..90070547378b1add521ec5204ebe12251cf50df4 --- /dev/null +++ b/apps/files_encryption/l10n/he.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "שגיאה בלתי ידועה", + "Encryption" : "הצפנה" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/he.json b/apps/files_encryption/l10n/he.json new file mode 100644 index 0000000000000000000000000000000000000000..c3d357516d32bcbdc55b19e7a39de68866eb9938 --- /dev/null +++ b/apps/files_encryption/l10n/he.json @@ -0,0 +1,5 @@ +{ "translations": { + "Unknown error" : "שגיאה בלתי ידועה", + "Encryption" : "הצפנה" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/he.php b/apps/files_encryption/l10n/he.php deleted file mode 100644 index ca8783d1964d9423ad92d293a013ac74e756b2c2..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/he.php +++ /dev/null @@ -1,5 +0,0 @@ - "הצפנה" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/hr.js b/apps/files_encryption/l10n/hr.js new file mode 100644 index 0000000000000000000000000000000000000000..f20ce757c0533bde9e50db8a1cb8d76b73b7bdec --- /dev/null +++ b/apps/files_encryption/l10n/hr.js @@ -0,0 +1,44 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Nepoznata pogreška", + "Recovery key successfully enabled" : "Ključ za oporavak uspješno aktiviran", + "Could not disable recovery key. Please check your recovery key password!" : "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", + "Recovery key successfully disabled" : "Ključ za ooravak uspješno deaktiviran", + "Password successfully changed." : "Lozinka uspješno promijenjena.", + "Could not change the password. Maybe the old password was not correct." : "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.", + "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.", + "File recovery settings updated" : "Ažurirane postavke za oporavak datoteke", + "Could not update file recovery" : "Oporavak datoteke nije moguće ažurirati", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", + "Unknown error. Please check your system settings or contact your administrator" : "Pogreška nepoznata. Molimo provjerite svoje sistemske postavke ili kontaktirajte svog administratora.", + "Missing requirements." : "Nedostaju preduvjeti.", + "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." : "Molimo osigurajte da je instaliran PHP 5.3.3 ili noviji i da je OpenSSL zajedno s PHP ekstenzijom propisno aktivirani konfiguriran. Za sada, aplikacija šifriranja je deaktivirana.", + "Following users are not set up for encryption:" : "Sljedeći korisnici nisu određeni za šifriranje:", + "Initial encryption started... This can take some time. Please wait." : "Počelo inicijalno šifriranje... To može potrajati neko vrijeme. Molimo, pričekajte.", + "Initial encryption running... Please try again later." : "Inicijalno šifriranje u tijeku... Molimo, pokušajte ponovno kasnije.", + "Go directly to your %spersonal settings%s." : "Idite izravno na svoje %sosobne postavke%s.", + "Encryption" : "Šifriranje", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):", + "Recovery key password" : "Lozinka ključa za oporavak", + "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak", + "Enabled" : "Aktivirano", + "Disabled" : "Onemogućeno", + "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", + "Old Recovery key password" : "Stara lozinka ključa za oporavak", + "New Recovery key password" : "Nova lozinka ključa za oporavak", + "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak", + "Change Password" : "Promijenite lozinku", + "Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", + "Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ako se ne sjećate svoje stare lozinke, možete zamoliti administratora da oporavi vaše datoteke.", + "Old log-in password" : "Stara lozinka za prijavu", + "Current log-in password" : "Aktualna lozinka za prijavu", + "Update Private Key Password" : "Ažurirajte lozinku privatnog ključa", + "Enable password recovery:" : "Omogućite oporavak lozinke:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama" +}, +"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/files_encryption/l10n/hr.json b/apps/files_encryption/l10n/hr.json new file mode 100644 index 0000000000000000000000000000000000000000..04e664336d32afd22ca9d3fbc6bad9675be50c6d --- /dev/null +++ b/apps/files_encryption/l10n/hr.json @@ -0,0 +1,42 @@ +{ "translations": { + "Unknown error" : "Nepoznata pogreška", + "Recovery key successfully enabled" : "Ključ za oporavak uspješno aktiviran", + "Could not disable recovery key. Please check your recovery key password!" : "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", + "Recovery key successfully disabled" : "Ključ za ooravak uspješno deaktiviran", + "Password successfully changed." : "Lozinka uspješno promijenjena.", + "Could not change the password. Maybe the old password was not correct." : "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.", + "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.", + "File recovery settings updated" : "Ažurirane postavke za oporavak datoteke", + "Could not update file recovery" : "Oporavak datoteke nije moguće ažurirati", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", + "Unknown error. Please check your system settings or contact your administrator" : "Pogreška nepoznata. Molimo provjerite svoje sistemske postavke ili kontaktirajte svog administratora.", + "Missing requirements." : "Nedostaju preduvjeti.", + "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." : "Molimo osigurajte da je instaliran PHP 5.3.3 ili noviji i da je OpenSSL zajedno s PHP ekstenzijom propisno aktivirani konfiguriran. Za sada, aplikacija šifriranja je deaktivirana.", + "Following users are not set up for encryption:" : "Sljedeći korisnici nisu određeni za šifriranje:", + "Initial encryption started... This can take some time. Please wait." : "Počelo inicijalno šifriranje... To može potrajati neko vrijeme. Molimo, pričekajte.", + "Initial encryption running... Please try again later." : "Inicijalno šifriranje u tijeku... Molimo, pokušajte ponovno kasnije.", + "Go directly to your %spersonal settings%s." : "Idite izravno na svoje %sosobne postavke%s.", + "Encryption" : "Šifriranje", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):", + "Recovery key password" : "Lozinka ključa za oporavak", + "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak", + "Enabled" : "Aktivirano", + "Disabled" : "Onemogućeno", + "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", + "Old Recovery key password" : "Stara lozinka ključa za oporavak", + "New Recovery key password" : "Nova lozinka ključa za oporavak", + "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak", + "Change Password" : "Promijenite lozinku", + "Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", + "Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ako se ne sjećate svoje stare lozinke, možete zamoliti administratora da oporavi vaše datoteke.", + "Old log-in password" : "Stara lozinka za prijavu", + "Current log-in password" : "Aktualna lozinka za prijavu", + "Update Private Key Password" : "Ažurirajte lozinku privatnog ključa", + "Enable password recovery:" : "Omogućite oporavak lozinke:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama" +},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/hr.php b/apps/files_encryption/l10n/hr.php deleted file mode 100644 index a6a1f164b7f280d39647c2eab0bd1982f49c883f..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/hr.php +++ /dev/null @@ -1,44 +0,0 @@ - "Ključ za oporavak uspješno aktiviran", -"Could not enable recovery key. Please check your recovery key password!" => "Ključ za oporavak nije moguće aktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", -"Recovery key successfully disabled" => "Ključ za ooravak uspješno deaktiviran", -"Could not disable recovery key. Please check your recovery key password!" => "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", -"Password successfully changed." => "Lozinka uspješno promijenjena.", -"Could not change the password. Maybe the old password was not correct." => "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.", -"Private key password successfully updated." => "Lozinka privatnog ključa uspješno ažurirana.", -"Could not update the private key password. Maybe the old password was not correct." => "Lozinku privatnog ključa nije moguće promijeniti. Možda stara je stara lozinka bila neispravna.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", -"Unknown error. Please check your system settings or contact your administrator" => "Pogreška nepoznata. Molimo provjerite svoje sistemske postavke ili kontaktirajte svog administratora.", -"Missing requirements." => "Nedostaju preduvjeti.", -"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." => "Molimo osigurajte da je instaliran PHP 5.3.3 ili noviji i da je OpenSSL zajedno s PHP ekstenzijom propisno aktivirani konfiguriran. Za sada, aplikacija šifriranja je deaktivirana.", -"Following users are not set up for encryption:" => "Sljedeći korisnici nisu određeni za šifriranje:", -"Initial encryption started... This can take some time. Please wait." => "Počelo inicijalno šifriranje... To može potrajati neko vrijeme. Molimo, pričekajte.", -"Initial encryption running... Please try again later." => "Inicijalno šifriranje u tijeku... Molimo, pokušajte ponovno kasnije.", -"Go directly to your %spersonal settings%s." => "Idite izravno na svoje %sosobne postavke%s.", -"Encryption" => "Šifriranje", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):", -"Recovery key password" => "Lozinka ključa za oporavak", -"Repeat Recovery key password" => "Ponovite lozinku ključa za oporavak", -"Enabled" => "Aktivirano", -"Disabled" => "Onemogućeno", -"Change recovery key password:" => "Promijenite lozinku ključa za oporavak", -"Old Recovery key password" => "Stara lozinka ključa za oporavak", -"New Recovery key password" => "Nova lozinka ključa za oporavak", -"Repeat New Recovery key password" => "Ponovite novu lozinku ključa za oporavak", -"Change Password" => "Promijenite lozinku", -"Your private key password no longer matches your log-in password." => "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", -"Set your old private key password to your current log-in password:" => "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", -" If you don't remember your old password you can ask your administrator to recover your files." => "Ako se ne sjećate svoje stare lozinke, možete zamoliti administratora da oporavi vaše datoteke.", -"Old log-in password" => "Stara lozinka za prijavu", -"Current log-in password" => "Aktualna lozinka za prijavu", -"Update Private Key Password" => "Ažurirajte lozinku privatnog ključa", -"Enable password recovery:" => "Omogućite oporavak lozinke:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama", -"File recovery settings updated" => "Ažurirane postavke za oporavak datoteke", -"Could not update file recovery" => "Oporavak datoteke nije moguće ažurirati" -); -$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;"; diff --git a/apps/files_encryption/l10n/hu_HU.js b/apps/files_encryption/l10n/hu_HU.js new file mode 100644 index 0000000000000000000000000000000000000000..f30194e0578cf6d56b4dbec78790cf964719cd77 --- /dev/null +++ b/apps/files_encryption/l10n/hu_HU.js @@ -0,0 +1,40 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Ismeretlen hiba", + "Recovery key successfully enabled" : "A helyreállítási kulcs sikeresen bekapcsolva", + "Could not disable recovery key. Please check your recovery key password!" : "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!", + "Recovery key successfully disabled" : "A helyreállítási kulcs sikeresen kikapcsolva", + "Password successfully changed." : "A jelszót sikeresen megváltoztattuk.", + "Could not change the password. Maybe the old password was not correct." : "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.", + "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.", + "File recovery settings updated" : "A fájlhelyreállítási beállítások frissültek", + "Could not update file recovery" : "A fájlhelyreállítás nem frissíthető", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", + "Missing requirements." : "Hiányzó követelmények.", + "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." : "Kérem gondoskodjon arról, hogy PHP 5.3.3 vagy annál frissebb legyen telepítve, továbbá az OpenSSL a megfelelő PHP-bővítménnyel együtt rendelkezésre álljon és helyesen legyen konfigurálva! A titkosító modul egyelőre kikapcsolásra került.", + "Following users are not set up for encryption:" : "A következő felhasználók nem állították be a titkosítást:", + "Initial encryption started... This can take some time. Please wait." : "A titkosítási folyamat megkezdődött... Ez hosszabb ideig is eltarthat. Kérem várjon.", + "Initial encryption running... Please try again later." : "Kezedeti titkosítás fut... Próbálja később.", + "Encryption" : "Titkosítás", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", + "Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):", + "Recovery key password" : "A helyreállítási kulcs jelszava", + "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát", + "Enabled" : "Bekapcsolva", + "Disabled" : "Kikapcsolva", + "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", + "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava", + "New Recovery key password" : "Új Helyreállítási kulcs jelszava", + "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát", + "Change Password" : "Jelszó megváltoztatása", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", + "Old log-in password" : "Régi bejelentkezési jelszó", + "Current log-in password" : "Jelenlegi bejelentkezési jelszó", + "Update Private Key Password" : "A személyest kulcs jelszó frissítése", + "Enable password recovery:" : "Jelszó-visszaállítás bekapcsolása", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/hu_HU.json b/apps/files_encryption/l10n/hu_HU.json new file mode 100644 index 0000000000000000000000000000000000000000..510bf1992847713fb7bd2728c636039bf0c9be6f --- /dev/null +++ b/apps/files_encryption/l10n/hu_HU.json @@ -0,0 +1,38 @@ +{ "translations": { + "Unknown error" : "Ismeretlen hiba", + "Recovery key successfully enabled" : "A helyreállítási kulcs sikeresen bekapcsolva", + "Could not disable recovery key. Please check your recovery key password!" : "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!", + "Recovery key successfully disabled" : "A helyreállítási kulcs sikeresen kikapcsolva", + "Password successfully changed." : "A jelszót sikeresen megváltoztattuk.", + "Could not change the password. Maybe the old password was not correct." : "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.", + "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.", + "File recovery settings updated" : "A fájlhelyreállítási beállítások frissültek", + "Could not update file recovery" : "A fájlhelyreállítás nem frissíthető", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", + "Missing requirements." : "Hiányzó követelmények.", + "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." : "Kérem gondoskodjon arról, hogy PHP 5.3.3 vagy annál frissebb legyen telepítve, továbbá az OpenSSL a megfelelő PHP-bővítménnyel együtt rendelkezésre álljon és helyesen legyen konfigurálva! A titkosító modul egyelőre kikapcsolásra került.", + "Following users are not set up for encryption:" : "A következő felhasználók nem állították be a titkosítást:", + "Initial encryption started... This can take some time. Please wait." : "A titkosítási folyamat megkezdődött... Ez hosszabb ideig is eltarthat. Kérem várjon.", + "Initial encryption running... Please try again later." : "Kezedeti titkosítás fut... Próbálja később.", + "Encryption" : "Titkosítás", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", + "Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):", + "Recovery key password" : "A helyreállítási kulcs jelszava", + "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát", + "Enabled" : "Bekapcsolva", + "Disabled" : "Kikapcsolva", + "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", + "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava", + "New Recovery key password" : "Új Helyreállítási kulcs jelszava", + "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát", + "Change Password" : "Jelszó megváltoztatása", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", + "Old log-in password" : "Régi bejelentkezési jelszó", + "Current log-in password" : "Jelenlegi bejelentkezési jelszó", + "Update Private Key Password" : "A személyest kulcs jelszó frissítése", + "Enable password recovery:" : "Jelszó-visszaállítás bekapcsolása", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php deleted file mode 100644 index 6cb781af49e900da22245c8478fa5d9550cbe8bc..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/hu_HU.php +++ /dev/null @@ -1,40 +0,0 @@ - "A helyreállítási kulcs sikeresen bekapcsolva", -"Could not enable recovery key. Please check your recovery key password!" => "A helyreállítási kulcsot nem lehetett engedélyezni. Ellenőrizze a helyreállítási kulcsa jelszavát!", -"Recovery key successfully disabled" => "A helyreállítási kulcs sikeresen kikapcsolva", -"Could not disable recovery key. Please check your recovery key password!" => "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!", -"Password successfully changed." => "A jelszót sikeresen megváltoztattuk.", -"Could not change the password. Maybe the old password was not correct." => "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.", -"Private key password successfully updated." => "A személyes kulcsának jelszava frissítésre került.", -"Could not update the private key password. Maybe the old password was not correct." => "A személyes kulcsa jelszavát nem lehetett frissíteni. Lehet, hogy hibás volt a régi jelszó.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", -"Missing requirements." => "Hiányzó követelmények.", -"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." => "Kérem gondoskodjon arról, hogy PHP 5.3.3 vagy annál frissebb legyen telepítve, továbbá az OpenSSL a megfelelő PHP-bővítménnyel együtt rendelkezésre álljon és helyesen legyen konfigurálva! A titkosító modul egyelőre kikapcsolásra került.", -"Following users are not set up for encryption:" => "A következő felhasználók nem állították be a titkosítást:", -"Initial encryption started... This can take some time. Please wait." => "A titkosítási folyamat megkezdődött... Ez hosszabb ideig is eltarthat. Kérem várjon.", -"Initial encryption running... Please try again later." => "Kezedeti titkosítás fut... Próbálja később.", -"Encryption" => "Titkosítás", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", -"Enable recovery key (allow to recover users files in case of password loss):" => "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):", -"Recovery key password" => "A helyreállítási kulcs jelszava", -"Repeat Recovery key password" => "Ismételje meg a helyreállítási kulcs jelszavát", -"Enabled" => "Bekapcsolva", -"Disabled" => "Kikapcsolva", -"Change recovery key password:" => "A helyreállítási kulcs jelszavának módosítása:", -"Old Recovery key password" => "Régi Helyreállítási Kulcs Jelszava", -"New Recovery key password" => "Új Helyreállítási kulcs jelszava", -"Repeat New Recovery key password" => "Ismételje meg az új helyreállítási kulcs jelszavát", -"Change Password" => "Jelszó megváltoztatása", -" If you don't remember your old password you can ask your administrator to recover your files." => "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", -"Old log-in password" => "Régi bejelentkezési jelszó", -"Current log-in password" => "Jelenlegi bejelentkezési jelszó", -"Update Private Key Password" => "A személyest kulcs jelszó frissítése", -"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát", -"File recovery settings updated" => "A fájlhelyreállítási beállítások frissültek", -"Could not update file recovery" => "A fájlhelyreállítás nem frissíthető" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/ia.js b/apps/files_encryption/l10n/ia.js new file mode 100644 index 0000000000000000000000000000000000000000..5d480be507c390af887c0f59210d06470b55dd43 --- /dev/null +++ b/apps/files_encryption/l10n/ia.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Error Incognite" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ia.json b/apps/files_encryption/l10n/ia.json new file mode 100644 index 0000000000000000000000000000000000000000..de701b407d038260ee9398b72ed1b1a70bd91ecc --- /dev/null +++ b/apps/files_encryption/l10n/ia.json @@ -0,0 +1,4 @@ +{ "translations": { + "Unknown error" : "Error Incognite" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/id.js b/apps/files_encryption/l10n/id.js new file mode 100644 index 0000000000000000000000000000000000000000..805d78784366327230d6e550041cd77c8dbe09ca --- /dev/null +++ b/apps/files_encryption/l10n/id.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Kesalahan tidak diketahui", + "Missing recovery key password" : "Sandi kunci pemuliahan hilang", + "Please repeat the recovery key password" : "Silakan ulangi sandi kunci pemulihan", + "Repeated recovery key password does not match the provided recovery key password" : "Sandi kunci pemulihan yang diulangi tidak cocok dengan sandi kunci pemulihan yang diberikan", + "Recovery key successfully enabled" : "Kunci pemulihan berhasil diaktifkan", + "Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", + "Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan", + "Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama", + "Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru", + "Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru", + "Password successfully changed." : "Sandi berhasil diubah", + "Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", + "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.", + "File recovery settings updated" : "Pengaturan pemulihan berkas diperbarui", + "Could not update file recovery" : "Tidak dapat memperbarui pemulihan berkas", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikasi enkripsi tidak dimulai! Kemungkinan aplikasi enkripsi telah diaktifkan ulang saat sesi Anda. Silakan coba untuk keluar dan kembali lagi untuk memulai aplikasi enkripsi.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Kunci private Anda tidak sah! Nampaknya sandi Anda telah diubah diluar %s (misal direktori perusahaan Anda). Anda dapat memperbarui sandi kunci private untuk memulihakan akses ke berkas terenkripsi Anda.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", + "Unknown error. Please check your system settings or contact your administrator" : "Kesalahan tidak diketahui. Silakan periksa pengaturan sistem Anda atau hubungi administrator", + "Missing requirements." : "Persyaratan tidak terpenuhi.", + "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." : "Pastikan bahwa PHP 5.3.3 atau yang lebih baru telah diinstal dan OpenSSL bersama ekstensi PHP telah diaktifkan dan dikonfigurasi dengan benar. Untuk saat ini, aplikasi enkripsi akan dinonaktifkan.", + "Following users are not set up for encryption:" : "Pengguna berikut belum diatur untuk enkripsi:", + "Initial encryption started... This can take some time. Please wait." : "Enskripsi awal dijalankan... Ini dapat memakan waktu. Silakan tunggu.", + "Initial encryption running... Please try again later." : "Enkripsi awal sedang berjalan... Sialakn coba lagi nanti.", + "Go directly to your %spersonal settings%s." : "Langsung ke %spengaturan pribadi%s Anda.", + "Encryption" : "Enkripsi", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):", + "Recovery key password" : "Sandi kunci pemulihan", + "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan", + "Enabled" : "Diaktifkan", + "Disabled" : "Dinonaktifkan", + "Change recovery key password:" : "Ubah sandi kunci pemulihan:", + "Old Recovery key password" : "Sandi kunci Pemulihan Lama", + "New Recovery key password" : "Sandi kunci Pemulihan Baru", + "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru", + "Change Password" : "Ubah sandi", + "Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.", + "Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", + "Old log-in password" : "Sandi masuk yang lama", + "Current log-in password" : "Sandi masuk saat ini", + "Update Private Key Password" : "Perbarui Sandi Kunci Privat", + "Enable password recovery:" : "Aktifkan sandi pemulihan:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/id.json b/apps/files_encryption/l10n/id.json new file mode 100644 index 0000000000000000000000000000000000000000..826ebdba373ae79109a9dca8134b9be363e7f0b3 --- /dev/null +++ b/apps/files_encryption/l10n/id.json @@ -0,0 +1,48 @@ +{ "translations": { + "Unknown error" : "Kesalahan tidak diketahui", + "Missing recovery key password" : "Sandi kunci pemuliahan hilang", + "Please repeat the recovery key password" : "Silakan ulangi sandi kunci pemulihan", + "Repeated recovery key password does not match the provided recovery key password" : "Sandi kunci pemulihan yang diulangi tidak cocok dengan sandi kunci pemulihan yang diberikan", + "Recovery key successfully enabled" : "Kunci pemulihan berhasil diaktifkan", + "Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", + "Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan", + "Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama", + "Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru", + "Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru", + "Password successfully changed." : "Sandi berhasil diubah", + "Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", + "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.", + "File recovery settings updated" : "Pengaturan pemulihan berkas diperbarui", + "Could not update file recovery" : "Tidak dapat memperbarui pemulihan berkas", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikasi enkripsi tidak dimulai! Kemungkinan aplikasi enkripsi telah diaktifkan ulang saat sesi Anda. Silakan coba untuk keluar dan kembali lagi untuk memulai aplikasi enkripsi.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Kunci private Anda tidak sah! Nampaknya sandi Anda telah diubah diluar %s (misal direktori perusahaan Anda). Anda dapat memperbarui sandi kunci private untuk memulihakan akses ke berkas terenkripsi Anda.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", + "Unknown error. Please check your system settings or contact your administrator" : "Kesalahan tidak diketahui. Silakan periksa pengaturan sistem Anda atau hubungi administrator", + "Missing requirements." : "Persyaratan tidak terpenuhi.", + "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." : "Pastikan bahwa PHP 5.3.3 atau yang lebih baru telah diinstal dan OpenSSL bersama ekstensi PHP telah diaktifkan dan dikonfigurasi dengan benar. Untuk saat ini, aplikasi enkripsi akan dinonaktifkan.", + "Following users are not set up for encryption:" : "Pengguna berikut belum diatur untuk enkripsi:", + "Initial encryption started... This can take some time. Please wait." : "Enskripsi awal dijalankan... Ini dapat memakan waktu. Silakan tunggu.", + "Initial encryption running... Please try again later." : "Enkripsi awal sedang berjalan... Sialakn coba lagi nanti.", + "Go directly to your %spersonal settings%s." : "Langsung ke %spengaturan pribadi%s Anda.", + "Encryption" : "Enkripsi", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):", + "Recovery key password" : "Sandi kunci pemulihan", + "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan", + "Enabled" : "Diaktifkan", + "Disabled" : "Dinonaktifkan", + "Change recovery key password:" : "Ubah sandi kunci pemulihan:", + "Old Recovery key password" : "Sandi kunci Pemulihan Lama", + "New Recovery key password" : "Sandi kunci Pemulihan Baru", + "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru", + "Change Password" : "Ubah sandi", + "Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.", + "Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", + "Old log-in password" : "Sandi masuk yang lama", + "Current log-in password" : "Sandi masuk saat ini", + "Update Private Key Password" : "Perbarui Sandi Kunci Privat", + "Enable password recovery:" : "Aktifkan sandi pemulihan:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/id.php b/apps/files_encryption/l10n/id.php deleted file mode 100644 index 868b9cabfa12dfcc89ac3858b3e1eb81a6d80484..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/id.php +++ /dev/null @@ -1,36 +0,0 @@ - "Kunci pemulihan berhasil diaktifkan", -"Could not enable recovery key. Please check your recovery key password!" => "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", -"Recovery key successfully disabled" => "Kunci pemulihan berhasil dinonaktifkan", -"Could not disable recovery key. Please check your recovery key password!" => "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", -"Password successfully changed." => "Sandi berhasil diubah", -"Could not change the password. Maybe the old password was not correct." => "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", -"Private key password successfully updated." => "Sandi kunci privat berhasil diperbarui.", -"Could not update the private key password. Maybe the old password was not correct." => "Tidak dapat memperbarui sandi kunci privat. Kemungkinan sandi lama yang Anda masukkan salah.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", -"Missing requirements." => "Persyaratan yang hilang.", -"Following users are not set up for encryption:" => "Pengguna berikut belum diatur untuk enkripsi:", -"Initial encryption started... This can take some time. Please wait." => "Inisial enskripsi dijalankan... Ini dapat memakan waktu. Silakan tunggu.", -"Encryption" => "Enkripsi", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):", -"Recovery key password" => "Sandi kunci pemulihan", -"Repeat Recovery key password" => "Ulangi sandi kunci Pemulihan", -"Enabled" => "Diaktifkan", -"Disabled" => "Dinonaktifkan", -"Change recovery key password:" => "Ubah sandi kunci pemulihan:", -"Old Recovery key password" => "Sandi kunci Pemulihan Lama", -"New Recovery key password" => "Sandi kunci Pemulihan Baru", -"Repeat New Recovery key password" => "Ulangi sandi kunci Pemulihan baru", -"Change Password" => "Ubah sandi", -" If you don't remember your old password you can ask your administrator to recover your files." => "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", -"Old log-in password" => "Sandi masuk yang lama", -"Current log-in password" => "Sandi masuk saat ini", -"Update Private Key Password" => "Perbarui Sandi Kunci Privat", -"Enable password recovery:" => "Aktifkan sandi pemulihan:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi", -"File recovery settings updated" => "Pengaturan pemulihan berkas diperbarui", -"Could not update file recovery" => "Tidak dapat memperbarui pemulihan berkas" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/is.js b/apps/files_encryption/l10n/is.js new file mode 100644 index 0000000000000000000000000000000000000000..8dfc249683e21983e297dc99d35b018e7d64eef8 --- /dev/null +++ b/apps/files_encryption/l10n/is.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Encryption" : "Dulkóðun" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/is.json b/apps/files_encryption/l10n/is.json new file mode 100644 index 0000000000000000000000000000000000000000..b4d4708f404ebce837ff30b29a95abd1fd9ce982 --- /dev/null +++ b/apps/files_encryption/l10n/is.json @@ -0,0 +1,4 @@ +{ "translations": { + "Encryption" : "Dulkóðun" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/is.php b/apps/files_encryption/l10n/is.php deleted file mode 100644 index 7b7a403b4605920408f369d6e02fcc7bcf2e0382..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/is.php +++ /dev/null @@ -1,5 +0,0 @@ - "Dulkóðun" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/it.js b/apps/files_encryption/l10n/it.js new file mode 100644 index 0000000000000000000000000000000000000000..d253dae8f687bad95a5d695a4c5fc2e549b0634d --- /dev/null +++ b/apps/files_encryption/l10n/it.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Errore sconosciuto", + "Missing recovery key password" : "Manca la password della chiave di recupero", + "Please repeat the recovery key password" : "Ripeti la password della chiave di recupero", + "Repeated recovery key password does not match the provided recovery key password" : "La password della chiave di recupero ripetuta non corrisponde alla password della chiave di recupero fornita", + "Recovery key successfully enabled" : "Chiave di recupero abilitata correttamente", + "Could not disable recovery key. Please check your recovery key password!" : "Impossibile disabilitare la chiave di recupero. Verifica la password della chiave di recupero.", + "Recovery key successfully disabled" : "Chiave di recupero disabilitata correttamente", + "Please provide the old recovery password" : "Fornisci la vecchia password di recupero", + "Please provide a new recovery password" : "Fornisci una nuova password di recupero", + "Please repeat the new recovery password" : "Ripeti la nuova password di recupero", + "Password successfully changed." : "Password modificata correttamente.", + "Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.", + "Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.", + "The old password was not correct, please try again." : "La vecchia password non era corretta, prova di nuovo.", + "The current log-in password was not correct, please try again." : "La password di accesso attuale non era corretta, prova ancora.", + "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.", + "File recovery settings updated" : "Impostazioni di ripristino dei file aggiornate", + "Could not update file recovery" : "Impossibile aggiornare il ripristino dei file", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Applicazione di cifratura non inizializzata. Forse l'applicazione è stata riabilitata durante la tua sessione. Prova a disconnetterti e ad effettuare nuovamente l'accesso per inizializzarla.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La tua chiave privata non è valida! Forse la password è stata cambiata al di fuori di %s (ad es. la directory aziendale). Puoi aggiornare la password della chiave privata nelle impostazioni personali per ottenere nuovamente l'accesso ai file cifrati.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", + "Unknown error. Please check your system settings or contact your administrator" : "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore", + "Missing requirements." : "Requisiti mancanti.", + "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." : "Assicurati che sia installato PHP 5.3.3 o versioni successive e che l'estensione OpenSSL di PHP sia abilitata e configurata correttamente. Per ora, l'applicazione di cifratura è disabilitata.", + "Following users are not set up for encryption:" : "I seguenti utenti non sono configurati per la cifratura:", + "Initial encryption started... This can take some time. Please wait." : "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.", + "Initial encryption running... Please try again later." : "Cifratura iniziale in esecuzione... Riprova più tardi.", + "Go directly to your %spersonal settings%s." : "Vai direttamente alle tue %simpostazioni personali%s.", + "Encryption" : "Cifratura", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", + "Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):", + "Recovery key password" : "Password della chiave di recupero", + "Repeat Recovery key password" : "Ripeti la password della chiave di recupero", + "Enabled" : "Abilitata", + "Disabled" : "Disabilitata", + "Change recovery key password:" : "Cambia la password della chiave di recupero:", + "Old Recovery key password" : "Vecchia password della chiave di recupero", + "New Recovery key password" : "Nuova password della chiave di recupero", + "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero", + "Change Password" : "Modifica password", + "Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.", + "Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", + "Old log-in password" : "Vecchia password di accesso", + "Current log-in password" : "Password di accesso attuale", + "Update Private Key Password" : "Aggiorna la password della chiave privata", + "Enable password recovery:" : "Abilita il ripristino della password:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/it.json b/apps/files_encryption/l10n/it.json new file mode 100644 index 0000000000000000000000000000000000000000..d5257715faa8d34cc3bf736c110f438771d8881c --- /dev/null +++ b/apps/files_encryption/l10n/it.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Errore sconosciuto", + "Missing recovery key password" : "Manca la password della chiave di recupero", + "Please repeat the recovery key password" : "Ripeti la password della chiave di recupero", + "Repeated recovery key password does not match the provided recovery key password" : "La password della chiave di recupero ripetuta non corrisponde alla password della chiave di recupero fornita", + "Recovery key successfully enabled" : "Chiave di recupero abilitata correttamente", + "Could not disable recovery key. Please check your recovery key password!" : "Impossibile disabilitare la chiave di recupero. Verifica la password della chiave di recupero.", + "Recovery key successfully disabled" : "Chiave di recupero disabilitata correttamente", + "Please provide the old recovery password" : "Fornisci la vecchia password di recupero", + "Please provide a new recovery password" : "Fornisci una nuova password di recupero", + "Please repeat the new recovery password" : "Ripeti la nuova password di recupero", + "Password successfully changed." : "Password modificata correttamente.", + "Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.", + "Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.", + "The old password was not correct, please try again." : "La vecchia password non era corretta, prova di nuovo.", + "The current log-in password was not correct, please try again." : "La password di accesso attuale non era corretta, prova ancora.", + "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.", + "File recovery settings updated" : "Impostazioni di ripristino dei file aggiornate", + "Could not update file recovery" : "Impossibile aggiornare il ripristino dei file", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Applicazione di cifratura non inizializzata. Forse l'applicazione è stata riabilitata durante la tua sessione. Prova a disconnetterti e ad effettuare nuovamente l'accesso per inizializzarla.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La tua chiave privata non è valida! Forse la password è stata cambiata al di fuori di %s (ad es. la directory aziendale). Puoi aggiornare la password della chiave privata nelle impostazioni personali per ottenere nuovamente l'accesso ai file cifrati.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", + "Unknown error. Please check your system settings or contact your administrator" : "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore", + "Missing requirements." : "Requisiti mancanti.", + "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." : "Assicurati che sia installato PHP 5.3.3 o versioni successive e che l'estensione OpenSSL di PHP sia abilitata e configurata correttamente. Per ora, l'applicazione di cifratura è disabilitata.", + "Following users are not set up for encryption:" : "I seguenti utenti non sono configurati per la cifratura:", + "Initial encryption started... This can take some time. Please wait." : "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.", + "Initial encryption running... Please try again later." : "Cifratura iniziale in esecuzione... Riprova più tardi.", + "Go directly to your %spersonal settings%s." : "Vai direttamente alle tue %simpostazioni personali%s.", + "Encryption" : "Cifratura", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", + "Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):", + "Recovery key password" : "Password della chiave di recupero", + "Repeat Recovery key password" : "Ripeti la password della chiave di recupero", + "Enabled" : "Abilitata", + "Disabled" : "Disabilitata", + "Change recovery key password:" : "Cambia la password della chiave di recupero:", + "Old Recovery key password" : "Vecchia password della chiave di recupero", + "New Recovery key password" : "Nuova password della chiave di recupero", + "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero", + "Change Password" : "Modifica password", + "Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.", + "Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", + "Old log-in password" : "Vecchia password di accesso", + "Current log-in password" : "Password di accesso attuale", + "Update Private Key Password" : "Aggiorna la password della chiave privata", + "Enable password recovery:" : "Abilita il ripristino della password:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/it.php b/apps/files_encryption/l10n/it.php deleted file mode 100644 index 01f31c8106dc25764274f712a5206a7ab68f6521..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/it.php +++ /dev/null @@ -1,44 +0,0 @@ - "Chiave di ripristino abilitata correttamente", -"Could not enable recovery key. Please check your recovery key password!" => "Impossibile abilitare la chiave di ripristino. Verifica la password della chiave di ripristino.", -"Recovery key successfully disabled" => "Chiave di ripristinata disabilitata correttamente", -"Could not disable recovery key. Please check your recovery key password!" => "Impossibile disabilitare la chiave di ripristino. Verifica la password della chiave di ripristino.", -"Password successfully changed." => "Password modificata correttamente.", -"Could not change the password. Maybe the old password was not correct." => "Impossibile cambiare la password. Forse la vecchia password non era corretta.", -"Private key password successfully updated." => "Password della chiave privata aggiornata correttamente.", -"Could not update the private key password. Maybe the old password was not correct." => "Impossibile aggiornare la password della chiave privata. Forse la vecchia password non era corretta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Applicazione di cifratura non inizializzata. Forse l'applicazione è stata riabilitata durante la tua sessione. Prova a disconnetterti e ad effettuare nuovamente l'accesso per inizializzarla.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "La tua chiave privata non è valida! Forse la password è stata cambiata al di fuori di %s (ad es. la directory aziendale). Puoi aggiornare la password della chiave privata nelle impostazioni personali per ottenere nuovamente l'accesso ai file cifrati.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", -"Unknown error. Please check your system settings or contact your administrator" => "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore", -"Missing requirements." => "Requisiti mancanti.", -"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." => "Assicurati che sia installato PHP 5.3.3 o versioni successive e che l'estensione OpenSSL di PHP sia abilitata e configurata correttamente. Per ora, l'applicazione di cifratura è disabilitata.", -"Following users are not set up for encryption:" => "I seguenti utenti non sono configurati per la cifratura:", -"Initial encryption started... This can take some time. Please wait." => "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.", -"Initial encryption running... Please try again later." => "Cifratura iniziale in esecuzione... Riprova più tardi.", -"Go directly to your %spersonal settings%s." => "Vai direttamente alle tue %simpostazioni personali%s.", -"Encryption" => "Cifratura", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", -"Enable recovery key (allow to recover users files in case of password loss):" => "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):", -"Recovery key password" => "Password della chiave di recupero", -"Repeat Recovery key password" => "Ripeti la password della chiave di recupero", -"Enabled" => "Abilitata", -"Disabled" => "Disabilitata", -"Change recovery key password:" => "Cambia la password della chiave di recupero:", -"Old Recovery key password" => "Vecchia password della chiave di recupero", -"New Recovery key password" => "Nuova password della chiave di recupero", -"Repeat New Recovery key password" => "Ripeti la nuova password della chiave di recupero", -"Change Password" => "Modifica password", -"Your private key password no longer matches your log-in password." => "La password della chiave privata non corrisponde più alla password di accesso.", -"Set your old private key password to your current log-in password:" => "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", -"Old log-in password" => "Vecchia password di accesso", -"Current log-in password" => "Password di accesso attuale", -"Update Private Key Password" => "Aggiorna la password della chiave privata", -"Enable password recovery:" => "Abilita il ripristino della password:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password", -"File recovery settings updated" => "Impostazioni di ripristino dei file aggiornate", -"Could not update file recovery" => "Impossibile aggiornare il ripristino dei file" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/ja.js b/apps/files_encryption/l10n/ja.js new file mode 100644 index 0000000000000000000000000000000000000000..a21870de7c2979ada16cd8b3a6a84fe38f611420 --- /dev/null +++ b/apps/files_encryption/l10n/ja.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "不明なエラー", + "Missing recovery key password" : "復旧キーのパスワードがありません", + "Please repeat the recovery key password" : "復旧キーのパスワードをもう一度入力", + "Repeated recovery key password does not match the provided recovery key password" : "入力された復旧キーのパスワードが一致しません。", + "Recovery key successfully enabled" : "リカバリ用のキーを正常に有効にしました", + "Could not disable recovery key. Please check your recovery key password!" : "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!", + "Recovery key successfully disabled" : "リカバリ用のキーを正常に無効化しました", + "Please provide the old recovery password" : "古い復旧キーのパスワードを入力", + "Please provide a new recovery password" : "新しい復旧キーのパスワードを入力", + "Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力", + "Password successfully changed." : "パスワードを変更できました。", + "Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", + "Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。", + "The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。", + "The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。", + "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。", + "File recovery settings updated" : "ファイルリカバリ設定を更新しました", + "Could not update file recovery" : "ファイルリカバリを更新できませんでした", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "セッション中に暗号化アプリを再度有効にされたため、暗号化アプリが初期化されていません。暗号化アプリを初期化するため、ログアウトしてログインしなおしてください。", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", + "Unknown error. Please check your system settings or contact your administrator" : "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。", + "Missing requirements." : "必要要件が満たされていません。", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "必ず、PHP 5.3.3もしくはそれ以上をインストールし、同時にOpenSSLのPHP拡張を有効にした上でOpenSSLも同様にインストール、適切に設定してください。現時点では暗号化アプリは無効になっています。", + "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 %spersonal settings%s." : "直接 %s個人設定%s に進む。", + "Encryption" : "暗号化", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", + "Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):", + "Recovery key password" : "リカバリキーのパスワード", + "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力", + "Enabled" : "有効", + "Disabled" : "無効", + "Change recovery key password:" : "リカバリキーのパスワードを変更:", + "Old Recovery key password" : "古いリカバリキーのパスワード", + "New Recovery key password" : "新しいリカバリキーのパスワード", + "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力", + "Change Password" : "パスワードを変更", + "Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。", + "Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:", + " If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", + "Old log-in password" : "古いログインパスワード", + "Current log-in password" : "現在のログインパスワード", + "Update Private Key Password" : "秘密鍵のパスワードを更新", + "Enable password recovery:" : "パスワードリカバリを有効に:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ja.json b/apps/files_encryption/l10n/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..d689ca954d015568880ae2241a51a2cd50d70bfe --- /dev/null +++ b/apps/files_encryption/l10n/ja.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "不明なエラー", + "Missing recovery key password" : "復旧キーのパスワードがありません", + "Please repeat the recovery key password" : "復旧キーのパスワードをもう一度入力", + "Repeated recovery key password does not match the provided recovery key password" : "入力された復旧キーのパスワードが一致しません。", + "Recovery key successfully enabled" : "リカバリ用のキーを正常に有効にしました", + "Could not disable recovery key. Please check your recovery key password!" : "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!", + "Recovery key successfully disabled" : "リカバリ用のキーを正常に無効化しました", + "Please provide the old recovery password" : "古い復旧キーのパスワードを入力", + "Please provide a new recovery password" : "新しい復旧キーのパスワードを入力", + "Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力", + "Password successfully changed." : "パスワードを変更できました。", + "Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", + "Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。", + "The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。", + "The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。", + "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。", + "File recovery settings updated" : "ファイルリカバリ設定を更新しました", + "Could not update file recovery" : "ファイルリカバリを更新できませんでした", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "セッション中に暗号化アプリを再度有効にされたため、暗号化アプリが初期化されていません。暗号化アプリを初期化するため、ログアウトしてログインしなおしてください。", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", + "Unknown error. Please check your system settings or contact your administrator" : "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。", + "Missing requirements." : "必要要件が満たされていません。", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "必ず、PHP 5.3.3もしくはそれ以上をインストールし、同時にOpenSSLのPHP拡張を有効にした上でOpenSSLも同様にインストール、適切に設定してください。現時点では暗号化アプリは無効になっています。", + "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 %spersonal settings%s." : "直接 %s個人設定%s に進む。", + "Encryption" : "暗号化", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", + "Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):", + "Recovery key password" : "リカバリキーのパスワード", + "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力", + "Enabled" : "有効", + "Disabled" : "無効", + "Change recovery key password:" : "リカバリキーのパスワードを変更:", + "Old Recovery key password" : "古いリカバリキーのパスワード", + "New Recovery key password" : "新しいリカバリキーのパスワード", + "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力", + "Change Password" : "パスワードを変更", + "Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。", + "Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:", + " If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", + "Old log-in password" : "古いログインパスワード", + "Current log-in password" : "現在のログインパスワード", + "Update Private Key Password" : "秘密鍵のパスワードを更新", + "Enable password recovery:" : "パスワードリカバリを有効に:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ja.php b/apps/files_encryption/l10n/ja.php deleted file mode 100644 index e9950b3ac972a1f4a313c79eac8bcb0283117154..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ja.php +++ /dev/null @@ -1,44 +0,0 @@ - "リカバリ用のキーを正常に有効にしました", -"Could not enable recovery key. Please check your recovery key password!" => "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認してください!", -"Recovery key successfully disabled" => "リカバリ用のキーを正常に無効化しました", -"Could not disable recovery key. Please check your recovery key password!" => "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!", -"Password successfully changed." => "パスワードを変更できました。", -"Could not change the password. Maybe the old password was not correct." => "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", -"Private key password successfully updated." => "秘密鍵のパスワードが正常に更新されました。", -"Could not update the private key password. Maybe the old password was not correct." => "秘密鍵のパスワードを更新できませんでした。古いパスワードが正確でない場合があります。", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "セッション中に暗号化アプリを再度有効にされたため、暗号化アプリが初期化されていません。暗号化アプリを初期化するため、ログアウトしてログインしなおしてください。", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", -"Unknown error. Please check your system settings or contact your administrator" => "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。", -"Missing requirements." => "必要要件が満たされていません。", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "必ず、PHP 5.3.3もしくはそれ以上をインストールし、同時にOpenSSLのPHP拡張を有効にした上でOpenSSLも同様にインストール、適切に設定してください。現時点では暗号化アプリは無効になっています。", -"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 %spersonal settings%s." => "直接 %s個人設定%s に進む。", -"Encryption" => "暗号化", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", -"Enable recovery key (allow to recover users files in case of password loss):" => "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):", -"Recovery key password" => "リカバリキーのパスワード", -"Repeat Recovery key password" => "リカバリキーのパスワードをもう一度入力", -"Enabled" => "有効", -"Disabled" => "無効", -"Change recovery key password:" => "リカバリキーのパスワードを変更:", -"Old Recovery key password" => "古いリカバリキーのパスワード", -"New Recovery key password" => "新しいリカバリキーのパスワード", -"Repeat New Recovery key password" => "新しいリカバリキーのパスワードをもう一度入力", -"Change Password" => "パスワードを変更", -"Your private key password no longer matches your log-in password." => "もはや秘密鍵はログインパスワードと一致しません。", -"Set your old private key password to your current log-in password:" => "古い秘密鍵のパスワードを現在のログインパスワードに設定:", -" If you don't remember your old password you can ask your administrator to recover your files." => "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", -"Old log-in password" => "古いログインパスワード", -"Current log-in password" => "現在のログインパスワード", -"Update Private Key Password" => "秘密鍵のパスワードを更新", -"Enable password recovery:" => "パスワードリカバリを有効に:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。", -"File recovery settings updated" => "ファイルリカバリ設定を更新しました", -"Could not update file recovery" => "ファイルリカバリを更新できませんでした" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/ka_GE.js b/apps/files_encryption/l10n/ka_GE.js new file mode 100644 index 0000000000000000000000000000000000000000..cf8468d2191f26bfe4478955ef576119cf514502 --- /dev/null +++ b/apps/files_encryption/l10n/ka_GE.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "უცნობი შეცდომა", + "Encryption" : "ენკრიპცია" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ka_GE.json b/apps/files_encryption/l10n/ka_GE.json new file mode 100644 index 0000000000000000000000000000000000000000..90cbc551f46bfd17920f621c2f9c8ae16dfca8e1 --- /dev/null +++ b/apps/files_encryption/l10n/ka_GE.json @@ -0,0 +1,5 @@ +{ "translations": { + "Unknown error" : "უცნობი შეცდომა", + "Encryption" : "ენკრიპცია" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ka_GE.php b/apps/files_encryption/l10n/ka_GE.php deleted file mode 100644 index d063463477868383a0ca599d835775381e70ba82..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ka_GE.php +++ /dev/null @@ -1,5 +0,0 @@ - "ენკრიპცია" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/km.js b/apps/files_encryption/l10n/km.js new file mode 100644 index 0000000000000000000000000000000000000000..0fb88f52ef75444c78986de177c2918a600b2dcc --- /dev/null +++ b/apps/files_encryption/l10n/km.js @@ -0,0 +1,12 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "មិន​ស្គាល់​កំហុស", + "Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។", + "Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។", + "Encryption" : "កូដនីយកម្ម", + "Enabled" : "បាន​បើក", + "Disabled" : "បាន​បិទ", + "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/km.json b/apps/files_encryption/l10n/km.json new file mode 100644 index 0000000000000000000000000000000000000000..7a68cc58584e9f05459d373f7db6ef44c4cfd63b --- /dev/null +++ b/apps/files_encryption/l10n/km.json @@ -0,0 +1,10 @@ +{ "translations": { + "Unknown error" : "មិន​ស្គាល់​កំហុស", + "Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។", + "Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។", + "Encryption" : "កូដនីយកម្ម", + "Enabled" : "បាន​បើក", + "Disabled" : "បាន​បិទ", + "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/km.php b/apps/files_encryption/l10n/km.php deleted file mode 100644 index e095f96faa39ab0e9bb796779dcc782b172d053a..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/km.php +++ /dev/null @@ -1,10 +0,0 @@ - "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។", -"Could not change the password. Maybe the old password was not correct." => "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។", -"Encryption" => "កូដនីយកម្ម", -"Enabled" => "បាន​បើក", -"Disabled" => "បាន​បិទ", -"Change Password" => "ប្ដូរ​ពាក្យ​សម្ងាត់" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/ko.js b/apps/files_encryption/l10n/ko.js new file mode 100644 index 0000000000000000000000000000000000000000..223fe99f99068d7a406427a5330322aed4479331 --- /dev/null +++ b/apps/files_encryption/l10n/ko.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "알 수 없는 오류", + "Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다", + "Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해주세요!", + "Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다", + "Password successfully changed." : "암호가 성공적으로 변경되었습니다", + "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", + "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 됨.", + "File recovery settings updated" : "파일 복구 설정 업데이트됨", + "Could not update file recovery" : "파일 복구를 업데이트할 수 없습니다", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "개인 키가 올바르지 않습니다! 암호가 %s(예: 회사 디렉터리) 외부에서 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", + "Missing requirements." : "요구 사항이 부족합니다.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "PHP 5.3.3 이상 설치 여부, PHP의 OpenSSL 확장 기능 활성화 및 설정 여부를 확인하십시오. 암호화 앱이 비활성화 되었습니다.", + "Following users are not set up for encryption:" : "다음 사용자는 암호화를 사용할 수 없습니다:", + "Initial encryption started... This can take some time. Please wait." : "초기 암호화가 시작되었습니다... 시간이 걸릴 수도 있으니 기다려 주십시오.", + "Encryption" : "암호화", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):", + "Recovery key password" : "복구 키 암호", + "Repeat Recovery key password" : "복구 키 암호 재입력", + "Enabled" : "활성화", + "Disabled" : "비활성화", + "Change recovery key password:" : "복구 키 암호 변경:", + "Old Recovery key password" : "이전 복구 키 암호", + "New Recovery key password" : "새 복구 키 암호", + "Repeat New Recovery key password" : "새 복구 키 암호 재입력", + "Change Password" : "암호 변경", + " If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", + "Old log-in password" : "이전 로그인 암호", + "Current log-in password" : "현재 로그인 암호", + "Update Private Key Password" : "개인 키 암호 업데이트", + "Enable password recovery:" : "암호 복구 사용:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ko.json b/apps/files_encryption/l10n/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..bb5ff7df70ccaef6b206793e432c788e4242b31d --- /dev/null +++ b/apps/files_encryption/l10n/ko.json @@ -0,0 +1,37 @@ +{ "translations": { + "Unknown error" : "알 수 없는 오류", + "Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다", + "Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해주세요!", + "Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다", + "Password successfully changed." : "암호가 성공적으로 변경되었습니다", + "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", + "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 됨.", + "File recovery settings updated" : "파일 복구 설정 업데이트됨", + "Could not update file recovery" : "파일 복구를 업데이트할 수 없습니다", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "개인 키가 올바르지 않습니다! 암호가 %s(예: 회사 디렉터리) 외부에서 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", + "Missing requirements." : "요구 사항이 부족합니다.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "PHP 5.3.3 이상 설치 여부, PHP의 OpenSSL 확장 기능 활성화 및 설정 여부를 확인하십시오. 암호화 앱이 비활성화 되었습니다.", + "Following users are not set up for encryption:" : "다음 사용자는 암호화를 사용할 수 없습니다:", + "Initial encryption started... This can take some time. Please wait." : "초기 암호화가 시작되었습니다... 시간이 걸릴 수도 있으니 기다려 주십시오.", + "Encryption" : "암호화", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):", + "Recovery key password" : "복구 키 암호", + "Repeat Recovery key password" : "복구 키 암호 재입력", + "Enabled" : "활성화", + "Disabled" : "비활성화", + "Change recovery key password:" : "복구 키 암호 변경:", + "Old Recovery key password" : "이전 복구 키 암호", + "New Recovery key password" : "새 복구 키 암호", + "Repeat New Recovery key password" : "새 복구 키 암호 재입력", + "Change Password" : "암호 변경", + " If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", + "Old log-in password" : "이전 로그인 암호", + "Current log-in password" : "현재 로그인 암호", + "Update Private Key Password" : "개인 키 암호 업데이트", + "Enable password recovery:" : "암호 복구 사용:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php deleted file mode 100644 index f93c66bc4f237e29056ed6a8a573c8dffa3eca00..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ko.php +++ /dev/null @@ -1,39 +0,0 @@ - "복구 키가 성공적으로 활성화되었습니다", -"Could not enable recovery key. Please check your recovery key password!" => "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!", -"Recovery key successfully disabled" => "복구 키가 성공적으로 비활성화 되었습니다", -"Could not disable recovery key. Please check your recovery key password!" => "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해주세요!", -"Password successfully changed." => "암호가 성공적으로 변경되었습니다", -"Could not change the password. Maybe the old password was not correct." => "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", -"Private key password successfully updated." => "개인 키 암호가 성공적으로 업데이트 됨.", -"Could not update the private key password. Maybe the old password was not correct." => "개인 키 암호를 업데이트할 수 없습니다. 이전 암호가 올바르지 않은 것 같습니다.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "개인 키가 올바르지 않습니다! 암호가 %s(예: 회사 디렉터리) 외부에서 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", -"Missing requirements." => "요구 사항이 부족합니다.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "PHP 5.3.3 이상 설치 여부, PHP의 OpenSSL 확장 기능 활성화 및 설정 여부를 확인하십시오. 암호화 앱이 비활성화 되었습니다.", -"Following users are not set up for encryption:" => "다음 사용자는 암호화를 사용할 수 없습니다:", -"Initial encryption started... This can take some time. Please wait." => "초기 암호화가 시작되었습니다... 시간이 걸릴 수도 있으니 기다려 주십시오.", -"Encryption" => "암호화", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", -"Enable recovery key (allow to recover users files in case of password loss):" => "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):", -"Recovery key password" => "복구 키 암호", -"Repeat Recovery key password" => "복구 키 암호 재입력", -"Enabled" => "활성화", -"Disabled" => "비활성화", -"Change recovery key password:" => "복구 키 암호 변경:", -"Old Recovery key password" => "이전 복구 키 암호", -"New Recovery key password" => "새 복구 키 암호", -"Repeat New Recovery key password" => "새 복구 키 암호 재입력", -"Change Password" => "암호 변경", -" If you don't remember your old password you can ask your administrator to recover your files." => " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", -"Old log-in password" => "이전 로그인 암호", -"Current log-in password" => "현재 로그인 암호", -"Update Private Key Password" => "개인 키 암호 업데이트", -"Enable password recovery:" => "암호 복구 사용:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다", -"File recovery settings updated" => "파일 복구 설정 업데이트됨", -"Could not update file recovery" => "파일 복구를 업데이트할 수 없습니다" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/ku_IQ.js b/apps/files_encryption/l10n/ku_IQ.js new file mode 100644 index 0000000000000000000000000000000000000000..5a036cc52524d5209669393dff34f6983ad4caf8 --- /dev/null +++ b/apps/files_encryption/l10n/ku_IQ.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Encryption" : "نهێنیکردن" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ku_IQ.json b/apps/files_encryption/l10n/ku_IQ.json new file mode 100644 index 0000000000000000000000000000000000000000..ab30a5a485be25044f6113b7214783444a6f32f4 --- /dev/null +++ b/apps/files_encryption/l10n/ku_IQ.json @@ -0,0 +1,4 @@ +{ "translations": { + "Encryption" : "نهێنیکردن" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ku_IQ.php b/apps/files_encryption/l10n/ku_IQ.php deleted file mode 100644 index d7b10d1df62854475954db00c020e2e0524c5e86..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ku_IQ.php +++ /dev/null @@ -1,5 +0,0 @@ - "نهێنیکردن" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/lb.js b/apps/files_encryption/l10n/lb.js new file mode 100644 index 0000000000000000000000000000000000000000..d5e206fddb00c3a6a83801371cd99c56ea2dd084 --- /dev/null +++ b/apps/files_encryption/l10n/lb.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Et ass en onbekannte Fehler opgetrueden" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/lb.json b/apps/files_encryption/l10n/lb.json new file mode 100644 index 0000000000000000000000000000000000000000..8cfee6638f4575766992f3831921164d295b5aa6 --- /dev/null +++ b/apps/files_encryption/l10n/lb.json @@ -0,0 +1,4 @@ +{ "translations": { + "Unknown error" : "Et ass en onbekannte Fehler opgetrueden" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lb.php b/apps/files_encryption/l10n/lb.php deleted file mode 100644 index a33f4969b0949733e45270d406cd0c6a326fc12a..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/lb.php +++ /dev/null @@ -1,5 +0,0 @@ - "Speicheren..." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/lt_LT.js b/apps/files_encryption/l10n/lt_LT.js new file mode 100644 index 0000000000000000000000000000000000000000..afcc478e34c7e99994ddf7af031b8da722feae9c --- /dev/null +++ b/apps/files_encryption/l10n/lt_LT.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Neatpažinta klaida", + "Recovery key successfully enabled" : "Atkūrimo raktas sėkmingai įjungtas", + "Could not disable recovery key. Please check your recovery key password!" : "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!", + "Recovery key successfully disabled" : "Atkūrimo raktas sėkmingai išjungtas", + "Password successfully changed." : "Slaptažodis sėkmingai pakeistas", + "Could not change the password. Maybe the old password was not correct." : "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.", + "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", + "File recovery settings updated" : "Failų atkūrimo nustatymai pakeisti", + "Could not update file recovery" : "Neišėjo atnaujinti failų atkūrimo", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifravimo programa nepaleista! Galbūt šifravimo programa buvo įjungta dar kartą Jūsų sesijos metu. Prašome atsijungti ir vėl prisijungti, kad paleisti šifravimo programą.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Jūsų privatus raktas yra netinkamas! Panašu, kad Jūsų slaptažodis buvo pakeistas už %s (pvz. Jūsų organizacijos kataloge). Galite atnaujinti savo privataus rakto slaptažodį savo asmeniniuose nustatymuose, kad atkurti prieigą prie savo šifruotų failų.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", + "Missing requirements." : "Trūkstami laukai.", + "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." : "Prašome įsitikinti, kad PHP 5.3.3 ar naujesnė yra įdiegta ir kad OpenSSL kartu su PHP plėtiniu yra šjungti ir teisingai sukonfigūruoti. Kol kas šifravimo programa bus išjungta.", + "Following users are not set up for encryption:" : "Sekantys naudotojai nenustatyti šifravimui:", + "Initial encryption started... This can take some time. Please wait." : "Pradėtas pirminis šifravimas... Tai gali užtrukti. Prašome palaukti.", + "Encryption" : "Šifravimas", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", + "Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):", + "Recovery key password" : "Atkūrimo rakto slaptažodis", + "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį", + "Enabled" : "Įjungta", + "Disabled" : "Išjungta", + "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", + "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis", + "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis", + "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį", + "Change Password" : "Pakeisti slaptažodį", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", + "Old log-in password" : "Senas prisijungimo slaptažodis", + "Current log-in password" : "Dabartinis prisijungimo slaptažodis", + "Update Private Key Password" : "Atnaujinti privataus rakto slaptažodį", + "Enable password recovery:" : "Įjungti slaptažodžio atkūrimą:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį." +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/lt_LT.json b/apps/files_encryption/l10n/lt_LT.json new file mode 100644 index 0000000000000000000000000000000000000000..c2ffc89163845f9fecfb392ceeae3ccf456c1772 --- /dev/null +++ b/apps/files_encryption/l10n/lt_LT.json @@ -0,0 +1,37 @@ +{ "translations": { + "Unknown error" : "Neatpažinta klaida", + "Recovery key successfully enabled" : "Atkūrimo raktas sėkmingai įjungtas", + "Could not disable recovery key. Please check your recovery key password!" : "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!", + "Recovery key successfully disabled" : "Atkūrimo raktas sėkmingai išjungtas", + "Password successfully changed." : "Slaptažodis sėkmingai pakeistas", + "Could not change the password. Maybe the old password was not correct." : "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.", + "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", + "File recovery settings updated" : "Failų atkūrimo nustatymai pakeisti", + "Could not update file recovery" : "Neišėjo atnaujinti failų atkūrimo", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifravimo programa nepaleista! Galbūt šifravimo programa buvo įjungta dar kartą Jūsų sesijos metu. Prašome atsijungti ir vėl prisijungti, kad paleisti šifravimo programą.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Jūsų privatus raktas yra netinkamas! Panašu, kad Jūsų slaptažodis buvo pakeistas už %s (pvz. Jūsų organizacijos kataloge). Galite atnaujinti savo privataus rakto slaptažodį savo asmeniniuose nustatymuose, kad atkurti prieigą prie savo šifruotų failų.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", + "Missing requirements." : "Trūkstami laukai.", + "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." : "Prašome įsitikinti, kad PHP 5.3.3 ar naujesnė yra įdiegta ir kad OpenSSL kartu su PHP plėtiniu yra šjungti ir teisingai sukonfigūruoti. Kol kas šifravimo programa bus išjungta.", + "Following users are not set up for encryption:" : "Sekantys naudotojai nenustatyti šifravimui:", + "Initial encryption started... This can take some time. Please wait." : "Pradėtas pirminis šifravimas... Tai gali užtrukti. Prašome palaukti.", + "Encryption" : "Šifravimas", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", + "Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):", + "Recovery key password" : "Atkūrimo rakto slaptažodis", + "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį", + "Enabled" : "Įjungta", + "Disabled" : "Išjungta", + "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", + "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis", + "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis", + "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį", + "Change Password" : "Pakeisti slaptažodį", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", + "Old log-in password" : "Senas prisijungimo slaptažodis", + "Current log-in password" : "Dabartinis prisijungimo slaptažodis", + "Update Private Key Password" : "Atnaujinti privataus rakto slaptažodį", + "Enable password recovery:" : "Įjungti slaptažodžio atkūrimą:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lt_LT.php b/apps/files_encryption/l10n/lt_LT.php deleted file mode 100644 index 1fdba43f9e7e6bc226984152ccd43f703eeff2a2..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/lt_LT.php +++ /dev/null @@ -1,39 +0,0 @@ - "Atkūrimo raktas sėkmingai įjungtas", -"Could not enable recovery key. Please check your recovery key password!" => "Neišėjo įjungti jūsų atkūrimo rakto. Prašome jį patikrinti!", -"Recovery key successfully disabled" => "Atkūrimo raktas sėkmingai išjungtas", -"Could not disable recovery key. Please check your recovery key password!" => "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!", -"Password successfully changed." => "Slaptažodis sėkmingai pakeistas", -"Could not change the password. Maybe the old password was not correct." => "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.", -"Private key password successfully updated." => "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", -"Could not update the private key password. Maybe the old password was not correct." => "Nepavyko atnaujinti privataus rakto slaptažodžio. Gali būti, kad buvo neteisingai suvestas senasis.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Šifravimo programa nepaleista! Galbūt šifravimo programa buvo įjungta dar kartą Jūsų sesijos metu. Prašome atsijungti ir vėl prisijungti, kad paleisti šifravimo programą.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Jūsų privatus raktas yra netinkamas! Panašu, kad Jūsų slaptažodis buvo pakeistas už %s (pvz. Jūsų organizacijos kataloge). Galite atnaujinti savo privataus rakto slaptažodį savo asmeniniuose nustatymuose, kad atkurti prieigą prie savo šifruotų failų.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", -"Missing requirements." => "Trūkstami laukai.", -"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." => "Prašome įsitikinti, kad PHP 5.3.3 ar naujesnė yra įdiegta ir kad OpenSSL kartu su PHP plėtiniu yra šjungti ir teisingai sukonfigūruoti. Kol kas šifravimo programa bus išjungta.", -"Following users are not set up for encryption:" => "Sekantys naudotojai nenustatyti šifravimui:", -"Initial encryption started... This can take some time. Please wait." => "Pradėtas pirminis šifravimas... Tai gali užtrukti. Prašome palaukti.", -"Encryption" => "Šifravimas", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", -"Enable recovery key (allow to recover users files in case of password loss):" => "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):", -"Recovery key password" => "Atkūrimo rakto slaptažodis", -"Repeat Recovery key password" => "Pakartokite atkūrimo rakto slaptažodį", -"Enabled" => "Įjungta", -"Disabled" => "Išjungta", -"Change recovery key password:" => "Pakeisti atkūrimo rakto slaptažodį:", -"Old Recovery key password" => "Senas atkūrimo rakto slaptažodis", -"New Recovery key password" => "Naujas atkūrimo rakto slaptažodis", -"Repeat New Recovery key password" => "Pakartokite naują atkūrimo rakto slaptažodį", -"Change Password" => "Pakeisti slaptažodį", -" If you don't remember your old password you can ask your administrator to recover your files." => "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", -"Old log-in password" => "Senas prisijungimo slaptažodis", -"Current log-in password" => "Dabartinis prisijungimo slaptažodis", -"Update Private Key Password" => "Atnaujinti privataus rakto slaptažodį", -"Enable password recovery:" => "Įjungti slaptažodžio atkūrimą:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį.", -"File recovery settings updated" => "Failų atkūrimo nustatymai pakeisti", -"Could not update file recovery" => "Neišėjo atnaujinti failų atkūrimo" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files_encryption/l10n/lv.js b/apps/files_encryption/l10n/lv.js new file mode 100644 index 0000000000000000000000000000000000000000..841a7fc754ddfbeadfb0d8f61528a7a1235bcd21 --- /dev/null +++ b/apps/files_encryption/l10n/lv.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Nezināma kļūda", + "Encryption" : "Šifrēšana" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/lv.json b/apps/files_encryption/l10n/lv.json new file mode 100644 index 0000000000000000000000000000000000000000..b5c22c13a8674643f17c7841ac1b299297b42ac9 --- /dev/null +++ b/apps/files_encryption/l10n/lv.json @@ -0,0 +1,5 @@ +{ "translations": { + "Unknown error" : "Nezināma kļūda", + "Encryption" : "Šifrēšana" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lv.php b/apps/files_encryption/l10n/lv.php deleted file mode 100644 index cbf8b7cbdafb6c8d5595f4701762d0cb9fe34249..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/lv.php +++ /dev/null @@ -1,5 +0,0 @@ - "Šifrēšana" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"; diff --git a/apps/files_encryption/l10n/mk.js b/apps/files_encryption/l10n/mk.js new file mode 100644 index 0000000000000000000000000000000000000000..a34a81e869350834d42718f172017781ddbbbdca --- /dev/null +++ b/apps/files_encryption/l10n/mk.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Непозната грешка", + "Password successfully changed." : "Лозинката е успешно променета.", + "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", + "Missing requirements." : "Барања кои недостасуваат.", + "Encryption" : "Енкрипција", + "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување", + "Enabled" : "Овозможен", + "Disabled" : "Оневозможен", + "Old Recovery key password" : "Старата лозинка за клучот на обновување ", + "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето", + "Change Password" : "Смени лозинка", + "Old log-in password" : "Старата лозинка за најавување", + "Current log-in password" : "Тековната лозинка за најавување", + "Enable password recovery:" : "Овозможи го обновувањето на лозинката:" +}, +"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files_encryption/l10n/mk.json b/apps/files_encryption/l10n/mk.json new file mode 100644 index 0000000000000000000000000000000000000000..770bb602dc32af56c913a35bba6e337c3919a5e1 --- /dev/null +++ b/apps/files_encryption/l10n/mk.json @@ -0,0 +1,17 @@ +{ "translations": { + "Unknown error" : "Непозната грешка", + "Password successfully changed." : "Лозинката е успешно променета.", + "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", + "Missing requirements." : "Барања кои недостасуваат.", + "Encryption" : "Енкрипција", + "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување", + "Enabled" : "Овозможен", + "Disabled" : "Оневозможен", + "Old Recovery key password" : "Старата лозинка за клучот на обновување ", + "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето", + "Change Password" : "Смени лозинка", + "Old log-in password" : "Старата лозинка за најавување", + "Current log-in password" : "Тековната лозинка за најавување", + "Enable password recovery:" : "Овозможи го обновувањето на лозинката:" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/mk.php b/apps/files_encryption/l10n/mk.php deleted file mode 100644 index 08a88ff1bbfab34d1aaf885d95fbd9a75e950e1f..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/mk.php +++ /dev/null @@ -1,17 +0,0 @@ - "Лозинката е успешно променета.", -"Could not change the password. Maybe the old password was not correct." => "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", -"Missing requirements." => "Барања кои недостасуваат.", -"Encryption" => "Енкрипција", -"Repeat Recovery key password" => "Повтори ја лозинката за клучот на обновување", -"Enabled" => "Овозможен", -"Disabled" => "Оневозможен", -"Old Recovery key password" => "Старата лозинка за клучот на обновување ", -"Repeat New Recovery key password" => "Повтори ја лозинката за клучот на обновувањето", -"Change Password" => "Смени лозинка", -"Old log-in password" => "Старата лозинка за најавување", -"Current log-in password" => "Тековната лозинка за најавување", -"Enable password recovery:" => "Овозможи го обновувањето на лозинката:" -); -$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/apps/files_encryption/l10n/nb_NO.js b/apps/files_encryption/l10n/nb_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..f690a78e5f810d52d1c3f46ecb9df67c49e7a9c0 --- /dev/null +++ b/apps/files_encryption/l10n/nb_NO.js @@ -0,0 +1,44 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Ukjent feil", + "Recovery key successfully enabled" : "Gjenopprettingsnøkkel aktivert", + "Could not disable recovery key. Please check your recovery key password!" : "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", + "Recovery key successfully disabled" : "Gjenopprettingsnøkkel ble deaktivert", + "Password successfully changed." : "Passordet ble endret.", + "Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", + "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.", + "File recovery settings updated" : "Innstillinger for gjenoppretting av filer ble oppdatert", + "Could not update file recovery" : "Klarte ikke å oppdatere gjenoppretting av filer", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypterings-app ikke initialisert! Kanskje krypterings-appen ble aktivert på nytt i løpet av økten din. Prøv å logge ut og logge inn igjen for å initialisere krypterings-appen.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøkkel er ikke gyldig! Sannsynligvis ble passordet ditt endret utenfor %s. (f.eks. din bedriftskatalog). Du kan oppdatere passordet for din private nøkkel i dine personlige innstillinger for å gjenvinne tilgang til de krypterte filene dine.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", + "Unknown error. Please check your system settings or contact your administrator" : "Ukjent feil. Sjekk systeminnstillingene eller kontakt administratoren.", + "Missing requirements." : "Manglende krav.", + "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." : "Vennligst se til at PHP 5.3.3 eller nyere er installert og at OpenSSL sammen med PHP-utvidelsen er aktivert og riktig konfigurert. Enn så lenge er krypterings-appen deaktivert.", + "Following users are not set up for encryption:" : "Følgende brukere er ikke satt opp for kryptering:", + "Initial encryption started... This can take some time. Please wait." : "Førstegangs kryptering startet... Dette kan ta litt tid. Vennligst vent.", + "Initial encryption running... Please try again later." : "Førstegangs kryptering kjører... Prøv igjen senere.", + "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige innstillinger%s.", + "Encryption" : "Kryptering", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):", + "Recovery key password" : "Passord for gjenopprettingsnøkkel", + "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", + "Enabled" : "Aktiv", + "Disabled" : "Inaktiv", + "Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:", + "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel", + "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel", + "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel", + "Change Password" : "Endre passord", + "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", + "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", + "Old log-in password" : "Gammelt påloggingspassord", + "Current log-in password" : "Nåværende påloggingspassord", + "Update Private Key Password" : "Oppdater passord for privat nøkkel", + "Enable password recovery:" : "Aktiver gjenoppretting av passord:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/nb_NO.json b/apps/files_encryption/l10n/nb_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..f525462cd74e1410c7a3adbba85d2996e9415e2a --- /dev/null +++ b/apps/files_encryption/l10n/nb_NO.json @@ -0,0 +1,42 @@ +{ "translations": { + "Unknown error" : "Ukjent feil", + "Recovery key successfully enabled" : "Gjenopprettingsnøkkel aktivert", + "Could not disable recovery key. Please check your recovery key password!" : "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", + "Recovery key successfully disabled" : "Gjenopprettingsnøkkel ble deaktivert", + "Password successfully changed." : "Passordet ble endret.", + "Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", + "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.", + "File recovery settings updated" : "Innstillinger for gjenoppretting av filer ble oppdatert", + "Could not update file recovery" : "Klarte ikke å oppdatere gjenoppretting av filer", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypterings-app ikke initialisert! Kanskje krypterings-appen ble aktivert på nytt i løpet av økten din. Prøv å logge ut og logge inn igjen for å initialisere krypterings-appen.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøkkel er ikke gyldig! Sannsynligvis ble passordet ditt endret utenfor %s. (f.eks. din bedriftskatalog). Du kan oppdatere passordet for din private nøkkel i dine personlige innstillinger for å gjenvinne tilgang til de krypterte filene dine.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", + "Unknown error. Please check your system settings or contact your administrator" : "Ukjent feil. Sjekk systeminnstillingene eller kontakt administratoren.", + "Missing requirements." : "Manglende krav.", + "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." : "Vennligst se til at PHP 5.3.3 eller nyere er installert og at OpenSSL sammen med PHP-utvidelsen er aktivert og riktig konfigurert. Enn så lenge er krypterings-appen deaktivert.", + "Following users are not set up for encryption:" : "Følgende brukere er ikke satt opp for kryptering:", + "Initial encryption started... This can take some time. Please wait." : "Førstegangs kryptering startet... Dette kan ta litt tid. Vennligst vent.", + "Initial encryption running... Please try again later." : "Førstegangs kryptering kjører... Prøv igjen senere.", + "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige innstillinger%s.", + "Encryption" : "Kryptering", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):", + "Recovery key password" : "Passord for gjenopprettingsnøkkel", + "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", + "Enabled" : "Aktiv", + "Disabled" : "Inaktiv", + "Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:", + "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel", + "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel", + "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel", + "Change Password" : "Endre passord", + "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", + "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", + "Old log-in password" : "Gammelt påloggingspassord", + "Current log-in password" : "Nåværende påloggingspassord", + "Update Private Key Password" : "Oppdater passord for privat nøkkel", + "Enable password recovery:" : "Aktiver gjenoppretting av passord:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/nb_NO.php b/apps/files_encryption/l10n/nb_NO.php deleted file mode 100644 index 408af4c60f0a0e47e7eb88baf486f90471213948..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/nb_NO.php +++ /dev/null @@ -1,44 +0,0 @@ - "Gjenopprettingsnøkkel aktivert", -"Could not enable recovery key. Please check your recovery key password!" => "Klarte ikke å aktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", -"Recovery key successfully disabled" => "Gjenopprettingsnøkkel ble deaktivert", -"Could not disable recovery key. Please check your recovery key password!" => "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", -"Password successfully changed." => "Passordet ble endret.", -"Could not change the password. Maybe the old password was not correct." => "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", -"Private key password successfully updated." => "Passord for privat nøkkel ble oppdatert.", -"Could not update the private key password. Maybe the old password was not correct." => "Klarte ikke å oppdatere passord for privat nøkkel. Kanskje gammelt passord ikke var korrekt.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypterings-app ikke initialisert! Kanskje krypterings-appen ble aktivert på nytt i løpet av økten din. Prøv å logge ut og logge inn igjen for å initialisere krypterings-appen.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din private nøkkel er ikke gyldig! Sannsynligvis ble passordet ditt endret utenfor %s. (f.eks. din bedriftskatalog). Du kan oppdatere passordet for din private nøkkel i dine personlige innstillinger for å gjenvinne tilgang til de krypterte filene dine.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", -"Unknown error. Please check your system settings or contact your administrator" => "Ukjent feil. Sjekk systeminnstillingene eller kontakt administratoren.", -"Missing requirements." => "Manglende krav.", -"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." => "Vennligst se til at PHP 5.3.3 eller nyere er installert og at OpenSSL sammen med PHP-utvidelsen er aktivert og riktig konfigurert. Enn så lenge er krypterings-appen deaktivert.", -"Following users are not set up for encryption:" => "Følgende brukere er ikke satt opp for kryptering:", -"Initial encryption started... This can take some time. Please wait." => "Førstegangs kryptering startet... Dette kan ta litt tid. Vennligst vent.", -"Initial encryption running... Please try again later." => "Førstegangs kryptering kjører... Prøv igjen senere.", -"Go directly to your %spersonal settings%s." => "Gå direkte til dine %spersonlige innstillinger%s.", -"Encryption" => "Kryptering", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):", -"Recovery key password" => "Passord for gjenopprettingsnøkkel", -"Repeat Recovery key password" => "Gjenta passord for gjenopprettingsnøkkel", -"Enabled" => "Aktiv", -"Disabled" => "Inaktiv", -"Change recovery key password:" => "Endre passord for gjenopprettingsnøkkel:", -"Old Recovery key password" => "Gammelt passord for gjenopprettingsnøkkel", -"New Recovery key password" => "Nytt passord for gjenopprettingsnøkkel", -"Repeat New Recovery key password" => "Gjenta nytt passord for gjenopprettingsnøkkel", -"Change Password" => "Endre passord", -"Your private key password no longer matches your log-in password." => "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", -"Set your old private key password to your current log-in password:" => "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", -"Old log-in password" => "Gammelt påloggingspassord", -"Current log-in password" => "Nåværende påloggingspassord", -"Update Private Key Password" => "Oppdater passord for privat nøkkel", -"Enable password recovery:" => "Aktiver gjenoppretting av passord:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt.", -"File recovery settings updated" => "Innstillinger for gjenoppretting av filer ble oppdatert", -"Could not update file recovery" => "Klarte ikke å oppdatere gjenoppretting av filer" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/nl.js b/apps/files_encryption/l10n/nl.js new file mode 100644 index 0000000000000000000000000000000000000000..4587f707f0add57eee98bac92c1f29a07e62af93 --- /dev/null +++ b/apps/files_encryption/l10n/nl.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Onbekende fout", + "Missing recovery key password" : "Ontbrekende wachtwoord herstelsleutel", + "Please repeat the recovery key password" : "Herhaal het herstelsleutel wachtwoord", + "Repeated recovery key password does not match the provided recovery key password" : "Het herhaalde herstelsleutel wachtwoord kwam niet overeen met het eerdere herstelsleutel wachtwoord ", + "Recovery key successfully enabled" : "Herstelsleutel succesvol geactiveerd", + "Could not disable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!", + "Recovery key successfully disabled" : "Herstelsleutel succesvol gedeactiveerd", + "Please provide the old recovery password" : "Geef het oude herstelwachtwoord op", + "Please provide a new recovery password" : "Geef een nieuw herstelwachtwoord op", + "Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord", + "Password successfully changed." : "Wachtwoord succesvol gewijzigd.", + "Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.", + "Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.", + "The old password was not correct, please try again." : "Het oude wachtwoord was onjuist, probeer het opnieuw.", + "The current log-in password was not correct, please try again." : "Het huidige inlogwachtwoord was niet juist, probeer het opnieuw.", + "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.", + "File recovery settings updated" : "Bestandsherstel instellingen bijgewerkt", + "Could not update file recovery" : "Kon bestandsherstel niet bijwerken", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Crypto app niet geïnitialiseerd. Misschien werd de crypto app geheractiveerd tijdens de sessie. Log uit en log daarna opnieuw in om de crypto app te initialiseren.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Uw privésleutel is niet geldig! Waarschijnlijk is uw wachtwoord gewijzigd buiten %s (bijv. uw corporate directory). U kunt uw privésleutel wachtwoord in uw persoonlijke instellingen bijwerken om toegang te krijgen tot uw versleutelde bestanden.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", + "Unknown error. Please check your system settings or contact your administrator" : "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder", + "Missing requirements." : "Missende benodigdheden.", + "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." : "Wees er zeker van dat PHP5.3.3 of nieuwer is geïstalleerd en dat de OpenSSL PHP extensie is ingeschakeld en correct geconfigureerd. De versleutel-app is voorlopig uitgeschakeld.", + "Following users are not set up for encryption:" : "De volgende gebruikers hebben geen configuratie voor encryptie:", + "Initial encryption started... This can take some time. Please wait." : "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.", + "Initial encryption running... Please try again later." : "Initiële versleuteling bezig... Probeer het later opnieuw.", + "Go directly to your %spersonal settings%s." : "Ga direct naar uw %spersoonlijke instellingen%s.", + "Encryption" : "Versleuteling", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):", + "Recovery key password" : "Wachtwoord herstelsleulel", + "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord", + "Enabled" : "Geactiveerd", + "Disabled" : "Gedeactiveerd", + "Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:", + "Old Recovery key password" : "Oude wachtwoord herstelsleutel", + "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel", + "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord", + "Change Password" : "Wijzigen wachtwoord", + "Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", + "Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", + "Old log-in password" : "Oude wachtwoord", + "Current log-in password" : "Huidige wachtwoord", + "Update Private Key Password" : "Bijwerken wachtwoord Privésleutel", + "Enable password recovery:" : "Activeren wachtwoord herstel:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/nl.json b/apps/files_encryption/l10n/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..cd456faa614fddae5abfaf85277ae1b1982db2b2 --- /dev/null +++ b/apps/files_encryption/l10n/nl.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Onbekende fout", + "Missing recovery key password" : "Ontbrekende wachtwoord herstelsleutel", + "Please repeat the recovery key password" : "Herhaal het herstelsleutel wachtwoord", + "Repeated recovery key password does not match the provided recovery key password" : "Het herhaalde herstelsleutel wachtwoord kwam niet overeen met het eerdere herstelsleutel wachtwoord ", + "Recovery key successfully enabled" : "Herstelsleutel succesvol geactiveerd", + "Could not disable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!", + "Recovery key successfully disabled" : "Herstelsleutel succesvol gedeactiveerd", + "Please provide the old recovery password" : "Geef het oude herstelwachtwoord op", + "Please provide a new recovery password" : "Geef een nieuw herstelwachtwoord op", + "Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord", + "Password successfully changed." : "Wachtwoord succesvol gewijzigd.", + "Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.", + "Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.", + "The old password was not correct, please try again." : "Het oude wachtwoord was onjuist, probeer het opnieuw.", + "The current log-in password was not correct, please try again." : "Het huidige inlogwachtwoord was niet juist, probeer het opnieuw.", + "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.", + "File recovery settings updated" : "Bestandsherstel instellingen bijgewerkt", + "Could not update file recovery" : "Kon bestandsherstel niet bijwerken", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Crypto app niet geïnitialiseerd. Misschien werd de crypto app geheractiveerd tijdens de sessie. Log uit en log daarna opnieuw in om de crypto app te initialiseren.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Uw privésleutel is niet geldig! Waarschijnlijk is uw wachtwoord gewijzigd buiten %s (bijv. uw corporate directory). U kunt uw privésleutel wachtwoord in uw persoonlijke instellingen bijwerken om toegang te krijgen tot uw versleutelde bestanden.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", + "Unknown error. Please check your system settings or contact your administrator" : "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder", + "Missing requirements." : "Missende benodigdheden.", + "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." : "Wees er zeker van dat PHP5.3.3 of nieuwer is geïstalleerd en dat de OpenSSL PHP extensie is ingeschakeld en correct geconfigureerd. De versleutel-app is voorlopig uitgeschakeld.", + "Following users are not set up for encryption:" : "De volgende gebruikers hebben geen configuratie voor encryptie:", + "Initial encryption started... This can take some time. Please wait." : "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.", + "Initial encryption running... Please try again later." : "Initiële versleuteling bezig... Probeer het later opnieuw.", + "Go directly to your %spersonal settings%s." : "Ga direct naar uw %spersoonlijke instellingen%s.", + "Encryption" : "Versleuteling", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):", + "Recovery key password" : "Wachtwoord herstelsleulel", + "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord", + "Enabled" : "Geactiveerd", + "Disabled" : "Gedeactiveerd", + "Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:", + "Old Recovery key password" : "Oude wachtwoord herstelsleutel", + "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel", + "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord", + "Change Password" : "Wijzigen wachtwoord", + "Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", + "Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", + "Old log-in password" : "Oude wachtwoord", + "Current log-in password" : "Huidige wachtwoord", + "Update Private Key Password" : "Bijwerken wachtwoord Privésleutel", + "Enable password recovery:" : "Activeren wachtwoord herstel:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php deleted file mode 100644 index 4c3f925621bbeaaee6c609876690f2d07e4dca4c..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/nl.php +++ /dev/null @@ -1,44 +0,0 @@ - "Herstelsleutel succesvol geactiveerd", -"Could not enable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!", -"Recovery key successfully disabled" => "Herstelsleutel succesvol gedeactiveerd", -"Could not disable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!", -"Password successfully changed." => "Wachtwoord succesvol gewijzigd.", -"Could not change the password. Maybe the old password was not correct." => "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.", -"Private key password successfully updated." => "Privésleutel succesvol bijgewerkt.", -"Could not update the private key password. Maybe the old password was not correct." => "Kon het wachtwoord van de privésleutel niet wijzigen. Misschien was het oude wachtwoord onjuist.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Crypto app niet geïnitialiseerd. Misschien werd de crypto app geheractiveerd tijdens de sessie. Log uit en log daarna opnieuw in om de crypto app te initialiseren.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Uw privésleutel is niet geldig! Waarschijnlijk is uw wachtwoord gewijzigd buiten %s (bijv. uw corporate directory). U kunt uw privésleutel wachtwoord in uw persoonlijke instellingen bijwerken om toegang te krijgen tot uw versleutelde bestanden.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", -"Unknown error. Please check your system settings or contact your administrator" => "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder", -"Missing requirements." => "Missende benodigdheden.", -"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." => "Wees er zeker van dat PHP5.3.3 of nieuwer is geïstalleerd en dat de OpenSSL PHP extensie is ingeschakeld en correct geconfigureerd. De versleutel-app is voorlopig uitgeschakeld.", -"Following users are not set up for encryption:" => "De volgende gebruikers hebben geen configuratie voor encryptie:", -"Initial encryption started... This can take some time. Please wait." => "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.", -"Initial encryption running... Please try again later." => "Initiële versleuteling bezig... Probeer het later opnieuw.", -"Go directly to your %spersonal settings%s." => "Ga direct naar uw %spersoonlijke instellingen%s.", -"Encryption" => "Versleuteling", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):", -"Recovery key password" => "Wachtwoord herstelsleulel", -"Repeat Recovery key password" => "Herhaal het herstelsleutel wachtwoord", -"Enabled" => "Geactiveerd", -"Disabled" => "Gedeactiveerd", -"Change recovery key password:" => "Wijzig wachtwoord herstelsleutel:", -"Old Recovery key password" => "Oude wachtwoord herstelsleutel", -"New Recovery key password" => "Nieuwe wachtwoord herstelsleutel", -"Repeat New Recovery key password" => "Herhaal het nieuwe herstelsleutel wachtwoord", -"Change Password" => "Wijzigen wachtwoord", -"Your private key password no longer matches your log-in password." => "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", -"Set your old private key password to your current log-in password:" => "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", -" If you don't remember your old password you can ask your administrator to recover your files." => "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", -"Old log-in password" => "Oude wachtwoord", -"Current log-in password" => "Huidige wachtwoord", -"Update Private Key Password" => "Bijwerken wachtwoord Privésleutel", -"Enable password recovery:" => "Activeren wachtwoord herstel:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is", -"File recovery settings updated" => "Bestandsherstel instellingen bijgewerkt", -"Could not update file recovery" => "Kon bestandsherstel niet bijwerken" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/nn_NO.js b/apps/files_encryption/l10n/nn_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..5adb8d65475fe2144d865c720a61d1d72ddea7fd --- /dev/null +++ b/apps/files_encryption/l10n/nn_NO.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Ukjend feil", + "Encryption" : "Kryptering" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/nn_NO.json b/apps/files_encryption/l10n/nn_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..8f78cc1320f429990949181983a60196b4793746 --- /dev/null +++ b/apps/files_encryption/l10n/nn_NO.json @@ -0,0 +1,5 @@ +{ "translations": { + "Unknown error" : "Ukjend feil", + "Encryption" : "Kryptering" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/nn_NO.php b/apps/files_encryption/l10n/nn_NO.php deleted file mode 100644 index c472655c8b0e348713358ea2611aa37e943da11e..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/nn_NO.php +++ /dev/null @@ -1,5 +0,0 @@ - "Kryptering" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/pa.js b/apps/files_encryption/l10n/pa.js new file mode 100644 index 0000000000000000000000000000000000000000..f61063e9459971862d25ac09d53b5f9e0bc15e6d --- /dev/null +++ b/apps/files_encryption/l10n/pa.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/pa.json b/apps/files_encryption/l10n/pa.json new file mode 100644 index 0000000000000000000000000000000000000000..41690f3aa321de8d8f57e5a67f997cc318714ba5 --- /dev/null +++ b/apps/files_encryption/l10n/pa.json @@ -0,0 +1,4 @@ +{ "translations": { + "Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pa.php b/apps/files_encryption/l10n/pa.php deleted file mode 100644 index 586709904094e5ac740fa2f317b1feb80b9d9612..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/pa.php +++ /dev/null @@ -1,5 +0,0 @@ - "...ਸੰਭਾਲਿਆ ਜਾ ਰਿਹਾ ਹੈ" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/pl.js b/apps/files_encryption/l10n/pl.js new file mode 100644 index 0000000000000000000000000000000000000000..29b6761913964a6f6e364f9832d8c533eb68e1a7 --- /dev/null +++ b/apps/files_encryption/l10n/pl.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Nieznany błąd", + "Missing recovery key password" : "Brakujące hasło klucza odzyskiwania", + "Please repeat the recovery key password" : "Proszę powtórz nowe hasło klucza odzyskiwania", + "Repeated recovery key password does not match the provided recovery key password" : "Hasła klucza odzyskiwania nie zgadzają się", + "Recovery key successfully enabled" : "Klucz odzyskiwania włączony", + "Could not disable recovery key. Please check your recovery key password!" : "Nie można wyłączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!", + "Recovery key successfully disabled" : "Klucz odzyskiwania wyłączony", + "Please provide the old recovery password" : "Podaj stare hasło odzyskiwania", + "Please provide a new recovery password" : "Podaj nowe hasło odzyskiwania", + "Please repeat the new recovery password" : "Proszę powtórz nowe hasło odzyskiwania", + "Password successfully changed." : "Zmiana hasła udana.", + "Could not change the password. Maybe the old password was not correct." : "Nie można zmienić hasła. Może stare hasło nie było poprawne.", + "Could not update the private key password." : "Nie można zmienić hasła klucza prywatnego.", + "The old password was not correct, please try again." : "Stare hasło nie było poprawne. Spróbuj jeszcze raz.", + "The current log-in password was not correct, please try again." : "Obecne hasło logowania nie było poprawne. Spróbuj ponownie.", + "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.", + "File recovery settings updated" : "Ustawienia odzyskiwania plików zmienione", + "Could not update file recovery" : "Nie można zmienić pliku odzyskiwania", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", + "Unknown error. Please check your system settings or contact your administrator" : "Nieznany błąd. Proszę sprawdzić ustawienia systemowe lub skontaktować się z administratorem", + "Missing requirements." : "Brak wymagań.", + "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." : "Proszę upewnić się, że PHP 5.3.3 lub nowszy jest zainstalowany i że OpenSSL oraz rozszerzenie PHP jest włączone i poprawnie skonfigurowane. Obecnie szyfrowanie aplikacji zostało wyłączone.", + "Following users are not set up for encryption:" : "Następujący użytkownicy nie mają skonfigurowanego szyfrowania:", + "Initial encryption started... This can take some time. Please wait." : "Rozpoczęto szyfrowanie... To może chwilę potrwać. Proszę czekać.", + "Initial encryption running... Please try again later." : "Trwa szyfrowanie początkowe...Spróbuj ponownie.", + "Go directly to your %spersonal settings%s." : "Przejdź bezpośrednio do %spersonal settings%s.", + "Encryption" : "Szyfrowanie", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):", + "Recovery key password" : "Hasło klucza odzyskiwania", + "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania", + "Enabled" : "Włączone", + "Disabled" : "Wyłączone", + "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", + "Old Recovery key password" : "Stare hasło klucza odzyskiwania", + "New Recovery key password" : "Nowe hasło klucza odzyskiwania", + "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania", + "Change Password" : "Zmień hasło", + "Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", + "Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jeśli nie pamiętasz swojego starego hasła, poproś swojego administratora, aby odzyskać pliki.", + "Old log-in password" : "Stare hasło logowania", + "Current log-in password" : "Bieżące hasło logowania", + "Update Private Key Password" : "Aktualizacja hasła klucza prywatnego", + "Enable password recovery:" : "Włącz hasło odzyskiwania:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła" +}, +"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_encryption/l10n/pl.json b/apps/files_encryption/l10n/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..8d70e50340e1fee713f3ed8d1de7bb160095391a --- /dev/null +++ b/apps/files_encryption/l10n/pl.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Nieznany błąd", + "Missing recovery key password" : "Brakujące hasło klucza odzyskiwania", + "Please repeat the recovery key password" : "Proszę powtórz nowe hasło klucza odzyskiwania", + "Repeated recovery key password does not match the provided recovery key password" : "Hasła klucza odzyskiwania nie zgadzają się", + "Recovery key successfully enabled" : "Klucz odzyskiwania włączony", + "Could not disable recovery key. Please check your recovery key password!" : "Nie można wyłączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!", + "Recovery key successfully disabled" : "Klucz odzyskiwania wyłączony", + "Please provide the old recovery password" : "Podaj stare hasło odzyskiwania", + "Please provide a new recovery password" : "Podaj nowe hasło odzyskiwania", + "Please repeat the new recovery password" : "Proszę powtórz nowe hasło odzyskiwania", + "Password successfully changed." : "Zmiana hasła udana.", + "Could not change the password. Maybe the old password was not correct." : "Nie można zmienić hasła. Może stare hasło nie było poprawne.", + "Could not update the private key password." : "Nie można zmienić hasła klucza prywatnego.", + "The old password was not correct, please try again." : "Stare hasło nie było poprawne. Spróbuj jeszcze raz.", + "The current log-in password was not correct, please try again." : "Obecne hasło logowania nie było poprawne. Spróbuj ponownie.", + "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.", + "File recovery settings updated" : "Ustawienia odzyskiwania plików zmienione", + "Could not update file recovery" : "Nie można zmienić pliku odzyskiwania", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", + "Unknown error. Please check your system settings or contact your administrator" : "Nieznany błąd. Proszę sprawdzić ustawienia systemowe lub skontaktować się z administratorem", + "Missing requirements." : "Brak wymagań.", + "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." : "Proszę upewnić się, że PHP 5.3.3 lub nowszy jest zainstalowany i że OpenSSL oraz rozszerzenie PHP jest włączone i poprawnie skonfigurowane. Obecnie szyfrowanie aplikacji zostało wyłączone.", + "Following users are not set up for encryption:" : "Następujący użytkownicy nie mają skonfigurowanego szyfrowania:", + "Initial encryption started... This can take some time. Please wait." : "Rozpoczęto szyfrowanie... To może chwilę potrwać. Proszę czekać.", + "Initial encryption running... Please try again later." : "Trwa szyfrowanie początkowe...Spróbuj ponownie.", + "Go directly to your %spersonal settings%s." : "Przejdź bezpośrednio do %spersonal settings%s.", + "Encryption" : "Szyfrowanie", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):", + "Recovery key password" : "Hasło klucza odzyskiwania", + "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania", + "Enabled" : "Włączone", + "Disabled" : "Wyłączone", + "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", + "Old Recovery key password" : "Stare hasło klucza odzyskiwania", + "New Recovery key password" : "Nowe hasło klucza odzyskiwania", + "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania", + "Change Password" : "Zmień hasło", + "Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", + "Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Jeśli nie pamiętasz swojego starego hasła, poproś swojego administratora, aby odzyskać pliki.", + "Old log-in password" : "Stare hasło logowania", + "Current log-in password" : "Bieżące hasło logowania", + "Update Private Key Password" : "Aktualizacja hasła klucza prywatnego", + "Enable password recovery:" : "Włącz hasło odzyskiwania:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła" +},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php deleted file mode 100644 index 5129dbafb209c288acbb86313bd9efd6185a9255..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/pl.php +++ /dev/null @@ -1,44 +0,0 @@ - "Klucz odzyskiwania włączony", -"Could not enable recovery key. Please check your recovery key password!" => "Nie można włączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!", -"Recovery key successfully disabled" => "Klucz odzyskiwania wyłączony", -"Could not disable recovery key. Please check your recovery key password!" => "Nie można wyłączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!", -"Password successfully changed." => "Zmiana hasła udana.", -"Could not change the password. Maybe the old password was not correct." => "Nie można zmienić hasła. Może stare hasło nie było poprawne.", -"Private key password successfully updated." => "Pomyślnie zaktualizowano hasło klucza prywatnego.", -"Could not update the private key password. Maybe the old password was not correct." => "Nie można zmienić prywatnego hasła. Może stare hasło nie było poprawne.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", -"Unknown error. Please check your system settings or contact your administrator" => "Nieznany błąd. Proszę sprawdzić ustawienia systemowe lub skontaktować się z administratorem", -"Missing requirements." => "Brak wymagań.", -"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." => "Proszę upewnić się, że PHP 5.3.3 lub nowszy jest zainstalowany i że OpenSSL oraz rozszerzenie PHP jest włączone i poprawnie skonfigurowane. Obecnie szyfrowanie aplikacji zostało wyłączone.", -"Following users are not set up for encryption:" => "Następujący użytkownicy nie mają skonfigurowanego szyfrowania:", -"Initial encryption started... This can take some time. Please wait." => "Rozpoczęto szyfrowanie... To może chwilę potrwać. Proszę czekać.", -"Initial encryption running... Please try again later." => "Trwa szyfrowanie początkowe...Spróbuj ponownie.", -"Go directly to your %spersonal settings%s." => "Przejdź bezpośrednio do %spersonal settings%s.", -"Encryption" => "Szyfrowanie", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):", -"Recovery key password" => "Hasło klucza odzyskiwania", -"Repeat Recovery key password" => "Powtórz hasło klucza odzyskiwania", -"Enabled" => "Włączone", -"Disabled" => "Wyłączone", -"Change recovery key password:" => "Zmień hasło klucza odzyskiwania", -"Old Recovery key password" => "Stare hasło klucza odzyskiwania", -"New Recovery key password" => "Nowe hasło klucza odzyskiwania", -"Repeat New Recovery key password" => "Powtórz nowe hasło klucza odzyskiwania", -"Change Password" => "Zmień hasło", -"Your private key password no longer matches your log-in password." => "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", -"Set your old private key password to your current log-in password:" => "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Jeśli nie pamiętasz swojego starego hasła, poproś swojego administratora, aby odzyskać pliki.", -"Old log-in password" => "Stare hasło logowania", -"Current log-in password" => "Bieżące hasło logowania", -"Update Private Key Password" => "Aktualizacja hasła klucza prywatnego", -"Enable password recovery:" => "Włącz hasło odzyskiwania:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła", -"File recovery settings updated" => "Ustawienia odzyskiwania plików zmienione", -"Could not update file recovery" => "Nie można zmienić pliku odzyskiwania" -); -$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_encryption/l10n/pt_BR.js b/apps/files_encryption/l10n/pt_BR.js new file mode 100644 index 0000000000000000000000000000000000000000..bd0c47ce98e11e1fff631ec2e1ac7ca2b26eb684 --- /dev/null +++ b/apps/files_encryption/l10n/pt_BR.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Erro desconhecido", + "Missing recovery key password" : "Senha da chave de recuperação em falta", + "Please repeat the recovery key password" : "Por favor, repita a senha da chave de recuperação", + "Repeated recovery key password does not match the provided recovery key password" : "A senha repetidas da chave de valorização não corresponde a senha da chave de recuperação prevista", + "Recovery key successfully enabled" : "Recuperação de chave habilitada com sucesso", + "Could not disable recovery key. Please check your recovery key password!" : "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!", + "Recovery key successfully disabled" : "Recuperação de chave desabilitada com sucesso", + "Please provide the old recovery password" : "Por favor, forneça a antiga senha de recuperação", + "Please provide a new recovery password" : "Por favor, forneça a nova senha de recuperação", + "Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação", + "Password successfully changed." : "Senha alterada com sucesso.", + "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.", + "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", + "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente novamente.", + "The current log-in password was not correct, please try again." : "A senha atual do log-in não estava correta, por favor, tente novamente.", + "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.", + "File recovery settings updated" : "Configurações de recuperação de arquivo atualizado", + "Could not update file recovery" : "Não foi possível atualizar a recuperação de arquivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplicativo de criptografia não foi inicializado! Talvez o aplicativo de criptografia tenha sido reativado durante essa sessão. Por favor, tente fazer logoff e login novamente para inicializar o aplicativo de criptografia.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sua chave privada não é válida! Provavelmente sua senha foi alterada fora de %s (por exemplo, seu diretório corporativo). Você pode atualizar sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.", + "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador", + "Missing requirements." : "Requisitos não encontrados.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se que o PHP 5.3.3 ou mais recente está instalado e que a extensão PHP OpenSSL está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.", + "Following users are not set up for encryption:" : "Seguintes usuários não estão configurados para criptografia:", + "Initial encryption started... This can take some time. Please wait." : "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.", + "Initial encryption running... Please try again later." : "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.", + "Go directly to your %spersonal settings%s." : "Ir direto para suas %spersonal settings%s.", + "Encryption" : "Criptografia", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):", + "Recovery key password" : "Senha da chave de recuperação", + "Repeat Recovery key password" : "Repita Recuperação de senha da chave", + "Enabled" : "Habilitado", + "Disabled" : "Desabilitado", + "Change recovery key password:" : "Mudar a senha da chave de recuperação:", + "Old Recovery key password" : "Senha antiga da chave de recuperação", + "New Recovery key password" : "Nova senha da chave de recuperação", + "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação", + "Change Password" : "Trocar Senha", + "Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.", + "Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", + "Old log-in password" : "Senha antiga de login", + "Current log-in password" : "Senha de login atual", + "Update Private Key Password" : "Atualizar Senha de Chave Privada", + "Enable password recovery:" : "Habilitar recuperação de senha:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_encryption/l10n/pt_BR.json b/apps/files_encryption/l10n/pt_BR.json new file mode 100644 index 0000000000000000000000000000000000000000..aa9404beb68d6fa553737ead1eb605ad85c96393 --- /dev/null +++ b/apps/files_encryption/l10n/pt_BR.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Erro desconhecido", + "Missing recovery key password" : "Senha da chave de recuperação em falta", + "Please repeat the recovery key password" : "Por favor, repita a senha da chave de recuperação", + "Repeated recovery key password does not match the provided recovery key password" : "A senha repetidas da chave de valorização não corresponde a senha da chave de recuperação prevista", + "Recovery key successfully enabled" : "Recuperação de chave habilitada com sucesso", + "Could not disable recovery key. Please check your recovery key password!" : "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!", + "Recovery key successfully disabled" : "Recuperação de chave desabilitada com sucesso", + "Please provide the old recovery password" : "Por favor, forneça a antiga senha de recuperação", + "Please provide a new recovery password" : "Por favor, forneça a nova senha de recuperação", + "Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação", + "Password successfully changed." : "Senha alterada com sucesso.", + "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.", + "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", + "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente novamente.", + "The current log-in password was not correct, please try again." : "A senha atual do log-in não estava correta, por favor, tente novamente.", + "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.", + "File recovery settings updated" : "Configurações de recuperação de arquivo atualizado", + "Could not update file recovery" : "Não foi possível atualizar a recuperação de arquivos", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplicativo de criptografia não foi inicializado! Talvez o aplicativo de criptografia tenha sido reativado durante essa sessão. Por favor, tente fazer logoff e login novamente para inicializar o aplicativo de criptografia.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sua chave privada não é válida! Provavelmente sua senha foi alterada fora de %s (por exemplo, seu diretório corporativo). Você pode atualizar sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.", + "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador", + "Missing requirements." : "Requisitos não encontrados.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se que o PHP 5.3.3 ou mais recente está instalado e que a extensão PHP OpenSSL está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.", + "Following users are not set up for encryption:" : "Seguintes usuários não estão configurados para criptografia:", + "Initial encryption started... This can take some time. Please wait." : "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.", + "Initial encryption running... Please try again later." : "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.", + "Go directly to your %spersonal settings%s." : "Ir direto para suas %spersonal settings%s.", + "Encryption" : "Criptografia", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", + "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):", + "Recovery key password" : "Senha da chave de recuperação", + "Repeat Recovery key password" : "Repita Recuperação de senha da chave", + "Enabled" : "Habilitado", + "Disabled" : "Desabilitado", + "Change recovery key password:" : "Mudar a senha da chave de recuperação:", + "Old Recovery key password" : "Senha antiga da chave de recuperação", + "New Recovery key password" : "Nova senha da chave de recuperação", + "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação", + "Change Password" : "Trocar Senha", + "Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.", + "Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", + "Old log-in password" : "Senha antiga de login", + "Current log-in password" : "Senha de login atual", + "Update Private Key Password" : "Atualizar Senha de Chave Privada", + "Enable password recovery:" : "Habilitar recuperação de senha:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php deleted file mode 100644 index 3b6895c0216fe11e6958eb376b69345f441351ea..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/pt_BR.php +++ /dev/null @@ -1,44 +0,0 @@ - "Recuperação de chave habilitada com sucesso", -"Could not enable recovery key. Please check your recovery key password!" => "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!", -"Recovery key successfully disabled" => "Recuperação de chave desabilitada com sucesso", -"Could not disable recovery key. Please check your recovery key password!" => "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!", -"Password successfully changed." => "Senha alterada com sucesso.", -"Could not change the password. Maybe the old password was not correct." => "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.", -"Private key password successfully updated." => "Senha de chave privada atualizada com sucesso.", -"Could not update the private key password. Maybe the old password was not correct." => "Não foi possível atualizar a senha de chave privada. Talvez a senha antiga esteja incorreta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplicativo de criptografia não foi inicializado! Talvez o aplicativo de criptografia tenha sido reativado durante essa sessão. Por favor, tente fazer logoff e login novamente para inicializar o aplicativo de criptografia.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Sua chave privada não é válida! Provavelmente sua senha foi alterada fora de %s (por exemplo, seu diretório corporativo). Você pode atualizar sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.", -"Unknown error. Please check your system settings or contact your administrator" => "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador", -"Missing requirements." => "Requisitos não encontrados.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, certifique-se que o PHP 5.3.3 ou mais recente está instalado e que a extensão PHP OpenSSL está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.", -"Following users are not set up for encryption:" => "Seguintes usuários não estão configurados para criptografia:", -"Initial encryption started... This can take some time. Please wait." => "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.", -"Initial encryption running... Please try again later." => "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.", -"Go directly to your %spersonal settings%s." => "Ir direto para suas %spersonal settings%s.", -"Encryption" => "Criptografia", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", -"Enable recovery key (allow to recover users files in case of password loss):" => "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):", -"Recovery key password" => "Senha da chave de recuperação", -"Repeat Recovery key password" => "Repita Recuperação de senha da chave", -"Enabled" => "Habilitado", -"Disabled" => "Desabilitado", -"Change recovery key password:" => "Mudar a senha da chave de recuperação:", -"Old Recovery key password" => "Senha antiga da chave de recuperação", -"New Recovery key password" => "Nova senha da chave de recuperação", -"Repeat New Recovery key password" => "Repita Nova senha da chave de recuperação", -"Change Password" => "Trocar Senha", -"Your private key password no longer matches your log-in password." => "A sua senha de chave privada não corresponde a sua senha de login.", -"Set your old private key password to your current log-in password:" => "Defina a sua antiga senha da chave privada para sua senha de login atual:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", -"Old log-in password" => "Senha antiga de login", -"Current log-in password" => "Senha de login atual", -"Update Private Key Password" => "Atualizar Senha de Chave Privada", -"Enable password recovery:" => "Habilitar recuperação de senha:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha", -"File recovery settings updated" => "Configurações de recuperação de arquivo atualizado", -"Could not update file recovery" => "Não foi possível atualizar a recuperação de arquivos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_encryption/l10n/pt_PT.js b/apps/files_encryption/l10n/pt_PT.js new file mode 100644 index 0000000000000000000000000000000000000000..3a642a27cc442df76f01d70cfbef469b4465dae3 --- /dev/null +++ b/apps/files_encryption/l10n/pt_PT.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Erro desconhecido", + "Missing recovery key password" : "Senha da chave de recuperação em falta", + "Please repeat the recovery key password" : "Por favor, insira a contrassenha da chave de recuperação", + "Repeated recovery key password does not match the provided recovery key password" : "A palavra-passe de recuperação repetida não corresponde à palavra-passe fornecida", + "Recovery key successfully enabled" : "A chave de recuperação foi ativada com sucesso", + "Could not disable recovery key. Please check your recovery key password!" : "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", + "Recovery key successfully disabled" : "A chave de recuperação foi desativada com sucesso", + "Please provide the old recovery password" : "Escreva a palavra-passe de recuperação antiga", + "Please provide a new recovery password" : "Escreva a nova palavra-passe de recuperação", + "Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação", + "Password successfully changed." : "Senha alterada com sucesso.", + "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.", + "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", + "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente de novo.", + "The current log-in password was not correct, please try again." : "A senha de iniciar a sessão atual não estava correta, por favor, tente de novo.", + "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ", + "File recovery settings updated" : "As definições da recuperação de ficheiro foram atualizadas", + "Could not update file recovery" : "Não foi possível atualizar a recuperação de ficheiro", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A app de encriptação não foi inicializada! A app de encriptação poderá ter sido reativada durante a sua sessão. Por favor, tente terminar a sessão e iniciá-la de seguida para inicializar a app de encriptação.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A sua chave privada não é válida! Provavelmente a senha foi alterada fora do %s (ex. a sua diretoria corporativa). Pode atualizar a sua senha da chave privada nas definições pessoais para recuperar o acesso aos seus ficheiros encriptados. ", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", + "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contacto com o seu administrador ", + "Missing requirements." : "Requisitos em falta.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se que o PHP 5.3.3 ou superior está instalado e que o OpenSSL juntamente com a extensão PHP estão ativados e devidamente configurados. Por agora, a app de encriptação foi desativada.", + "Following users are not set up for encryption:" : "Os utilizadores seguintes não estão configurados para encriptação:", + "Initial encryption started... This can take some time. Please wait." : "A encriptação inicial foi iniciada ... Esta pode demorar algum tempo. Aguarde, por favor.", + "Initial encryption running... Please try again later." : "A encriptação inicial está em execução ... Por favor, tente de novo mais tarde.", + "Go directly to your %spersonal settings%s." : "Ir diretamente para as %sdefinições pessoais%s.", + "Encryption" : "Encriptação", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", + "Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):", + "Recovery key password" : "Senha da chave de recuperação", + "Repeat Recovery key password" : "Contrassenha da chave de recuperação", + "Enabled" : "Ativada", + "Disabled" : "Desactivada", + "Change recovery key password:" : "Alterar a senha da chave de recuperação:", + "Old Recovery key password" : "Senha da chave de recuperação antiga", + "New Recovery key password" : "Nova senha da chave de recuperação", + "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação", + "Change Password" : "Alterar a Senha", + "Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.", + "Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", + "Old log-in password" : "Senha de iniciar sessão antiga", + "Current log-in password" : "Senha de iniciar sessão atual", + "Update Private Key Password" : "Atualizar Senha da Chave Privada ", + "Enable password recovery:" : "Ativar a recuperação da senha:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/pt_PT.json b/apps/files_encryption/l10n/pt_PT.json new file mode 100644 index 0000000000000000000000000000000000000000..f90e10625cc04a9c709a7e616c3a2e63e456e69b --- /dev/null +++ b/apps/files_encryption/l10n/pt_PT.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Erro desconhecido", + "Missing recovery key password" : "Senha da chave de recuperação em falta", + "Please repeat the recovery key password" : "Por favor, insira a contrassenha da chave de recuperação", + "Repeated recovery key password does not match the provided recovery key password" : "A palavra-passe de recuperação repetida não corresponde à palavra-passe fornecida", + "Recovery key successfully enabled" : "A chave de recuperação foi ativada com sucesso", + "Could not disable recovery key. Please check your recovery key password!" : "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", + "Recovery key successfully disabled" : "A chave de recuperação foi desativada com sucesso", + "Please provide the old recovery password" : "Escreva a palavra-passe de recuperação antiga", + "Please provide a new recovery password" : "Escreva a nova palavra-passe de recuperação", + "Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação", + "Password successfully changed." : "Senha alterada com sucesso.", + "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.", + "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", + "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente de novo.", + "The current log-in password was not correct, please try again." : "A senha de iniciar a sessão atual não estava correta, por favor, tente de novo.", + "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ", + "File recovery settings updated" : "As definições da recuperação de ficheiro foram atualizadas", + "Could not update file recovery" : "Não foi possível atualizar a recuperação de ficheiro", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A app de encriptação não foi inicializada! A app de encriptação poderá ter sido reativada durante a sua sessão. Por favor, tente terminar a sessão e iniciá-la de seguida para inicializar a app de encriptação.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A sua chave privada não é válida! Provavelmente a senha foi alterada fora do %s (ex. a sua diretoria corporativa). Pode atualizar a sua senha da chave privada nas definições pessoais para recuperar o acesso aos seus ficheiros encriptados. ", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", + "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contacto com o seu administrador ", + "Missing requirements." : "Requisitos em falta.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se que o PHP 5.3.3 ou superior está instalado e que o OpenSSL juntamente com a extensão PHP estão ativados e devidamente configurados. Por agora, a app de encriptação foi desativada.", + "Following users are not set up for encryption:" : "Os utilizadores seguintes não estão configurados para encriptação:", + "Initial encryption started... This can take some time. Please wait." : "A encriptação inicial foi iniciada ... Esta pode demorar algum tempo. Aguarde, por favor.", + "Initial encryption running... Please try again later." : "A encriptação inicial está em execução ... Por favor, tente de novo mais tarde.", + "Go directly to your %spersonal settings%s." : "Ir diretamente para as %sdefinições pessoais%s.", + "Encryption" : "Encriptação", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", + "Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):", + "Recovery key password" : "Senha da chave de recuperação", + "Repeat Recovery key password" : "Contrassenha da chave de recuperação", + "Enabled" : "Ativada", + "Disabled" : "Desactivada", + "Change recovery key password:" : "Alterar a senha da chave de recuperação:", + "Old Recovery key password" : "Senha da chave de recuperação antiga", + "New Recovery key password" : "Nova senha da chave de recuperação", + "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação", + "Change Password" : "Alterar a Senha", + "Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.", + "Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", + "Old log-in password" : "Senha de iniciar sessão antiga", + "Current log-in password" : "Senha de iniciar sessão atual", + "Update Private Key Password" : "Atualizar Senha da Chave Privada ", + "Enable password recovery:" : "Ativar a recuperação da senha:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php deleted file mode 100644 index a34f78c1eeae8619f836e0f63aa89e3b8b03001c..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/pt_PT.php +++ /dev/null @@ -1,44 +0,0 @@ - "A chave de recuperação foi ativada com sucesso", -"Could not enable recovery key. Please check your recovery key password!" => "Não foi possível ativar a chave de recuperação. Por favor, verifique a sua senha da chave de recuperação!", -"Recovery key successfully disabled" => "A chave de recuperação foi desativada com sucesso", -"Could not disable recovery key. Please check your recovery key password!" => "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", -"Password successfully changed." => "Senha alterada com sucesso.", -"Could not change the password. Maybe the old password was not correct." => "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.", -"Private key password successfully updated." => "A senha da chave privada foi atualizada com sucesso. ", -"Could not update the private key password. Maybe the old password was not correct." => "Não foi possível atualizar a senha da chave privada. A senha antiga poderia não estar correta.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "A app de encriptação não foi inicializada! A app de encriptação poderá ter sido reativada durante a sua sessão. Por favor, tente terminar a sessão e iniciá-la de seguida para inicializar a app de encriptação.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "A sua chave privada não é válida! Provavelmente a senha foi alterada fora do %s (ex. a sua diretoria corporativa). Pode atualizar a sua senha da chave privada nas definições pessoais para recuperar o acesso aos seus ficheiros encriptados. ", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", -"Unknown error. Please check your system settings or contact your administrator" => "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contacto com o seu administrador ", -"Missing requirements." => "Requisitos em falta.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, certifique-se que o PHP 5.3.3 ou superior está instalado e que o OpenSSL juntamente com a extensão PHP estão ativados e devidamente configurados. Por agora, a app de encriptação foi desativada.", -"Following users are not set up for encryption:" => "Os utilizadores seguintes não estão configurados para encriptação:", -"Initial encryption started... This can take some time. Please wait." => "A encriptação inicial foi iniciada ... Esta pode demorar algum tempo. Aguarde, por favor.", -"Initial encryption running... Please try again later." => "A encriptação inicial está em execução ... Por favor, tente de novo mais tarde.", -"Go directly to your %spersonal settings%s." => "Ir diretamente para as %sdefinições pessoais%s.", -"Encryption" => "Encriptação", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", -"Enable recovery key (allow to recover users files in case of password loss):" => "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):", -"Recovery key password" => "Senha da chave de recuperação", -"Repeat Recovery key password" => "Contrassenha da chave de recuperação", -"Enabled" => "Ativada", -"Disabled" => "Desactivada", -"Change recovery key password:" => "Alterar a senha da chave de recuperação:", -"Old Recovery key password" => "Senha da chave de recuperação antiga", -"New Recovery key password" => "Nova senha da chave de recuperação", -"Repeat New Recovery key password" => "Contrassenha da nova chave de recuperação", -"Change Password" => "Alterar a Senha", -"Your private key password no longer matches your log-in password." => "A Password da sua chave privada não coincide mais com a password do seu login.", -"Set your old private key password to your current log-in password:" => "Altere a password antiga da chave privada para a nova password do login:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", -"Old log-in password" => "Senha de iniciar sessão antiga", -"Current log-in password" => "Senha de iniciar sessão atual", -"Update Private Key Password" => "Atualizar Senha da Chave Privada ", -"Enable password recovery:" => "Ativar a recuperação da senha:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha", -"File recovery settings updated" => "As definições da recuperação de ficheiro foram atualizadas", -"Could not update file recovery" => "Não foi possível atualizar a recuperação de ficheiro" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/ro.js b/apps/files_encryption/l10n/ro.js new file mode 100644 index 0000000000000000000000000000000000000000..91f657d18f00113a13cf9c0410297493c5a07c39 --- /dev/null +++ b/apps/files_encryption/l10n/ro.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Eroare necunoscută", + "Recovery key successfully enabled" : "Cheia de recupeare a fost activata cu succes", + "Could not disable recovery key. Please check your recovery key password!" : "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!", + "Recovery key successfully disabled" : "Cheia de recuperare dezactivata cu succes", + "Password successfully changed." : "Parola a fost modificată cu succes.", + "Could not change the password. Maybe the old password was not correct." : "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.", + "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes", + "File recovery settings updated" : "Setarile pentru recuperarea fisierelor au fost actualizate", + "Could not update file recovery" : "Nu am putut actualiza recuperarea de fisiere", + "Encryption" : "Încriptare", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", + "Enabled" : "Activat", + "Disabled" : "Dezactivat", + "Change Password" : "Schimbă parola" +}, +"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files_encryption/l10n/ro.json b/apps/files_encryption/l10n/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..3c32f040aec8c53d5cc4588c54e1ded6e5e132b6 --- /dev/null +++ b/apps/files_encryption/l10n/ro.json @@ -0,0 +1,17 @@ +{ "translations": { + "Unknown error" : "Eroare necunoscută", + "Recovery key successfully enabled" : "Cheia de recupeare a fost activata cu succes", + "Could not disable recovery key. Please check your recovery key password!" : "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!", + "Recovery key successfully disabled" : "Cheia de recuperare dezactivata cu succes", + "Password successfully changed." : "Parola a fost modificată cu succes.", + "Could not change the password. Maybe the old password was not correct." : "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.", + "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes", + "File recovery settings updated" : "Setarile pentru recuperarea fisierelor au fost actualizate", + "Could not update file recovery" : "Nu am putut actualiza recuperarea de fisiere", + "Encryption" : "Încriptare", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", + "Enabled" : "Activat", + "Disabled" : "Dezactivat", + "Change Password" : "Schimbă parola" +},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ro.php b/apps/files_encryption/l10n/ro.php deleted file mode 100644 index 92cf92c2cd3c1aa75350d8be4bf4eda88d625cfb..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ro.php +++ /dev/null @@ -1,19 +0,0 @@ - "Cheia de recupeare a fost activata cu succes", -"Could not enable recovery key. Please check your recovery key password!" => "Nu s-a putut activa cheia de recuperare. Verifica parola de recuperare!", -"Recovery key successfully disabled" => "Cheia de recuperare dezactivata cu succes", -"Could not disable recovery key. Please check your recovery key password!" => "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!", -"Password successfully changed." => "Parola a fost modificată cu succes.", -"Could not change the password. Maybe the old password was not correct." => "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.", -"Private key password successfully updated." => "Cheia privata a fost actualizata cu succes", -"Could not update the private key password. Maybe the old password was not correct." => "Nu am putut actualiza parola pentru cheia privata. Poate ca parola veche este incorecta.", -"Encryption" => "Încriptare", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", -"Enabled" => "Activat", -"Disabled" => "Dezactivat", -"Change Password" => "Schimbă parola", -"File recovery settings updated" => "Setarile pentru recuperarea fisierelor au fost actualizate", -"Could not update file recovery" => "Nu am putut actualiza recuperarea de fisiere" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"; diff --git a/apps/files_encryption/l10n/ru.js b/apps/files_encryption/l10n/ru.js new file mode 100644 index 0000000000000000000000000000000000000000..965f383691f78c7a0a33b579dd418fdc55458aef --- /dev/null +++ b/apps/files_encryption/l10n/ru.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Неизвестная ошибка", + "Missing recovery key password" : "Отсутствует пароль восстановления ключа", + "Please repeat the recovery key password" : "Пожалуйста, повторите пароль восстановления ключа", + "Repeated recovery key password does not match the provided recovery key password" : "Пароль восстановления ключа и его повтор не совпадают", + "Recovery key successfully enabled" : "Ключ восстановления успешно установлен", + "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", + "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", + "Please provide the old recovery password" : "Пожалуйста, введите старый пароль для восстановления", + "Please provide a new recovery password" : "Пожалуйста, введите новый пароль для восстановления", + "Please repeat the new recovery password" : "Пожалуйста, повторите новый пароль для восстановления", + "Password successfully changed." : "Пароль изменен удачно.", + "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно старый пароль не был верен.", + "Could not update the private key password." : "Невозможно обновить пароль для закрытого ключа.", + "The old password was not correct, please try again." : "Старый пароль введён неверно. Пожалуйста повторите попытку.", + "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.", + "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", + "File recovery settings updated" : "Настройки файла восстановления обновлены", + "Could not update file recovery" : "Невозможно обновить файл восстановления", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрации не инициализированно! Возможно приложение шифрации было реактивировано во время вашей сессии. Пожалуйста, попробуйте выйти и войти снова чтобы проинициализировать приложение шифрации.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш закрытый ключ недействителен! Вероятно, ваш пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу расшифровать файл, возможно это опубликованный файл. Пожалуйста, попросите владельца файла поделиться им с вами еще раз.", + "Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Пожалуйста, проверьте системные настройки или свяжитесь с администратором", + "Missing requirements." : "Требования отсутствуют.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.", + "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 %spersonal settings%s." : "Перейти напряму к вашим %spersonal settings%s.", + "Encryption" : "Шифрование", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", + "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", + "Recovery key password" : "Пароль для ключа восстановления", + "Repeat Recovery key password" : "Повторите пароль восстановления ключа", + "Enabled" : "Включено", + "Disabled" : "Отключено", + "Change recovery key password:" : "Сменить пароль для ключа восстановления:", + "Old Recovery key password" : "Старый пароль для ключа восстановления", + "New Recovery key password" : "Новый пароль для ключа восстановления", + "Repeat New Recovery key password" : "Повторите новый пароль восстановления ключа", + "Change Password" : "Изменить пароль", + "Your private key password no longer matches your log-in password." : "Пароль для Вашего закрытого ключа больше не соответствует паролю вашей учетной записи.", + "Set your old private key password to your current log-in password:" : "Замените старый пароль для закрытого ключа на текущий пароль учётной записи.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", + "Old log-in password" : "Старый пароль для учётной записи", + "Current log-in password" : "Текущий пароль для учётной записи", + "Update Private Key Password" : "Обновить пароль для закрытого ключа", + "Enable password recovery:" : "Включить восстановление пароля:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/ru.json b/apps/files_encryption/l10n/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..7548e510c43a6f24dda33d0537b495bd5a0b300e --- /dev/null +++ b/apps/files_encryption/l10n/ru.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Неизвестная ошибка", + "Missing recovery key password" : "Отсутствует пароль восстановления ключа", + "Please repeat the recovery key password" : "Пожалуйста, повторите пароль восстановления ключа", + "Repeated recovery key password does not match the provided recovery key password" : "Пароль восстановления ключа и его повтор не совпадают", + "Recovery key successfully enabled" : "Ключ восстановления успешно установлен", + "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", + "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", + "Please provide the old recovery password" : "Пожалуйста, введите старый пароль для восстановления", + "Please provide a new recovery password" : "Пожалуйста, введите новый пароль для восстановления", + "Please repeat the new recovery password" : "Пожалуйста, повторите новый пароль для восстановления", + "Password successfully changed." : "Пароль изменен удачно.", + "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно старый пароль не был верен.", + "Could not update the private key password." : "Невозможно обновить пароль для закрытого ключа.", + "The old password was not correct, please try again." : "Старый пароль введён неверно. Пожалуйста повторите попытку.", + "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.", + "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", + "File recovery settings updated" : "Настройки файла восстановления обновлены", + "Could not update file recovery" : "Невозможно обновить файл восстановления", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрации не инициализированно! Возможно приложение шифрации было реактивировано во время вашей сессии. Пожалуйста, попробуйте выйти и войти снова чтобы проинициализировать приложение шифрации.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш закрытый ключ недействителен! Вероятно, ваш пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу расшифровать файл, возможно это опубликованный файл. Пожалуйста, попросите владельца файла поделиться им с вами еще раз.", + "Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Пожалуйста, проверьте системные настройки или свяжитесь с администратором", + "Missing requirements." : "Требования отсутствуют.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.", + "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 %spersonal settings%s." : "Перейти напряму к вашим %spersonal settings%s.", + "Encryption" : "Шифрование", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", + "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", + "Recovery key password" : "Пароль для ключа восстановления", + "Repeat Recovery key password" : "Повторите пароль восстановления ключа", + "Enabled" : "Включено", + "Disabled" : "Отключено", + "Change recovery key password:" : "Сменить пароль для ключа восстановления:", + "Old Recovery key password" : "Старый пароль для ключа восстановления", + "New Recovery key password" : "Новый пароль для ключа восстановления", + "Repeat New Recovery key password" : "Повторите новый пароль восстановления ключа", + "Change Password" : "Изменить пароль", + "Your private key password no longer matches your log-in password." : "Пароль для Вашего закрытого ключа больше не соответствует паролю вашей учетной записи.", + "Set your old private key password to your current log-in password:" : "Замените старый пароль для закрытого ключа на текущий пароль учётной записи.", + " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", + "Old log-in password" : "Старый пароль для учётной записи", + "Current log-in password" : "Текущий пароль для учётной записи", + "Update Private Key Password" : "Обновить пароль для закрытого ключа", + "Enable password recovery:" : "Включить восстановление пароля:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php deleted file mode 100644 index 6f2fab89304b7dc167d0323acfa5174922f08417..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ru.php +++ /dev/null @@ -1,44 +0,0 @@ - "Ключ восстановления успешно установлен", -"Could not enable recovery key. Please check your recovery key password!" => "Невозможно включить ключ восстановления. Проверьте правильность пароля от ключа!", -"Recovery key successfully disabled" => "Ключ восстановления успешно отключен", -"Could not disable recovery key. Please check your recovery key password!" => "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", -"Password successfully changed." => "Пароль изменен удачно.", -"Could not change the password. Maybe the old password was not correct." => "Невозможно изменить пароль. Возможно старый пароль не был верен.", -"Private key password successfully updated." => "Пароль секретного ключа успешно обновлён.", -"Could not update the private key password. Maybe the old password was not correct." => "Невозможно обновить пароль от секретного ключа. Возможно, старый пароль указан неверно.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Приложение шифрации не инициализированно! Возможно приложение шифрации было реактивировано во время вашей сессии. Пожалуйста, попробуйте выйти и войти снова чтобы проинициализировать приложение шифрации.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Ваш секретный ключ не действителен! Вероятно, ваш пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить секретный ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Не могу расшифровать файл, возможно это опубликованный файл. Пожалуйста, попросите владельца файла поделиться им с вами еще раз.", -"Unknown error. Please check your system settings or contact your administrator" => "Неизвестная ошибка. Пожалуйста, проверьте системные настройки или свяжитесь с администратором", -"Missing requirements." => "Требования отсутствуют.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.", -"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 %spersonal settings%s." => "Перейти напряму к вашим %spersonal settings%s.", -"Encryption" => "Шифрование", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", -"Enable recovery key (allow to recover users files in case of password loss):" => "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", -"Recovery key password" => "Пароль для ключа восстановления", -"Repeat Recovery key password" => "Повторите пароль восстановления ключа", -"Enabled" => "Включено", -"Disabled" => "Отключено", -"Change recovery key password:" => "Сменить пароль для ключа восстановления:", -"Old Recovery key password" => "Старый пароль для ключа восстановления", -"New Recovery key password" => "Новый пароль для ключа восстановления", -"Repeat New Recovery key password" => "Повторите новый пароль восстановления ключа", -"Change Password" => "Изменить пароль", -"Your private key password no longer matches your log-in password." => "Пароль от Вашего закрытого ключа больше не соответствует паролю от вашей учетной записи.", -"Set your old private key password to your current log-in password:" => "Замените старый пароль от закрытого ключа на новый пароль входа.", -" If you don't remember your old password you can ask your administrator to recover your files." => "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", -"Old log-in password" => "Старый пароль для входа", -"Current log-in password" => "Текущйи пароль для входа", -"Update Private Key Password" => "Обновить пароль от секретного ключа", -"Enable password recovery:" => "Включить восстановление пароля:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля", -"File recovery settings updated" => "Настройки файла восстановления обновлены", -"Could not update file recovery" => "Невозможно обновить файл восстановления" -); -$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);"; diff --git a/apps/files_encryption/l10n/si_LK.js b/apps/files_encryption/l10n/si_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..befc19388e00c17a877ab6fc95dfec52188444de --- /dev/null +++ b/apps/files_encryption/l10n/si_LK.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Encryption" : "ගුප්ත කේතනය" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/si_LK.json b/apps/files_encryption/l10n/si_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..3c619c7d8c4df53633d6b263a1862668e7be71dc --- /dev/null +++ b/apps/files_encryption/l10n/si_LK.json @@ -0,0 +1,4 @@ +{ "translations": { + "Encryption" : "ගුප්ත කේතනය" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/si_LK.php b/apps/files_encryption/l10n/si_LK.php deleted file mode 100644 index 4c7dc957bfe2940cb41ed13469649dab89851dce..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/si_LK.php +++ /dev/null @@ -1,5 +0,0 @@ - "ගුප්ත කේතනය" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/sk_SK.js b/apps/files_encryption/l10n/sk_SK.js new file mode 100644 index 0000000000000000000000000000000000000000..cf7606bb1ada0553e4df0b2ab23b0508bc71bdd4 --- /dev/null +++ b/apps/files_encryption/l10n/sk_SK.js @@ -0,0 +1,44 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Neznáma chyba", + "Recovery key successfully enabled" : "Záchranný kľúč bol úspešne povolený", + "Could not disable recovery key. Please check your recovery key password!" : "Nepodarilo sa zakázať záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!", + "Recovery key successfully disabled" : "Záchranný kľúč bol úspešne zakázaný", + "Password successfully changed." : "Heslo úspešne zmenené.", + "Could not change the password. Maybe the old password was not correct." : "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.", + "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.", + "File recovery settings updated" : "Nastavenie obnovy súborov aktualizované", + "Could not update file recovery" : "Nemožno aktualizovať obnovenie súborov", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifrovacia aplikácia nie je inicializovaná. Je možné, že aplikácia bola znova aktivovaná počas vášho prihlasovania. Pokúste sa odhlásiť a znova prihlásiť pre inicializáciu šifrovania.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš súkromný kľúč nie je platný! Možno bolo vaše heslo zmenené mimo %s (napr. firemný priečinok). Môžete si aktualizovať heslo svojho ​​súkromného kľúča vo vašom osobnom nastavení, ak si chcete obnoviť prístup k šifrovaným súborom.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", + "Unknown error. Please check your system settings or contact your administrator" : "Neznáma chyba. Skontrolujte si vaše systémové nastavenia alebo kontaktujte administrátora", + "Missing requirements." : "Chýbajúce požiadavky.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Prosím uistite sa, že PHP verzie 5.3.3 alebo novšej je nainštalované a tiež, že OpenSSL knižnica spolu z PHP rozšírením je povolená a konfigurovaná správne. Nateraz bola aplikácia šifrovania zablokovaná.", + "Following users are not set up for encryption:" : "Nasledujúci používatelia nie sú nastavení pre šifrovanie:", + "Initial encryption started... This can take some time. Please wait." : "Počiatočné šifrovanie započalo ... To môže nejakú dobu trvať. Čakajte prosím.", + "Initial encryption running... Please try again later." : "Počiatočné šifrovanie beží... Skúste to neskôr znovu.", + "Go directly to your %spersonal settings%s." : "Prejsť priamo do svojho %sosobného nastavenia%s.", + "Encryption" : "Šifrovanie", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):", + "Recovery key password" : "Heslo obnovovacieho kľúča", + "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu", + "Enabled" : "Povolené", + "Disabled" : "Zakázané", + "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", + "Old Recovery key password" : "Staré heslo obnovovacieho kľúča", + "New Recovery key password" : "Nové heslo obnovovacieho kľúča", + "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu", + "Change Password" : "Zmeniť heslo", + "Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", + "Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ak si nepamätáte svoje staré heslo, môžete požiadať administrátora o obnovenie svojich súborov.", + "Old log-in password" : "Staré prihlasovacie heslo", + "Current log-in password" : "Súčasné prihlasovacie heslo", + "Update Private Key Password" : "Aktualizovať heslo súkromného kľúča", + "Enable password recovery:" : "Povoliť obnovu hesla:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_encryption/l10n/sk_SK.json b/apps/files_encryption/l10n/sk_SK.json new file mode 100644 index 0000000000000000000000000000000000000000..6229150b737e88bd231cf785d9dfde6c3f46596a --- /dev/null +++ b/apps/files_encryption/l10n/sk_SK.json @@ -0,0 +1,42 @@ +{ "translations": { + "Unknown error" : "Neznáma chyba", + "Recovery key successfully enabled" : "Záchranný kľúč bol úspešne povolený", + "Could not disable recovery key. Please check your recovery key password!" : "Nepodarilo sa zakázať záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!", + "Recovery key successfully disabled" : "Záchranný kľúč bol úspešne zakázaný", + "Password successfully changed." : "Heslo úspešne zmenené.", + "Could not change the password. Maybe the old password was not correct." : "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.", + "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.", + "File recovery settings updated" : "Nastavenie obnovy súborov aktualizované", + "Could not update file recovery" : "Nemožno aktualizovať obnovenie súborov", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifrovacia aplikácia nie je inicializovaná. Je možné, že aplikácia bola znova aktivovaná počas vášho prihlasovania. Pokúste sa odhlásiť a znova prihlásiť pre inicializáciu šifrovania.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš súkromný kľúč nie je platný! Možno bolo vaše heslo zmenené mimo %s (napr. firemný priečinok). Môžete si aktualizovať heslo svojho ​​súkromného kľúča vo vašom osobnom nastavení, ak si chcete obnoviť prístup k šifrovaným súborom.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", + "Unknown error. Please check your system settings or contact your administrator" : "Neznáma chyba. Skontrolujte si vaše systémové nastavenia alebo kontaktujte administrátora", + "Missing requirements." : "Chýbajúce požiadavky.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Prosím uistite sa, že PHP verzie 5.3.3 alebo novšej je nainštalované a tiež, že OpenSSL knižnica spolu z PHP rozšírením je povolená a konfigurovaná správne. Nateraz bola aplikácia šifrovania zablokovaná.", + "Following users are not set up for encryption:" : "Nasledujúci používatelia nie sú nastavení pre šifrovanie:", + "Initial encryption started... This can take some time. Please wait." : "Počiatočné šifrovanie započalo ... To môže nejakú dobu trvať. Čakajte prosím.", + "Initial encryption running... Please try again later." : "Počiatočné šifrovanie beží... Skúste to neskôr znovu.", + "Go directly to your %spersonal settings%s." : "Prejsť priamo do svojho %sosobného nastavenia%s.", + "Encryption" : "Šifrovanie", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):", + "Recovery key password" : "Heslo obnovovacieho kľúča", + "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu", + "Enabled" : "Povolené", + "Disabled" : "Zakázané", + "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", + "Old Recovery key password" : "Staré heslo obnovovacieho kľúča", + "New Recovery key password" : "Nové heslo obnovovacieho kľúča", + "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu", + "Change Password" : "Zmeniť heslo", + "Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", + "Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Ak si nepamätáte svoje staré heslo, môžete požiadať administrátora o obnovenie svojich súborov.", + "Old log-in password" : "Staré prihlasovacie heslo", + "Current log-in password" : "Súčasné prihlasovacie heslo", + "Update Private Key Password" : "Aktualizovať heslo súkromného kľúča", + "Enable password recovery:" : "Povoliť obnovu hesla:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php deleted file mode 100644 index 4f59f8c0440a7157599f56825b163e5a17cc7c70..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/sk_SK.php +++ /dev/null @@ -1,44 +0,0 @@ - "Záchranný kľúč bol úspešne povolený", -"Could not enable recovery key. Please check your recovery key password!" => "Nepodarilo sa povoliť záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!", -"Recovery key successfully disabled" => "Záchranný kľúč bol úspešne zakázaný", -"Could not disable recovery key. Please check your recovery key password!" => "Nepodarilo sa zakázať záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!", -"Password successfully changed." => "Heslo úspešne zmenené.", -"Could not change the password. Maybe the old password was not correct." => "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.", -"Private key password successfully updated." => "Heslo súkromného kľúča je úspešne aktualizované.", -"Could not update the private key password. Maybe the old password was not correct." => "Nemožno aktualizovať heslo súkromného kľúča. Možno nebolo staré heslo správne.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Šifrovacia aplikácia nie je inicializovaná. Je možné, že aplikácia bola znova aktivovaná počas vášho prihlasovania. Pokúste sa odhlásiť a znova prihlásiť pre inicializáciu šifrovania.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Váš súkromný kľúč nie je platný! Možno bolo vaše heslo zmenené mimo %s (napr. firemný priečinok). Môžete si aktualizovať heslo svojho ​​súkromného kľúča vo vašom osobnom nastavení, ak si chcete obnoviť prístup k šifrovaným súborom.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", -"Unknown error. Please check your system settings or contact your administrator" => "Neznáma chyba. Skontrolujte si vaše systémové nastavenia alebo kontaktujte administrátora", -"Missing requirements." => "Chýbajúce požiadavky.", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Prosím uistite sa, že PHP verzie 5.3.3 alebo novšej je nainštalované a tiež, že OpenSSL knižnica spolu z PHP rozšírením je povolená a konfigurovaná správne. Nateraz bola aplikácia šifrovania zablokovaná.", -"Following users are not set up for encryption:" => "Nasledujúci používatelia nie sú nastavení pre šifrovanie:", -"Initial encryption started... This can take some time. Please wait." => "Počiatočné šifrovanie započalo ... To môže nejakú dobu trvať. Čakajte prosím.", -"Initial encryption running... Please try again later." => "Počiatočné šifrovanie beží... Skúste to neskôr znovu.", -"Go directly to your %spersonal settings%s." => "Prejsť priamo do svojho %sosobného nastavenia%s.", -"Encryption" => "Šifrovanie", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):", -"Recovery key password" => "Heslo obnovovacieho kľúča", -"Repeat Recovery key password" => "Zopakujte heslo kľúča pre obnovu", -"Enabled" => "Povolené", -"Disabled" => "Zakázané", -"Change recovery key password:" => "Zmeniť heslo obnovovacieho kľúča:", -"Old Recovery key password" => "Staré heslo obnovovacieho kľúča", -"New Recovery key password" => "Nové heslo obnovovacieho kľúča", -"Repeat New Recovery key password" => "Zopakujte nové heslo kľúča pre obnovu", -"Change Password" => "Zmeniť heslo", -"Your private key password no longer matches your log-in password." => "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", -"Set your old private key password to your current log-in password:" => "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Ak si nepamätáte svoje staré heslo, môžete požiadať administrátora o obnovenie svojich súborov.", -"Old log-in password" => "Staré prihlasovacie heslo", -"Current log-in password" => "Súčasné prihlasovacie heslo", -"Update Private Key Password" => "Aktualizovať heslo súkromného kľúča", -"Enable password recovery:" => "Povoliť obnovu hesla:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo", -"File recovery settings updated" => "Nastavenie obnovy súborov aktualizované", -"Could not update file recovery" => "Nemožno aktualizovať obnovenie súborov" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_encryption/l10n/sl.js b/apps/files_encryption/l10n/sl.js new file mode 100644 index 0000000000000000000000000000000000000000..3bb41a62f22abc117bb1e35fddf7befb8d346876 --- /dev/null +++ b/apps/files_encryption/l10n/sl.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Neznana napaka", + "Missing recovery key password" : "Manjka ključ za obnovitev", + "Please repeat the recovery key password" : "Ponovite vpis ključa za obnovitev", + "Repeated recovery key password does not match the provided recovery key password" : "Ponovljen vpis ključa za obnovitev ni enak prvemu vpisu tega ključa", + "Recovery key successfully enabled" : "Ključ za obnovitev gesla je uspešno nastavljen", + "Could not disable recovery key. Please check your recovery key password!" : "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!", + "Recovery key successfully disabled" : "Ključ za obnovitev gesla je uspešno onemogočen", + "Please provide the old recovery password" : "Vpišite star ključ za obnovitev", + "Please provide a new recovery password" : "Vpišite nov ključ za obnovitev", + "Please repeat the new recovery password" : "Ponovno vpišite nov ključ za obnovitev", + "Password successfully changed." : "Geslo je uspešno spremenjeno.", + "Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.", + "Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.", + "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.", + "The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.", + "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.", + "File recovery settings updated" : "Nastavitve obnavljanja dokumentov so posodobljene", + "Could not update file recovery" : "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", + "Unknown error. Please check your system settings or contact your administrator" : "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.", + "Missing requirements." : "Manjkajoče zahteve", + "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." : "Preverite, ali je na strežniku nameščen paket PHP 5.3.3 ali novejši, da je omogočen in pravilno nastavljen PHP OpenSSL. Z obstoječimi možnostmi šifriranje ni mogoče.", + "Following users are not set up for encryption:" : "Navedeni uporabniki še nimajo nastavljenega šifriranja:", + "Initial encryption started... This can take some time. Please wait." : "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.", + "Initial encryption running... Please try again later." : "Začetno šifriranje je v teku ... Poskusite kasneje.", + "Go directly to your %spersonal settings%s." : "Oglejte si %sosebne nastavitve%s.", + "Encryption" : "Šifriranje", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):", + "Recovery key password" : "Ključ za obnovitev gesla", + "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla", + "Enabled" : "Omogočeno", + "Disabled" : "Onemogočeno", + "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", + "Old Recovery key password" : "Stari ključ za obnovitev gesla", + "New Recovery key password" : "Novi ključ za obnovitev gesla", + "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla", + "Change Password" : "Spremeni geslo", + "Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.", + "Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Če ste pozabili svoje geslo, lahko vaše datoteke obnovi le skrbnik sistema.", + "Old log-in password" : "Staro geslo", + "Current log-in password" : "Trenutno geslo", + "Update Private Key Password" : "Posodobi zasebni ključ", + "Enable password recovery:" : "Omogoči obnovitev gesla:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili." +}, +"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/files_encryption/l10n/sl.json b/apps/files_encryption/l10n/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..a9909c6551ac0d5e802ab679fe17818eb965729b --- /dev/null +++ b/apps/files_encryption/l10n/sl.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Neznana napaka", + "Missing recovery key password" : "Manjka ključ za obnovitev", + "Please repeat the recovery key password" : "Ponovite vpis ključa za obnovitev", + "Repeated recovery key password does not match the provided recovery key password" : "Ponovljen vpis ključa za obnovitev ni enak prvemu vpisu tega ključa", + "Recovery key successfully enabled" : "Ključ za obnovitev gesla je uspešno nastavljen", + "Could not disable recovery key. Please check your recovery key password!" : "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!", + "Recovery key successfully disabled" : "Ključ za obnovitev gesla je uspešno onemogočen", + "Please provide the old recovery password" : "Vpišite star ključ za obnovitev", + "Please provide a new recovery password" : "Vpišite nov ključ za obnovitev", + "Please repeat the new recovery password" : "Ponovno vpišite nov ključ za obnovitev", + "Password successfully changed." : "Geslo je uspešno spremenjeno.", + "Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.", + "Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.", + "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.", + "The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.", + "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.", + "File recovery settings updated" : "Nastavitve obnavljanja dokumentov so posodobljene", + "Could not update file recovery" : "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", + "Unknown error. Please check your system settings or contact your administrator" : "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.", + "Missing requirements." : "Manjkajoče zahteve", + "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." : "Preverite, ali je na strežniku nameščen paket PHP 5.3.3 ali novejši, da je omogočen in pravilno nastavljen PHP OpenSSL. Z obstoječimi možnostmi šifriranje ni mogoče.", + "Following users are not set up for encryption:" : "Navedeni uporabniki še nimajo nastavljenega šifriranja:", + "Initial encryption started... This can take some time. Please wait." : "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.", + "Initial encryption running... Please try again later." : "Začetno šifriranje je v teku ... Poskusite kasneje.", + "Go directly to your %spersonal settings%s." : "Oglejte si %sosebne nastavitve%s.", + "Encryption" : "Šifriranje", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", + "Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):", + "Recovery key password" : "Ključ za obnovitev gesla", + "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla", + "Enabled" : "Omogočeno", + "Disabled" : "Onemogočeno", + "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", + "Old Recovery key password" : "Stari ključ za obnovitev gesla", + "New Recovery key password" : "Novi ključ za obnovitev gesla", + "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla", + "Change Password" : "Spremeni geslo", + "Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.", + "Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Če ste pozabili svoje geslo, lahko vaše datoteke obnovi le skrbnik sistema.", + "Old log-in password" : "Staro geslo", + "Current log-in password" : "Trenutno geslo", + "Update Private Key Password" : "Posodobi zasebni ključ", + "Enable password recovery:" : "Omogoči obnovitev gesla:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili." +},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sl.php b/apps/files_encryption/l10n/sl.php deleted file mode 100644 index aeaf80ac6ca34f542650f642c36734bd2b21d67a..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/sl.php +++ /dev/null @@ -1,44 +0,0 @@ - "Ključ za obnovitev gesla je uspešno nastavljen", -"Could not enable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni mogoče nastaviti. Preverite ključ!", -"Recovery key successfully disabled" => "Ključ za obnovitev gesla je uspešno onemogočen", -"Could not disable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!", -"Password successfully changed." => "Geslo je uspešno spremenjeno.", -"Could not change the password. Maybe the old password was not correct." => "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.", -"Private key password successfully updated." => "Zasebni ključ za geslo je uspešno posodobljen.", -"Could not update the private key password. Maybe the old password was not correct." => "Zasebnega ključa za geslo ni mogoče posodobiti. Morda vnos starega gesla ni bil pravilen.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", -"Unknown error. Please check your system settings or contact your administrator" => "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.", -"Missing requirements." => "Manjkajoče zahteve", -"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." => "Preverite, ali je na strežniku nameščen paket PHP 5.3.3 ali novejši, da je omogočen in pravilno nastavljen PHP OpenSSL. Z obstoječimi možnostmi šifriranje ni mogoče.", -"Following users are not set up for encryption:" => "Navedeni uporabniki še nimajo nastavljenega šifriranja:", -"Initial encryption started... This can take some time. Please wait." => "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.", -"Initial encryption running... Please try again later." => "Začetno šifriranje je v teku ... Poskusite kasneje.", -"Go directly to your %spersonal settings%s." => "Oglejte si %sosebne nastavitve%s.", -"Encryption" => "Šifriranje", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", -"Enable recovery key (allow to recover users files in case of password loss):" => "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):", -"Recovery key password" => "Ključ za obnovitev gesla", -"Repeat Recovery key password" => "Ponovi ključ za obnovitev gesla", -"Enabled" => "Omogočeno", -"Disabled" => "Onemogočeno", -"Change recovery key password:" => "Spremeni ključ za obnovitev gesla:", -"Old Recovery key password" => "Stari ključ za obnovitev gesla", -"New Recovery key password" => "Novi ključ za obnovitev gesla", -"Repeat New Recovery key password" => "Ponovi novi ključ za obnovitev gesla", -"Change Password" => "Spremeni geslo", -"Your private key password no longer matches your log-in password." => "Zasebno geslo ni več skladno s prijavnim geslom.", -"Set your old private key password to your current log-in password:" => "Nastavite star zasebni ključ na trenutno prijavno geslo:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Če ste pozabili svoje geslo, lahko vaše datoteke obnovi le skrbnik sistema.", -"Old log-in password" => "Staro geslo", -"Current log-in password" => "Trenutno geslo", -"Update Private Key Password" => "Posodobi zasebni ključ", -"Enable password recovery:" => "Omogoči obnovitev gesla:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili.", -"File recovery settings updated" => "Nastavitve obnavljanja dokumentov so posodobljene", -"Could not update file recovery" => "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti" -); -$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/apps/files_encryption/l10n/sq.js b/apps/files_encryption/l10n/sq.js new file mode 100644 index 0000000000000000000000000000000000000000..ffab720cfda97d3c67978d883dcb0da6ed508c1e --- /dev/null +++ b/apps/files_encryption/l10n/sq.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Gabim panjohur", + "Encryption" : "Kodifikimi", + "Enabled" : "Aktivizuar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/sq.json b/apps/files_encryption/l10n/sq.json new file mode 100644 index 0000000000000000000000000000000000000000..dee4c42e547a424006819188dd47ecf8374fcb9f --- /dev/null +++ b/apps/files_encryption/l10n/sq.json @@ -0,0 +1,6 @@ +{ "translations": { + "Unknown error" : "Gabim panjohur", + "Encryption" : "Kodifikimi", + "Enabled" : "Aktivizuar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sq.php b/apps/files_encryption/l10n/sq.php deleted file mode 100644 index f53db8e151c7514ce9219aaf548cd30e67fb663d..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/sq.php +++ /dev/null @@ -1,5 +0,0 @@ - "Kodifikimi" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/sr.js b/apps/files_encryption/l10n/sr.js new file mode 100644 index 0000000000000000000000000000000000000000..d6f89d85ca65fc4dd93345913fa8c664b6ccd8e0 --- /dev/null +++ b/apps/files_encryption/l10n/sr.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Encryption" : "Шифровање" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/sr.json b/apps/files_encryption/l10n/sr.json new file mode 100644 index 0000000000000000000000000000000000000000..db6beb276cb6f7bc0d922f0474370bbd59f5dc26 --- /dev/null +++ b/apps/files_encryption/l10n/sr.json @@ -0,0 +1,4 @@ +{ "translations": { + "Encryption" : "Шифровање" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sr.php b/apps/files_encryption/l10n/sr.php deleted file mode 100644 index 8a291faed233574f7f80143266ef8c2bfac125cc..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/sr.php +++ /dev/null @@ -1,5 +0,0 @@ - "Шифровање" -); -$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);"; diff --git a/apps/files_encryption/l10n/sv.js b/apps/files_encryption/l10n/sv.js new file mode 100644 index 0000000000000000000000000000000000000000..44d58564ba7553463344d3914bf16daf3ae74128 --- /dev/null +++ b/apps/files_encryption/l10n/sv.js @@ -0,0 +1,42 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Okänt fel", + "Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats", + "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", + "Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats", + "Password successfully changed." : "Ändringen av lösenordet lyckades.", + "Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", + "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.", + "File recovery settings updated" : "Inställningarna för filåterställning har uppdaterats", + "Could not update file recovery" : "Kunde inte uppdatera filåterställning", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet kunde inte initieras! Möjligen blev krypteringsprogrammet återaktiverad under din session. Försök med att logga ut och in igen för att initiera krypteringsprogrammet.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din privata lösenordsnyckel är inte giltig! Troligen har ditt lösenord ändrats utanför %s (t.ex. i företagets katalogtjänst). Du kan uppdatera den privata lösenordsnyckeln under dina personliga inställningar för att återfå tillgång till dina filer.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", + "Unknown error. Please check your system settings or contact your administrator" : "Okänt fel. Kontrollera dina systeminställningar eller kontakta din administratör", + "Missing requirements." : "Krav som saknas", + "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." : "Kontrollera att PHP 5.3.3 eller senare är installerad och att tillägget OpenSSL PHP är aktiverad och korrekt konfigurerad. Kryptering är tillsvidare inaktiverad.", + "Following users are not set up for encryption:" : "Följande användare har inte aktiverat kryptering:", + "Initial encryption started... This can take some time. Please wait." : "Initiala krypteringen har påbörjats... Detta kan ta lite tid. Var god vänta.", + "Initial encryption running... Please try again later." : "Initiala krypteringen körs... Var god försök igen senare.", + "Go directly to your %spersonal settings%s." : "Gå direkt till dina %segna inställningar%s.", + "Encryption" : "Kryptering", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):", + "Recovery key password" : "Lösenord för återställningsnyckel", + "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord", + "Enabled" : "Aktiverad", + "Disabled" : "Inaktiverad", + "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", + "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel", + "New Recovery key password" : "Nytt lösenord för återställningsnyckel", + "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel", + "Change Password" : "Byt lösenord", + " If you don't remember your old password you can ask your administrator to recover your files." : "Om du inte kommer ihåg ditt gamla lösenord kan du be din administratör att återställa dina filer.", + "Old log-in password" : "Gammalt inloggningslösenord", + "Current log-in password" : "Nuvarande inloggningslösenord", + "Update Private Key Password" : "Uppdatera lösenordet för din privata nyckel", + "Enable password recovery:" : "Aktivera lösenordsåterställning", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/sv.json b/apps/files_encryption/l10n/sv.json new file mode 100644 index 0000000000000000000000000000000000000000..5ee6606b66566680e9bf8527333e771e08ca6c23 --- /dev/null +++ b/apps/files_encryption/l10n/sv.json @@ -0,0 +1,40 @@ +{ "translations": { + "Unknown error" : "Okänt fel", + "Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats", + "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", + "Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats", + "Password successfully changed." : "Ändringen av lösenordet lyckades.", + "Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", + "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.", + "File recovery settings updated" : "Inställningarna för filåterställning har uppdaterats", + "Could not update file recovery" : "Kunde inte uppdatera filåterställning", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet kunde inte initieras! Möjligen blev krypteringsprogrammet återaktiverad under din session. Försök med att logga ut och in igen för att initiera krypteringsprogrammet.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din privata lösenordsnyckel är inte giltig! Troligen har ditt lösenord ändrats utanför %s (t.ex. i företagets katalogtjänst). Du kan uppdatera den privata lösenordsnyckeln under dina personliga inställningar för att återfå tillgång till dina filer.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", + "Unknown error. Please check your system settings or contact your administrator" : "Okänt fel. Kontrollera dina systeminställningar eller kontakta din administratör", + "Missing requirements." : "Krav som saknas", + "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." : "Kontrollera att PHP 5.3.3 eller senare är installerad och att tillägget OpenSSL PHP är aktiverad och korrekt konfigurerad. Kryptering är tillsvidare inaktiverad.", + "Following users are not set up for encryption:" : "Följande användare har inte aktiverat kryptering:", + "Initial encryption started... This can take some time. Please wait." : "Initiala krypteringen har påbörjats... Detta kan ta lite tid. Var god vänta.", + "Initial encryption running... Please try again later." : "Initiala krypteringen körs... Var god försök igen senare.", + "Go directly to your %spersonal settings%s." : "Gå direkt till dina %segna inställningar%s.", + "Encryption" : "Kryptering", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", + "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):", + "Recovery key password" : "Lösenord för återställningsnyckel", + "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord", + "Enabled" : "Aktiverad", + "Disabled" : "Inaktiverad", + "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", + "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel", + "New Recovery key password" : "Nytt lösenord för återställningsnyckel", + "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel", + "Change Password" : "Byt lösenord", + " If you don't remember your old password you can ask your administrator to recover your files." : "Om du inte kommer ihåg ditt gamla lösenord kan du be din administratör att återställa dina filer.", + "Old log-in password" : "Gammalt inloggningslösenord", + "Current log-in password" : "Nuvarande inloggningslösenord", + "Update Private Key Password" : "Uppdatera lösenordet för din privata nyckel", + "Enable password recovery:" : "Aktivera lösenordsåterställning", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sv.php b/apps/files_encryption/l10n/sv.php deleted file mode 100644 index 70c417666bf65ef82d3455f51705be2ac8828a6b..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/sv.php +++ /dev/null @@ -1,42 +0,0 @@ - "Återställningsnyckeln har framgångsrikt aktiverats", -"Could not enable recovery key. Please check your recovery key password!" => "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", -"Recovery key successfully disabled" => "Återställningsnyckeln har framgångsrikt inaktiverats", -"Could not disable recovery key. Please check your recovery key password!" => "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", -"Password successfully changed." => "Ändringen av lösenordet lyckades.", -"Could not change the password. Maybe the old password was not correct." => "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", -"Private key password successfully updated." => "Den privata nyckelns lösenord uppdaterades utan problem.", -"Could not update the private key password. Maybe the old password was not correct." => "Kunde inte uppdatera lösenordet för den privata nyckeln. Kanske var det gamla lösenordet fel.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypteringsprogrammet kunde inte initieras! Möjligen blev krypteringsprogrammet återaktiverad under din session. Försök med att logga ut och in igen för att initiera krypteringsprogrammet.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din privata lösenordsnyckel är inte giltig! Troligen har ditt lösenord ändrats utanför %s (t.ex. i företagets katalogtjänst). Du kan uppdatera den privata lösenordsnyckeln under dina personliga inställningar för att återfå tillgång till dina filer.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", -"Unknown error. Please check your system settings or contact your administrator" => "Okänt fel. Kontrollera dina systeminställningar eller kontakta din administratör", -"Missing requirements." => "Krav som saknas", -"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." => "Kontrollera att PHP 5.3.3 eller senare är installerad och att tillägget OpenSSL PHP är aktiverad och korrekt konfigurerad. Kryptering är tillsvidare inaktiverad.", -"Following users are not set up for encryption:" => "Följande användare har inte aktiverat kryptering:", -"Initial encryption started... This can take some time. Please wait." => "Initiala krypteringen har påbörjats... Detta kan ta lite tid. Var god vänta.", -"Initial encryption running... Please try again later." => "Initiala krypteringen körs... Var god försök igen senare.", -"Go directly to your %spersonal settings%s." => "Gå direkt till dina %segna inställningar%s.", -"Encryption" => "Kryptering", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", -"Enable recovery key (allow to recover users files in case of password loss):" => "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):", -"Recovery key password" => "Lösenord för återställningsnyckel", -"Repeat Recovery key password" => "Upprepa återställningsnyckelns lösenord", -"Enabled" => "Aktiverad", -"Disabled" => "Inaktiverad", -"Change recovery key password:" => "Ändra lösenord för återställningsnyckel:", -"Old Recovery key password" => "Gammalt lösenord för återställningsnyckel", -"New Recovery key password" => "Nytt lösenord för återställningsnyckel", -"Repeat New Recovery key password" => "Upprepa lösenord för ny återställningsnyckel", -"Change Password" => "Byt lösenord", -" If you don't remember your old password you can ask your administrator to recover your files." => "Om du inte kommer ihåg ditt gamla lösenord kan du be din administratör att återställa dina filer.", -"Old log-in password" => "Gammalt inloggningslösenord", -"Current log-in password" => "Nuvarande inloggningslösenord", -"Update Private Key Password" => "Uppdatera lösenordet för din privata nyckel", -"Enable password recovery:" => "Aktivera lösenordsåterställning", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord", -"File recovery settings updated" => "Inställningarna för filåterställning har uppdaterats", -"Could not update file recovery" => "Kunde inte uppdatera filåterställning" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/ta_LK.js b/apps/files_encryption/l10n/ta_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..e37ff4a78c44fbc438166f945eb8eb7c1228504a --- /dev/null +++ b/apps/files_encryption/l10n/ta_LK.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Encryption" : "மறைக்குறியீடு" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ta_LK.json b/apps/files_encryption/l10n/ta_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..a52ff1c3215f9462ab929913966931259a583c17 --- /dev/null +++ b/apps/files_encryption/l10n/ta_LK.json @@ -0,0 +1,4 @@ +{ "translations": { + "Encryption" : "மறைக்குறியீடு" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ta_LK.php b/apps/files_encryption/l10n/ta_LK.php deleted file mode 100644 index 327102b5df666d3ca940bde5d88700ec44eda02e..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ta_LK.php +++ /dev/null @@ -1,5 +0,0 @@ - "மறைக்குறியீடு" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/th_TH.js b/apps/files_encryption/l10n/th_TH.js new file mode 100644 index 0000000000000000000000000000000000000000..ad95d941a2819684edec0533c3d84f3a3d2abc75 --- /dev/null +++ b/apps/files_encryption/l10n/th_TH.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "Encryption" : "การเข้ารหัส" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/th_TH.json b/apps/files_encryption/l10n/th_TH.json new file mode 100644 index 0000000000000000000000000000000000000000..d5a9a37569d3dc76489c2384b386a93d48240fa3 --- /dev/null +++ b/apps/files_encryption/l10n/th_TH.json @@ -0,0 +1,5 @@ +{ "translations": { + "Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ", + "Encryption" : "การเข้ารหัส" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/th_TH.php b/apps/files_encryption/l10n/th_TH.php deleted file mode 100644 index cc670e425a63d288cb28c871947d6445c9fd3fdd..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/th_TH.php +++ /dev/null @@ -1,5 +0,0 @@ - "การเข้ารหัส" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/tr.js b/apps/files_encryption/l10n/tr.js new file mode 100644 index 0000000000000000000000000000000000000000..41240bf5ed61055ff10b993e5d0180d0a043a6a9 --- /dev/null +++ b/apps/files_encryption/l10n/tr.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Bilinmeyen hata", + "Missing recovery key password" : "Eksik kurtarma anahtarı parolası", + "Please repeat the recovery key password" : "Lütfen kurtarma anahtarı parolasını yenileyin", + "Repeated recovery key password does not match the provided recovery key password" : "Yenilenen kurtarma anahtarı parolası, belirtilen kurtarma anahtarı parolası ile eşleşmiyor", + "Recovery key successfully enabled" : "Kurtarma anahtarı başarıyla etkinleştirildi", + "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", + "Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı", + "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin", + "Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin", + "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin", + "Password successfully changed." : "Parola başarıyla değiştirildi.", + "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", + "Could not update the private key password." : "Özel anahtar parolası güncellenemedi", + "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.", + "The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.", + "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.", + "File recovery settings updated" : "Dosya kurtarma ayarları güncellendi", + "Could not update file recovery" : "Dosya kurtarma güncellenemedi", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Şifreleme uygulaması başlatılamadı! Oturumunuz sırasında şifreleme uygulaması tekrar etkinleştirilmiş olabilir. Lütfen şifreleme uygulamasını başlatmak için oturumu kapatıp yeniden oturum açmayı deneyin.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Özel anahtarınız geçerli değil! Muhtemelen parolanız %s dışarısında değiştirildi (örn. şirket dizininde). Gizli anahtar parolanızı kişisel ayarlarınızda güncelleyerek şifreli dosyalarınıza erişimi kurtarabilirsiniz.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", + "Unknown error. Please check your system settings or contact your administrator" : "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin", + "Missing requirements." : "Gereklilikler eksik.", + "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 veya daha sürümü ile birlikte OpenSSL ve OpenSSL PHP uzantısının birlikte etkin olduğundan ve doğru bir şekilde yapılandırıldığından emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.", + "Following users are not set up for encryption:" : "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:", + "Initial encryption started... This can take some time. Please wait." : "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.", + "Initial encryption running... Please try again later." : "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.", + "Go directly to your %spersonal settings%s." : "Doğrudan %skişisel ayarlarınıza%s gidin.", + "Encryption" : "Şifreleme", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", + "Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):", + "Recovery key password" : "Kurtarma anahtarı parolası", + "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin", + "Enabled" : "Etkin", + "Disabled" : "Devre Dışı", + "Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:", + "Old Recovery key password" : "Eski Kurtarma anahtarı parolası", + "New Recovery key password" : "Yeni Kurtarma anahtarı parolası", + "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin", + "Change Password" : "Parola Değiştir", + "Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", + "Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", + "Old log-in password" : "Eski oturum açma parolası", + "Current log-in password" : "Geçerli oturum açma parolası", + "Update Private Key Password" : "Özel Anahtar Parolasını Güncelle", + "Enable password recovery:" : "Parola kurtarmayı etkinleştir:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_encryption/l10n/tr.json b/apps/files_encryption/l10n/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..d951321dd823c94eec291bc1a3ab955176c600ab --- /dev/null +++ b/apps/files_encryption/l10n/tr.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Bilinmeyen hata", + "Missing recovery key password" : "Eksik kurtarma anahtarı parolası", + "Please repeat the recovery key password" : "Lütfen kurtarma anahtarı parolasını yenileyin", + "Repeated recovery key password does not match the provided recovery key password" : "Yenilenen kurtarma anahtarı parolası, belirtilen kurtarma anahtarı parolası ile eşleşmiyor", + "Recovery key successfully enabled" : "Kurtarma anahtarı başarıyla etkinleştirildi", + "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", + "Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı", + "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin", + "Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin", + "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin", + "Password successfully changed." : "Parola başarıyla değiştirildi.", + "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", + "Could not update the private key password." : "Özel anahtar parolası güncellenemedi", + "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.", + "The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.", + "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.", + "File recovery settings updated" : "Dosya kurtarma ayarları güncellendi", + "Could not update file recovery" : "Dosya kurtarma güncellenemedi", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Şifreleme uygulaması başlatılamadı! Oturumunuz sırasında şifreleme uygulaması tekrar etkinleştirilmiş olabilir. Lütfen şifreleme uygulamasını başlatmak için oturumu kapatıp yeniden oturum açmayı deneyin.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Özel anahtarınız geçerli değil! Muhtemelen parolanız %s dışarısında değiştirildi (örn. şirket dizininde). Gizli anahtar parolanızı kişisel ayarlarınızda güncelleyerek şifreli dosyalarınıza erişimi kurtarabilirsiniz.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", + "Unknown error. Please check your system settings or contact your administrator" : "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin", + "Missing requirements." : "Gereklilikler eksik.", + "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 veya daha sürümü ile birlikte OpenSSL ve OpenSSL PHP uzantısının birlikte etkin olduğundan ve doğru bir şekilde yapılandırıldığından emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.", + "Following users are not set up for encryption:" : "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:", + "Initial encryption started... This can take some time. Please wait." : "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.", + "Initial encryption running... Please try again later." : "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.", + "Go directly to your %spersonal settings%s." : "Doğrudan %skişisel ayarlarınıza%s gidin.", + "Encryption" : "Şifreleme", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", + "Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):", + "Recovery key password" : "Kurtarma anahtarı parolası", + "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin", + "Enabled" : "Etkin", + "Disabled" : "Devre Dışı", + "Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:", + "Old Recovery key password" : "Eski Kurtarma anahtarı parolası", + "New Recovery key password" : "Yeni Kurtarma anahtarı parolası", + "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin", + "Change Password" : "Parola Değiştir", + "Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", + "Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", + "Old log-in password" : "Eski oturum açma parolası", + "Current log-in password" : "Geçerli oturum açma parolası", + "Update Private Key Password" : "Özel Anahtar Parolasını Güncelle", + "Enable password recovery:" : "Parola kurtarmayı etkinleştir:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/tr.php b/apps/files_encryption/l10n/tr.php deleted file mode 100644 index 7055859a33db19cbf3d5359b8b2b2127e64375f9..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/tr.php +++ /dev/null @@ -1,44 +0,0 @@ - "Kurtarma anahtarı başarıyla etkinleştirildi", -"Could not enable recovery key. Please check your recovery key password!" => "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!", -"Recovery key successfully disabled" => "Kurtarma anahtarı başarıyla devre dışı bırakıldı", -"Could not disable recovery key. Please check your recovery key password!" => "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", -"Password successfully changed." => "Parola başarıyla değiştirildi.", -"Could not change the password. Maybe the old password was not correct." => "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", -"Private key password successfully updated." => "Özel anahtar parolası başarıyla güncellendi.", -"Could not update the private key password. Maybe the old password was not correct." => "Özel anahtar parolası güncellenemedi. Eski parola hatalı olabilir.", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Şifreleme uygulaması başlatılamadı! Oturumunuz sırasında şifreleme uygulaması tekrar etkinleştirilmiş olabilir. Lütfen şifreleme uygulamasını başlatmak için oturumu kapatıp yeniden oturum açmayı deneyin.", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Özel anahtarınız geçerli değil! Muhtemelen parolanız %s dışarısında değiştirildi (örn. şirket dizininde). Gizli anahtar parolanızı kişisel ayarlarınızda güncelleyerek şifreli dosyalarınıza erişimi kurtarabilirsiniz.", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", -"Unknown error. Please check your system settings or contact your administrator" => "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin", -"Missing requirements." => "Gereklilikler eksik.", -"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 veya daha sürümü ile birlikte OpenSSL ve OpenSSL PHP uzantısının birlikte etkin olduğundan ve doğru bir şekilde yapılandırıldığından emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.", -"Following users are not set up for encryption:" => "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:", -"Initial encryption started... This can take some time. Please wait." => "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.", -"Initial encryption running... Please try again later." => "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.", -"Go directly to your %spersonal settings%s." => "Doğrudan %skişisel ayarlarınıza%s gidin.", -"Encryption" => "Şifreleme", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", -"Enable recovery key (allow to recover users files in case of password loss):" => "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):", -"Recovery key password" => "Kurtarma anahtarı parolası", -"Repeat Recovery key password" => "Kurtarma anahtarı parolasını yineleyin", -"Enabled" => "Etkin", -"Disabled" => "Devre Dışı", -"Change recovery key password:" => "Kurtarma anahtarı parolasını değiştir:", -"Old Recovery key password" => "Eski Kurtarma anahtarı parolası", -"New Recovery key password" => "Yeni Kurtarma anahtarı parolası", -"Repeat New Recovery key password" => "Yeni Kurtarma anahtarı parolasını yineleyin", -"Change Password" => "Parola Değiştir", -"Your private key password no longer matches your log-in password." => "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", -"Set your old private key password to your current log-in password:" => "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", -" If you don't remember your old password you can ask your administrator to recover your files." => "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", -"Old log-in password" => "Eski oturum açma parolası", -"Current log-in password" => "Geçerli oturum açma parolası", -"Update Private Key Password" => "Özel Anahtar Parolasını Güncelle", -"Enable password recovery:" => "Parola kurtarmayı etkinleştir:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır", -"File recovery settings updated" => "Dosya kurtarma ayarları güncellendi", -"Could not update file recovery" => "Dosya kurtarma güncellenemedi" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_encryption/l10n/ug.js b/apps/files_encryption/l10n/ug.js new file mode 100644 index 0000000000000000000000000000000000000000..0e56a30f3781015cf99ae16ba15ead4e5e5083f2 --- /dev/null +++ b/apps/files_encryption/l10n/ug.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "يوچۇن خاتالىق", + "Encryption" : "شىفىرلاش" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ug.json b/apps/files_encryption/l10n/ug.json new file mode 100644 index 0000000000000000000000000000000000000000..eef86f6564a5123d9297be0a2f5ed664c0faa076 --- /dev/null +++ b/apps/files_encryption/l10n/ug.json @@ -0,0 +1,5 @@ +{ "translations": { + "Unknown error" : "يوچۇن خاتالىق", + "Encryption" : "شىفىرلاش" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ug.php b/apps/files_encryption/l10n/ug.php deleted file mode 100644 index da9144bb930a292b34f8c70c28fe34ed4afd4eeb..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/ug.php +++ /dev/null @@ -1,5 +0,0 @@ - "شىفىرلاش" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/uk.js b/apps/files_encryption/l10n/uk.js new file mode 100644 index 0000000000000000000000000000000000000000..db740bc45e63ff0828165b184301e97bea6a077e --- /dev/null +++ b/apps/files_encryption/l10n/uk.js @@ -0,0 +1,53 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Невідома помилка", + "Missing recovery key password" : "Відсутній пароль ключа відновлення", + "Please repeat the recovery key password" : "Введіть ще раз пароль для ключа відновлення", + "Repeated recovery key password does not match the provided recovery key password" : "Введені паролі ключа відновлення не співпадають", + "Recovery key successfully enabled" : "Ключ відновлення підключено", + "Could not disable recovery key. Please check your recovery key password!" : "Не вдалося відключити ключ відновлення. Будь ласка, перевірте пароль ключа відновлення!", + "Recovery key successfully disabled" : "Ключ відновлення відключено", + "Please provide the old recovery password" : "Будь ласка, введіть старий пароль відновлення", + "Please provide a new recovery password" : "Будь ласка, введіть новий пароль відновлення", + "Please repeat the new recovery password" : "Будь ласка, введіть новий пароль відновлення ще раз", + "Password successfully changed." : "Пароль змінено.", + "Could not change the password. Maybe the old password was not correct." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.", + "Could not update the private key password." : "Не вдалося оновити пароль секретного ключа.", + "The old password was not correct, please try again." : "Старий пароль введено не вірно, спробуйте ще раз.", + "The current log-in password was not correct, please try again." : "Невірний пароль входу, будь ласка, спробуйте ще раз.", + "Private key password successfully updated." : "Пароль секретного ключа оновлено.", + "File recovery settings updated" : "Налаштування файла відновлення оновлено", + "Could not update file recovery" : "Не вдалося оновити файл відновлення ", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Додаток шифрувння не ініціалізовано! Можливо цей додаток редагувався під час вашої сесії. Будь ласка, спробуйте вийти і зайти знову щоб проініціалізувати додаток шифрування.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш секретний ключ не дійсний! Ймовірно ваш пароль був змінений ззовні %s (наприклад, корпоративний каталог). Ви можете оновити секретний ключ в особистих налаштуваннях на сторінці відновлення доступу до зашифрованих файлів.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.", + "Unknown error. Please check your system settings or contact your administrator" : "Невідома помилка. Будь ласка, перевірте налаштування системи або зверніться до адміністратора.", + "Missing requirements." : "Відсутні вимоги.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Будь ласка, впевніться, що встановлена версія PHP 5.3.3 або новіша, а також, що OpenSSL та інші розширення PHP підключені та вірно налаштовані. На даний момент додаток шифрування відключений.", + "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 %spersonal settings%s." : "Перейти навпростець до ваших %spersonal settings%s.", + "Encryption" : "Шифрування", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", + "Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):", + "Recovery key password" : "Пароль ключа відновлення", + "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення", + "Enabled" : "Увімкнено", + "Disabled" : "Вимкнено", + "Change recovery key password:" : "Змінити пароль ключа відновлення:", + "Old Recovery key password" : "Старий пароль ключа відновлення", + "New Recovery key password" : "Новий пароль ключа відновлення", + "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення", + "Change Password" : "Змінити Пароль", + "Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.", + "Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.", + "Old log-in password" : "Старий пароль входу", + "Current log-in password" : "Поточний пароль входу", + "Update Private Key Password" : "Оновити пароль для закритого ключа", + "Enable password recovery:" : "Ввімкнути відновлення паролю:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/uk.json b/apps/files_encryption/l10n/uk.json new file mode 100644 index 0000000000000000000000000000000000000000..b2953e5e53cffa34170231d8f03dce0561fbd382 --- /dev/null +++ b/apps/files_encryption/l10n/uk.json @@ -0,0 +1,51 @@ +{ "translations": { + "Unknown error" : "Невідома помилка", + "Missing recovery key password" : "Відсутній пароль ключа відновлення", + "Please repeat the recovery key password" : "Введіть ще раз пароль для ключа відновлення", + "Repeated recovery key password does not match the provided recovery key password" : "Введені паролі ключа відновлення не співпадають", + "Recovery key successfully enabled" : "Ключ відновлення підключено", + "Could not disable recovery key. Please check your recovery key password!" : "Не вдалося відключити ключ відновлення. Будь ласка, перевірте пароль ключа відновлення!", + "Recovery key successfully disabled" : "Ключ відновлення відключено", + "Please provide the old recovery password" : "Будь ласка, введіть старий пароль відновлення", + "Please provide a new recovery password" : "Будь ласка, введіть новий пароль відновлення", + "Please repeat the new recovery password" : "Будь ласка, введіть новий пароль відновлення ще раз", + "Password successfully changed." : "Пароль змінено.", + "Could not change the password. Maybe the old password was not correct." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.", + "Could not update the private key password." : "Не вдалося оновити пароль секретного ключа.", + "The old password was not correct, please try again." : "Старий пароль введено не вірно, спробуйте ще раз.", + "The current log-in password was not correct, please try again." : "Невірний пароль входу, будь ласка, спробуйте ще раз.", + "Private key password successfully updated." : "Пароль секретного ключа оновлено.", + "File recovery settings updated" : "Налаштування файла відновлення оновлено", + "Could not update file recovery" : "Не вдалося оновити файл відновлення ", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Додаток шифрувння не ініціалізовано! Можливо цей додаток редагувався під час вашої сесії. Будь ласка, спробуйте вийти і зайти знову щоб проініціалізувати додаток шифрування.", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш секретний ключ не дійсний! Ймовірно ваш пароль був змінений ззовні %s (наприклад, корпоративний каталог). Ви можете оновити секретний ключ в особистих налаштуваннях на сторінці відновлення доступу до зашифрованих файлів.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.", + "Unknown error. Please check your system settings or contact your administrator" : "Невідома помилка. Будь ласка, перевірте налаштування системи або зверніться до адміністратора.", + "Missing requirements." : "Відсутні вимоги.", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Будь ласка, впевніться, що встановлена версія PHP 5.3.3 або новіша, а також, що OpenSSL та інші розширення PHP підключені та вірно налаштовані. На даний момент додаток шифрування відключений.", + "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 %spersonal settings%s." : "Перейти навпростець до ваших %spersonal settings%s.", + "Encryption" : "Шифрування", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", + "Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):", + "Recovery key password" : "Пароль ключа відновлення", + "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення", + "Enabled" : "Увімкнено", + "Disabled" : "Вимкнено", + "Change recovery key password:" : "Змінити пароль ключа відновлення:", + "Old Recovery key password" : "Старий пароль ключа відновлення", + "New Recovery key password" : "Новий пароль ключа відновлення", + "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення", + "Change Password" : "Змінити Пароль", + "Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.", + "Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.", + "Old log-in password" : "Старий пароль входу", + "Current log-in password" : "Поточний пароль входу", + "Update Private Key Password" : "Оновити пароль для закритого ключа", + "Enable password recovery:" : "Ввімкнути відновлення паролю:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/uk.php b/apps/files_encryption/l10n/uk.php deleted file mode 100644 index 179987a85679395fdefbbf7190d5ff08a5c86c53..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/uk.php +++ /dev/null @@ -1,7 +0,0 @@ - "Шифрування", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", -"Change Password" => "Змінити Пароль" -); -$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);"; diff --git a/apps/files_encryption/l10n/ur_PK.js b/apps/files_encryption/l10n/ur_PK.js new file mode 100644 index 0000000000000000000000000000000000000000..f2fd4d3419d45e534b341f935372afc747fe7182 --- /dev/null +++ b/apps/files_encryption/l10n/ur_PK.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "غیر معروف خرابی" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ur_PK.json b/apps/files_encryption/l10n/ur_PK.json new file mode 100644 index 0000000000000000000000000000000000000000..7d7738b3811bdf2afa358f6fc50accfefacd5d8e --- /dev/null +++ b/apps/files_encryption/l10n/ur_PK.json @@ -0,0 +1,4 @@ +{ "translations": { + "Unknown error" : "غیر معروف خرابی" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/vi.js b/apps/files_encryption/l10n/vi.js new file mode 100644 index 0000000000000000000000000000000000000000..b853fb76162bc1d918bcf644cd6b182365ce997d --- /dev/null +++ b/apps/files_encryption/l10n/vi.js @@ -0,0 +1,25 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "Lỗi chưa biết", + "Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công", + "Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!", + "Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công", + "Password successfully changed." : "Đã đổi mật khẩu.", + "Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.", + "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân", + "File recovery settings updated" : "Đã cập nhật thiết lập khôi phục tập tin ", + "Could not update file recovery" : "Không thể cập nhật khôi phục tập tin", + "Encryption" : "Mã hóa", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", + "Enabled" : "Bật", + "Disabled" : "Tắt", + "Change Password" : "Đổi Mật khẩu", + " If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.", + "Old log-in password" : "Mật khẩu đăng nhập cũ", + "Current log-in password" : "Mật khẩu đăng nhập hiện tại", + "Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân", + "Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/vi.json b/apps/files_encryption/l10n/vi.json new file mode 100644 index 0000000000000000000000000000000000000000..4800a4bc21f3c34d6751fd24603cb77ce101e5ca --- /dev/null +++ b/apps/files_encryption/l10n/vi.json @@ -0,0 +1,23 @@ +{ "translations": { + "Unknown error" : "Lỗi chưa biết", + "Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công", + "Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!", + "Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công", + "Password successfully changed." : "Đã đổi mật khẩu.", + "Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.", + "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân", + "File recovery settings updated" : "Đã cập nhật thiết lập khôi phục tập tin ", + "Could not update file recovery" : "Không thể cập nhật khôi phục tập tin", + "Encryption" : "Mã hóa", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", + "Enabled" : "Bật", + "Disabled" : "Tắt", + "Change Password" : "Đổi Mật khẩu", + " If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.", + "Old log-in password" : "Mật khẩu đăng nhập cũ", + "Current log-in password" : "Mật khẩu đăng nhập hiện tại", + "Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân", + "Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php deleted file mode 100644 index dc8108e6308d4d433cbd7b44e6f3bc6602946704..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/vi.php +++ /dev/null @@ -1,25 +0,0 @@ - "Khóa khôi phục kích hoạt thành công", -"Could not enable recovery key. Please check your recovery key password!" => "Không thể kích hoạt khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!", -"Recovery key successfully disabled" => "Vô hiệu hóa khóa khôi phục thành công", -"Could not disable recovery key. Please check your recovery key password!" => "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!", -"Password successfully changed." => "Đã đổi mật khẩu.", -"Could not change the password. Maybe the old password was not correct." => "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.", -"Private key password successfully updated." => "Cập nhật thành công mật khẩu khóa cá nhân", -"Could not update the private key password. Maybe the old password was not correct." => "Không thể cập nhật mật khẩu khóa cá nhân. Có thể mật khẩu cũ không đúng", -"Encryption" => "Mã hóa", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", -"Enabled" => "Bật", -"Disabled" => "Tắt", -"Change Password" => "Đổi Mật khẩu", -" If you don't remember your old password you can ask your administrator to recover your files." => "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.", -"Old log-in password" => "Mật khẩu đăng nhập cũ", -"Current log-in password" => "Mật khẩu đăng nhập hiện tại", -"Update Private Key Password" => "Cập nhật mật khẩu khóa cá nhân", -"Enable password recovery:" => "Kích hoạt khôi phục mật khẩu:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu", -"File recovery settings updated" => "Đã cập nhật thiết lập khôi phục tập tin ", -"Could not update file recovery" => "Không thể cập nhật khôi phục tập tin" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/zh_CN.js b/apps/files_encryption/l10n/zh_CN.js new file mode 100644 index 0000000000000000000000000000000000000000..17995f4597e4515633cb94720aa118a6c45588c5 --- /dev/null +++ b/apps/files_encryption/l10n/zh_CN.js @@ -0,0 +1,42 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "未知错误", + "Recovery key successfully enabled" : "恢复密钥成功启用", + "Could not disable recovery key. Please check your recovery key password!" : "不能禁用恢复密钥。请检查恢复密钥密码!", + "Recovery key successfully disabled" : "恢复密钥成功禁用", + "Password successfully changed." : "密码修改成功。", + "Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。", + "Private key password successfully updated." : "私钥密码成功更新。", + "File recovery settings updated" : "文件恢复设置已更新", + "Could not update file recovery" : "不能更新文件恢复", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密应用还没有初始化!可能加密应用在你会话期间已被重新启用。请注销并重新登录,以初始化加密应用。", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私有密钥无效!也许是您在 %s 外更改了密码 (比如,在您的公司目录)。您可以在个人设置里更新您的私钥密码来恢复访问你的加密文件。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", + "Unknown error. Please check your system settings or contact your administrator" : "未知错误。请检查系统设置或联系您的管理员", + "Missing requirements." : "必填项未填写。", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "请确认安装了 PHP 5.3.3 或更新版本,且 OpenSSL 及其 PHP 扩展已经启用并正确配置。加密应用现在已被禁用。", + "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 %spersonal settings%s." : "直接访问您的%s个人设置%s。", + "Encryption" : "加密", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", + "Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):", + "Recovery key password" : "恢复密钥密码", + "Repeat Recovery key password" : "重复恢复密钥密码", + "Enabled" : "开启", + "Disabled" : "禁用", + "Change recovery key password:" : "更改恢复密钥密码", + "Old Recovery key password" : "旧的恢复密钥密码", + "New Recovery key password" : "新的恢复密钥密码", + "Repeat New Recovery key password" : "重复新的密钥恢复密码", + "Change Password" : "修改密码", + " If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", + "Old log-in password" : "旧登录密码", + "Current log-in password" : "当前登录密码", + "Update Private Key Password" : "更新私钥密码", + "Enable password recovery:" : "启用密码恢复:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/zh_CN.json b/apps/files_encryption/l10n/zh_CN.json new file mode 100644 index 0000000000000000000000000000000000000000..fa6de35d12aeb28a8114e2f80b47be7258b675c3 --- /dev/null +++ b/apps/files_encryption/l10n/zh_CN.json @@ -0,0 +1,40 @@ +{ "translations": { + "Unknown error" : "未知错误", + "Recovery key successfully enabled" : "恢复密钥成功启用", + "Could not disable recovery key. Please check your recovery key password!" : "不能禁用恢复密钥。请检查恢复密钥密码!", + "Recovery key successfully disabled" : "恢复密钥成功禁用", + "Password successfully changed." : "密码修改成功。", + "Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。", + "Private key password successfully updated." : "私钥密码成功更新。", + "File recovery settings updated" : "文件恢复设置已更新", + "Could not update file recovery" : "不能更新文件恢复", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密应用还没有初始化!可能加密应用在你会话期间已被重新启用。请注销并重新登录,以初始化加密应用。", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私有密钥无效!也许是您在 %s 外更改了密码 (比如,在您的公司目录)。您可以在个人设置里更新您的私钥密码来恢复访问你的加密文件。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", + "Unknown error. Please check your system settings or contact your administrator" : "未知错误。请检查系统设置或联系您的管理员", + "Missing requirements." : "必填项未填写。", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "请确认安装了 PHP 5.3.3 或更新版本,且 OpenSSL 及其 PHP 扩展已经启用并正确配置。加密应用现在已被禁用。", + "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 %spersonal settings%s." : "直接访问您的%s个人设置%s。", + "Encryption" : "加密", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", + "Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):", + "Recovery key password" : "恢复密钥密码", + "Repeat Recovery key password" : "重复恢复密钥密码", + "Enabled" : "开启", + "Disabled" : "禁用", + "Change recovery key password:" : "更改恢复密钥密码", + "Old Recovery key password" : "旧的恢复密钥密码", + "New Recovery key password" : "新的恢复密钥密码", + "Repeat New Recovery key password" : "重复新的密钥恢复密码", + "Change Password" : "修改密码", + " If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", + "Old log-in password" : "旧登录密码", + "Current log-in password" : "当前登录密码", + "Update Private Key Password" : "更新私钥密码", + "Enable password recovery:" : "启用密码恢复:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/zh_CN.php b/apps/files_encryption/l10n/zh_CN.php deleted file mode 100644 index 1b736f1470f1cf1dc78df20230091319f13f4b6e..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/zh_CN.php +++ /dev/null @@ -1,42 +0,0 @@ - "恢复密钥成功启用", -"Could not enable recovery key. Please check your recovery key password!" => "不能启用恢复密钥。请检查恢复密钥密码!", -"Recovery key successfully disabled" => "恢复密钥成功禁用", -"Could not disable recovery key. Please check your recovery key password!" => "不能禁用恢复密钥。请检查恢复密钥密码!", -"Password successfully changed." => "密码修改成功。", -"Could not change the password. Maybe the old password was not correct." => "不能修改密码。旧密码可能不正确。", -"Private key password successfully updated." => "私钥密码成功更新。", -"Could not update the private key password. Maybe the old password was not correct." => "无法更新私钥密码。可能旧密码不正确。", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "加密应用还没有初始化!可能加密应用在你会话期间已被重新启用。请注销并重新登录,以初始化加密应用。", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "您的私有密钥无效!也许是您在 %s 外更改了密码 (比如,在您的公司目录)。您可以在个人设置里更新您的私钥密码来恢复访问你的加密文件。", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", -"Unknown error. Please check your system settings or contact your administrator" => "未知错误。请检查系统设置或联系您的管理员", -"Missing requirements." => "必填项未填写。", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "请确认安装了 PHP 5.3.3 或更新版本,且 OpenSSL 及其 PHP 扩展已经启用并正确配置。加密应用现在已被禁用。", -"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 %spersonal settings%s." => "直接访问您的%s个人设置%s。", -"Encryption" => "加密", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", -"Enable recovery key (allow to recover users files in case of password loss):" => "启用恢复密钥(允许你在密码丢失后恢复文件):", -"Recovery key password" => "恢复密钥密码", -"Repeat Recovery key password" => "重复恢复密钥密码", -"Enabled" => "开启", -"Disabled" => "禁用", -"Change recovery key password:" => "更改恢复密钥密码", -"Old Recovery key password" => "旧的恢复密钥密码", -"New Recovery key password" => "新的恢复密钥密码", -"Repeat New Recovery key password" => "重复新的密钥恢复密码", -"Change Password" => "修改密码", -" If you don't remember your old password you can ask your administrator to recover your files." => "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", -"Old log-in password" => "旧登录密码", -"Current log-in password" => "当前登录密码", -"Update Private Key Password" => "更新私钥密码", -"Enable password recovery:" => "启用密码恢复:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "启用该项将允许你在密码丢失后取回您的加密文件", -"File recovery settings updated" => "文件恢复设置已更新", -"Could not update file recovery" => "不能更新文件恢复" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/zh_HK.js b/apps/files_encryption/l10n/zh_HK.js new file mode 100644 index 0000000000000000000000000000000000000000..f4e3fc7e53e95d47ead5e5046bab4f2b99edc9f1 --- /dev/null +++ b/apps/files_encryption/l10n/zh_HK.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "不明錯誤", + "Encryption" : "加密", + "Enabled" : "啟用", + "Disabled" : "停用", + "Change Password" : "更改密碼" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/zh_HK.json b/apps/files_encryption/l10n/zh_HK.json new file mode 100644 index 0000000000000000000000000000000000000000..75a003dd466e07afbd72d15e8771051f64430e4f --- /dev/null +++ b/apps/files_encryption/l10n/zh_HK.json @@ -0,0 +1,8 @@ +{ "translations": { + "Unknown error" : "不明錯誤", + "Encryption" : "加密", + "Enabled" : "啟用", + "Disabled" : "停用", + "Change Password" : "更改密碼" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/zh_HK.php b/apps/files_encryption/l10n/zh_HK.php deleted file mode 100644 index c9480c429f5b2d1510651eaee272e7b6a6ef5f9c..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/zh_HK.php +++ /dev/null @@ -1,8 +0,0 @@ - "加密", -"Enabled" => "啟用", -"Disabled" => "停用", -"Change Password" => "更改密碼" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/l10n/zh_TW.js b/apps/files_encryption/l10n/zh_TW.js new file mode 100644 index 0000000000000000000000000000000000000000..e344178a3339d4c7f87afcfcee18fc6b49a0081b --- /dev/null +++ b/apps/files_encryption/l10n/zh_TW.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_encryption", + { + "Unknown error" : "未知的錯誤", + "Recovery key successfully enabled" : "還原金鑰已成功開啟", + "Could not disable recovery key. Please check your recovery key password!" : "無法停用還原金鑰。請檢查您的還原金鑰密碼!", + "Recovery key successfully disabled" : "還原金鑰已成功停用", + "Password successfully changed." : "成功變更密碼。", + "Could not change the password. Maybe the old password was not correct." : "無法變更密碼,或許是輸入的舊密碼不正確。", + "Private key password successfully updated." : "私人金鑰密碼已成功更新。", + "File recovery settings updated" : "檔案還原設定已更新", + "Could not update file recovery" : "無法更新檔案還原設定", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密功能未初始化!可能加密功能需要重新啟用在現在的連線上。請試著登出再登入來初始化加密功能。", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私人金鑰不正確!可能您的密碼已經變更在外部的 %s (例如:您的企業目錄)。您可以在您的個人設定中更新私人金鑰密碼來還原存取您的加密檔案。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", + "Unknown error. Please check your system settings or contact your administrator" : "未知錯誤請檢查您的系統設定或是聯絡您的管理員", + "Missing requirements." : "遺失必要條件。", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "請確認已安裝 PHP 5.3.3 或是更新的版本以及 OpenSSL 也一併安裝在 PHP extension 裡面並啟用及設置完成。現在,加密功能是停用的。", + "Following users are not set up for encryption:" : "以下的使用者無法設定加密:", + "Initial encryption started... This can take some time. Please wait." : "加密初始已啟用...這個需要一些時間。請稍等。", + "Initial encryption running... Please try again later." : "加密初始執行中...請晚點再試。", + "Encryption" : "加密", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", + "Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):", + "Recovery key password" : "還原金鑰密碼", + "Repeat Recovery key password" : "再輸入還原金鑰密碼一次", + "Enabled" : "已啓用", + "Disabled" : "已停用", + "Change recovery key password:" : "變更還原金鑰密碼:", + "Old Recovery key password" : "舊的還原金鑰密碼", + "New Recovery key password" : "新的還原金鑰密碼", + "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次", + "Change Password" : "變更密碼", + " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", + "Old log-in password" : "舊登入密碼", + "Current log-in password" : "目前的登入密碼", + "Update Private Key Password" : "更新私人金鑰密碼", + "Enable password recovery:" : "啟用密碼還原:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/zh_TW.json b/apps/files_encryption/l10n/zh_TW.json new file mode 100644 index 0000000000000000000000000000000000000000..44b48c9ccc31dea185df4f062424bdaddd85e9a2 --- /dev/null +++ b/apps/files_encryption/l10n/zh_TW.json @@ -0,0 +1,39 @@ +{ "translations": { + "Unknown error" : "未知的錯誤", + "Recovery key successfully enabled" : "還原金鑰已成功開啟", + "Could not disable recovery key. Please check your recovery key password!" : "無法停用還原金鑰。請檢查您的還原金鑰密碼!", + "Recovery key successfully disabled" : "還原金鑰已成功停用", + "Password successfully changed." : "成功變更密碼。", + "Could not change the password. Maybe the old password was not correct." : "無法變更密碼,或許是輸入的舊密碼不正確。", + "Private key password successfully updated." : "私人金鑰密碼已成功更新。", + "File recovery settings updated" : "檔案還原設定已更新", + "Could not update file recovery" : "無法更新檔案還原設定", + "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密功能未初始化!可能加密功能需要重新啟用在現在的連線上。請試著登出再登入來初始化加密功能。", + "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私人金鑰不正確!可能您的密碼已經變更在外部的 %s (例如:您的企業目錄)。您可以在您的個人設定中更新私人金鑰密碼來還原存取您的加密檔案。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", + "Unknown error. Please check your system settings or contact your administrator" : "未知錯誤請檢查您的系統設定或是聯絡您的管理員", + "Missing requirements." : "遺失必要條件。", + "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "請確認已安裝 PHP 5.3.3 或是更新的版本以及 OpenSSL 也一併安裝在 PHP extension 裡面並啟用及設置完成。現在,加密功能是停用的。", + "Following users are not set up for encryption:" : "以下的使用者無法設定加密:", + "Initial encryption started... This can take some time. Please wait." : "加密初始已啟用...這個需要一些時間。請稍等。", + "Initial encryption running... Please try again later." : "加密初始執行中...請晚點再試。", + "Encryption" : "加密", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", + "Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):", + "Recovery key password" : "還原金鑰密碼", + "Repeat Recovery key password" : "再輸入還原金鑰密碼一次", + "Enabled" : "已啓用", + "Disabled" : "已停用", + "Change recovery key password:" : "變更還原金鑰密碼:", + "Old Recovery key password" : "舊的還原金鑰密碼", + "New Recovery key password" : "新的還原金鑰密碼", + "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次", + "Change Password" : "變更密碼", + " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", + "Old log-in password" : "舊登入密碼", + "Current log-in password" : "目前的登入密碼", + "Update Private Key Password" : "更新私人金鑰密碼", + "Enable password recovery:" : "啟用密碼還原:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_encryption/l10n/zh_TW.php b/apps/files_encryption/l10n/zh_TW.php deleted file mode 100644 index 32e5fb17bcfcc779d9bf975a6558670c301fddb9..0000000000000000000000000000000000000000 --- a/apps/files_encryption/l10n/zh_TW.php +++ /dev/null @@ -1,41 +0,0 @@ - "還原金鑰已成功開啟", -"Could not enable recovery key. Please check your recovery key password!" => "無法啟用還原金鑰。請檢查您的還原金鑰密碼!", -"Recovery key successfully disabled" => "還原金鑰已成功停用", -"Could not disable recovery key. Please check your recovery key password!" => "無法停用還原金鑰。請檢查您的還原金鑰密碼!", -"Password successfully changed." => "成功變更密碼。", -"Could not change the password. Maybe the old password was not correct." => "無法變更密碼,或許是輸入的舊密碼不正確。", -"Private key password successfully updated." => "私人金鑰密碼已成功更新。", -"Could not update the private key password. Maybe the old password was not correct." => "無法更新私人金鑰密碼。可能舊的密碼不正確。", -"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "加密功能未初始化!可能加密功能需要重新啟用在現在的連線上。請試著登出再登入來初始化加密功能。", -"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "您的私人金鑰不正確!可能您的密碼已經變更在外部的 %s (例如:您的企業目錄)。您可以在您的個人設定中更新私人金鑰密碼來還原存取您的加密檔案。", -"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", -"Unknown error. Please check your system settings or contact your administrator" => "未知錯誤請檢查您的系統設定或是聯絡您的管理員", -"Missing requirements." => "遺失必要條件。", -"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "請確認已安裝 PHP 5.3.3 或是更新的版本以及 OpenSSL 也一併安裝在 PHP extension 裡面並啟用及設置完成。現在,加密功能是停用的。", -"Following users are not set up for encryption:" => "以下的使用者無法設定加密:", -"Initial encryption started... This can take some time. Please wait." => "加密初始已啟用...這個需要一些時間。請稍等。", -"Initial encryption running... Please try again later." => "加密初始執行中...請晚點再試。", -"Encryption" => "加密", -"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", -"Enable recovery key (allow to recover users files in case of password loss):" => "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):", -"Recovery key password" => "還原金鑰密碼", -"Repeat Recovery key password" => "再輸入還原金鑰密碼一次", -"Enabled" => "已啓用", -"Disabled" => "已停用", -"Change recovery key password:" => "變更還原金鑰密碼:", -"Old Recovery key password" => "舊的還原金鑰密碼", -"New Recovery key password" => "新的還原金鑰密碼", -"Repeat New Recovery key password" => "再輸入新的還原金鑰密碼一次", -"Change Password" => "變更密碼", -" If you don't remember your old password you can ask your administrator to recover your files." => "如果您忘記舊密碼,可以請求管理員協助取回檔案。", -"Old log-in password" => "舊登入密碼", -"Current log-in password" => "目前的登入密碼", -"Update Private Key Password" => "更新私人金鑰密碼", -"Enable password recovery:" => "啟用密碼還原:", -"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案", -"File recovery settings updated" => "檔案還原設定已更新", -"Could not update file recovery" => "無法更新檔案還原設定" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php old mode 100755 new mode 100644 index c4fc29db03a04a75f7bd9342860a0c50ac8c1386..cf915ae27b2829b797879ed1c2cc3ab74b321dac --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -3,10 +3,12 @@ /** * ownCloud * - * @author Sam Tuke, Frank Karlitschek, Robin Appelman - * @copyright 2012 Sam Tuke samtuke@owncloud.com, - * Robin Appelman icewind@owncloud.com, Frank Karlitschek - * frank@owncloud.org + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Bjoern Schiessle + * @author Sam Tuke + * @author Frank Karlitschek + * @author Robin Appelman * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -188,7 +190,7 @@ class Crypt { * @param string $passphrase * @param string $cypher used for encryption, currently we support AES-128-CFB and AES-256-CFB * @return string encrypted file content - * @throws \OCA\Encryption\Exceptions\EncryptionException + * @throws \OCA\Encryption\Exception\EncryptionException */ private static function encrypt($plainContent, $iv, $passphrase = '', $cipher = Crypt::DEFAULT_CIPHER) { @@ -197,7 +199,7 @@ class Crypt { if (!$encryptedContent) { $error = "Encryption (symmetric) of content failed: " . openssl_error_string(); \OCP\Util::writeLog('Encryption library', $error, \OCP\Util::ERROR); - throw new Exceptions\EncryptionException($error, 50); + throw new Exception\EncryptionException($error, Exception\EncryptionException::ENCRYPTION_FAILED); } return $encryptedContent; @@ -289,9 +291,9 @@ class Crypt { $padded = self::addPadding($catfile); return $padded; - } catch (OCA\Encryption\Exceptions\EncryptionException $e) { - $message = 'Could not encrypt file content (code: ' . $e->getCode . '): '; - \OCP\Util::writeLog('files_encryption', $message . $e->getMessage, \OCP\Util::ERROR); + } catch (Exception\EncryptionException $e) { + $message = 'Could not encrypt file content (code: ' . $e->getCode() . '): '; + \OCP\Util::writeLog('files_encryption', $message . $e->getMessage(), \OCP\Util::ERROR); return false; } @@ -377,7 +379,7 @@ class Crypt { * @param string $plainContent content to be encrypted * @param array $publicKeys array keys must be the userId of corresponding user * @return array keys: keys (array, key = userId), data - * @throws \OCA\Encryption\Exceptions\\MultiKeyEncryptException if encryption failed + * @throws \OCA\Encryption\Exception\MultiKeyEncryptException if encryption failed * @note symmetricDecryptFileContent() can decrypt files created using this method */ public static function multiKeyEncrypt($plainContent, array $publicKeys) { @@ -385,7 +387,7 @@ class Crypt { // openssl_seal returns false without errors if $plainContent // is empty, so trigger our own error if (empty($plainContent)) { - throw new Exceptions\MultiKeyEncryptException('Cannot multiKeyEncrypt empty plain content', 10); + throw new Exception\MultiKeyEncryptException('Cannot multiKeyEncrypt empty plain content', Exception\MultiKeyEncryptException::EMPTY_DATA); } // Set empty vars to be set by openssl by reference @@ -412,7 +414,8 @@ class Crypt { ); } else { - throw new Exceptions\MultiKeyEncryptException('multi key encryption failed: ' . openssl_error_string(), 20); + throw new Exception\MultiKeyEncryptException('multi key encryption failed: ' . openssl_error_string(), + Exception\MultiKeyEncryptException::OPENSSL_SEAL_FAILED); } } @@ -422,7 +425,7 @@ class Crypt { * @param string $encryptedContent * @param string $shareKey * @param mixed $privateKey - * @throws \OCA\Encryption\Exceptions\\MultiKeyDecryptException if decryption failed + * @throws \OCA\Encryption\Exception\MultiKeyDecryptException if decryption failed * @internal param string $plainContent contains decrypted content * @return string $plainContent decrypted string * @note symmetricDecryptFileContent() can be used to decrypt files created using this method @@ -432,7 +435,8 @@ class Crypt { public static function multiKeyDecrypt($encryptedContent, $shareKey, $privateKey) { if (!$encryptedContent) { - throw new Exceptions\MultiKeyDecryptException('Cannot mutliKeyDecrypt empty plain content', 10); + throw new Exception\MultiKeyDecryptException('Cannot mutliKeyDecrypt empty plain content', + Exception\MultiKeyDecryptException::EMPTY_DATA); } if (openssl_open($encryptedContent, $plainContent, $shareKey, $privateKey)) { @@ -440,7 +444,8 @@ class Crypt { return $plainContent; } else { - throw new Exceptions\MultiKeyDecryptException('multiKeyDecrypt with share-key' . $shareKey . 'failed: ' . openssl_error_string(), 20); + throw new Exception\MultiKeyDecryptException('multiKeyDecrypt with share-key' . $shareKey . 'failed: ' . openssl_error_string(), + Exception\MultiKeyDecryptException::OPENSSL_OPEN_FAILED); } } @@ -549,14 +554,15 @@ class Crypt { * get chiper from header * * @param array $header - * @throws \OCA\Encryption\Exceptions\EncryptionException + * @throws \OCA\Encryption\Exception\EncryptionException */ public static function getCipher($header) { $cipher = isset($header['cipher']) ? $header['cipher'] : 'AES-128-CFB'; if ($cipher !== 'AES-256-CFB' && $cipher !== 'AES-128-CFB') { - throw new \OCA\Encryption\Exceptions\EncryptionException('file header broken, no supported cipher defined', 40); + throw new Exception\EncryptionException('file header broken, no supported cipher defined', + Exception\EncryptionException::UNKNOWN_CIPHER); } return $cipher; diff --git a/apps/files_encryption/lib/exceptions.php b/apps/files_encryption/lib/exceptions.php deleted file mode 100644 index 3ea27faf406b023ae368a49dd9c7d3bd33e33075..0000000000000000000000000000000000000000 --- a/apps/files_encryption/lib/exceptions.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * 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 . - * - */ - -namespace OCA\Encryption\Exceptions; - -/** - * General encryption exception - * Possible Error Codes: - * 10 - unexpected end of encryption header - * 20 - unexpected blog size - * 30 - encryption header to large - * 40 - unknown cipher - * 50 - encryption failed - */ -class EncryptionException extends \Exception { -} - -/** - * Throw this exception if multi key encrytion fails - * - * Possible error codes: - * 10 - empty plain content was given - * 20 - openssl_seal failed - */ -class MultiKeyEncryptException extends EncryptionException { -} - -/** - * Throw this encryption if multi key decryption failed - * - * Possible error codes: - * 10 - empty encrypted content was given - * 20 - openssl_open failed - */ -class MultiKeyDecryptException extends EncryptionException { -} diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php old mode 100755 new mode 100644 index ab19938d6331e7b9e8c757e9b40c32a44491e5ed..5ea2d0fc07243fbea4cf2833643cfd7478cb639a --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -3,8 +3,10 @@ /** * ownCloud * - * @author Florin Peter - * @copyright 2013 Florin Peter + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Florin Peter + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -68,8 +70,9 @@ class Helper { \OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Encryption\Hooks', 'postRenameOrCopy'); \OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Encryption\Hooks', 'postDelete'); \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Encryption\Hooks', 'preDelete'); - \OCP\Util::connectHook('OC_Filesystem', 'post_umount', 'OCA\Encryption\Hooks', 'postUmount'); - \OCP\Util::connectHook('OC_Filesystem', 'umount', 'OCA\Encryption\Hooks', 'preUmount'); + \OCP\Util::connectHook('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', 'OCA\Encryption\Hooks', 'postPasswordReset'); + \OCP\Util::connectHook('OC_Filesystem', 'post_umount', 'OCA\Encryption\Hooks', 'postUnmount'); + \OCP\Util::connectHook('OC_Filesystem', 'umount', 'OCA\Encryption\Hooks', 'preUnmount'); } /** @@ -89,7 +92,7 @@ class Helper { * @param string $password * @return bool */ - public static function setupUser($util, $password) { + public static function setupUser(Util $util, $password) { // Check files_encryption infrastructure is ready for action if (!$util->ready()) { @@ -104,6 +107,25 @@ class Helper { return true; } + /** + * get recovery key id + * + * @return string|bool recovery key ID or false + */ + public static function getRecoveryKeyId() { + $appConfig = \OC::$server->getAppConfig(); + $key = $appConfig->getValue('files_encryption', 'recoveryKeyId'); + + return ($key === null) ? false : $key; + } + + public static function getPublicShareKeyId() { + $appConfig = \OC::$server->getAppConfig(); + $key = $appConfig->getValue('files_encryption', 'publicShareKeyId'); + + return ($key === null) ? false : $key; + } + /** * enable recovery * @@ -123,38 +145,22 @@ class Helper { $appConfig->setValue('files_encryption', 'recoveryKeyId', $recoveryKeyId); } - if (!$view->is_dir('/owncloud_private_key')) { - $view->mkdir('/owncloud_private_key'); - } - - if ( - (!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key") - || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key")) - ) { + if (!Keymanager::recoveryKeyExists($view)) { $keypair = \OCA\Encryption\Crypt::createKeypair(); - \OC_FileProxy::$enabled = false; - // Save public key - - if (!$view->is_dir('/public-keys')) { - $view->mkdir('/public-keys'); - } - - $view->file_put_contents('/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey']); + Keymanager::setPublicKey($keypair['publicKey'], $recoveryKeyId); $cipher = \OCA\Encryption\Helper::getCipher(); $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $recoveryPassword, $cipher); if ($encryptedKey) { - Keymanager::setPrivateSystemKey($encryptedKey, $recoveryKeyId . '.private.key'); + Keymanager::setPrivateSystemKey($encryptedKey, $recoveryKeyId); // Set recoveryAdmin as enabled $appConfig->setValue('files_encryption', 'recoveryAdminEnabled', 1); $return = true; } - \OC_FileProxy::$enabled = true; - } else { // get recovery key and check the password $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser()); $return = $util->checkRecoveryPassword($recoveryPassword); @@ -333,7 +339,7 @@ class Helper { * @param string $path * @param \OC\Files\View $view */ - public static function mkdirr($path, $view) { + public static function mkdirr($path, \OC\Files\View $view) { $dirname = \OC\Files\Filesystem::normalizePath(dirname($path)); $dirParts = explode('/', $dirname); $dir = ""; @@ -348,8 +354,10 @@ class Helper { /** * redirect to a error page * @param Session $session + * @param int|null $errorCode + * @throws \Exception */ - public static function redirectToErrorPage($session, $errorCode = null) { + public static function redirectToErrorPage(Session $session, $errorCode = null) { if ($errorCode === null) { $init = $session->getInitialized(); @@ -429,47 +437,6 @@ class Helper { return $config; } - /** - * find all share keys for a given file - * - * @param string $filePath path to the file name relative to the user's files dir - * for example "subdir/filename.txt" - * @param string $shareKeyPath share key prefix path relative to the user's data dir - * for example "user1/files_encryption/share-keys/subdir/filename.txt" - * @param \OC\Files\View $rootView root view, relative to data/ - * @return array list of share key files, path relative to data/$user - */ - public static function findShareKeys($filePath, $shareKeyPath, $rootView) { - $result = array(); - - $user = \OCP\User::getUser(); - $util = new Util($rootView, $user); - // get current sharing state - $sharingEnabled = \OCP\Share::isEnabled(); - - // get users sharing this file - $usersSharing = $util->getSharingUsersArray($sharingEnabled, $filePath); - - $pathinfo = pathinfo($shareKeyPath); - - $baseDir = $pathinfo['dirname'] . '/'; - $fileName = $pathinfo['basename']; - foreach ($usersSharing as $user) { - $keyName = $fileName . '.' . $user . '.shareKey'; - if ($rootView->file_exists($baseDir . $keyName)) { - $result[] = $baseDir . $keyName; - } else { - \OC_Log::write( - 'Encryption library', - 'No share key found for user "' . $user . '" for file "' . $pathOld . '"', - \OC_Log::WARN - ); - } - } - - return $result; - } - /** * remember from which file the tmp file (getLocalFile() call) was created * @param string $tmpFile path of tmp file diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php old mode 100755 new mode 100644 index 9560126ef33f4e77c3b680c78cc37c9d3b46c5f2..c8de1a73d27a2d341eb011f027242e4c639282b1 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -3,8 +3,9 @@ /** * ownCloud * - * @author Bjoern Schiessle - * @copyright 2012 Bjoern Schiessle + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -29,22 +30,22 @@ namespace OCA\Encryption; */ class Keymanager { + // base dir where all the file related keys are stored + private static $keys_base_dir = '/files_encryption/keys/'; + private static $encryption_base_dir = '/files_encryption'; + private static $public_key_dir = '/files_encryption/public_keys'; + /** - * retrieve the ENCRYPTED private key from a user + * read key from hard disk * - * @param \OC\Files\View $view - * @param string $user - * @return string private key or false (hopefully) - * @note the key returned by this method must be decrypted before use + * @param string $path to key + * @return string|bool either the key or false */ - public static function getPrivateKey(\OC\Files\View $view, $user) { - - $path = '/' . $user . '/' . 'files_encryption' . '/' . $user . '.private.key'; - $key = false; - + private static function getKey($path, $view) { $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; + $key = false; if ($view->file_exists($path)) { $key = $view->file_get_contents($path); } @@ -55,22 +56,53 @@ class Keymanager { } /** - * retrieve public key for a specified user + * write key to disk + * + * + * @param string $path path to key directory + * @param string $name key name + * @param string $key key * @param \OC\Files\View $view - * @param string $userId - * @return string public key or false + * @return bool */ - public static function getPublicKey(\OC\Files\View $view, $userId) { - + private static function setKey($path, $name, $key, $view) { $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - $result = $view->file_get_contents('/public-keys/' . $userId . '.public.key'); + self::keySetPreparation($view, $path); + $result = $view->file_put_contents($path . '/' . $name, $key); \OC_FileProxy::$enabled = $proxyStatus; - return $result; + return (is_int($result) && $result > 0) ? true : false; + } + + /** + * retrieve the ENCRYPTED private key from a user + * + * @param \OC\Files\View $view + * @param string $user + * @return string private key or false (hopefully) + * @note the key returned by this method must be decrypted before use + */ + public static function getPrivateKey(\OC\Files\View $view, $user) { + $path = '/' . $user . '/' . 'files_encryption' . '/' . $user . '.privateKey'; + return self::getKey($path, $view); + } + + /** + * retrieve public key for a specified user + * @param \OC\Files\View $view + * @param string $userId + * @return string public key or false + */ + public static function getPublicKey(\OC\Files\View $view, $userId) { + $path = self::$public_key_dir . '/' . $userId . '.publicKey'; + return self::getKey($path, $view); + } + public static function getPublicKeyPath() { + return self::$public_key_dir; } /** @@ -97,11 +129,8 @@ class Keymanager { public static function getPublicKeys(\OC\Files\View $view, array $userIds) { $keys = array(); - foreach ($userIds as $userId) { - $keys[$userId] = self::getPublicKey($view, $userId); - } return $keys; @@ -120,39 +149,97 @@ class Keymanager { * asymmetrically encrypt the keyfile before passing it to this method */ public static function setFileKey(\OC\Files\View $view, $util, $path, $catfile) { + $path = self::getKeyPath($view, $util, $path); + return self::setKey($path, 'fileKey', $catfile, $view); - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; + } + + /** + * get path to key folder for a given file + * + * @param \OC\Files\View $view relative to data directory + * @param \OCA\Encryption\Util $util + * @param string $path path to the file, relative to the users file directory + * @return string + */ + public static function getKeyPath($view, $util, $path) { + + if ($view->is_dir('/' . \OCP\User::getUser() . '/' . $path)) { + throw new Exception\EncryptionException('file was expected but directoy was given', Exception\EncryptionException::GENERIC); + } list($owner, $filename) = $util->getUidAndFilename($path); + $filename = Helper::stripPartialFileExtension($filename); + $filePath_f = ltrim($filename, '/'); // in case of system wide mount points the keys are stored directly in the data directory if ($util->isSystemWideMountPoint($filename)) { - $basePath = '/files_encryption/keyfiles'; + $keyPath = self::$keys_base_dir . $filePath_f . '/'; } else { - $basePath = '/' . $owner . '/files_encryption/keyfiles'; + $keyPath = '/' . $owner . self::$keys_base_dir . $filePath_f . '/'; } - $targetPath = self::keySetPreparation($view, $filename, $basePath); + return $keyPath; + } - // try reusing key file if part file - if (Helper::isPartialFilePath($targetPath)) { + /** + * get path to file key for a given file + * + * @param \OC\Files\View $view relative to data directory + * @param \OCA\Encryption\Util $util + * @param string $path path to the file, relative to the users file directory + * @return string + */ + public static function getFileKeyPath($view, $util, $path) { + $keyDir = self::getKeyPath($view, $util, $path); + return $keyDir . 'fileKey'; + } - $result = $view->file_put_contents( - $basePath . '/' . Helper::stripPartialFileExtension($targetPath) . '.key', $catfile); + /** + * get path to share key for a given user + * + * @param \OC\Files\View $view relateive to data directory + * @param \OCA\Encryption\Util $util + * @param string $path path to file relative to the users files directoy + * @param string $uid user for whom we want the share-key path + * @retrun string + */ + public static function getShareKeyPath($view, $util, $path, $uid) { + $keyDir = self::getKeyPath($view, $util, $path); + return $keyDir . $uid . '.shareKey'; + } - } else { + /** + * delete public key from a given user + * + * @param \OC\Files\View $view + * @param string $uid user + * @return bool + */ + public static function deletePublicKey($view, $uid) { - $result = $view->file_put_contents($basePath . '/' . $targetPath . '.key', $catfile); + $result = false; + if (!\OCP\User::userExists($uid)) { + $publicKey = self::$public_key_dir . '/' . $uid . '.publicKey'; + $result = $view->unlink($publicKey); } - \OC_FileProxy::$enabled = $proxyStatus; - return $result; + } + /** + * check if public key for user exists + * + * @param \OC\Files\View $view + * @param string $uid + */ + public static function publicKeyExists($view, $uid) { + return $view->file_exists(self::$public_key_dir . '/'. $uid . '.publicKey'); } + + /** * retrieve keyfile for an encrypted file * @param \OC\Files\View $view @@ -164,176 +251,97 @@ class Keymanager { * of the keyfile must be performed by client code */ public static function getFileKey($view, $util, $filePath) { + $path = self::getFileKeyPath($view, $util, $filePath); + return self::getKey($path, $view); + } + /** + * store private key from the user + * @param string $key + * @return bool + * @note Encryption of the private key must be performed by client code + * as no encryption takes place here + */ + public static function setPrivateKey($key, $user = '') { - list($owner, $filename) = $util->getUidAndFilename($filePath); - $filename = Helper::stripPartialFileExtension($filename); - $filePath_f = ltrim($filename, '/'); - - // in case of system wide mount points the keys are stored directly in the data directory - if ($util->isSystemWideMountPoint($filename)) { - $keyfilePath = '/files_encryption/keyfiles/' . $filePath_f . '.key'; - } else { - $keyfilePath = '/' . $owner . '/files_encryption/keyfiles/' . $filePath_f . '.key'; - } - - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - if ($view->file_exists($keyfilePath)) { - - $result = $view->file_get_contents($keyfilePath); - - } else { - - $result = false; - - } - - \OC_FileProxy::$enabled = $proxyStatus; + $user = $user === '' ? \OCP\User::getUser() : $user; + $path = '/' . $user . '/files_encryption'; + $header = Crypt::generateHeader(); - return $result; + return self::setKey($path, $user . '.privateKey', $header . $key, new \OC\Files\View()); } /** - * Delete a keyfile + * check if recovery key exists * * @param \OC\Files\View $view - * @param string $path path of the file the key belongs to - * @param string $userId the user to whom the file belongs - * @return bool Outcome of unlink operation - * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT - * /data/admin/files/mydoc.txt + * @return bool */ - public static function deleteFileKey($view, $path, $userId=null) { - - $trimmed = ltrim($path, '/'); + public static function recoveryKeyExists($view) { - if ($trimmed === '') { - \OCP\Util::writeLog('Encryption library', - 'Can\'t delete file-key empty path given!', \OCP\Util::ERROR); - return false; - } + $result = false; - if ($userId === null) { - $userId = Helper::getUser($path); + $recoveryKeyId = Helper::getRecoveryKeyId(); + if ($recoveryKeyId) { + $result = ($view->file_exists(self::$public_key_dir . '/' . $recoveryKeyId . ".publicKey") + && $view->file_exists(self::$encryption_base_dir . '/' . $recoveryKeyId . ".privateKey")); } - $util = new Util($view, $userId); - if($util->isSystemWideMountPoint($path)) { - $keyPath = '/files_encryption/keyfiles/' . $trimmed; - } else { - $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed; - } + return $result; + } + public static function publicShareKeyExists($view) { $result = false; - $fileExists = $view->file_exists('/' . $userId . '/files/' . $trimmed); - if ($view->is_dir($keyPath) && !$fileExists) { - \OCP\Util::writeLog('files_encryption', 'deleteFileKey: delete file key: ' . $keyPath, \OCP\Util::DEBUG); - $result = $view->unlink($keyPath); - } elseif ($view->file_exists($keyPath . '.key') && !$fileExists) { - \OCP\Util::writeLog('files_encryption', 'deleteFileKey: delete file key: ' . $keyPath, \OCP\Util::DEBUG); - $result = $view->unlink($keyPath . '.key'); - - } + $publicShareKeyId = Helper::getPublicShareKeyId(); + if ($publicShareKeyId) { + $result = ($view->file_exists(self::$public_key_dir . '/' . $publicShareKeyId . ".publicKey") + && $view->file_exists(self::$encryption_base_dir . '/' . $publicShareKeyId . ".privateKey")); - if ($fileExists) { - \OCP\Util::writeLog('Encryption library', - 'Did not delete the file key, file still exists: ' . '/' . $userId . '/files/' . $trimmed, \OCP\Util::ERROR); - } elseif (!$result) { - \OCP\Util::writeLog('Encryption library', - 'Could not delete keyfile; does not exist: "' . $keyPath, \OCP\Util::ERROR); } return $result; - } /** - * store private key from the user + * store public key from the user * @param string $key + * @param string $user + * * @return bool - * @note Encryption of the private key must be performed by client code - * as no encryption takes place here */ - public static function setPrivateKey($key, $user = '') { - - if ($user === '') { - $user = \OCP\User::getUser(); - } - - $header = Crypt::generateHeader(); - - $view = new \OC\Files\View('/' . $user . '/files_encryption'); - - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - if (!$view->file_exists('')) { - $view->mkdir(''); - } - - $result = $view->file_put_contents($user . '.private.key', $header . $key); - - \OC_FileProxy::$enabled = $proxyStatus; + public static function setPublicKey($key, $user = '') { - return $result; + $user = $user === '' ? \OCP\User::getUser() : $user; + return self::setKey(self::$public_key_dir, $user . '.publicKey', $key, new \OC\Files\View('/')); } /** * write private system key (recovery and public share key) to disk * * @param string $key encrypted key - * @param string $keyName name of the key file + * @param string $keyName name of the key * @return boolean */ public static function setPrivateSystemKey($key, $keyName) { + $keyName = $keyName . '.privateKey'; $header = Crypt::generateHeader(); - $view = new \OC\Files\View('/owncloud_private_key'); - - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - if (!$view->file_exists('')) { - $view->mkdir(''); - } - - $result = $view->file_put_contents($keyName, $header . $key); - - \OC_FileProxy::$enabled = $proxyStatus; - - return $result; + return self::setKey(self::$encryption_base_dir, $keyName,$header . $key, new \OC\Files\View()); } /** - * store share key + * read private system key (recovery and public share key) from disk * - * @param \OC\Files\View $view - * @param string $path where the share key is stored - * @param string $shareKey - * @return bool true/false - * @note The keyfile is not encrypted here. Client code must - * asymmetrically encrypt the keyfile before passing it to this method + * @param string $keyName name of the key + * @return string|boolean private system key or false */ - private static function setShareKey(\OC\Files\View $view, $path, $shareKey) { - - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $result = $view->file_put_contents($path, $shareKey); - - \OC_FileProxy::$enabled = $proxyStatus; - - if (is_int($result) && $result > 0) { - return true; - } else { - return false; - } + public static function getPrivateSystemKey($keyName) { + $path = $keyName . '.privateKey'; + return self::getKey($path, new \OC\Files\View(self::$encryption_base_dir)); } /** @@ -344,35 +352,17 @@ class Keymanager { * @param array $shareKeys * @return bool */ - public static function setShareKeys(\OC\Files\View $view, $util, $path, array $shareKeys) { - - // $shareKeys must be an array with the following format: - // [userId] => [encrypted key] - - list($owner, $filename) = $util->getUidAndFilename($path); + public static function setShareKeys($view, $util, $path, array $shareKeys) { // in case of system wide mount points the keys are stored directly in the data directory - if ($util->isSystemWideMountPoint($filename)) { - $basePath = '/files_encryption/share-keys'; - } else { - $basePath = '/' . $owner . '/files_encryption/share-keys'; - } + $basePath = Keymanager::getKeyPath($view, $util, $path); - $shareKeyPath = self::keySetPreparation($view, $filename, $basePath); + self::keySetPreparation($view, $basePath); $result = true; foreach ($shareKeys as $userId => $shareKey) { - - // try reusing key file if part file - if (Helper::isPartialFilePath($shareKeyPath)) { - $writePath = $basePath . '/' . Helper::stripPartialFileExtension($shareKeyPath) . '.' . $userId . '.shareKey'; - } else { - $writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey'; - } - - if (!self::setShareKey($view, $writePath, $shareKey)) { - + if (!self::setKey($basePath, $userId . '.shareKey', $shareKey, $view)) { // If any of the keys are not set, flag false $result = false; } @@ -392,89 +382,9 @@ class Keymanager { * @note The sharekey returned is encrypted. Decryption * of the keyfile must be performed by client code */ - public static function getShareKey(\OC\Files\View $view, $userId, $util, $filePath) { - - // try reusing key file if part file - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - list($owner, $filename) = $util->getUidAndFilename($filePath); - $filename = Helper::stripPartialFileExtension($filename); - // in case of system wide mount points the keys are stored directly in the data directory - if ($util->isSystemWideMountPoint($filename)) { - $shareKeyPath = '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey'; - } else { - $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey'; - } - - if ($view->file_exists($shareKeyPath)) { - - $result = $view->file_get_contents($shareKeyPath); - - } else { - - $result = false; - - } - - \OC_FileProxy::$enabled = $proxyStatus; - - return $result; - - } - - /** - * delete all share keys of a given file - * @param \OC\Files\View $view - * @param string $userId owner of the file - * @param string $filePath path to the file, relative to the owners file dir - */ - public static function delAllShareKeys($view, $userId, $filePath) { - - $filePath = ltrim($filePath, '/'); - - if ($view->file_exists('/' . $userId . '/files/' . $filePath)) { - \OCP\Util::writeLog('Encryption library', - 'File still exists, stop deleting share keys!', \OCP\Util::ERROR); - return false; - } - - if ($filePath === '') { - \OCP\Util::writeLog('Encryption library', - 'Can\'t delete share-keys empty path given!', \OCP\Util::ERROR); - return false; - } - - $util = new util($view, $userId); - - if ($util->isSystemWideMountPoint($filePath)) { - $baseDir = '/files_encryption/share-keys/'; - } else { - $baseDir = $userId . '/files_encryption/share-keys/'; - } - - $result = true; - - if ($view->is_dir($baseDir . $filePath)) { - \OCP\Util::writeLog('files_encryption', 'delAllShareKeys: delete share keys: ' . $baseDir . $filePath, \OCP\Util::DEBUG); - $result = $view->unlink($baseDir . $filePath); - } else { - $sharingEnabled = \OCP\Share::isEnabled(); - $users = $util->getSharingUsersArray($sharingEnabled, $filePath); - foreach($users as $user) { - $keyName = $baseDir . $filePath . '.' . $user . '.shareKey'; - if ($view->file_exists($keyName)) { - \OCP\Util::writeLog( - 'files_encryption', - 'dellAllShareKeys: delete share keys: "' . $keyName . '"', - \OCP\Util::DEBUG - ); - $result &= $view->unlink($keyName); - } - } - } - - return (bool)$result; + public static function getShareKey($view, $userId, $util, $filePath) { + $path = self::getShareKeyPath($view, $util, $filePath, $userId); + return self::getKey($path, $view); } /** @@ -482,45 +392,19 @@ class Keymanager { * * @param \OC\Files\View $view relative to data/ * @param array $userIds list of users we want to remove - * @param string $filename the owners name of the file for which we want to remove the users relative to data/user/files - * @param string $owner owner of the file + * @param string $keyPath + * @param string $owner the owner of the file + * @param string $ownerPath the owners name of the file for which we want to remove the users relative to data/user/files */ - public static function delShareKey($view, $userIds, $filename, $owner) { + public static function delShareKey($view, $userIds, $keysPath, $owner, $ownerPath) { - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $util = new Util($view, $owner); - - if ($util->isSystemWideMountPoint($filename)) { - $shareKeyPath = \OC\Files\Filesystem::normalizePath('/files_encryption/share-keys/' . $filename); - } else { - $shareKeyPath = \OC\Files\Filesystem::normalizePath('/' . $owner . '/files_encryption/share-keys/' . $filename); + $key = array_search($owner, $userIds, true); + if ($key !== false && $view->file_exists('/' . $owner . '/files/' . $ownerPath)) { + unset($userIds[$key]); } - if ($view->is_dir($shareKeyPath)) { - - self::recursiveDelShareKeys($shareKeyPath, $userIds, $owner, $view); - - } else { - - foreach ($userIds as $userId) { + self::recursiveDelShareKeys($keysPath, $userIds, $view); - if ($userId === $owner && $view->file_exists('/' . $owner . '/files/' . $filename)) { - \OCP\Util::writeLog('files_encryption', 'Tried to delete owner key, but the file still exists!', \OCP\Util::FATAL); - continue; - } - $result = $view->unlink($shareKeyPath . '.' . $userId . '.shareKey'); - \OCP\Util::writeLog('files_encryption', 'delShareKey: delete share key: ' . $shareKeyPath . '.' . $userId . '.shareKey' , \OCP\Util::DEBUG); - if (!$result) { - \OCP\Util::writeLog('Encryption library', - 'Could not delete shareKey; does not exist: "' . $shareKeyPath . '.' . $userId - . '.shareKey"', \OCP\Util::ERROR); - } - } - } - - \OC_FileProxy::$enabled = $proxyStatus; } /** @@ -528,35 +412,23 @@ class Keymanager { * * @param string $dir directory * @param array $userIds user ids for which the share keys should be deleted - * @param string $owner owner of the file * @param \OC\Files\View $view view relative to data/ */ - private static function recursiveDelShareKeys($dir, $userIds, $owner, $view) { + private static function recursiveDelShareKeys($dir, $userIds, $view) { $dirContent = $view->opendir($dir); - $dirSlices = explode('/', ltrim($dir, '/')); - $realFileDir = '/' . $owner . '/files/' . implode('/', array_slice($dirSlices, 3)) . '/'; if (is_resource($dirContent)) { while (($file = readdir($dirContent)) !== false) { if (!\OC\Files\Filesystem::isIgnoredDir($file)) { if ($view->is_dir($dir . '/' . $file)) { - self::recursiveDelShareKeys($dir . '/' . $file, $userIds, $owner, $view); + self::recursiveDelShareKeys($dir . '/' . $file, $userIds, $view); } else { foreach ($userIds as $userId) { - $fileNameFromShareKey = self::getFilenameFromShareKey($file, $userId); - if (!$fileNameFromShareKey) { - continue; - } - $realFile = $realFileDir . $fileNameFromShareKey; - - if ($userId === $owner && - $view->file_exists($realFile)) { - \OCP\Util::writeLog('files_encryption', 'original file still exists, keep owners share key!', \OCP\Util::ERROR); - continue; + if ($userId . '.shareKey' === $file) { + \OCP\Util::writeLog('files_encryption', 'recursiveDelShareKey: delete share key: ' . $file, \OCP\Util::DEBUG); + $view->unlink($dir . '/' . $file); } - \OCP\Util::writeLog('files_encryption', 'recursiveDelShareKey: delete share key: ' . $file, \OCP\Util::DEBUG); - $view->unlink($dir . '/' . $file); } } } @@ -567,21 +439,15 @@ class Keymanager { /** * Make preparations to vars and filesystem for saving a keyfile - * @param string|boolean $path + * + * @param \OC\Files\View $view + * @param string $path relatvie to the views root * @param string $basePath */ - protected static function keySetPreparation(\OC\Files\View $view, $path, $basePath) { - - $targetPath = ltrim($path, '/'); - - $path_parts = pathinfo($targetPath); - + protected static function keySetPreparation($view, $path) { // If the file resides within a subdirectory, create it - if ( - isset($path_parts['dirname']) - && !$view->file_exists($basePath . '/' . $path_parts['dirname']) - ) { - $sub_dirs = explode('/', $basePath . '/' . $path_parts['dirname']); + if (!$view->file_exists($path)) { + $sub_dirs = explode('/', $path); $dir = ''; foreach ($sub_dirs as $sub_dir) { $dir .= '/' . $sub_dir; @@ -590,27 +456,6 @@ class Keymanager { } } } - - return $targetPath; - } - /** - * extract filename from share key name - * @param string $shareKey (filename.userid.sharekey) - * @param string $userId - * @return string|false filename or false - */ - protected static function getFilenameFromShareKey($shareKey, $userId) { - $expectedSuffix = '.' . $userId . '.' . 'shareKey'; - $suffixLen = strlen($expectedSuffix); - - $suffix = substr($shareKey, -$suffixLen); - - if ($suffix !== $expectedSuffix) { - return false; - } - - return substr($shareKey, 0, -$suffixLen); - } } diff --git a/apps/files_encryption/lib/migration.php b/apps/files_encryption/lib/migration.php index 59389911b5b6df6491ff842b4fc05ae135219a02..ee2e52114cfd5dc1bd1dab09c2cce3a528f4d00c 100644 --- a/apps/files_encryption/lib/migration.php +++ b/apps/files_encryption/lib/migration.php @@ -2,8 +2,9 @@ /** * ownCloud * - * @author Thomas Müller - * @copyright 2014 Thomas Müller deepdiver@owncloud.com + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -25,26 +26,257 @@ namespace OCA\Files_Encryption; class Migration { - public function __construct($tableName = 'encryption') { - $this->tableName = $tableName; + /** + * @var \OC\Files\View + */ + private $view; + private $public_share_key_id; + private $recovery_key_id; + + public function __construct() { + $this->view = new \OC\Files\View(); + $this->public_share_key_id = \OCA\Encryption\Helper::getPublicShareKeyId(); + $this->recovery_key_id = \OCA\Encryption\Helper::getRecoveryKeyId(); + } + + public function reorganizeFolderStructure() { + + $this->createPathForKeys('/files_encryption'); + + // backup system wide folders + $this->backupSystemWideKeys(); + + // rename public keys + $this->renamePublicKeys(); + + // rename system wide mount point + $this->renameFileKeys('', '/files_encryption/keyfiles'); + + // rename system private keys + $this->renameSystemPrivateKeys(); + + // delete old system wide folders + $this->view->deleteAll('/public-keys'); + $this->view->deleteAll('/owncloud_private_key'); + $this->view->deleteAll('/files_encryption/share-keys'); + $this->view->deleteAll('/files_encryption/keyfiles'); + + $users = \OCP\User::getUsers(); + foreach ($users as $user) { + // backup all keys + if ($this->backupUserKeys($user)) { + // create new 'key' folder + $this->view->mkdir($user . '/files_encryption/keys'); + // rename users private key + $this->renameUsersPrivateKey($user); + // rename file keys + $path = $user . '/files_encryption/keyfiles'; + $this->renameFileKeys($user, $path); + $trashPath = $user . '/files_trashbin/keyfiles'; + if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($trashPath)) { + $this->renameFileKeys($user, $trashPath, true); + $this->view->deleteAll($trashPath); + $this->view->deleteAll($user . '/files_trashbin/share-keys'); + } + // delete old folders + $this->deleteOldKeys($user); + } + } + } + + private function backupSystemWideKeys() { + $backupDir = 'encryption_migration_backup_' . date("Y-m-d_H-i-s"); + $this->view->mkdir($backupDir); + $this->view->copy('owncloud_private_key', $backupDir . '/owncloud_private_key'); + $this->view->copy('public-keys', $backupDir . '/public-keys'); + $this->view->copy('files_encryption', $backupDir . '/files_encryption'); + } + + private function backupUserKeys($user) { + $encryptionDir = $user . '/files_encryption'; + if ($this->view->is_dir($encryptionDir)) { + $backupDir = $user . '/encryption_migration_backup_' . date("Y-m-d_H-i-s"); + $this->view->mkdir($backupDir); + $this->view->copy($encryptionDir, $backupDir); + return true; + } + return false; + } + + private function renamePublicKeys() { + $dh = $this->view->opendir('public-keys'); + + $this->createPathForKeys('files_encryption/public_keys'); + + if (is_resource($dh)) { + while (($oldPublicKey = readdir($dh)) !== false) { + if (!\OC\Files\Filesystem::isIgnoredDir($oldPublicKey)) { + $newPublicKey = substr($oldPublicKey, 0, strlen($oldPublicKey) - strlen('.public.key')) . '.publicKey'; + $this->view->rename('public-keys/' . $oldPublicKey , 'files_encryption/public_keys/' . $newPublicKey); + } + } + closedir($dh); + } + } + + private function renameSystemPrivateKeys() { + $dh = $this->view->opendir('owncloud_private_key'); + + if (is_resource($dh)) { + while (($oldPrivateKey = readdir($dh)) !== false) { + if (!\OC\Files\Filesystem::isIgnoredDir($oldPrivateKey)) { + $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; + $this->view->rename('owncloud_private_key/' . $oldPrivateKey , 'files_encryption/' . $newPrivateKey); + } + } + closedir($dh); + } + } + + private function renameUsersPrivateKey($user) { + $oldPrivateKey = $user . '/files_encryption/' . $user . '.private.key'; + $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; + + $this->view->rename($oldPrivateKey, $newPrivateKey); + } + + private function getFileName($file, $trash) { + + $extLength = strlen('.key'); + + if ($trash) { + $parts = explode('.', $file); + if ($parts[count($parts) - 1] !== 'key') { + $extLength = $extLength + strlen('.' . $parts[count($parts) - 1]); + } + } + + $filename = substr($file, 0, strlen($file) - $extLength); + + return $filename; + } + + private function getExtension($file, $trash) { + + $extension = ''; + + if ($trash) { + $parts = explode('.', $file); + if ($parts[count($parts) - 1] !== 'key') { + $extension = '.' . $parts[count($parts) - 1]; + } + } + + return $extension; + } + + private function getFilePath($path, $user, $trash) { + $offset = $trash ? strlen($user . '/files_trashbin/keyfiles') : strlen($user . '/files_encryption/keyfiles'); + return substr($path, $offset); + } + + private function getTargetDir($user, $filePath, $filename, $extension, $trash) { + if ($trash) { + $targetDir = $user . '/files_trashbin/keys/' . $filePath . '/' . $filename . $extension; + } else { + $targetDir = $user . '/files_encryption/keys/' . $filePath . '/' . $filename . $extension; + } + + return $targetDir; + } + + private function renameFileKeys($user, $path, $trash = false) { + + $dh = $this->view->opendir($path); + + if (is_resource($dh)) { + while (($file = readdir($dh)) !== false) { + if (!\OC\Files\Filesystem::isIgnoredDir($file)) { + if ($this->view->is_dir($path . '/' . $file)) { + $this->renameFileKeys($user, $path . '/' . $file, $trash); + } else { + $filename = $this->getFileName($file, $trash); + $filePath = $this->getFilePath($path, $user, $trash); + $extension = $this->getExtension($file, $trash); + $targetDir = $this->getTargetDir($user, $filePath, $filename, $extension, $trash); + $this->createPathForKeys($targetDir); + $this->view->copy($path . '/' . $file, $targetDir . '/fileKey'); + $this->renameShareKeys($user, $filePath, $filename, $targetDir, $trash); + } + } + } + closedir($dh); + } } - // migrate settings from oc_encryption to oc_preferences - public function dropTableEncryption() { - $tableName = $this->tableName; - if (!\OC_DB::tableExists($tableName)) { - return; + private function getOldShareKeyPath($user, $filePath, $trash) { + if ($trash) { + $oldShareKeyPath = $user . '/files_trashbin/share-keys/' . $filePath; + } else { + $oldShareKeyPath = $user . '/files_encryption/share-keys/' . $filePath; } - $sql = "select `uid`, max(`recovery_enabled`) as `recovery_enabled`, min(`migration_status`) as `migration_status` from `*PREFIX*$tableName` group by `uid`"; - $query = \OCP\DB::prepare($sql); - $result = $query->execute(array())->fetchAll(); - foreach ($result as $row) { - \OC_Preferences::setValue($row['uid'], 'files_encryption', 'recovery_enabled', $row['recovery_enabled']); - \OC_Preferences::setValue($row['uid'], 'files_encryption', 'migration_status', $row['migration_status']); + return $oldShareKeyPath; + } + + private function getUidFromShareKey($file, $filename, $trash) { + $extLength = strlen('.shareKey'); + if ($trash) { + $parts = explode('.', $file); + if ($parts[count($parts) - 1] !== 'shareKey') { + $extLength = $extLength + strlen('.' . $parts[count($parts) - 1]); + } } - \OC_DB::dropTable($tableName); + $uid = substr($file, strlen($filename) + 1, $extLength * -1); + + return $uid; } + private function renameShareKeys($user, $filePath, $filename, $target, $trash) { + $oldShareKeyPath = $this->getOldShareKeyPath($user, $filePath, $trash); + $dh = $this->view->opendir($oldShareKeyPath); + + if (is_resource($dh)) { + while (($file = readdir($dh)) !== false) { + if (!\OC\Files\Filesystem::isIgnoredDir($file)) { + if ($this->view->is_dir($oldShareKeyPath . '/' . $file)) { + continue; + } else { + if (substr($file, 0, strlen($filename) +1) === $filename . '.') { + + $uid = $this->getUidFromShareKey($file, $filename, $trash); + if ($uid === $this->public_share_key_id || + $uid === $this->recovery_key_id || + \OCP\User::userExists($uid)) { + $this->view->copy($oldShareKeyPath . '/' . $file, $target . '/' . $uid . '.shareKey'); + } + } + } + + } + } + closedir($dh); + } + } + + private function deleteOldKeys($user) { + $this->view->deleteAll($user . '/files_encryption/keyfiles'); + $this->view->deleteAll($user . '/files_encryption/share-keys'); + } + + private function createPathForKeys($path) { + if (!$this->view->file_exists($path)) { + $sub_dirs = explode('/', $path); + $dir = ''; + foreach ($sub_dirs as $sub_dir) { + $dir .= '/' . $sub_dir; + if (!$this->view->is_dir($dir)) { + $this->view->mkdir($dir); + } + } + } + } + + } diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 3b9dcbe77675952a14b5417af8a3bbfa9ed81041..0e8ca7319f0fcad8850b712c9b384975125d73c0 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -3,10 +3,11 @@ /** * ownCloud * - * @author Bjoern Schiessle, Sam Tuke, Robin Appelman - * @copyright 2012 Sam Tuke - * 2012 Robin Appelman - * 2014 Bjoern Schiessle + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Bjoern Schiessle + * @author Sam Tuke + * @author Robin Appelman * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -91,12 +92,10 @@ class Proxy extends \OC_FileProxy { private function shouldEncrypt($path, $mode = 'w') { $userId = Helper::getUser($path); - $session = new Session(new \OC\Files\View()); // don't call the crypt stream wrapper, if... if ( - $session->getInitialized() !== Session::INIT_SUCCESSFUL // encryption successful initialized - || Crypt::mode() !== 'server' // we are not in server-side-encryption mode + Crypt::mode() !== 'server' // we are not in server-side-encryption mode || $this->isExcludedPath($path, $userId) // if path is excluded from encryption || substr($path, 0, 8) === 'crypt://' // we are already in crypt mode ) { @@ -206,11 +205,11 @@ class Proxy extends \OC_FileProxy { public function postFile_get_contents($path, $data) { $plainData = null; - $view = new \OC\Files\View('/'); // If data is a catfile if ( Crypt::mode() === 'server' + && $this->shouldEncrypt($path) && Crypt::isCatfileContent($data) ) { @@ -346,8 +345,8 @@ class Proxy extends \OC_FileProxy { return $size; } - // get file info from database/cache if not .part file - if (empty($fileInfo) && !Helper::isPartialFilePath($path)) { + // get file info from database/cache + if (empty($fileInfo)) { $proxyState = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; $fileInfo = $view->getFileInfo($path); diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 7bd4fd02421da2ecb3239f3f8823b9701231061b..7f1e0664cdc652186372cf3ffac5662b6cc612eb 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -2,8 +2,10 @@ /** * ownCloud * - * @author Sam Tuke - * @copyright 2012 Sam Tuke samtuke@owncloud.com + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Sam Tuke + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -29,6 +31,7 @@ namespace OCA\Encryption; class Session { private $view; + private static $publicShareKey = false; const NOT_INITIALIZED = '0'; const INIT_EXECUTED = '1'; @@ -45,64 +48,48 @@ class Session { $this->view = $view; - if (!$this->view->is_dir('owncloud_private_key')) { + if (!$this->view->is_dir('files_encryption')) { - $this->view->mkdir('owncloud_private_key'); + $this->view->mkdir('files_encryption'); } $appConfig = \OC::$server->getAppConfig(); - $publicShareKeyId = $appConfig->getValue('files_encryption', 'publicShareKeyId'); + $publicShareKeyId = Helper::getPublicShareKeyId(); - if ($publicShareKeyId === null) { + if ($publicShareKeyId === false) { $publicShareKeyId = 'pubShare_' . substr(md5(time()), 0, 8); $appConfig->setValue('files_encryption', 'publicShareKeyId', $publicShareKeyId); } - if ( - !$this->view->file_exists("/public-keys/" . $publicShareKeyId . ".public.key") - || !$this->view->file_exists("/owncloud_private_key/" . $publicShareKeyId . ".private.key") - ) { + if (!Keymanager::publicShareKeyExists($view)) { $keypair = Crypt::createKeypair(); - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; // Save public key - - if (!$view->is_dir('/public-keys')) { - $view->mkdir('/public-keys'); - } - - $this->view->file_put_contents('/public-keys/' . $publicShareKeyId . '.public.key', $keypair['publicKey']); + Keymanager::setPublicKey($keypair['publicKey'], $publicShareKeyId); // Encrypt private key empty passphrase $cipher = \OCA\Encryption\Helper::getCipher(); $encryptedKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], '', $cipher); if ($encryptedKey) { - Keymanager::setPrivateSystemKey($encryptedKey, $publicShareKeyId . '.private.key'); + Keymanager::setPrivateSystemKey($encryptedKey, $publicShareKeyId); } else { \OCP\Util::writeLog('files_encryption', 'Could not create public share keys', \OCP\Util::ERROR); } - \OC_FileProxy::$enabled = $proxyStatus; - } - if (\OCA\Encryption\Helper::isPublicAccess()) { + if (\OCA\Encryption\Helper::isPublicAccess() && !self::getPublicSharePrivateKey()) { // Disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - $encryptedKey = $this->view->file_get_contents( - '/owncloud_private_key/' . $publicShareKeyId . '.private.key'); + $encryptedKey = Keymanager::getPrivateSystemKey($publicShareKeyId); $privateKey = Crypt::decryptPrivateKey($encryptedKey, ''); - $this->setPublicSharePrivateKey($privateKey); - - $this->setInitialized(\OCA\Encryption\Session::INIT_SUCCESSFUL); + self::setPublicSharePrivateKey($privateKey); \OC_FileProxy::$enabled = $proxyStatus; } @@ -127,8 +114,8 @@ class Session { * remove keys from session */ public function removeKeys() { - \OC::$session->remove('publicSharePrivateKey'); - \OC::$session->remove('privateKey'); + \OC::$server->getSession()->remove('publicSharePrivateKey'); + \OC::$server->getSession()->remove('privateKey'); } /** @@ -164,6 +151,8 @@ class Session { public function getInitialized() { if (!is_null(\OC::$server->getSession()->get('encryptionInitialized'))) { return \OC::$server->getSession()->get('encryptionInitialized'); + } else if (\OCA\Encryption\Helper::isPublicAccess() && self::getPublicSharePrivateKey()) { + return self::INIT_SUCCESSFUL; } else { return self::NOT_INITIALIZED; } @@ -177,7 +166,7 @@ class Session { public function getPrivateKey() { // return the public share private key if this is a public access if (\OCA\Encryption\Helper::isPublicAccess()) { - return $this->getPublicSharePrivateKey(); + return self::getPublicSharePrivateKey(); } else { if (!is_null(\OC::$server->getSession()->get('privateKey'))) { return \OC::$server->getSession()->get('privateKey'); @@ -192,12 +181,9 @@ class Session { * @param string $privateKey * @return bool */ - public function setPublicSharePrivateKey($privateKey) { - - \OC::$server->getSession()->set('publicSharePrivateKey', $privateKey); - + private static function setPublicSharePrivateKey($privateKey) { + self::$publicShareKey = $privateKey; return true; - } /** @@ -205,13 +191,8 @@ class Session { * @return string $privateKey * */ - public function getPublicSharePrivateKey() { - - if (!is_null(\OC::$server->getSession()->get('publicSharePrivateKey'))) { - return \OC::$server->getSession()->get('publicSharePrivateKey'); - } else { - return false; - } + private static function getPublicSharePrivateKey() { + return self::$publicShareKey; } } diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index f74812a725392492559f61854ebafda509a40934..4038e6413430427a9d4bacd865efb5b6fcb3a14e 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -2,10 +2,11 @@ /** * ownCloud * - * @author Bjoern Schiessle, Robin Appelman - * @copyright 2014 Bjoern Schiessle - * 2012 Sam Tuke , - * 2011 Robin Appelman + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Bjoern Schiessle + * @author Robin Appelman + * @author Sam Tuke * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -30,6 +31,7 @@ */ namespace OCA\Encryption; +use OCA\Encryption\Exception\EncryptionException; /** * Provides 'crypt://' stream wrapper protocol. @@ -90,6 +92,7 @@ class Stream { * @param int $options * @param string $opened_path * @return bool + * @throw \OCA\Encryption\Exception\EncryptionException */ public function stream_open($path, $mode, $options, &$opened_path) { @@ -106,6 +109,10 @@ class Stream { $this->session = new \OCA\Encryption\Session($this->rootView); $this->privateKey = $this->session->getPrivateKey(); + if ($this->privateKey === false) { + throw new EncryptionException('Session does not contain a private key, maybe your login password changed?', + EncryptionException::PRIVATE_KEY_MISSING); + } $normalizedPath = \OC\Files\Filesystem::normalizePath(str_replace('crypt://', '', $path)); if ($originalFile = Helper::getPathFromTmpFile($normalizedPath)) { @@ -244,7 +251,7 @@ class Stream { /** * @param int $count * @return bool|string - * @throws \OCA\Encryption\Exceptions\EncryptionException + * @throws \OCA\Encryption\Exception\EncryptionException */ public function stream_read($count) { @@ -252,7 +259,7 @@ class Stream { if ($count !== Crypt::BLOCKSIZE) { \OCP\Util::writeLog('Encryption library', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', \OCP\Util::FATAL); - throw new \OCA\Encryption\Exceptions\EncryptionException('expected a blog size of 8192 byte', 20); + throw new EncryptionException('expected a blog size of 8192 byte', EncryptionException::UNEXPECTED_BLOG_SIZE); } // Get the data from the file handle @@ -360,14 +367,14 @@ class Stream { /** * write header at beginning of encrypted file * - * @throws Exceptions\EncryptionException + * @throws Exception\EncryptionException */ private function writeHeader() { $header = Crypt::generateHeader(); if (strlen($header) > Crypt::BLOCKSIZE) { - throw new Exceptions\EncryptionException('max header size exceeded', 30); + throw new EncryptionException('max header size exceeded', EncryptionException::ENCRYPTION_HEADER_TO_LARGE); } $paddedHeader = str_pad($header, Crypt::BLOCKSIZE, self::PADDING_CHAR, STR_PAD_RIGHT); @@ -573,6 +580,7 @@ class Stream { \OC_FileProxy::$enabled = false; if ($this->rootView->file_exists($this->rawPath) && $this->size === 0) { + fclose($this->handle); $this->rootView->unlink($this->rawPath); } @@ -632,13 +640,17 @@ class Stream { $path = Helper::stripPartialFileExtension($this->rawPath); $fileInfo = array( + 'mimetype' => $this->rootView->getMimeType($this->rawPath), 'encrypted' => true, - 'size' => $this->size, 'unencrypted_size' => $this->unencryptedSize, ); - // set fileinfo - $this->rootView->putFileInfo($path, $fileInfo); + // if we write a part file we also store the unencrypted size for + // the part file so that it can be re-used later + $this->rootView->putFileInfo($this->rawPath, $fileInfo); + if ($path !== $this->rawPath) { + $this->rootView->putFileInfo($path, $fileInfo); + } } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 33c2f88b0fde8b019fe38c781109b4a3cea86712..42a7e20c87ffa6c80315b9847e0108b2f2325fd9 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -2,10 +2,11 @@ /** * ownCloud * - * @author Sam Tuke, Frank Karlitschek, Bjoern Schiessle - * @copyright 2012 Sam Tuke , - * Frank Karlitschek , - * Bjoern Schiessle + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Sam Tuke , + * @author Frank Karlitschek , + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -44,10 +45,10 @@ class Util { private $client; // Client side encryption mode flag private $publicKeyDir; // Dir containing all public user keys private $encryptionDir; // Dir containing user's files_encryption - private $keyfilesPath; // Dir containing user's keyfiles - private $shareKeysPath; // Dir containing env keys for shared files + private $keysPath; // Dir containing all file related encryption keys private $publicKeyPath; // Path to user's public key private $privateKeyPath; // Path to user's private key + private $userFilesDir; private $publicShareKeyId; private $recoveryKeyId; private $isPublic; @@ -72,14 +73,13 @@ class Util { $this->fileFolderName = 'files'; $this->userFilesDir = '/' . $userId . '/' . $this->fileFolderName; // TODO: Does this need to be user configurable? - $this->publicKeyDir = '/' . 'public-keys'; + $this->publicKeyDir = Keymanager::getPublicKeyPath(); $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; - $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; - $this->shareKeysPath = $this->encryptionDir . '/' . 'share-keys'; + $this->keysPath = $this->encryptionDir . '/' . 'keys'; $this->publicKeyPath = - $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key + $this->publicKeyDir . '/' . $this->userId . '.publicKey'; // e.g. data/public-keys/admin.publicKey $this->privateKeyPath = - $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key + $this->encryptionDir . '/' . $this->userId . '.privateKey'; // e.g. data/admin/admin.privateKey // make sure that the owners home is mounted \OC\Files\Filesystem::initMountPoints($userId); @@ -99,8 +99,7 @@ class Util { if ( !$this->view->file_exists($this->encryptionDir) - or !$this->view->file_exists($this->keyfilesPath) - or !$this->view->file_exists($this->shareKeysPath) + or !$this->view->file_exists($this->keysPath) or !$this->view->file_exists($this->publicKeyPath) or !$this->view->file_exists($this->privateKeyPath) ) { @@ -124,6 +123,18 @@ class Util { } } + /** + * create a new public/private key pair for the user + * + * @param string $password password for the private key + */ + public function replaceUserKeys($password) { + $this->backupAllKeys('password_reset'); + $this->view->unlink($this->publicKeyPath); + $this->view->unlink($this->privateKeyPath); + $this->setupServerSide($password); + } + /** * Sets up user folders and keys for serverside encryption * @@ -137,8 +148,7 @@ class Util { $this->userDir, $this->publicKeyDir, $this->encryptionDir, - $this->keyfilesPath, - $this->shareKeysPath + $this->keysPath ); // Check / create all necessary dirs @@ -385,55 +395,71 @@ class Util { && $this->isEncryptedPath($path) ) { - $offset = 0; - if ($this->containHeader($path)) { - $offset = Crypt::BLOCKSIZE; - } - - // get the size from filesystem if the file contains a encryption header we - // we substract it - $size = $this->view->filesize($path) - $offset; - - // fast path, else the calculation for $lastChunkNr is bogus - if ($size === 0) { - \OC_FileProxy::$enabled = $proxyStatus; - return 0; - } + $cipher = 'AES-128-CFB'; + $realSize = 0; - // calculate last chunk nr - // next highest is end of chunks, one subtracted is last one - // we have to read the last chunk, we can't just calculate it (because of padding etc) - $lastChunkNr = ceil($size/ Crypt::BLOCKSIZE) - 1; - $lastChunkSize = $size - ($lastChunkNr * Crypt::BLOCKSIZE); + // get the size from filesystem + $size = $this->view->filesize($path); // open stream - $stream = fopen('crypt://' . $path, "r"); + $stream = $this->view->fopen($path, "r"); if (is_resource($stream)) { - // calculate last chunk position - $lastChunckPos = ($lastChunkNr * Crypt::BLOCKSIZE); - // seek to end - if (@fseek($stream, $lastChunckPos) === -1) { - // storage doesn't support fseek, we need a local copy - fclose($stream); - $localFile = $this->view->getLocalFile($path); - Helper::addTmpFileToMapper($localFile, $path); - $stream = fopen('crypt://' . $localFile, "r"); - if (fseek($stream, $lastChunckPos) === -1) { - // if fseek also fails on the local storage, than - // there is nothing we can do - fclose($stream); - \OCP\Util::writeLog('Encryption library', 'couldn\'t determine size of "' . $path, \OCP\Util::ERROR); - return $result; - } + // if the file contains a encryption header we + // we set the cipher + // and we update the size + if ($this->containHeader($path)) { + $data = fread($stream,Crypt::BLOCKSIZE); + $header = Crypt::parseHeader($data); + $cipher = Crypt::getCipher($header); + $size -= Crypt::BLOCKSIZE; } + // fast path, else the calculation for $lastChunkNr is bogus + if ($size === 0) { + \OC_FileProxy::$enabled = $proxyStatus; + return 0; + } + + // calculate last chunk nr + // next highest is end of chunks, one subtracted is last one + // we have to read the last chunk, we can't just calculate it (because of padding etc) + $lastChunkNr = ceil($size/Crypt::BLOCKSIZE)-1; + + // calculate last chunk position + $lastChunkPos = ($lastChunkNr * Crypt::BLOCKSIZE); + // get the content of the last chunk - $lastChunkContent = fread($stream, $lastChunkSize); + if (@fseek($stream, $lastChunkPos, SEEK_CUR) === 0) { + $realSize+=$lastChunkNr*6126; + } + $lastChunkContentEncrypted=''; + $count=Crypt::BLOCKSIZE; + while ($count>0) { + $data=fread($stream,Crypt::BLOCKSIZE); + $count=strlen($data); + $lastChunkContentEncrypted.=$data; + if(strlen($lastChunkContentEncrypted)>Crypt::BLOCKSIZE) { + $realSize+=6126; + $lastChunkContentEncrypted=substr($lastChunkContentEncrypted,Crypt::BLOCKSIZE); + } + } + fclose($stream); + $relPath = \OCA\Encryption\Helper::stripUserFilesPath($path); + $shareKey = Keymanager::getShareKey($this->view, $this->keyId, $this, $relPath); + if($shareKey===false) { + \OC_FileProxy::$enabled = $proxyStatus; + return $result; + } + $session = new \OCA\Encryption\Session($this->view); + $privateKey = $session->getPrivateKey(); + $plainKeyfile = $this->decryptKeyfile($relPath, $privateKey); + $plainKey = Crypt::multiKeyDecrypt($plainKeyfile, $shareKey, $privateKey); + $lastChunkContent=Crypt::symmetricDecryptFileContent($lastChunkContentEncrypted, $plainKey, $cipher); // calc the real file size with the size of the last chunk - $realSize = (($lastChunkNr * 6126) + strlen($lastChunkContent)); + $realSize += strlen($lastChunkContent); // store file size $result = $realSize; @@ -699,8 +725,8 @@ class Util { } if ($successful) { - $this->view->rename($this->keyfilesPath, $this->keyfilesPath . '.backup'); - $this->view->rename($this->shareKeysPath, $this->shareKeysPath . '.backup'); + $this->backupAllKeys('decryptAll'); + $this->view->deleteAll($this->keysPath); } \OC_FileProxy::$enabled = true; @@ -817,9 +843,9 @@ class Util { break; - case 'keyfilesPath': + case 'keysPath': - return $this->keyfilesPath; + return $this->keysPath; break; @@ -840,6 +866,25 @@ class Util { } + /** + * Returns whether the given user is ready for encryption. + * Also returns true if the given user is the public user + * or the recovery key user. + * + * @param string $user user to check + * + * @return boolean true if the user is ready, false otherwise + */ + private function isUserReady($user) { + if ($user === $this->publicShareKeyId + || $user === $this->recoveryKeyId + ) { + return true; + } + $util = new Util($this->view, $user); + return $util->ready(); + } + /** * Filter an array of UIDs to return only ones ready for sharing * @param array $unfilteredUsers users to be checked for sharing readiness @@ -852,16 +897,9 @@ class Util { // Loop through users and create array of UIDs that need new keyfiles foreach ($unfilteredUsers as $user) { - - $util = new Util($this->view, $user); - // Check that the user is encryption capable, or is the - // public system user 'ownCloud' (for public shares) - if ( - $user === $this->publicShareKeyId - or $user === $this->recoveryKeyId - or $util->ready() - ) { + // public system user (for public shares) + if ($this->isUserReady($user)) { // Construct array of ready UIDs for Keymanager{} $readyIds[] = $user; @@ -944,7 +982,7 @@ class Util { $plainKeyfile = $this->decryptKeyfile($filePath, $privateKey); // Re-enc keyfile to (additional) sharekeys $multiEncKey = Crypt::multiKeyEncrypt($plainKeyfile, $userPubKeys); - } catch (Exceptions\EncryptionException $e) { + } catch (Exception\EncryptionException $e) { $msg = 'set shareFileKeyFailed (code: ' . $e->getCode() . '): ' . $e->getMessage(); \OCP\Util::writeLog('files_encryption', $msg, \OCP\Util::FATAL); return false; @@ -1325,22 +1363,14 @@ class Util { public function checkRecoveryPassword($password) { $result = false; - $pathKey = '/owncloud_private_key/' . $this->recoveryKeyId . ".private.key"; - - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $recoveryKey = $this->view->file_get_contents($pathKey); + $recoveryKey = Keymanager::getPrivateSystemKey($this->recoveryKeyId); $decryptedRecoveryKey = Crypt::decryptPrivateKey($recoveryKey, $password); if ($decryptedRecoveryKey) { $result = true; } - \OC_FileProxy::$enabled = $proxyStatus; - - return $result; } @@ -1355,19 +1385,17 @@ class Util { * add recovery key to all encrypted files */ public function addRecoveryKeys($path = '/') { - $dirContent = $this->view->getDirectoryContent($this->keyfilesPath . $path); + $dirContent = $this->view->getDirectoryContent($this->keysPath . '/' . $path); foreach ($dirContent as $item) { // get relative path from files_encryption/keyfiles/ - $filePath = substr($item['path'], strlen('files_encryption/keyfiles')); - if ($item['type'] === 'dir') { + $filePath = substr($item['path'], strlen('files_encryption/keys')); + if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) { $this->addRecoveryKeys($filePath . '/'); } else { $session = new \OCA\Encryption\Session(new \OC\Files\View('/')); $sharingEnabled = \OCP\Share::isEnabled(); - // remove '.key' extension from path e.g. 'file.txt.key' to 'file.txt' - $file = substr($filePath, 0, -4); - $usersSharing = $this->getSharingUsersArray($sharingEnabled, $file); - $this->setSharedFileKeyfiles($session, $usersSharing, $file); + $usersSharing = $this->getSharingUsersArray($sharingEnabled, $filePath); + $this->setSharedFileKeyfiles($session, $usersSharing, $filePath); } } } @@ -1376,16 +1404,14 @@ class Util { * remove recovery key to all encrypted files */ public function removeRecoveryKeys($path = '/') { - $dirContent = $this->view->getDirectoryContent($this->keyfilesPath . $path); + $dirContent = $this->view->getDirectoryContent($this->keysPath . '/' . $path); foreach ($dirContent as $item) { // get relative path from files_encryption/keyfiles - $filePath = substr($item['path'], strlen('files_encryption/keyfiles')); - if ($item['type'] === 'dir') { + $filePath = substr($item['path'], strlen('files_encryption/keys')); + if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) { $this->removeRecoveryKeys($filePath . '/'); } else { - // remove '.key' extension from path e.g. 'file.txt.key' to 'file.txt' - $file = substr($filePath, 0, -4); - $this->view->unlink($this->shareKeysPath . '/' . $file . '.' . $this->recoveryKeyId . '.shareKey'); + $this->view->unlink($this->keysPath . '/' . $filePath . '/' . $this->recoveryKeyId . '.shareKey'); } } } @@ -1415,27 +1441,17 @@ class Util { } $filteredUids = $this->filterShareReadyUsers($userIds); - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - //decrypt file key - $encKeyfile = $this->view->file_get_contents($this->keyfilesPath . $file . ".key"); - $shareKey = $this->view->file_get_contents( - $this->shareKeysPath . $file . "." . $this->recoveryKeyId . ".shareKey"); + $encKeyfile = Keymanager::getFileKey($this->view, $this, $file); + $shareKey = Keymanager::getShareKey($this->view, $this->recoveryKeyId, $this, $file); $plainKeyfile = Crypt::multiKeyDecrypt($encKeyfile, $shareKey, $privateKey); // encrypt file key again to all users, this time with the new public key for the recovered use $userPubKeys = Keymanager::getPublicKeys($this->view, $filteredUids['ready']); $multiEncKey = Crypt::multiKeyEncrypt($plainKeyfile, $userPubKeys); - // write new keys to filesystem TDOO! - $this->view->file_put_contents($this->keyfilesPath . $file . '.key', $multiEncKey['data']); - foreach ($multiEncKey['keys'] as $userId => $shareKey) { - $shareKeyPath = $this->shareKeysPath . $file . '.' . $userId . '.shareKey'; - $this->view->file_put_contents($shareKeyPath, $shareKey); - } + Keymanager::setFileKey($this->view, $this, $file, $multiEncKey['data']); + Keymanager::setShareKeys($this->view, $this, $file, $multiEncKey['keys']); - // Return proxy to original status - \OC_FileProxy::$enabled = $proxyStatus; } /** @@ -1444,16 +1460,14 @@ class Util { * @param string $privateKey private recovery key which is used to decrypt the files */ private function recoverAllFiles($path, $privateKey) { - $dirContent = $this->view->getDirectoryContent($this->keyfilesPath . $path); + $dirContent = $this->view->getDirectoryContent($this->keysPath . '/' . $path); foreach ($dirContent as $item) { // get relative path from files_encryption/keyfiles - $filePath = substr($item['path'], strlen('files_encryption/keyfiles')); - if ($item['type'] === 'dir') { + $filePath = substr($item['path'], strlen('files_encryption/keys')); + if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) { $this->recoverAllFiles($filePath . '/', $privateKey); } else { - // remove '.key' extension from path e.g. 'file.txt.key' to 'file.txt' - $file = substr($filePath, 0, -4); - $this->recoverFile($file, $privateKey); + $this->recoverFile($filePath, $privateKey); } } } @@ -1464,16 +1478,9 @@ class Util { */ public function recoverUsersFiles($recoveryPassword) { - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $encryptedKey = $this->view->file_get_contents( - '/owncloud_private_key/' . $this->recoveryKeyId . '.private.key'); + $encryptedKey = Keymanager::getPrivateSystemKey( $this->recoveryKeyId); $privateKey = Crypt::decryptPrivateKey($encryptedKey, $recoveryPassword); - \OC_FileProxy::$enabled = $proxyStatus; - $this->recoverAllFiles('/', $privateKey); } @@ -1487,10 +1494,9 @@ class Util { $backupDir = $this->encryptionDir . '/backup.'; $backupDir .= ($purpose === '') ? date("Y-m-d_H-i-s") . '/' : $purpose . '.' . date("Y-m-d_H-i-s") . '/'; $this->view->mkdir($backupDir); - $this->view->copy($this->shareKeysPath, $backupDir . 'share-keys/'); - $this->view->copy($this->keyfilesPath, $backupDir . 'keyfiles/'); - $this->view->copy($this->privateKeyPath, $backupDir . $this->userId . '.private.key'); - $this->view->copy($this->publicKeyPath, $backupDir . $this->userId . '.public.key'); + $this->view->copy($this->keysPath, $backupDir . 'keys/'); + $this->view->copy($this->privateKeyPath, $backupDir . $this->userId . '.privateKey'); + $this->view->copy($this->publicKeyPath, $backupDir . $this->userId . '.publicKey'); } /** @@ -1550,7 +1556,10 @@ class Util { $encryptedKey = Keymanager::getPrivateKey($this->view, $params['uid']); - $privateKey = Crypt::decryptPrivateKey($encryptedKey, $params['password']); + $privateKey = false; + if ($encryptedKey) { + $privateKey = Crypt::decryptPrivateKey($encryptedKey, $params['password']); + } if ($privateKey === false) { \OCP\Util::writeLog('Encryption library', 'Private key for user "' . $params['uid'] diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 1bebb3cd36c68db34caa1ceea6c91a42ded94bd9..ab2ce066cdbaae18b218aafafc84fee5eb9e12c7 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -7,22 +7,12 @@ * See the COPYING-README file. */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../lib/helper.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Crypt */ -class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_CRYPT_USER1 = "test-crypt-user1"; @@ -41,27 +31,17 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { public $genPublicKey; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerUserHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + parent::setUpBeforeClass(); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1, true); + self::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id - \Test_Encryption_Util::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1); + self::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1); $this->userId = \Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1; $this->pass = \Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1; @@ -87,7 +67,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -97,17 +77,21 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertTrue(\OC_FileProxy::$enabled); \OCP\Config::deleteSystemValue('cipher'); + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1); + + parent::tearDownAfterClass(); } /** * @medium */ - function testGenerateKey() { + public function testGenerateKey() { # TODO: use more accurate (larger) string length for test confirmation @@ -117,7 +101,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { } - function testDecryptPrivateKey() { + public function testDecryptPrivateKey() { // test successful decrypt $crypted = Encryption\Crypt::symmetricEncryptFileContent($this->genPrivateKey, 'hat'); @@ -139,7 +123,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricEncryptFileContent() { + public function testSymmetricEncryptFileContent() { # TODO: search in keyfile for actual content as IV will ensure this test always passes @@ -157,7 +141,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricEncryptFileContentAes128() { + public function testSymmetricEncryptFileContentAes128() { # TODO: search in keyfile for actual content as IV will ensure this test always passes @@ -175,9 +159,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricStreamEncryptShortFileContent() { + public function testSymmetricStreamEncryptShortFileContent() { - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/'. $filename, $this->dataShort); @@ -205,16 +189,14 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { // Teardown $this->view->unlink($this->userId . '/files/' . $filename); - - Encryption\Keymanager::deleteFileKey($this->view, $filename); } /** * @medium */ - function testSymmetricStreamEncryptShortFileContentAes128() { + public function testSymmetricStreamEncryptShortFileContentAes128() { - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; \OCP\Config::setSystemValue('cipher', 'AES-128-CFB'); @@ -246,8 +228,6 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { // Teardown $this->view->unlink($this->userId . '/files/' . $filename); - - Encryption\Keymanager::deleteFileKey($this->view, $filename); } /** @@ -257,10 +237,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual * reassembly of its data */ - function testSymmetricStreamEncryptLongFileContent() { + public function testSymmetricStreamEncryptLongFileContent() { // Generate a a random filename - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong . $this->dataLong); @@ -287,11 +267,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong . $this->dataLong, $decrypted); // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - - Encryption\Keymanager::deleteFileKey($this->view, $filename); - } /** @@ -301,10 +277,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual * reassembly of its data */ - function testSymmetricStreamEncryptLongFileContentAes128() { + public function testSymmetricStreamEncryptLongFileContentAes128() { // Generate a a random filename - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; \OCP\Config::setSystemValue('cipher', 'AES-128-CFB'); @@ -335,11 +311,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong . $this->dataLong, $decrypted); // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - - Encryption\Keymanager::deleteFileKey($this->view, $filename); - } /** @@ -349,10 +321,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual * reassembly of its data */ - function testStreamDecryptLongFileContentWithoutHeader() { + public function testStreamDecryptLongFileContentWithoutHeader() { // Generate a a random filename - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; \OCP\Config::setSystemValue('cipher', 'AES-128-CFB'); @@ -387,17 +359,13 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong . $this->dataLong, $decrypted); // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - - Encryption\Keymanager::deleteFileKey($this->view, $filename); - } /** * @medium */ - function testIsEncryptedContent() { + public function testIsEncryptedContent() { $this->assertFalse(Encryption\Crypt::isCatfileContent($this->dataUrl)); @@ -412,7 +380,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @large */ - function testMultiKeyEncrypt() { + public function testMultiKeyEncrypt() { # TODO: search in keyfile for actual content as IV will ensure this test always passes @@ -439,9 +407,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testRenameFile() { + public function testRenameFile() { - $filename = 'tmp-' . uniqid(); + $filename = 'tmp-' . $this->getUniqueID(); // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); @@ -454,7 +422,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong, $decrypt); - $newFilename = 'tmp-new-' . uniqid(); + $newFilename = 'tmp-new-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->rename($filename, $newFilename); @@ -470,9 +438,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testMoveFileIntoFolder() { + public function testMoveFileIntoFolder() { - $filename = 'tmp-' . uniqid(); + $filename = 'tmp-' . $this->getUniqueID(); // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); @@ -485,8 +453,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong, $decrypt); - $newFolder = '/newfolder' . uniqid(); - $newFilename = 'tmp-new-' . uniqid(); + $newFolder = '/newfolder' . $this->getUniqueID(); + $newFilename = 'tmp-new-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->mkdir($newFolder); $view->rename($filename, $newFolder . '/' . $newFilename); @@ -503,12 +471,12 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testMoveFolder() { + public function testMoveFolder() { $view = new \OC\Files\View('/' . $this->userId . '/files'); - $filename = '/tmp-' . uniqid(); - $folder = '/folder' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); + $folder = '/folder' . $this->getUniqueID(); $view->mkdir($folder); @@ -523,7 +491,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong, $decrypt); - $newFolder = '/newfolder/subfolder' . uniqid(); + $newFolder = '/newfolder/subfolder' . $this->getUniqueID(); $view->mkdir('/newfolder'); $view->rename($folder, $newFolder); @@ -541,8 +509,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testChangePassphrase() { - $filename = 'tmp-' . uniqid(); + public function testChangePassphrase() { + $filename = 'tmp-' . $this->getUniqueID(); // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); @@ -578,9 +546,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testViewFilePutAndGetContents() { + public function testViewFilePutAndGetContents() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -612,8 +580,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @large */ - function testTouchExistingFile() { - $filename = '/tmp-' . uniqid(); + public function testTouchExistingFile() { + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -636,8 +604,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testTouchFile() { - $filename = '/tmp-' . uniqid(); + public function testTouchFile() { + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->touch($filename); @@ -660,8 +628,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testFopenFile() { - $filename = '/tmp-' . uniqid(); + public function testFopenFile() { + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -678,6 +646,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $decrypt); // tear down + fclose($handle); $view->unlink($filename); } diff --git a/apps/files_encryption/tests/helper.php b/apps/files_encryption/tests/helper.php index b94fdeb4d6cf2e13b75464c7705931d7140d17b9..88ba9f20d53bbdce234e51035dffdcf981261789 100644 --- a/apps/files_encryption/tests/helper.php +++ b/apps/files_encryption/tests/helper.php @@ -6,32 +6,39 @@ * See the COPYING-README file. */ - -require_once __DIR__ . '/../lib/helper.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Helper */ -class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_HELPER_USER1 = "test-helper-user1"; const TEST_ENCRYPTION_HELPER_USER2 = "test-helper-user2"; - public static function setUpBeforeClass() { + protected function setUpUsers() { // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1, true); + self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2, true); + self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1, true); } - public static function tearDownAfterClass() { + protected function cleanUpUsers() { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1); \OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2); - \OC_Hook::clear(); + } + + public static function setupHooks() { + // Filesystem related hooks + \OCA\Encryption\Helper::registerFilesystemHooks(); + + // clear and register hooks \OC_FileProxy::clearProxies(); + \OC_FileProxy::register(new OCA\Encryption\Proxy()); + } + + public static function tearDownAfterClass() { + parent::tearDownAfterClass(); } /** @@ -83,19 +90,20 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { } function testGetUser() { + self::setUpUsers(); $path1 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/files/foo/bar.txt"; $path2 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/cache/foo/bar.txt"; $path3 = "/" . self::TEST_ENCRYPTION_HELPER_USER2 . "/thumbnails/foo"; $path4 ="/" . "/" . self::TEST_ENCRYPTION_HELPER_USER1; - \Test_Encryption_Util::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); + self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); // if we are logged-in every path should return the currently logged-in user $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path3)); // now log out - \Test_Encryption_Util::logoutHelper(); + self::logoutHelper(); // now we should only get the user from /user/files and user/cache paths $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path1)); @@ -105,63 +113,8 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { $this->assertFalse(Encryption\Helper::getUser($path4)); // Log-in again - \Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1); - } - - function userNamesProvider() { - return array( - array('testuser' . uniqid()), - array('user.name.with.dots'), - ); - } - - /** - * Tests whether share keys can be found - * - * @dataProvider userNamesProvider - */ - function testFindShareKeys($userName) { - // note: not using dataProvider as we want to make - // sure that the correct keys are match and not any - // other ones that might happen to have similar names - \Test_Encryption_Util::setupHooks(); - \Test_Encryption_Util::loginHelper($userName, true); - $testDir = 'testFindShareKeys' . uniqid() . '/'; - $baseDir = $userName . '/files/' . $testDir; - $fileList = array( - 't est.txt', - 't est_.txt', - 't est.doc.txt', - 't est(.*).txt', // make sure the regexp is escaped - 'multiple.dots.can.happen.too.txt', - 't est.' . $userName . '.txt', - 't est_.' . $userName . '.shareKey.txt', - 'who would upload their.shareKey', - 'user ones file.txt', - 'user ones file.txt.backup', - '.t est.txt' - ); - - $rootView = new \OC\Files\View('/'); - $rootView->mkdir($baseDir); - foreach ($fileList as $fileName) { - $rootView->file_put_contents($baseDir . $fileName, 'dummy'); - } - - $shareKeysDir = $userName . '/files_encryption/share-keys/' . $testDir; - foreach ($fileList as $fileName) { - // make sure that every file only gets its correct respective keys - $result = Encryption\Helper::findShareKeys($baseDir . $fileName, $shareKeysDir . $fileName, $rootView); - $this->assertEquals( - array($shareKeysDir . $fileName . '.' . $userName . '.shareKey'), - $result - ); - } - - // clean up - $rootView->unlink($baseDir); - \Test_Encryption_Util::logoutHelper(); - \OC_User::deleteUser($userName); + self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1); + self::cleanUpUsers(); } } diff --git a/apps/files_encryption/tests/hooks.php b/apps/files_encryption/tests/hooks.php index 14d44fe5bb3cbc1de5b745dd44e340557f1456cc..d5a30f5074aea17c0d07a1e48357267560e61b33 100644 --- a/apps/files_encryption/tests/hooks.php +++ b/apps/files_encryption/tests/hooks.php @@ -20,30 +20,22 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Hooks * this class provide basic hook app tests */ -class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_HOOKS_USER1 = "test-encryption-hooks-user1.dot"; const TEST_ENCRYPTION_HOOKS_USER2 = "test-encryption-hooks-user2.dot"; - /** - * @var \OC\Files\View - */ + /** @var \OC\Files\View */ public $user1View; // view on /data/user1/files + /** @var \OC\Files\View */ public $user2View; // view on /data/user2/files + /** @var \OC\Files\View */ public $rootView; // view on /data/user public $data; public $filename; @@ -52,6 +44,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { private static $testFiles; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // note: not using a data provider because these // files all need to coexist to make sure the // share keys are found properly (pattern matching) @@ -69,36 +63,16 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { '.t est.txt' ); - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - \OC_Hook::clear('OC_Filesystem'); - \OC_Hook::clear('OC_User'); - - // clear share hooks - \OC_Hook::clear('OCP\\Share'); - \OC::registerShareHooks(); - \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // Sharing related hooks - \OCA\Encryption\Helper::registerShareHooks(); - - // clear and register proxies - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); - // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2, true); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1, true); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); // init filesystem view @@ -108,8 +82,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // init short data $this->data = 'hats'; - $this->filename = 'enc_hooks_tests-' . uniqid() . '.txt'; - $this->folder = 'enc_hooks_tests_folder-' . uniqid(); + $this->filename = 'enc_hooks_tests-' . $this->getUniqueID() . '.txt'; + $this->folder = 'enc_hooks_tests_folder-' . $this->getUniqueID(); } @@ -117,6 +91,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::deleteUser(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); + + parent::tearDownAfterClass(); } function testDisableHook() { @@ -138,7 +114,7 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // relogin user to initialize the encryption again $user = \OCP\User::getUser(); - \Test_Encryption_Util::loginHelper($user); + self::loginHelper($user); } @@ -157,14 +133,14 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // check if all keys are generated $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); @@ -172,10 +148,10 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // check if all keys are generated $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); // create a dummy file that we can delete something outside of data/user/files @@ -187,10 +163,10 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // all keys should still exist $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); // delete the file in data/user/files @@ -199,17 +175,17 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // check if keys from user2 are really deleted $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); // but user1 keys should still exist $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); if ($stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -221,8 +197,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { function testDeleteHooksForSharedFiles() { - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); // remember files_trashbin state @@ -238,10 +214,10 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // check if all keys are generated $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); // get the file info from previous created file $fileInfo = $this->user1View->getFileInfo($this->filename); @@ -250,15 +226,15 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); // share the file with user2 - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_HOOKS_USER2, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_HOOKS_USER2, \OCP\Constants::PERMISSION_ALL); // check if new share key exists $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); // user2 update the shared file @@ -266,10 +242,10 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // keys should be stored at user1s dir, not in user2s $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); // delete the Shared file from user1 in data/user2/files/Shared $result = $this->user2View->unlink($this->filename); @@ -278,18 +254,18 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // share key for user2 from user1s home should be gone, all other keys should still exists $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->filename . '.key')); + self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); // cleanup - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); if ($stateFilesTrashbin) { @@ -321,12 +297,12 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { function doTestRenameHook($filename) { // check if keys exists $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/fileKey')); // make subfolder and sub-subfolder $this->rootView->mkdir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); @@ -345,18 +321,18 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // keys should be renamed too $this->assertFalse($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertFalse($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/fileKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' . $this->folder . '/' . $this->folder . '/' - . $filename . '.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' + . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->folder . '/' . $this->folder . '/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' + . $filename . '/fileKey')); // cleanup $this->rootView->unlink('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); @@ -383,12 +359,12 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { function doTestCopyHook($filename) { // check if keys exists $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/fileKey')); // make subfolder and sub-subfolder $this->rootView->mkdir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); @@ -404,18 +380,18 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // keys should be copied too $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' + . $filename . '/fileKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' . $this->folder . '/' . $this->folder . '/' - . $filename . '.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' + . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->folder . '/' . $this->folder . '/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' + . $filename . '/fileKey')); // cleanup $this->rootView->unlink('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); @@ -433,8 +409,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // set user password for the first time \OCA\Encryption\Hooks::postCreateUser(array('uid' => 'newUser', 'password' => 'newUserPassword')); - $this->assertTrue($view->file_exists('public-keys/newUser.public.key')); - $this->assertTrue($view->file_exists('newUser/files_encryption/newUser.private.key')); + $this->assertTrue($view->file_exists(\OCA\Encryption\Keymanager::getPublicKeyPath() . '/newUser.publicKey')); + $this->assertTrue($view->file_exists('newUser/files_encryption/newUser.privateKey')); // check if we are able to decrypt the private key $encryptedKey = \OCA\Encryption\Keymanager::getPrivateKey($view, 'newUser'); diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index e8a9d7dda531a12bd0b89db5b50995547c0acb57..21f03839430b73df93857fd9ee85b2c1f6f8d2bc 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -6,22 +6,12 @@ * See the COPYING-README file. */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../lib/helper.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Keymanager */ -class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase { const TEST_USER = "test-keymanager-user.dot"; @@ -36,16 +26,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { public $dataShort; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + parent::setUpBeforeClass(); // disable file proxy by default \OC_FileProxy::$enabled = false; @@ -58,10 +39,11 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { // create test user \OC_User::deleteUser(\Test_Encryption_Keymanager::TEST_USER); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Keymanager::TEST_USER, true); + parent::loginHelper(\Test_Encryption_Keymanager::TEST_USER, true); } - function setUp() { + protected function setUp() { + parent::setUp(); // set content for encrypting / decrypting in tests $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); $this->dataShort = 'hats'; @@ -76,7 +58,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $this->view = new \OC\Files\View('/'); - \Test_Encryption_Util::loginHelper(Test_Encryption_Keymanager::TEST_USER); + self::loginHelper(Test_Encryption_Keymanager::TEST_USER); $this->userId = \Test_Encryption_Keymanager::TEST_USER; $this->pass = \Test_Encryption_Keymanager::TEST_USER; @@ -85,8 +67,8 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { } function tearDown() { - $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys'); - $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles'); + $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys'); + parent::tearDown(); } public static function tearDownAfterClass() { @@ -98,6 +80,8 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { if (self::$stateFilesTrashbin) { OC_App::enable('files_trashbin'); } + + parent::tearDownAfterClass(); } /** @@ -135,27 +119,6 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $this->assertArrayHasKey('key', $sslInfo); } - function fileNameFromShareKeyProvider() { - return array( - array('file.user.shareKey', 'user', 'file'), - array('file.name.with.dots.user.shareKey', 'user', 'file.name.with.dots'), - array('file.name.user.with.dots.shareKey', 'user.with.dots', 'file.name'), - array('file.txt', 'user', false), - array('user.shareKey', 'user', false), - ); - } - - /** - * @small - * - * @dataProvider fileNameFromShareKeyProvider - */ - function testGetFilenameFromShareKey($fileName, $user, $expectedFileName) { - $this->assertEquals($expectedFileName, - \TestProtectedKeymanagerMethods::testGetFilenameFromShareKey($fileName, $user) - ); - } - /** * @medium */ @@ -163,7 +126,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $key = $this->randomKey; - $file = 'unittest-' . uniqid() . '.txt'; + $file = 'unittest-' . $this->getUniqueID() . '.txt'; $util = new Encryption\Util($this->view, $this->userId); @@ -175,7 +138,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { Encryption\Keymanager::setFileKey($this->view, $util, $file, $key); - $this->assertTrue($this->view->file_exists('/' . $this->userId . '/files_encryption/keyfiles/' . $file . '.key')); + $this->assertTrue($this->view->file_exists('/' . $this->userId . '/files_encryption/keys/' . $file . '/fileKey')); // cleanup $this->view->unlink('/' . $this->userId . '/files/' . $file); @@ -193,7 +156,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { Encryption\Keymanager::setPrivateKey($key, 'dummyUser'); - $this->assertTrue($this->view->file_exists('/dummyUser/files_encryption/dummyUser.private.key')); + $this->assertTrue($this->view->file_exists('/dummyUser/files_encryption/dummyUser.privateKey')); //clean up $this->view->deleteAll('/dummyUser'); @@ -205,14 +168,19 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { function testSetPrivateSystemKey() { $key = "dummy key"; - $keyName = "myDummyKey.private.key"; + $keyName = "myDummyKey"; + $encHeader = Encryption\Crypt::generateHeader(); Encryption\Keymanager::setPrivateSystemKey($key, $keyName); - $this->assertTrue($this->view->file_exists('/owncloud_private_key/' . $keyName)); + $this->assertTrue($this->view->file_exists('/files_encryption/' . $keyName . '.privateKey')); + + $result = Encryption\Keymanager::getPrivateSystemKey($keyName); + + $this->assertSame($encHeader . $key, $result); // clean up - $this->view->unlink('/owncloud_private_key/' . $keyName); + $this->view->unlink('/files_encryption/' . $keyName.'.privateKey'); } @@ -251,70 +219,78 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1/existingFile.txt', 'data'); // create folder structure for some dummy share key files - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1'); - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder'); - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/file2'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file1'); + $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2'); // create some dummy share keys - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user1.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.user1.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.user1.test.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.test-keymanager-userxdot.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.userx.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.' . Test_Encryption_Keymanager::TEST_USER . '.userx.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.user1.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.' . Test_Encryption_Keymanager::TEST_USER . '.user1.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file2.user2.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file2.user3.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/file2.user3.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file1.user1.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2.user2.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2.user3.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/user1.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.test.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/userx.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.userx.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.user1.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2/user2.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2/user3.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/file2/user3.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file1/user1.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user2.shareKey', 'data'); + $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey', 'data'); // recursive delete share keys from user1 and user2 - Encryption\Keymanager::delShareKey($this->view, array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), '/folder1/', Test_Encryption_Keymanager::TEST_USER); + Encryption\Keymanager::delShareKey($this->view, + array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), + Encryption\Keymanager::getKeyPath($this->view, new Encryption\Util($this->view, Test_Encryption_Keymanager::TEST_USER), '/folder1'), + Test_Encryption_Keymanager::TEST_USER, + '/folder1'); // check if share keys from user1 and user2 are deleted $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.user1.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/user1.shareKey')); $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.user1.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1/user1.shareKey')); $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file2.user2.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file2/user2.shareKey')); $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file1.user1.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file1/user1.shareKey')); $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2.user2.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2/user2.shareKey')); // check if share keys from user3 still exists $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file2.user3.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file2/user3.shareKey')); $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2.user3.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey')); $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/file2.user3.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/subfolder/file2/user3.shareKey')); - // check if share keys for user or file with similar name + // check if share keys for user or file with similar name $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.user1.test.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.test.shareKey')); $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.test-keymanager-userxdot.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey')); $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.' . Test_Encryption_Keymanager::TEST_USER . '.userx.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.userx.shareKey')); // FIXME: this case currently cannot be distinguished, needs further fixing - /* $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.userx.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/userx.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.user1.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/user1.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/file1.' . Test_Encryption_Keymanager::TEST_USER . '.user1.shareKey')); - */ + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/file1/' . Test_Encryption_Keymanager::TEST_USER . '.user1.shareKey')); // owner key from existing file should still exists because the file is still there $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); + '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keys/folder1/existingFile.txt/' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); // cleanup $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); @@ -339,7 +315,12 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); // recursive delete share keys from user1 and user2 - Encryption\Keymanager::delShareKey($this->view, array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), '/folder1/existingFile.txt', Test_Encryption_Keymanager::TEST_USER); + Encryption\Keymanager::delShareKey($this->view, + array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), + Encryption\Keymanager::getKeyPath($this->view, new Encryption\Util($this->view, Test_Encryption_Keymanager::TEST_USER), '/folder1/existingFile.txt'), + Test_Encryption_Keymanager::TEST_USER, + '/folder1/existingFile.txt'); + // check if share keys from user1 and user2 are deleted $this->assertFalse($this->view->file_exists( @@ -357,147 +338,16 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { } - /** - * @medium - */ - function testDeleteFileKey() { - - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1/existingFile.txt', 'data'); - - // create folder structure for some dummy file key files - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1'); - - // create dummy keyfile - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/dummyFile.txt.key', 'data'); - - // recursive delete share keys from user1 and user2 - $result = Encryption\Keymanager::deleteFileKey($this->view, '/folder1/existingFile.txt'); - $this->assertFalse($result); - - $result2 = Encryption\Keymanager::deleteFileKey($this->view, '/folder1/dummyFile.txt'); - $this->assertTrue($result2); - - // check if file key from dummyFile was deleted - $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/dummyFile.txt.key')); - - // check if file key from existing file still exists - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/existingFile.txt.key')); - - // cleanup - $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - - } - - /** - * @medium - */ - function testDeleteFileKeyFolder() { - - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1/existingFile.txt', 'data'); - - // create folder structure for some dummy file key files - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1'); - - // create dummy keyfile - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/dummyFile.txt.key', 'data'); - - // recursive delete share keys from user1 and user2 - $result = Encryption\Keymanager::deleteFileKey($this->view, '/folder1'); - $this->assertFalse($result); - - // all file keys should still exists if we try to delete a folder with keys for which some files still exists - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/dummyFile.txt.key')); - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/existingFile.txt.key')); - - // delete folder - $this->view->unlink('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - // create dummy keyfile - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1/dummyFile.txt.key', 'data'); - - // now file keys should be deleted since the folder no longer exists - $result = Encryption\Keymanager::deleteFileKey($this->view, '/folder1'); - $this->assertTrue($result); - - $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles/folder1')); - - // cleanup - $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - - } - - function testDelAllShareKeysFile() { - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1/existingFile.txt', 'data'); - - // create folder structure for some dummy share key files - $this->view->mkdir('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1'); - - // create some dummy share keys for the existing file - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user1.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user2.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user3.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); - - // create some dummy share keys for a non-existing file - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.user1.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.user2.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.user3.shareKey', 'data'); - $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data'); - - // try to del all share keys from a existing file, should fail because the file still exists - $result = Encryption\Keymanager::delAllShareKeys($this->view, Test_Encryption_Keymanager::TEST_USER, 'folder1/existingFile.txt'); - $this->assertFalse($result); - - // check if share keys still exists - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user1.shareKey')); - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user2.shareKey')); - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.user3.shareKey')); - - // try to del all share keys from file, should succeed because the does not exist any more - $result2 = Encryption\Keymanager::delAllShareKeys($this->view, Test_Encryption_Keymanager::TEST_USER, 'folder1/nonexistingFile.txt'); - $this->assertTrue($result2); - - // check if share keys are really gone - $this->assertFalse($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey')); - // check that it only deleted keys or users who had access, others remain - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.user1.shareKey')); - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.user2.shareKey')); - $this->assertTrue($this->view->file_exists( - '/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/nonexistingFile.txt.user3.shareKey')); - - // cleanup - $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files/folder1'); - - } - function testKeySetPreperation() { $basePath = '/'.Test_Encryption_Keymanager::TEST_USER.'/files'; $path = '/folder1/subfolder/subsubfolder/file.txt'; $this->assertFalse($this->view->is_dir($basePath . '/testKeySetPreperation')); - $result = TestProtectedKeymanagerMethods::testKeySetPreperation($this->view, $path, $basePath); - - // return path without leading slash - $this->assertSame('folder1/subfolder/subsubfolder/file.txt', $result); + TestProtectedKeymanagerMethods::testKeySetPreperation($this->view, $basePath . $path); // check if directory structure was created - $this->assertTrue($this->view->is_dir($basePath . '/folder1/subfolder/subsubfolder')); + $this->assertTrue($this->view->is_dir($basePath . $path)); // cleanup $this->view->deleteAll($basePath . '/folder1'); @@ -510,19 +360,12 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { */ class TestProtectedKeymanagerMethods extends \OCA\Encryption\Keymanager { - /** - * @param string $sharekey - */ - public static function testGetFilenameFromShareKey($sharekey, $user) { - return self::getFilenameFromShareKey($sharekey, $user); - } - /** * @param \OC\Files\View $view relative to data/ * @param string $path * @param string $basePath */ - public static function testKeySetPreperation($view, $path, $basePath) { - return self::keySetPreparation($view, $path, $basePath); + public static function testKeySetPreperation($view, $path) { + return self::keySetPreparation($view, $path); } } diff --git a/apps/files_encryption/tests/migration.php b/apps/files_encryption/tests/migration.php index 80f30d4e793c2ec857e9b3ea7a86a353b1cfd53f..21c4e354c299872e502755398a82157ee4a5a267 100644 --- a/apps/files_encryption/tests/migration.php +++ b/apps/files_encryption/tests/migration.php @@ -2,8 +2,9 @@ /** * ownCloud * - * @author Thomas Müller - * @copyright 2014 Thomas Müller deepdiver@owncloud.com + * @copyright (C) 2014 ownCloud, Inc. + * + * @author Bjoern Schiessle * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -23,33 +24,50 @@ use OCA\Encryption; use OCA\Files_Encryption\Migration; -class Test_Migration extends PHPUnit_Framework_TestCase { +class Test_Migration extends \OCA\Files_Encryption\Tests\TestCase { + + const TEST_ENCRYPTION_MIGRATION_USER1='test_encryption_user1'; + const TEST_ENCRYPTION_MIGRATION_USER2='test_encryption_user2'; + const TEST_ENCRYPTION_MIGRATION_USER3='test_encryption_user3'; + + private $view; + private $public_share_key_id; + private $recovery_key_id; + + public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + self::loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER1, true); + self::loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER2, true); + self::loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER3, true); + } + + public static function tearDownAfterClass() { + \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER1); + \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER2); + \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER3); + parent::tearDownAfterClass(); + } - public function tearDown() { + protected function tearDown() { if (OC_DB::tableExists('encryption_test')) { OC_DB::dropTable('encryption_test'); } $this->assertTableNotExist('encryption_test'); + + parent::tearDown(); } public function setUp() { + $this->loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->view = new \OC\Files\View(); + $this->public_share_key_id = Encryption\Helper::getPublicShareKeyId(); + $this->recovery_key_id = Encryption\Helper::getRecoveryKeyId(); if (OC_DB::tableExists('encryption_test')) { OC_DB::dropTable('encryption_test'); } $this->assertTableNotExist('encryption_test'); } - public function testEncryptionTableDoesNotExist() { - - $this->assertTableNotExist('encryption_test'); - - $migration = new Migration('encryption_test'); - $migration->dropTableEncryption(); - - $this->assertTableNotExist('encryption_test'); - - } - public function checkLastIndexId() { $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (' .' `item_type`, `item_source`, `item_target`, `share_type`,' @@ -87,89 +105,160 @@ class Test_Migration extends PHPUnit_Framework_TestCase { $this->checkLastIndexId(); } - public function testDataMigration() { - // TODO travis - if (getenv('TRAVIS')) { - $this->markTestSkipped('Fails on travis'); + /** + * @param string $table + */ + public function assertTableNotExist($table) { + $type=OC_Config::getValue( "dbtype", "sqlite" ); + if( $type == 'sqlite' || $type == 'sqlite3' ) { + // sqlite removes the tables after closing the DB + $this->assertTrue(true); + } else { + $this->assertFalse(OC_DB::tableExists($table), 'Table ' . $table . ' exists.'); } - - $this->assertTableNotExist('encryption_test'); - - // create test table - OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml'); - $this->assertTableExist('encryption_test'); - - OC_DB::executeAudited('INSERT INTO `*PREFIX*encryption_test` values(?, ?, ?, ?)', - array('user1', 'server-side', 1, 1)); - - // preform migration - $migration = new Migration('encryption_test'); - $migration->dropTableEncryption(); - - // assert - $this->assertTableNotExist('encryption_test'); - - $rec = \OC_Preferences::getValue('user1', 'files_encryption', 'recovery_enabled'); - $mig = \OC_Preferences::getValue('user1', 'files_encryption', 'migration_status'); - - $this->assertEquals(1, $rec); - $this->assertEquals(1, $mig); } - public function testDuplicateDataMigration() { - // TODO travis - if (getenv('TRAVIS')) { - $this->markTestSkipped('Fails on travis'); + protected function createDummyShareKeys($uid) { + $this->view->mkdir($uid . '/files_encryption/share-keys/folder1/folder2/folder3'); + $this->view->mkdir($uid . '/files_encryption/share-keys/folder2/'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/folder3/file3.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/folder3/file3.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/folder3/file3.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/file.1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/file.1.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/file.1.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + if ($this->public_share_key_id) { + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . $this->public_share_key_id . '.shareKey' , 'data'); } - - // create test table - OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml'); - - // in case of duplicate entries we want to preserve 0 on migration status and 1 on recovery - $data = array( - array('user1', 'server-side', 1, 1), - array('user1', 'server-side', 1, 0), - array('user1', 'server-side', 0, 1), - array('user1', 'server-side', 0, 0), - ); - foreach ($data as $d) { - OC_DB::executeAudited( - 'INSERT INTO `*PREFIX*encryption_test` values(?, ?, ?, ?)', - $d); + if ($this->recovery_key_id) { + $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . $this->recovery_key_id . '.shareKey' , 'data'); } + } - // preform migration - $migration = new Migration('encryption_test'); - $migration->dropTableEncryption(); + protected function createDummyFileKeys($uid) { + $this->view->mkdir($uid . '/files_encryption/keyfiles/folder1/folder2/folder3'); + $this->view->mkdir($uid . '/files_encryption/keyfiles/folder2/'); + $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder1/folder2/folder3/file3.key' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder1/folder2/file2.key' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder1/file.1.key' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder2/file.2.1.key' , 'data'); + } - // assert - $this->assertTableNotExist('encryption_test'); + protected function createDummyFilesInTrash($uid) { + $this->view->mkdir($uid . '/files_trashbin/share-keys'); + $this->view->mkdir($uid . '/files_trashbin/share-keys/folder1.d7437648723'); + $this->view->file_put_contents($uid . '/files_trashbin/share-keys/file1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); + $this->view->file_put_contents($uid . '/files_trashbin/share-keys/file1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); + $this->view->file_put_contents($uid . '/files_trashbin/share-keys/folder1.d7437648723/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + + $this->view->mkdir($uid . '/files_trashbin/keyfiles'); + $this->view->mkdir($uid . '/files_trashbin/keyfiles/folder1.d7437648723'); + $this->view->file_put_contents($uid . '/files_trashbin/keyfiles/file1.key.d5457864' , 'data'); + $this->view->file_put_contents($uid . '/files_trashbin/keyfiles/folder1.d7437648723/file2.key' , 'data'); + } + + protected function createDummySystemWideKeys() { + $this->view->mkdir('owncloud_private_key'); + $this->view->file_put_contents('owncloud_private_key/systemwide_1.private.key', 'data'); + $this->view->file_put_contents('owncloud_private_key/systemwide_2.private.key', 'data'); + } - $rec = \OC_Preferences::getValue('user1', 'files_encryption', 'recovery_enabled'); - $mig = \OC_Preferences::getValue('user1', 'files_encryption', 'migration_status'); + public function testMigrateToNewFolderStructure() { + + // go back to the state before migration + $this->view->rename('/files_encryption/public_keys', '/public-keys'); + $this->view->rename('/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.publicKey', '/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.public.key'); + $this->view->rename('/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.publicKey', '/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.public.key'); + $this->view->rename('/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.publicKey', '/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.public.key'); + $this->view->deleteAll(self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/keys'); + $this->view->deleteAll(self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/keys'); + $this->view->deleteAll(self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/keys'); + $this->view->rename(self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.privateKey', + self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.private.key'); + $this->view->rename(self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.privateKey', + self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.private.key'); + $this->view->rename(self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.privateKey', + self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.private.key'); + + $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); + + $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); + + $this->createDummyFilesInTrash(self::TEST_ENCRYPTION_MIGRATION_USER2); + + // no user for system wide mount points + $this->createDummyFileKeys(''); + $this->createDummyShareKeys(''); + + $this->createDummySystemWideKeys(); + + $m = new \OCA\Files_Encryption\Migration(); + $m->reorganizeFolderStructure(); + + // TODO Verify that all files at the right place + $this->assertTrue($this->view->file_exists('/files_encryption/public_keys/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.publicKey')); + $this->assertTrue($this->view->file_exists('/files_encryption/public_keys/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.publicKey')); + $this->assertTrue($this->view->file_exists('/files_encryption/public_keys/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.publicKey')); + $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER3); + // system wide keys + $this->verifyNewKeyPath(''); + // trash + $this->verifyFilesInTrash(self::TEST_ENCRYPTION_MIGRATION_USER2); - $this->assertEquals(1, $rec); - $this->assertEquals(0, $mig); } - /** - * @param string $table - */ - public function assertTableExist($table) { - $this->assertTrue(OC_DB::tableExists($table), 'Table ' . $table . ' does not exist'); + protected function verifyFilesInTrash($uid) { + // share keys + $this->view->file_exists($uid . '/files_trashbin/keys/file1.d5457864/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); + $this->view->file_exists($uid . '/files_trashbin/keys/file1.d5457864/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); + $this->view->file_exists($uid . '/files_trashbin/keys/folder1.d7437648723/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + + // file keys + $this->view->file_exists($uid . '/files_trashbin/keys/file1.d5457864/fileKey.d5457864' , 'data'); + $this->view->file_exists($uid . '/files_trashbin/keyfiles/file1.d5457864/fileKey.d5457864' , 'data'); + $this->view->file_exists($uid . '/files_trashbin/keyfiles/folder1.d7437648723/file2/fileKey' , 'data'); } - /** - * @param string $table - */ - public function assertTableNotExist($table) { - $type=OC_Config::getValue( "dbtype", "sqlite" ); - if( $type == 'sqlite' || $type == 'sqlite3' ) { - // sqlite removes the tables after closing the DB - $this->assertTrue(true); - } else { - $this->assertFalse(OC_DB::tableExists($table), 'Table ' . $table . ' exists.'); + protected function verifyNewKeyPath($uid) { + // private key + if ($uid !== '') { + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/' . $uid . '.privateKey')); + } + // file keys + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/fileKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/fileKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/fileKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/fileKey')); + // share keys + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + if ($this->public_share_key_id) { + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . $this->public_share_key_id . '.shareKey')); + } + if ($this->recovery_key_id) { + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . $this->recovery_key_id . '.shareKey')); } } - } diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php index 42637a52e041849720ca8b22d3726eda7a5c90d5..72a9a9a5551109425d0c33005ed7ceb25a82b152 100644 --- a/apps/files_encryption/tests/proxy.php +++ b/apps/files_encryption/tests/proxy.php @@ -20,22 +20,13 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Proxy * this class provide basic proxy app tests */ -class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_PROXY_USER1 = "test-proxy-user1"; @@ -51,25 +42,15 @@ class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { public $filename; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - \OC_Hook::clear('OC_Filesystem'); - \OC_Hook::clear('OC_User'); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + parent::setUpBeforeClass(); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1, true); + self::loginHelper(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id \OC_User::setUserId(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1); $this->userId = \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1; @@ -82,13 +63,15 @@ class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { // init short data $this->data = 'hats'; $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); - $this->filename = 'enc_proxy_tests-' . uniqid() . '.txt'; + $this->filename = 'enc_proxy_tests-' . $this->getUniqueID() . '.txt'; } public static function tearDownAfterClass() { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1); + + parent::tearDownAfterClass(); } /** diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index 1cd7cfc738bd57d8896e87cca7a80a23e06a660d..f827017569f94ebd8dd600d090a87aeb94186514 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -20,22 +20,12 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../lib/helper.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Share */ -class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_SHARE_USER1 = "test-share-user1"; const TEST_ENCRYPTION_SHARE_USER2 = "test-share-user2"; @@ -55,33 +45,23 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { public $subsubfolder; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); + parent::setUpBeforeClass(); // enable resharing \OC::$server->getAppConfig()->setValue('core', 'shareapi_allow_resharing', 'yes'); - // clear share hooks - \OC_Hook::clear('OCP\\Share'); + // register share hooks \OC::registerShareHooks(); - \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); - - // Sharing related hooks - \OCA\Encryption\Helper::registerShareHooks(); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); + \OCA\Files_Sharing\Helper::registerHooks(); // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + \OC_FileProxy::register(new OCA\Files\Share\Proxy()); // create users - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, true); // create group and assign users \OC_Group::createGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1); @@ -89,7 +69,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_Group::addToGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1); } - function setUp() { + protected function setUp() { + parent::setUp(); + $this->dataShort = 'hats'; $this->view = new \OC\Files\View('/'); @@ -104,15 +86,20 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // we don't want to tests with app files_trashbin enabled \OC_App::disable('files_trashbin'); + + // login as first user + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); } else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { @@ -124,6 +111,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); \OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); + + parent::tearDownAfterClass(); } @@ -133,7 +122,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testShareFile($withTeardown = true) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -159,18 +148,18 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = $proxyStatus; // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user1 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -183,15 +172,15 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); @@ -200,8 +189,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); } } @@ -213,25 +202,25 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->testShareFile(false); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // get the file info $fileInfo = $this->view->getFileInfo( '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); // share the file with user3 - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user2 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -244,26 +233,26 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // unshare the file with user2 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // unshare the file with user1 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); @@ -272,8 +261,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); } } @@ -284,7 +273,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testShareFolder($withTeardown = true) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // create folder structure $this->view->mkdir('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1); @@ -316,19 +305,19 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = $proxyStatus; // share the folder with user1 - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user1 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -342,16 +331,16 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the folder with user1 \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files'); @@ -360,9 +349,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); } return $fileInfo; @@ -376,7 +365,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $fileInfoFolder1 = $this->testShareFolder(false); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -394,19 +383,19 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = $proxyStatus; // share the file with user3 - \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user3 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // login as user3 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -425,19 +414,19 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); // share the file with user3 - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user3 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // login as user3 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -450,40 +439,40 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // unshare the file with user3 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // unshare the folder with user2 \OCP\Share::unshare('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the folder1 with user1 \OCP\Share::unshare('folder', $fileInfoFolder1['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files'); @@ -492,16 +481,16 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys' + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); } } function testPublicShareFile() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -527,22 +516,22 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = $proxyStatus; // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, false, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, false, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $publicShareKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'publicShareKeyId'); // check if share key for public exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . $publicShareKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . $publicShareKeyId . '.shareKey')); // some hacking to simulate public link //$GLOBALS['app'] = 'files_sharing'; //$GLOBALS['fileOwner'] = \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1; - \Test_Encryption_Util::logoutHelper(); + self::logoutHelper(); // get file contents $retrievedCryptedFile = file_get_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); @@ -553,15 +542,15 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // tear down // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . $publicShareKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . $publicShareKeyId . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); @@ -570,8 +559,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); } /** @@ -579,7 +568,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testShareFileWithGroup() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -605,21 +594,21 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = $proxyStatus; // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user2 and user3 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -629,18 +618,18 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $retrievedCryptedFile); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1); // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); @@ -649,8 +638,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); } @@ -660,13 +649,13 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testRecoveryFile() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'); $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); @@ -696,19 +685,19 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key for admin and recovery exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); // disable recovery for admin $this->assertTrue($util->setRecoveryForUser(0)); @@ -718,12 +707,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key for recovery not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); // enable recovery for admin $this->assertTrue($util->setRecoveryForUser(1)); @@ -733,12 +722,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key for admin and recovery exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); @@ -748,12 +737,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key for recovery not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertTrue(\OCA\Encryption\Helper::adminEnableRecovery(null, 'test123')); $this->assertTrue(\OCA\Encryption\Helper::adminDisableRecovery('test123')); @@ -766,7 +755,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testRecoveryForUser() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $result = \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'); $this->assertTrue($result); @@ -774,7 +763,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); @@ -803,22 +792,22 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key for user and recovery exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // change password \OC_User::setPassword(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, 'test', 'test123'); @@ -828,7 +817,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCA\Encryption\Hooks::setPassphrase($params); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, false, 'test'); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, false, 'test'); // get file contents $retrievedCryptedFile1 = file_get_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); @@ -847,19 +836,19 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key for user and recovery exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/share-keys/' . $this->folder1 + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '.' . $recoveryKeyId . '.shareKey')); + . $this->filename . '/' . $recoveryKeyId . '.shareKey')); // enable recovery for admin $this->assertTrue($util->setRecoveryForUser(0)); @@ -880,7 +869,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testFailShareFile() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -903,27 +892,27 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); // break users public key - $this->view->rename('/public-keys/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.public.key', - '/public-keys/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.public.key_backup'); + $this->view->rename(\OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey', + \OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup'); // re-enable the file proxy \OC_FileProxy::$enabled = $proxyStatus; // share the file try { - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL); } catch (Exception $e) { $this->assertEquals(0, strpos($e->getMessage(), "Following users are not set up for encryption")); } // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user1 not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -931,12 +920,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // break user1 public key $this->view->rename( - '/public-keys/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.public.key_backup', - '/public-keys/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.public.key'); + \OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup', + \OCA\Encryption\Keymanager::getPublicKeyPath() . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey'); // remove share file - $this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 + $this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey'); // re-enable the file proxy @@ -947,8 +936,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // cleanup $this->view->chroot('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); @@ -963,7 +952,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testRename() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -979,16 +968,16 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); // check if share key for user2 exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' - . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' + . $this->filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); $this->assertTrue($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename)); @@ -1011,7 +1000,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $retrievedRenamedFile); // cleanup - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); } @@ -1023,8 +1012,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); - $filename = '/tmp-' . uniqid(); - $folder = '/folder' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); + $folder = '/folder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir($folder); @@ -1039,7 +1028,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $decrypt); - $newFolder = '/newfolder/subfolder' . uniqid(); + $newFolder = '/newfolder/subfolder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir('/newfolder'); // get the file info from previous created file @@ -1047,7 +1036,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); // share the folder - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); \OC\Files\Filesystem::rename($folder, $newFolder); @@ -1056,22 +1045,33 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $newDecrypt); // check if additional share key for user2 exists - $this->assertTrue($view->file_exists('files_encryption/share-keys' . $newFolder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + $this->assertTrue($view->file_exists('files_encryption/keys' . $newFolder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // check that old keys were removed/moved properly - $this->assertFalse($view->file_exists('files_encryption/share-keys' . $folder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // tear down \OC\Files\Filesystem::unlink($newFolder); \OC\Files\Filesystem::unlink('/newfolder'); } - function testMoveFileToFolder() { + function usersProvider() { + return array( + // test as owner + array(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1), + // test as share receiver + array(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2), + ); + } + /** + * @dataProvider usersProvider + */ + function testMoveFileToFolder($userId) { $view = new \OC\Files\View('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); - $filename = '/tmp-' . uniqid(); - $folder = '/folder' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); + $folder = '/folder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir($folder); @@ -1086,7 +1086,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $decrypt); - $subFolder = $folder . '/subfolder' . uniqid(); + $subFolder = $folder . '/subfolder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir($subFolder); // get the file info from previous created file @@ -1094,26 +1094,28 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); // share the folder - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); + \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); // check that the share keys exist - $this->assertTrue($view->file_exists('files_encryption/share-keys' . $folder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($view->file_exists('files_encryption/share-keys' . $folder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - // move the file into the subfolder + // move the file into the subfolder as the test user + self::loginHelper($userId); \OC\Files\Filesystem::rename($folder . $filename, $subFolder . $filename); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // Get file decrypted contents $newDecrypt = \OC\Files\Filesystem::file_get_contents($subFolder . $filename); $this->assertEquals($this->dataShort, $newDecrypt); // check if additional share key for user2 exists - $this->assertTrue($view->file_exists('files_encryption/share-keys' . $subFolder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($view->file_exists('files_encryption/share-keys' . $subFolder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // check that old keys were removed/moved properly - $this->assertFalse($view->file_exists('files_encryption/share-keys' . $folder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertFalse($view->file_exists('files_encryption/share-keys' . $folder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); + $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); + $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // tear down \OC\Files\Filesystem::unlink($subFolder); diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php index 254c5e87ed19697e5c0241a147615b57d6073891..f4824935ca03e397c35d32614a3a47cae24cec13 100644 --- a/apps/files_encryption/tests/stream.php +++ b/apps/files_encryption/tests/stream.php @@ -20,22 +20,13 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Stream * this class provide basic stream tests */ -class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_STREAM_USER1 = "test-stream-user1"; @@ -49,22 +40,15 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { public $stateFilesTrashbin; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + parent::setUpBeforeClass(); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1, true); + self::loginHelper(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id \OC_User::setUserId(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1); $this->userId = \Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1; @@ -83,7 +67,7 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -91,15 +75,19 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1); + + parent::tearDownAfterClass(); } function testStreamOptions() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -117,12 +105,14 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { $this->assertTrue(flock($handle, LOCK_SH)); $this->assertTrue(flock($handle, LOCK_UN)); + fclose($handle); + // tear down $view->unlink($filename); } function testStreamSetBlocking() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -133,6 +123,13 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { $handle = $view->fopen($filename, 'r'); + + if (\OC_Util::runningOnWindows()) { + fclose($handle); + $view->unlink($filename); + $this->markTestSkipped('[Windows] stream_set_blocking() does not work as expected on Windows.'); + } + // set stream options $this->assertTrue(stream_set_blocking($handle, 1)); @@ -146,7 +143,7 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { * @medium */ function testStreamSetTimeout() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -167,7 +164,7 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { } function testStreamSetWriteBuffer() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -193,9 +190,9 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { */ function testStreamFromLocalFile() { - $filename = '/' . $this->userId . '/files/' . 'tmp-' . uniqid().'.txt'; + $filename = '/' . $this->userId . '/files/' . 'tmp-' . $this->getUniqueID().'.txt'; - $tmpFilename = "/tmp/" . uniqid() . ".txt"; + $tmpFilename = "/tmp/" . $this->getUniqueID() . ".txt"; // write an encrypted file $cryptedFile = $this->view->file_put_contents($filename, $this->dataShort); @@ -220,6 +217,8 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { // check if it was successful $this->assertEquals($this->dataShort, $contentFromTmpFile); + fclose($handle); + // clean up unlink($tmpFilename); $this->view->unlink($filename); diff --git a/apps/files_encryption/tests/testcase.php b/apps/files_encryption/tests/testcase.php new file mode 100644 index 0000000000000000000000000000000000000000..743a876ab45468f6e80299e8584d3b491f0b322b --- /dev/null +++ b/apps/files_encryption/tests/testcase.php @@ -0,0 +1,84 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\Files_Encryption\Tests; + +use OCA\Encryption; + +/** + * Class Test_Encryption_TestCase + */ +abstract class TestCase extends \Test\TestCase { + + /** + * @param string $user + * @param bool $create + * @param bool $password + */ + public static function loginHelper($user, $create = false, $password = false, $loadEncryption = true) { + if ($create) { + try { + \OC_User::createUser($user, $user); + } catch (\Exception $e) { + // catch username is already being used from previous aborted runs + } + } + + if ($password === false) { + $password = $user; + } + + \OC_Util::tearDownFS(); + \OC_User::setUserId(''); + \OC\Files\Filesystem::tearDown(); + \OC_User::setUserId($user); + \OC_Util::setupFS($user); + + if ($loadEncryption) { + $params['uid'] = $user; + $params['password'] = $password; + \OCA\Encryption\Hooks::login($params); + } + } + + public static function logoutHelper() { + \OC_Util::tearDownFS(); + \OC_User::setUserId(false); + \OC\Files\Filesystem::tearDown(); + } + + public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + + // reset backend + \OC_User::clearBackends(); + \OC_User::useBackend('database'); + + \OCA\Encryption\Helper::registerFilesystemHooks(); + \OCA\Encryption\Helper::registerUserHooks(); + \OCA\Encryption\Helper::registerShareHooks(); + + \OC::registerShareHooks(); + \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); + + // clear and register hooks + \OC_FileProxy::clearProxies(); + \OC_FileProxy::register(new \OCA\Encryption\Proxy()); + } + + public static function tearDownAfterClass() { + \OC_Hook::clear(); + \OC_FileProxy::clearProxies(); + + // Delete keys in /data/ + $view = new \OC\Files\View('/'); + $view->deleteAll('files_encryption'); + + parent::tearDownAfterClass(); + } +} diff --git a/apps/files_encryption/tests/trashbin.php b/apps/files_encryption/tests/trashbin.php index ae0974431be088778faa89dc6156e620ab96711a..de5b8bd6edb0229cde30fe7751a083163d8be6cb 100755 --- a/apps/files_encryption/tests/trashbin.php +++ b/apps/files_encryption/tests/trashbin.php @@ -20,23 +20,13 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/../../files_trashbin/appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** * Class Test_Encryption_Trashbin * this class provide basic trashbin app tests */ -class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_TRASHBIN_USER1 = "test-trashbin-user1"; @@ -53,32 +43,22 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { public $subsubfolder; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - \OC_Hook::clear('OC_Filesystem'); - \OC_Hook::clear('OC_User'); + parent::setUpBeforeClass(); // trashbin hooks \OCA\Files_Trashbin\Trashbin::registerHooks(); - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); - // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1, true); + self::loginHelper(self::TEST_ENCRYPTION_TRASHBIN_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id - \OC_User::setUserId(\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1); - $this->userId = \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1; - $this->pass = \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1; + \OC_User::setUserId(self::TEST_ENCRYPTION_TRASHBIN_USER1); + $this->userId = self::TEST_ENCRYPTION_TRASHBIN_USER1; + $this->pass = self::TEST_ENCRYPTION_TRASHBIN_USER1; // init filesystem view $this->view = new \OC\Files\View('/'); @@ -97,7 +77,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { \OC_App::enable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -105,11 +85,15 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user - \OC_User::deleteUser(\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1); + \OC_User::deleteUser(self::TEST_ENCRYPTION_TRASHBIN_USER1); + + parent::tearDownAfterClass(); } /** @@ -119,12 +103,12 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { function testDeleteFile() { // generate filename - $filename = 'tmp-' . uniqid() . '.txt'; + $filename = 'tmp-' . $this->getUniqueID() . '.txt'; $filename2 = $filename . '.backup'; // a second file with similar name // save file with content - $cryptedFile = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); + $cryptedFile = file_put_contents('crypt:///' .self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); + $cryptedFile2 = file_put_contents('crypt:///' .self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); // test that data was successfully written $this->assertTrue(is_int($cryptedFile)); @@ -132,59 +116,55 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename - . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 - . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename2 . '/fileKey')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename2 . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename2 . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // delete first file - \OC\FIles\Filesystem::unlink($filename); + \OC\Files\Filesystem::unlink($filename); // check if file not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename - . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); // check if share key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // check that second file still exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); // check that key for second file still exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 - . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename2 . '/fileKey')); // check that share key for second file still exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename2 . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename2 . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // get files $trashFiles = $this->view->getDirectoryContent( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); $trashFileSuffix = null; // find created file with timestamp foreach ($trashFiles as $file) { - if (strncmp($file['path'], $filename, strlen($filename))) { + if (strpos($file['path'], $filename . '.d') !== false) { $path_parts = pathinfo($file['name']); $trashFileSuffix = $path_parts['extension']; } @@ -193,15 +173,16 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if we found the file we created $this->assertNotNull($trashFileSuffix); + $this->assertTrue($this->view->is_dir('/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename . '.' . $trashFileSuffix)); + // check if key for admin not exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename - . '.key.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename . '.' . $trashFileSuffix . '/fileKey')); // check if share key for admin not exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename - . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename + . '.' . $trashFileSuffix . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); } /** @@ -210,67 +191,67 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { */ function testRestoreFile() { // generate filename - $filename = 'tmp-' . uniqid() . '.txt'; + $filename = 'tmp-' . $this->getUniqueID() . '.txt'; $filename2 = $filename . '.backup'; // a second file with similar name // save file with content - $cryptedFile = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); + $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); + $cryptedFile2 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); // delete both files \OC\Files\Filesystem::unlink($filename); \OC\Files\Filesystem::unlink($filename2); - $trashFiles = $this->view->getDirectoryContent( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); + $trashFiles = $this->view->getDirectoryContent('/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); $trashFileSuffix = null; $trashFileSuffix2 = null; // find created file with timestamp foreach ($trashFiles as $file) { - if (strncmp($file['path'], $filename, strlen($filename))) { + if (strpos($file['path'], $filename . '.d') !== false) { $path_parts = pathinfo($file['name']); $trashFileSuffix = $path_parts['extension']; } - if (strncmp($file['path'], $filename2, strlen($filename2))) { - $path_parts = pathinfo($file['name']); - $trashFileSuffix2 = $path_parts['extension']; - } } // prepare file information $timestamp = str_replace('d', '', $trashFileSuffix); + // before calling the restore operation the keys shouldn't be there + $this->assertFalse($this->view->file_exists( + '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); + $this->assertFalse($this->view->file_exists( + '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename . '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + // restore first file $this->assertTrue(\OCA\Files_Trashbin\Trashbin::restore($filename . '.' . $trashFileSuffix, $filename, $timestamp)); // check if file exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' - . $filename . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // check that second file was NOT restored $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); // check if key for admin exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' - . $filename2 . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename2 . '/fileKey')); // check if share key for admin exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename2 . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename2 . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); } /** @@ -280,7 +261,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { function testPermanentDeleteFile() { // generate filename - $filename = 'tmp-' . uniqid() . '.txt'; + $filename = 'tmp-' . $this->getUniqueID() . '.txt'; // save file with content $cryptedFile = file_put_contents('crypt:///' .$this->userId. '/files/' . $filename, $this->dataShort); @@ -290,30 +271,29 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename - . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // delete file \OC\Files\Filesystem::unlink($filename); // check if file not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename - . '.key')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/' + . $filename . '.key')); // check if share key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' + . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // find created file with timestamp $query = \OC_DB::prepare('SELECT `timestamp`,`type` FROM `*PREFIX*files_trash`' @@ -327,13 +307,13 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename - . '.key.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename + . '.' . $trashFileSuffix . '/fileKey')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename - . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' + . $filename . '.' . $trashFileSuffix . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // get timestamp from file $timestamp = str_replace('d', '', $trashFileSuffix); @@ -343,18 +323,18 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/' . $filename . '.' + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/' . $filename . '.' . $trashFileSuffix)); // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename - . '.key.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename + . '.' . $trashFileSuffix . '/fileKey')); // check if share key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename - . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename + . '.' . $trashFileSuffix . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); } } diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 811530546e87546ff2ebbf23c566f0bb41484142..8d9aba423cdf5d1d23e9afc75ec3bd392b093faf 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -6,20 +6,12 @@ * See the COPYING-README file. */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../appinfo/app.php'; - use OCA\Encryption; /** * Class Test_Encryption_Util */ -class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_UTIL_USER1 = "test-util-user1"; const TEST_ENCRYPTION_UTIL_USER2 = "test-util-user2"; @@ -49,16 +41,12 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { public $stateFilesTrashbin; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - self::setupHooks(); + parent::setUpBeforeClass(); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER2, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_LEGACY_USER, true); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1, true); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER2, true); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_LEGACY_USER, true); // create groups \OC_Group::createGroup(self::TEST_ENCRYPTION_UTIL_GROUP1); @@ -68,13 +56,14 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { \OC_Group::addToGroup(self::TEST_ENCRYPTION_UTIL_USER1, self::TEST_ENCRYPTION_UTIL_GROUP1); } + protected function setUp() { + parent::setUp(); - function setUp() { // login user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); - \OC_User::setUserId(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); - $this->userId = \Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1; - $this->pass = \Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1; + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); + \OC_User::setUserId(self::TEST_ENCRYPTION_UTIL_USER1); + $this->userId = self::TEST_ENCRYPTION_UTIL_USER1; + $this->pass = self::TEST_ENCRYPTION_UTIL_USER1; // set content for encrypting / decrypting in tests $this->dataUrl = __DIR__ . '/../lib/crypt.php'; @@ -90,13 +79,13 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { $this->genPublicKey = $keypair['publicKey']; $this->genPrivateKey = $keypair['privateKey']; - $this->publicKeyDir = '/' . 'public-keys'; + $this->publicKeyDir = \OCA\Encryption\Keymanager::getPublicKeyPath(); $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; - $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; + $this->keysPath = $this->encryptionDir . '/' . 'keys'; $this->publicKeyPath = - $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key + $this->publicKeyDir . '/' . $this->userId . '.publicKey'; // e.g. data/public-keys/admin.publicKey $this->privateKeyPath = - $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key + $this->encryptionDir . '/' . $this->userId . '.privateKey'; // e.g. data/admin/admin.privateKey $this->view = new \OC\Files\View('/'); @@ -109,7 +98,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -117,25 +106,21 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user - \OC_User::deleteUser(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); - \OC_User::deleteUser(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER2); - \OC_User::deleteUser(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_LEGACY_USER); + \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_USER1); + \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_USER2); + \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_LEGACY_USER); + //cleanup groups \OC_Group::deleteGroup(self::TEST_ENCRYPTION_UTIL_GROUP1); \OC_Group::deleteGroup(self::TEST_ENCRYPTION_UTIL_GROUP2); - } - - public static function setupHooks() { - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + parent::tearDownAfterClass(); } /** @@ -147,7 +132,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->publicKeyDir, $util->getPath('publicKeyDir')); $this->assertEquals($this->encryptionDir, $util->getPath('encryptionDir')); - $this->assertEquals($this->keyfilesPath, $util->getPath('keyfilesPath')); + $this->assertEquals($this->keysPath, $util->getPath('keysPath')); $this->assertEquals($this->publicKeyPath, $util->getPath('publicKeyPath')); $this->assertEquals($this->privateKeyPath, $util->getPath('privateKeyPath')); @@ -163,8 +148,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { self::loginHelper($this->userId); - $unencryptedFile = '/tmpUnencrypted-' . uniqid() . '.txt'; - $encryptedFile = '/tmpEncrypted-' . uniqid() . '.txt'; + $unencryptedFile = '/tmpUnencrypted-' . $this->getUniqueID() . '.txt'; + $encryptedFile = '/tmpEncrypted-' . $this->getUniqueID() . '.txt'; // Disable encryption proxy to write a unencrypted file $proxyStatus = \OC_FileProxy::$enabled; @@ -243,9 +228,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { */ function testGetUidAndFilename() { - \OC_User::setUserId(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); + \OC_User::setUserId(self::TEST_ENCRYPTION_UTIL_USER1); - $filename = '/tmp-' . uniqid() . '.test'; + $filename = '/tmp-' . $this->getUniqueID() . '.test'; // Disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -260,7 +245,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { list($fileOwnerUid, $file) = $util->getUidAndFilename($filename); - $this->assertEquals(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1, $fileOwnerUid); + $this->assertEquals(self::TEST_ENCRYPTION_UTIL_USER1, $fileOwnerUid); $this->assertEquals($file, $filename); @@ -271,9 +256,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { * Test that data that is read by the crypto stream wrapper */ function testGetFileSize() { - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - $filename = 'tmp-' . uniqid(); + $filename = 'tmp-' . $this->getUniqueID(); $externalFilename = '/' . $this->userId . '/files/' . $filename; // Test for 0 byte files @@ -297,7 +282,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { function testEncryptAll() { - $filename = "/encryptAll" . uniqid() . ".txt"; + $filename = "/encryptAll" . $this->getUniqueID() . ".txt"; $util = new Encryption\Util($this->view, $this->userId); // disable encryption to upload a unencrypted file @@ -328,7 +313,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { function testDecryptAll() { - $filename = "/decryptAll" . uniqid() . ".txt"; + $filename = "/decryptAll" . $this->getUniqueID() . ".txt"; $datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/'); $userdir = $datadir . '/' . $this->userId . '/files/'; @@ -388,16 +373,18 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { // file should no longer be encrypted $this->assertEquals(0, $fileInfoUnencrypted['encrypted']); + $backupPath = $this->getBackupPath('decryptAll'); + // check if the keys where moved to the backup location - $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/keyfiles.backup')); - $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/keyfiles.backup/' . $filename . '.key')); - $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/share-keys.backup')); - $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/share-keys.backup/' . $filename . '.' . $user . '.shareKey')); + $this->assertTrue($this->view->is_dir($backupPath . '/keys')); + $this->assertTrue($this->view->file_exists($backupPath . '/keys/' . $filename . '/fileKey')); + $this->assertTrue($this->view->file_exists($backupPath . '/keys/' . $filename . '/' . $user . '.shareKey')); + $this->assertTrue($this->view->file_exists($backupPath . '/' . $user . '.privateKey')); + $this->assertTrue($this->view->file_exists($backupPath . '/' . $user . '.publicKey')); // cleanup $this->view->unlink($this->userId . '/files/' . $filename); - $this->view->deleteAll($this->userId . '/files_encryption/keyfiles.backup'); - $this->view->deleteAll($this->userId . '/files_encryption/share-keys.backup'); + $this->view->deleteAll($backupPath); OC_App::enable('files_encryption'); } @@ -410,45 +397,35 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { // create some dummy key files $encPath = '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '/files_encryption'; - $this->view->file_put_contents($encPath . '/keyfiles/foo.key', 'key'); - $this->view->file_put_contents($encPath . '/share-keys/foo.user1.shareKey', 'share key'); + $this->view->mkdir($encPath . '/keys/foo'); + $this->view->file_put_contents($encPath . '/keys/foo/fileKey', 'key'); + $this->view->file_put_contents($encPath . '/keys/foo/user1.shareKey', 'share key'); $util = new \OCA\Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1); - $util->backupAllKeys('testing'); + $util->backupAllKeys('testBackupAllKeys'); - $encFolderContent = $this->view->getDirectoryContent($encPath); - - $backupPath = ''; - foreach ($encFolderContent as $c) { - $name = $c['name']; - if (substr($name, 0, strlen('backup')) === 'backup') { - $backupPath = $encPath . '/'. $c['name']; - break; - } - } - - $this->assertTrue($backupPath !== ''); + $backupPath = $this->getBackupPath('testBackupAllKeys'); // check backupDir Content - $this->assertTrue($this->view->is_dir($backupPath . '/keyfiles')); - $this->assertTrue($this->view->is_dir($backupPath . '/share-keys')); - $this->assertTrue($this->view->file_exists($backupPath . '/keyfiles/foo.key')); - $this->assertTrue($this->view->file_exists($backupPath . '/share-keys/foo.user1.shareKey')); - $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.private.key')); - $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.public.key')); + $this->assertTrue($this->view->is_dir($backupPath . '/keys')); + $this->assertTrue($this->view->is_dir($backupPath . '/keys/foo')); + $this->assertTrue($this->view->file_exists($backupPath . '/keys/foo/fileKey')); + $this->assertTrue($this->view->file_exists($backupPath . '/keys/foo/user1.shareKey')); + $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.privateKey')); + $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.publicKey')); //cleanup $this->view->deleteAll($backupPath); - $this->view->unlink($encPath . '/keyfiles/foo.key', 'key'); - $this->view->unlink($encPath . '/share-keys/foo.user1.shareKey', 'share key'); + $this->view->unlink($encPath . '/keys/foo/fileKey'); + $this->view->unlink($encPath . '/keys/foo/user1.shareKey'); } function testDescryptAllWithBrokenFiles() { - $file1 = "/decryptAll1" . uniqid() . ".txt"; - $file2 = "/decryptAll2" . uniqid() . ".txt"; + $file1 = "/decryptAll1" . $this->getUniqueID() . ".txt"; + $file2 = "/decryptAll2" . $this->getUniqueID() . ".txt"; $util = new Encryption\Util($this->view, $this->userId); @@ -465,8 +442,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { // rename keyfile for file1 so that the decryption for file1 fails // Expected behaviour: decryptAll() returns false, file2 gets decrypted anyway - $this->view->rename($this->userId . '/files_encryption/keyfiles/' . $file1 . '.key', - $this->userId . '/files_encryption/keyfiles/' . $file1 . '.key.moved'); + $this->view->rename($this->userId . '/files_encryption/keys/' . $file1 . '/fileKey', + $this->userId . '/files_encryption/keys/' . $file1 . '/fileKey.moved'); // decrypt all encrypted files $result = $util->decryptAll(); @@ -484,12 +461,13 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { $this->assertEquals(0, $fileInfoUnencrypted2['encrypted']); // keyfiles and share keys should still exist - $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/keyfiles/')); - $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/share-keys/')); + $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/keys/')); + $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/keys/' . $file1 . '/fileKey.moved')); + $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/keys/' . $file1 . '/' . $this->userId . '.shareKey')); // rename the keyfile for file1 back - $this->view->rename($this->userId . '/files_encryption/keyfiles/' . $file1 . '.key.moved', - $this->userId . '/files_encryption/keyfiles/' . $file1 . '.key'); + $this->view->rename($this->userId . '/files_encryption/keys/' . $file1 . '/fileKey.moved', + $this->userId . '/files_encryption/keys/' . $file1 . '/fileKey'); // try again to decrypt all encrypted files $result = $util->decryptAll(); @@ -507,17 +485,32 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { $this->assertEquals(0, $fileInfoUnencrypted2['encrypted']); // keyfiles and share keys should be deleted - $this->assertFalse($this->view->is_dir($this->userId . '/files_encryption/keyfiles/')); - $this->assertFalse($this->view->is_dir($this->userId . '/files_encryption/share-keys/')); + $this->assertFalse($this->view->is_dir($this->userId . '/files_encryption/keys/')); //cleanup + $backupPath = $this->getBackupPath('decryptAll'); $this->view->unlink($this->userId . '/files/' . $file1); $this->view->unlink($this->userId . '/files/' . $file2); - $this->view->deleteAll($this->userId . '/files_encryption/keyfiles.backup'); - $this->view->deleteAll($this->userId . '/files_encryption/share-keys.backup'); + $this->view->deleteAll($backupPath); } + function getBackupPath($extension) { + $encPath = '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '/files_encryption'; + $encFolderContent = $this->view->getDirectoryContent($encPath); + + $backupPath = ''; + foreach ($encFolderContent as $c) { + $name = $c['name']; + if (substr($name, 0, strlen('backup.' . $extension)) === 'backup.' . $extension) { + $backupPath = $encPath . '/'. $c['name']; + break; + } + } + + return $backupPath; + } + /** * @dataProvider dataProviderFortestIsMountPointApplicableToUser */ @@ -541,6 +534,43 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { ); } + /** + * Tests that filterShareReadyUsers() returns the correct list of + * users that are ready or not ready for encryption + */ + public function testFilterShareReadyUsers() { + $appConfig = \OC::$server->getAppConfig(); + + $publicShareKeyId = $appConfig->getValue('files_encryption', 'publicShareKeyId'); + $recoveryKeyId = $appConfig->getValue('files_encryption', 'recoveryKeyId'); + + $usersToTest = array( + 'readyUser', + 'notReadyUser', + 'nonExistingUser', + $publicShareKeyId, + $recoveryKeyId, + ); + \Test_Encryption_Util::loginHelper('readyUser', true); + \Test_Encryption_Util::loginHelper('notReadyUser', true); + // delete encryption dir to make it not ready + $this->view->unlink('notReadyUser/files_encryption/'); + + // login as user1 + \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); + + $result = $this->util->filterShareReadyUsers($usersToTest); + $this->assertEquals( + array('readyUser', $publicShareKeyId, $recoveryKeyId), + $result['ready'] + ); + $this->assertEquals( + array('notReadyUser', 'nonExistingUser'), + $result['unready'] + ); + \OC_User::deleteUser('readyUser'); + } + /** * @param string $user * @param bool $create diff --git a/apps/files_encryption/tests/webdav.php b/apps/files_encryption/tests/webdav.php index c46d3bf089947251881586175200c937743d8194..a04a76212915d59caa8e42402c7f3c98e3389899 100755 --- a/apps/files_encryption/tests/webdav.php +++ b/apps/files_encryption/tests/webdav.php @@ -20,15 +20,6 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; -require_once __DIR__ . '/../lib/crypt.php'; -require_once __DIR__ . '/../lib/keymanager.php'; -require_once __DIR__ . '/../lib/proxy.php'; -require_once __DIR__ . '/../lib/stream.php'; -require_once __DIR__ . '/../lib/util.php'; -require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; - use OCA\Encryption; /** @@ -36,7 +27,7 @@ use OCA\Encryption; * * this class provide basic webdav tests for PUT,GET and DELETE */ -class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_WEBDAV_USER1 = "test-webdav-user1"; @@ -52,26 +43,16 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { private $storage; public static function setUpBeforeClass() { - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerFilesystemHooks(); - - // Filesystem related hooks - \OCA\Encryption\Helper::registerUserHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new OCA\Encryption\Proxy()); + parent::setUpBeforeClass(); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1, true); + self::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // reset backend \OC_User::useBackend('database'); @@ -93,21 +74,25 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1); + self::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); } else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1); + + parent::tearDownAfterClass(); } /** @@ -116,7 +101,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { function testWebdavPUT() { // generate filename - $filename = '/tmp-' . uniqid() . '.txt'; + $filename = '/tmp-' . $this->getUniqueID() . '.txt'; // set server vars $_SERVER['REQUEST_METHOD'] = 'OPTIONS'; @@ -136,11 +121,11 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { // check if key-file was created $this->assertTrue($this->view->file_exists( - '/' . $this->userId . '/files_encryption/keyfiles/' . $filename . '.key')); + '/' . $this->userId . '/files_encryption/keys/' . $filename . '/fileKey')); // check if shareKey-file was created $this->assertTrue($this->view->file_exists( - '/' . $this->userId . '/files_encryption/share-keys/' . $filename . '.' . $this->userId . '.shareKey')); + '/' . $this->userId . '/files_encryption/keys/' . $filename . '/' . $this->userId . '.shareKey')); // disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -210,11 +195,11 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { // check if key-file was removed $this->assertFalse($this->view->file_exists( - '/' . $this->userId . '/files_encryption/keyfiles' . $filename . '.key')); + '/' . $this->userId . '/files_encryption/keys/' . $filename . '/fileKey')); // check if shareKey-file was removed $this->assertFalse($this->view->file_exists( - '/' . $this->userId . '/files_encryption/share-keys' . $filename . '.' . $this->userId . '.shareKey')); + '/' . $this->userId . '/files_encryption/keys/' . $filename . '/' . $this->userId . '.shareKey')); } /** diff --git a/apps/files_external/3rdparty/google-api-php-client/NOTICE b/apps/files_external/3rdparty/google-api-php-client/NOTICE deleted file mode 100644 index 22d7cb59867c301cbe1d33aa661628d5cf879dce..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/NOTICE +++ /dev/null @@ -1,4 +0,0 @@ -This product contains the following libraries: - -XRDS-Simple library from http://code.google.com/p/diso/ -Apache License 2.0 diff --git a/apps/files_external/3rdparty/google-api-php-client/README b/apps/files_external/3rdparty/google-api-php-client/README deleted file mode 100644 index 42c42c0d5c73dcefc72f2d17097cfc6894674972..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/README +++ /dev/null @@ -1,40 +0,0 @@ -Google APIs Client Library for PHP -===================================== - -== Description -The Google API Client Library enables you to work with Google APIs such as Google+, Drive, Tasks, or Latitude on your server. - -Requirements: - PHP 5.2.x or higher [http://www.php.net/] - PHP Curl extension [http://www.php.net/manual/en/intro.curl.php] - PHP JSON extension [http://php.net/manual/en/book.json.php] - -Project page: - http://code.google.com/p/google-api-php-client - -OAuth 2 instructions: - http://code.google.com/p/google-api-php-client/wiki/OAuth2 - -Report a defect or feature request here: - http://code.google.com/p/google-api-php-client/issues/entry - -Subscribe to project updates in your feed reader: - http://code.google.com/feeds/p/google-api-php-client/updates/basic - -Supported sample applications: - http://code.google.com/p/google-api-php-client/wiki/Samples - -== Basic Example - 'free-ebooks'); - $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams); - - foreach ($results['items'] as $item) { - print($item['volumeInfo']['title'] . '
'); - } diff --git a/apps/files_external/3rdparty/google-api-php-client/README.md b/apps/files_external/3rdparty/google-api-php-client/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e799f6725dae9871c78dc79d77d5f626b85d0461 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/README.md @@ -0,0 +1,77 @@ +[![Build Status](https://travis-ci.org/google/google-api-php-client.svg)](https://travis-ci.org/google/google-api-php-client) + +# Google APIs Client Library for PHP # + +## Description ## +The Google API Client Library enables you to work with Google APIs such as Google+, Drive, or YouTube on your server. + +## Beta ## +This library is in Beta. We're comfortable enough with the stability and features of the library that we want you to build real production applications on it. We will make an effort to support the public and protected surface of the library and maintain backwards compatibility in the future. While we are still in Beta, we reserve the right to make incompatible changes. If we do remove some functionality (typically because better functionality exists or if the feature proved infeasible), our intention is to deprecate and provide ample time for developers to update their code. + +## Requirements ## +* [PHP 5.2.1 or higher](http://www.php.net/) +* [PHP JSON extension](http://php.net/manual/en/book.json.php) + +*Note*: some features (service accounts and id token verification) require PHP 5.3.0 and above due to cryptographic algorithm requirements. + +## Developer Documentation ## +http://developers.google.com/api-client-library/php + +## Installation ## + +For the latest installation and setup instructions, see [the documentation](https://developers.google.com/api-client-library/php/start/installation). + +## Basic Example ## +See the examples/ directory for examples of the key client features. +```PHP +setApplicationName("Client_Library_Examples"); + $client->setDeveloperKey("YOUR_APP_KEY"); + $service = new Google_Service_Books($client); + $optParams = array('filter' => 'free-ebooks'); + $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams); + + foreach ($results as $item) { + echo $item['volumeInfo']['title'], "
\n"; + } +``` + +## Frequently Asked Questions ## + +### What do I do if something isn't working? ### + +For support with the library the best place to ask is via the google-api-php-client tag on StackOverflow: http://stackoverflow.com/questions/tagged/google-api-php-client + +If there is a specific bug with the library, please file a issue in the Github issues tracker, including a (minimal) example of the failing code and any specific errors retrieved. Feature requests can also be filed, as long as they are core library requests, and not-API specific: for those, refer to the documentation for the individual APIs for the best place to file requests. Please try to provide a clear statement of the problem that the feature would address. + +### How do I contribute? ### + +We accept contributions via Github Pull Requests, but all contributors need to be covered by the standard Google Contributor License Agreement. You can find links, and more instructions, in the documentation: https://developers.google.com/api-client-library/php/contribute + +### Why do you still support 5.2? ### + +When we started working on the 1.0.0 branch we knew there were several fundamental issues to fix with the 0.6 releases of the library. At that time we looked at the usage of the library, and other related projects, and determined that there was still a large and active base of PHP 5.2 installs. You can see this in statistics such as the PHP versions chart in the WordPress stats: http://wordpress.org/about/stats/. We will keep looking at the types of usage we see, and try to take advantage of newer PHP features where possible. + +### Why does Google_..._Service have weird names? ### + +The _Service classes are generally automatically generated from the API discovery documents: https://developers.google.com/discovery/. Sometimes new features are added to APIs with unusual names, which can cause some unexpected or non-standard style naming in the PHP classes. + +### How do I deal with non-JSON response types? ### + +Some services return XML or similar by default, rather than JSON, which is what the library supports. You can request a JSON response by adding an 'alt' argument to optional params that is normally the last argument to a method call: + +``` +$opt_params = array( + 'alt' => "json" +); +``` + +## Code Quality ## + +Copy the ruleset.xml in style/ into a new directory named GAPI/ in your +/usr/share/php/PHP/CodeSniffer/Standards (or appropriate equivalent directory), +and run code sniffs with: + + phpcs --standard=GAPI src/ diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php new file mode 100644 index 0000000000000000000000000000000000000000..0832df3a408ce93f26261e9105b1decbaa261f9f --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php @@ -0,0 +1,35 @@ + + * + */ +abstract class Google_Auth_Abstract +{ + /** + * An utility function that first calls $this->auth->sign($request) and then + * executes makeRequest() on that signed request. Used for when a request + * should be authenticated + * @param Google_Http_Request $request + * @return Google_Http_Request $request + */ + abstract public function authenticatedRequest(Google_Http_Request $request); + abstract public function sign(Google_Http_Request $request); +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php new file mode 100644 index 0000000000000000000000000000000000000000..3db0a779df3e16246ef44a45aa7721b9bdc4b15d --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php @@ -0,0 +1,138 @@ + + */ +class Google_Auth_AssertionCredentials +{ + const MAX_TOKEN_LIFETIME_SECS = 3600; + + public $serviceAccountName; + public $scopes; + public $privateKey; + public $privateKeyPassword; + public $assertionType; + public $sub; + /** + * @deprecated + * @link http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06 + */ + public $prn; + private $useCache; + + /** + * @param $serviceAccountName + * @param $scopes array List of scopes + * @param $privateKey + * @param string $privateKeyPassword + * @param string $assertionType + * @param bool|string $sub The email address of the user for which the + * application is requesting delegated access. + * @param bool useCache Whether to generate a cache key and allow + * automatic caching of the generated token. + */ + public function __construct( + $serviceAccountName, + $scopes, + $privateKey, + $privateKeyPassword = 'notasecret', + $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer', + $sub = false, + $useCache = true + ) { + $this->serviceAccountName = $serviceAccountName; + $this->scopes = is_string($scopes) ? $scopes : implode(' ', $scopes); + $this->privateKey = $privateKey; + $this->privateKeyPassword = $privateKeyPassword; + $this->assertionType = $assertionType; + $this->sub = $sub; + $this->prn = $sub; + $this->useCache = $useCache; + } + + /** + * Generate a unique key to represent this credential. + * @return string + */ + public function getCacheKey() + { + if (!$this->useCache) { + return false; + } + $h = $this->sub; + $h .= $this->assertionType; + $h .= $this->privateKey; + $h .= $this->scopes; + $h .= $this->serviceAccountName; + return md5($h); + } + + public function generateAssertion() + { + $now = time(); + + $jwtParams = array( + 'aud' => Google_Auth_OAuth2::OAUTH2_TOKEN_URI, + 'scope' => $this->scopes, + 'iat' => $now, + 'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS, + 'iss' => $this->serviceAccountName, + ); + + if ($this->sub !== false) { + $jwtParams['sub'] = $this->sub; + } else if ($this->prn !== false) { + $jwtParams['prn'] = $this->prn; + } + + return $this->makeSignedJwt($jwtParams); + } + + /** + * Creates a signed JWT. + * @param array $payload + * @return string The signed JWT. + */ + private function makeSignedJwt($payload) + { + $header = array('typ' => 'JWT', 'alg' => 'RS256'); + + $payload = json_encode($payload); + // Handle some overzealous escaping in PHP json that seemed to cause some errors + // with claimsets. + $payload = str_replace('\/', '/', $payload); + + $segments = array( + Google_Utils::urlSafeB64Encode(json_encode($header)), + Google_Utils::urlSafeB64Encode($payload) + ); + + $signingInput = implode('.', $segments); + $signer = new Google_Signer_P12($this->privateKey, $this->privateKeyPassword); + $signature = $signer->sign($signingInput); + $segments[] = Google_Utils::urlSafeB64Encode($signature); + + return implode(".", $segments); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..65067ee443620468f1fc99717bbddc384bd9a30f --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php @@ -0,0 +1,22 @@ + + */ +class Google_Auth_LoginTicket +{ + const USER_ATTR = "sub"; + + // Information from id token envelope. + private $envelope; + + // Information from id token payload. + private $payload; + + /** + * Creates a user based on the supplied token. + * + * @param string $envelope Header from a verified authentication token. + * @param string $payload Information from a verified authentication token. + */ + public function __construct($envelope, $payload) + { + $this->envelope = $envelope; + $this->payload = $payload; + } + + /** + * Returns the numeric identifier for the user. + * @throws Google_Auth_Exception + * @return + */ + public function getUserId() + { + if (array_key_exists(self::USER_ATTR, $this->payload)) { + return $this->payload[self::USER_ATTR]; + } + throw new Google_Auth_Exception("No user_id in token"); + } + + /** + * Returns attributes from the login ticket. This can contain + * various information about the user session. + * @return array + */ + public function getAttributes() + { + return array("envelope" => $this->envelope, "payload" => $this->payload); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php new file mode 100644 index 0000000000000000000000000000000000000000..5630d755e043f75cb0f74388b9f3117d8d3794ac --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php @@ -0,0 +1,620 @@ + + * @author Chirag Shah + * + */ +class Google_Auth_OAuth2 extends Google_Auth_Abstract +{ + const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke'; + const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token'; + const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth'; + const CLOCK_SKEW_SECS = 300; // five minutes in seconds + const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds + const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds + const OAUTH2_ISSUER = 'accounts.google.com'; + + /** @var Google_Auth_AssertionCredentials $assertionCredentials */ + private $assertionCredentials; + + /** + * @var string The state parameters for CSRF and other forgery protection. + */ + private $state; + + /** + * @var array The token bundle. + */ + private $token = array(); + + /** + * @var Google_Client the base client + */ + private $client; + + /** + * Instantiates the class, but does not initiate the login flow, leaving it + * to the discretion of the caller. + */ + public function __construct(Google_Client $client) + { + $this->client = $client; + } + + /** + * Perform an authenticated / signed apiHttpRequest. + * This function takes the apiHttpRequest, calls apiAuth->sign on it + * (which can modify the request in what ever way fits the auth mechanism) + * and then calls apiCurlIO::makeRequest on the signed request + * + * @param Google_Http_Request $request + * @return Google_Http_Request The resulting HTTP response including the + * responseHttpCode, responseHeaders and responseBody. + */ + public function authenticatedRequest(Google_Http_Request $request) + { + $request = $this->sign($request); + return $this->client->getIo()->makeRequest($request); + } + + /** + * @param string $code + * @throws Google_Auth_Exception + * @return string + */ + public function authenticate($code) + { + if (strlen($code) == 0) { + throw new Google_Auth_Exception("Invalid code"); + } + + // We got here from the redirect from a successful authorization grant, + // fetch the access token + $request = new Google_Http_Request( + self::OAUTH2_TOKEN_URI, + 'POST', + array(), + array( + 'code' => $code, + 'grant_type' => 'authorization_code', + 'redirect_uri' => $this->client->getClassConfig($this, 'redirect_uri'), + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'client_secret' => $this->client->getClassConfig($this, 'client_secret') + ) + ); + $request->disableGzip(); + $response = $this->client->getIo()->makeRequest($request); + + if ($response->getResponseHttpCode() == 200) { + $this->setAccessToken($response->getResponseBody()); + $this->token['created'] = time(); + return $this->getAccessToken(); + } else { + $decodedResponse = json_decode($response->getResponseBody(), true); + if ($decodedResponse != null && $decodedResponse['error']) { + $decodedResponse = $decodedResponse['error']; + if (isset($decodedResponse['error_description'])) { + $decodedResponse .= ": " . $decodedResponse['error_description']; + } + } + throw new Google_Auth_Exception( + sprintf( + "Error fetching OAuth2 access token, message: '%s'", + $decodedResponse + ), + $response->getResponseHttpCode() + ); + } + } + + /** + * Create a URL to obtain user authorization. + * The authorization endpoint allows the user to first + * authenticate, and then grant/deny the access request. + * @param string $scope The scope is expressed as a list of space-delimited strings. + * @return string + */ + public function createAuthUrl($scope) + { + $params = array( + 'response_type' => 'code', + 'redirect_uri' => $this->client->getClassConfig($this, 'redirect_uri'), + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'scope' => $scope, + 'access_type' => $this->client->getClassConfig($this, 'access_type'), + ); + + $params = $this->maybeAddParam($params, 'approval_prompt'); + $params = $this->maybeAddParam($params, 'login_hint'); + $params = $this->maybeAddParam($params, 'hd'); + $params = $this->maybeAddParam($params, 'openid.realm'); + $params = $this->maybeAddParam($params, 'prompt'); + $params = $this->maybeAddParam($params, 'include_granted_scopes'); + + // If the list of scopes contains plus.login, add request_visible_actions + // to auth URL. + $rva = $this->client->getClassConfig($this, 'request_visible_actions'); + if (strpos($scope, 'plus.login') && strlen($rva) > 0) { + $params['request_visible_actions'] = $rva; + } + + if (isset($this->state)) { + $params['state'] = $this->state; + } + + return self::OAUTH2_AUTH_URL . "?" . http_build_query($params, '', '&'); + } + + /** + * @param string $token + * @throws Google_Auth_Exception + */ + public function setAccessToken($token) + { + $token = json_decode($token, true); + if ($token == null) { + throw new Google_Auth_Exception('Could not json decode the token'); + } + if (! isset($token['access_token'])) { + throw new Google_Auth_Exception("Invalid token format"); + } + $this->token = $token; + } + + public function getAccessToken() + { + return json_encode($this->token); + } + + public function getRefreshToken() + { + if (array_key_exists('refresh_token', $this->token)) { + return $this->token['refresh_token']; + } else { + return null; + } + } + + public function setState($state) + { + $this->state = $state; + } + + public function setAssertionCredentials(Google_Auth_AssertionCredentials $creds) + { + $this->assertionCredentials = $creds; + } + + /** + * Include an accessToken in a given apiHttpRequest. + * @param Google_Http_Request $request + * @return Google_Http_Request + * @throws Google_Auth_Exception + */ + public function sign(Google_Http_Request $request) + { + // add the developer key to the request before signing it + if ($this->client->getClassConfig($this, 'developer_key')) { + $request->setQueryParam('key', $this->client->getClassConfig($this, 'developer_key')); + } + + // Cannot sign the request without an OAuth access token. + if (null == $this->token && null == $this->assertionCredentials) { + return $request; + } + + // Check if the token is set to expire in the next 30 seconds + // (or has already expired). + if ($this->isAccessTokenExpired()) { + if ($this->assertionCredentials) { + $this->refreshTokenWithAssertion(); + } else { + if (! array_key_exists('refresh_token', $this->token)) { + throw new Google_Auth_Exception( + "The OAuth 2.0 access token has expired," + ." and a refresh token is not available. Refresh tokens" + ." are not returned for responses that were auto-approved." + ); + } + $this->refreshToken($this->token['refresh_token']); + } + } + + // Add the OAuth2 header to the request + $request->setRequestHeaders( + array('Authorization' => 'Bearer ' . $this->token['access_token']) + ); + + return $request; + } + + /** + * Fetches a fresh access token with the given refresh token. + * @param string $refreshToken + * @return void + */ + public function refreshToken($refreshToken) + { + $this->refreshTokenRequest( + array( + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'client_secret' => $this->client->getClassConfig($this, 'client_secret'), + 'refresh_token' => $refreshToken, + 'grant_type' => 'refresh_token' + ) + ); + } + + /** + * Fetches a fresh access token with a given assertion token. + * @param Google_Auth_AssertionCredentials $assertionCredentials optional. + * @return void + */ + public function refreshTokenWithAssertion($assertionCredentials = null) + { + if (!$assertionCredentials) { + $assertionCredentials = $this->assertionCredentials; + } + + $cacheKey = $assertionCredentials->getCacheKey(); + + if ($cacheKey) { + // We can check whether we have a token available in the + // cache. If it is expired, we can retrieve a new one from + // the assertion. + $token = $this->client->getCache()->get($cacheKey); + if ($token) { + $this->setAccessToken($token); + } + if (!$this->isAccessTokenExpired()) { + return; + } + } + + $this->refreshTokenRequest( + array( + 'grant_type' => 'assertion', + 'assertion_type' => $assertionCredentials->assertionType, + 'assertion' => $assertionCredentials->generateAssertion(), + ) + ); + + if ($cacheKey) { + // Attempt to cache the token. + $this->client->getCache()->set( + $cacheKey, + $this->getAccessToken() + ); + } + } + + private function refreshTokenRequest($params) + { + $http = new Google_Http_Request( + self::OAUTH2_TOKEN_URI, + 'POST', + array(), + $params + ); + $http->disableGzip(); + $request = $this->client->getIo()->makeRequest($http); + + $code = $request->getResponseHttpCode(); + $body = $request->getResponseBody(); + if (200 == $code) { + $token = json_decode($body, true); + if ($token == null) { + throw new Google_Auth_Exception("Could not json decode the access token"); + } + + if (! isset($token['access_token']) || ! isset($token['expires_in'])) { + throw new Google_Auth_Exception("Invalid token format"); + } + + if (isset($token['id_token'])) { + $this->token['id_token'] = $token['id_token']; + } + $this->token['access_token'] = $token['access_token']; + $this->token['expires_in'] = $token['expires_in']; + $this->token['created'] = time(); + } else { + throw new Google_Auth_Exception("Error refreshing the OAuth2 token, message: '$body'", $code); + } + } + + /** + * Revoke an OAuth2 access token or refresh token. This method will revoke the current access + * token, if a token isn't provided. + * @throws Google_Auth_Exception + * @param string|null $token The token (access token or a refresh token) that should be revoked. + * @return boolean Returns True if the revocation was successful, otherwise False. + */ + public function revokeToken($token = null) + { + if (!$token) { + if (!$this->token) { + // Not initialized, no token to actually revoke + return false; + } elseif (array_key_exists('refresh_token', $this->token)) { + $token = $this->token['refresh_token']; + } else { + $token = $this->token['access_token']; + } + } + $request = new Google_Http_Request( + self::OAUTH2_REVOKE_URI, + 'POST', + array(), + "token=$token" + ); + $request->disableGzip(); + $response = $this->client->getIo()->makeRequest($request); + $code = $response->getResponseHttpCode(); + if ($code == 200) { + $this->token = null; + return true; + } + + return false; + } + + /** + * Returns if the access_token is expired. + * @return bool Returns True if the access_token is expired. + */ + public function isAccessTokenExpired() + { + if (!$this->token || !isset($this->token['created'])) { + return true; + } + + // If the token is set to expire in the next 30 seconds. + $expired = ($this->token['created'] + + ($this->token['expires_in'] - 30)) < time(); + + return $expired; + } + + // Gets federated sign-on certificates to use for verifying identity tokens. + // Returns certs as array structure, where keys are key ids, and values + // are PEM encoded certificates. + private function getFederatedSignOnCerts() + { + return $this->retrieveCertsFromLocation( + $this->client->getClassConfig($this, 'federated_signon_certs_url') + ); + } + + /** + * Retrieve and cache a certificates file. + * @param $url location + * @return array certificates + */ + public function retrieveCertsFromLocation($url) + { + // If we're retrieving a local file, just grab it. + if ("http" != substr($url, 0, 4)) { + $file = file_get_contents($url); + if ($file) { + return json_decode($file, true); + } else { + throw new Google_Auth_Exception( + "Failed to retrieve verification certificates: '" . + $url . "'." + ); + } + } + + // This relies on makeRequest caching certificate responses. + $request = $this->client->getIo()->makeRequest( + new Google_Http_Request( + $url + ) + ); + if ($request->getResponseHttpCode() == 200) { + $certs = json_decode($request->getResponseBody(), true); + if ($certs) { + return $certs; + } + } + throw new Google_Auth_Exception( + "Failed to retrieve verification certificates: '" . + $request->getResponseBody() . "'.", + $request->getResponseHttpCode() + ); + } + + /** + * Verifies an id token and returns the authenticated apiLoginTicket. + * Throws an exception if the id token is not valid. + * The audience parameter can be used to control which id tokens are + * accepted. By default, the id token must have been issued to this OAuth2 client. + * + * @param $id_token + * @param $audience + * @return Google_Auth_LoginTicket + */ + public function verifyIdToken($id_token = null, $audience = null) + { + if (!$id_token) { + $id_token = $this->token['id_token']; + } + $certs = $this->getFederatedSignonCerts(); + if (!$audience) { + $audience = $this->client->getClassConfig($this, 'client_id'); + } + + return $this->verifySignedJwtWithCerts($id_token, $certs, $audience, self::OAUTH2_ISSUER); + } + + /** + * Verifies the id token, returns the verified token contents. + * + * @param $jwt the token + * @param $certs array of certificates + * @param $required_audience the expected consumer of the token + * @param [$issuer] the expected issues, defaults to Google + * @param [$max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS + * @return token information if valid, false if not + */ + public function verifySignedJwtWithCerts( + $jwt, + $certs, + $required_audience, + $issuer = null, + $max_expiry = null + ) { + if (!$max_expiry) { + // Set the maximum time we will accept a token for. + $max_expiry = self::MAX_TOKEN_LIFETIME_SECS; + } + + $segments = explode(".", $jwt); + if (count($segments) != 3) { + throw new Google_Auth_Exception("Wrong number of segments in token: $jwt"); + } + $signed = $segments[0] . "." . $segments[1]; + $signature = Google_Utils::urlSafeB64Decode($segments[2]); + + // Parse envelope. + $envelope = json_decode(Google_Utils::urlSafeB64Decode($segments[0]), true); + if (!$envelope) { + throw new Google_Auth_Exception("Can't parse token envelope: " . $segments[0]); + } + + // Parse token + $json_body = Google_Utils::urlSafeB64Decode($segments[1]); + $payload = json_decode($json_body, true); + if (!$payload) { + throw new Google_Auth_Exception("Can't parse token payload: " . $segments[1]); + } + + // Check signature + $verified = false; + foreach ($certs as $keyName => $pem) { + $public_key = new Google_Verifier_Pem($pem); + if ($public_key->verify($signed, $signature)) { + $verified = true; + break; + } + } + + if (!$verified) { + throw new Google_Auth_Exception("Invalid token signature: $jwt"); + } + + // Check issued-at timestamp + $iat = 0; + if (array_key_exists("iat", $payload)) { + $iat = $payload["iat"]; + } + if (!$iat) { + throw new Google_Auth_Exception("No issue time in token: $json_body"); + } + $earliest = $iat - self::CLOCK_SKEW_SECS; + + // Check expiration timestamp + $now = time(); + $exp = 0; + if (array_key_exists("exp", $payload)) { + $exp = $payload["exp"]; + } + if (!$exp) { + throw new Google_Auth_Exception("No expiration time in token: $json_body"); + } + if ($exp >= $now + $max_expiry) { + throw new Google_Auth_Exception( + sprintf("Expiration time too far in future: %s", $json_body) + ); + } + + $latest = $exp + self::CLOCK_SKEW_SECS; + if ($now < $earliest) { + throw new Google_Auth_Exception( + sprintf( + "Token used too early, %s < %s: %s", + $now, + $earliest, + $json_body + ) + ); + } + if ($now > $latest) { + throw new Google_Auth_Exception( + sprintf( + "Token used too late, %s > %s: %s", + $now, + $latest, + $json_body + ) + ); + } + + $iss = $payload['iss']; + if ($issuer && $iss != $issuer) { + throw new Google_Auth_Exception( + sprintf( + "Invalid issuer, %s != %s: %s", + $iss, + $issuer, + $json_body + ) + ); + } + + // Check audience + $aud = $payload["aud"]; + if ($aud != $required_audience) { + throw new Google_Auth_Exception( + sprintf( + "Wrong recipient, %s != %s:", + $aud, + $required_audience, + $json_body + ) + ); + } + + // All good. + return new Google_Auth_LoginTicket($envelope, $payload); + } + + /** + * Add a parameter to the auth params if not empty string. + */ + private function maybeAddParam($params, $name) + { + $param = $this->client->getClassConfig($this, $name); + if ($param != '') { + $params[$name] = $param; + } + return $params; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php new file mode 100644 index 0000000000000000000000000000000000000000..e83900fc26ff865b38736fc18078750331b1f37b --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php @@ -0,0 +1,62 @@ + + * @author Chirag Shah + */ +class Google_Auth_Simple extends Google_Auth_Abstract +{ + private $key = null; + private $client; + + public function __construct(Google_Client $client, $config = null) + { + $this->client = $client; + } + + /** + * Perform an authenticated / signed apiHttpRequest. + * This function takes the apiHttpRequest, calls apiAuth->sign on it + * (which can modify the request in what ever way fits the auth mechanism) + * and then calls apiCurlIO::makeRequest on the signed request + * + * @param Google_Http_Request $request + * @return Google_Http_Request The resulting HTTP response including the + * responseHttpCode, responseHeaders and responseBody. + */ + public function authenticatedRequest(Google_Http_Request $request) + { + $request = $this->sign($request); + return $this->io->makeRequest($request); + } + + public function sign(Google_Http_Request $request) + { + $key = $this->client->getClassConfig($this, 'developer_key'); + if ($key) { + $request->setQueryParam('key', $key); + } + return $request; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Abstract.php new file mode 100644 index 0000000000000000000000000000000000000000..ff19f36ac46eef27075b727abbd63bab6769f3b9 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Abstract.php @@ -0,0 +1,53 @@ + + */ +abstract class Google_Cache_Abstract +{ + + abstract public function __construct(Google_Client $client); + + /** + * Retrieves the data for the given key, or false if they + * key is unknown or expired + * + * @param String $key The key who's data to retrieve + * @param boolean|int $expiration Expiration time in seconds + * + */ + abstract public function get($key, $expiration = false); + + /** + * Store the key => $value set. The $value is serialized + * by this function so can be of any type + * + * @param string $key Key of the data + * @param string $value data + */ + abstract public function set($key, $value); + + /** + * Removes the key/data pair for the given $key + * + * @param String $key + */ + abstract public function delete($key); +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php new file mode 100644 index 0000000000000000000000000000000000000000..051b537a4e15754a7c72df9f613fdd88703c0baf --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php @@ -0,0 +1,73 @@ + + */ +class Google_Cache_Apc extends Google_Cache_Abstract +{ + public function __construct(Google_Client $client) + { + if (! function_exists('apc_add') ) { + throw new Google_Cache_Exception("Apc functions not available"); + } + } + + /** + * @inheritDoc + */ + public function get($key, $expiration = false) + { + $ret = apc_fetch($key); + if ($ret === false) { + return false; + } + if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) { + $this->delete($key); + return false; + } + return $ret['data']; + } + + /** + * @inheritDoc + */ + public function set($key, $value) + { + $rc = apc_store($key, array('time' => time(), 'data' => $value)); + if ($rc == false) { + throw new Google_Cache_Exception("Couldn't store data"); + } + } + + /** + * @inheritDoc + * @param String $key + */ + public function delete($key) + { + apc_delete($key); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..23b624608e838165e27978d3a43ef563c84c8f3d --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php @@ -0,0 +1,21 @@ + + */ +class Google_Cache_File extends Google_Cache_Abstract +{ + const MAX_LOCK_RETRIES = 10; + private $path; + private $fh; + + public function __construct(Google_Client $client) + { + $this->path = $client->getClassConfig($this, 'directory'); + } + + public function get($key, $expiration = false) + { + $storageFile = $this->getCacheFile($key); + $data = false; + + if (!file_exists($storageFile)) { + return false; + } + + if ($expiration) { + $mtime = filemtime($storageFile); + if ((time() - $mtime) >= $expiration) { + $this->delete($key); + return false; + } + } + + if ($this->acquireReadLock($storageFile)) { + $data = fread($this->fh, filesize($storageFile)); + $data = unserialize($data); + $this->unlock($storageFile); + } + + return $data; + } + + public function set($key, $value) + { + $storageFile = $this->getWriteableCacheFile($key); + if ($this->acquireWriteLock($storageFile)) { + // We serialize the whole request object, since we don't only want the + // responseContent but also the postBody used, headers, size, etc. + $data = serialize($value); + $result = fwrite($this->fh, $data); + $this->unlock($storageFile); + } + } + + public function delete($key) + { + $file = $this->getCacheFile($key); + if (file_exists($file) && !unlink($file)) { + throw new Google_Cache_Exception("Cache file could not be deleted"); + } + } + + private function getWriteableCacheFile($file) + { + return $this->getCacheFile($file, true); + } + + private function getCacheFile($file, $forWrite = false) + { + return $this->getCacheDir($file, $forWrite) . '/' . md5($file); + } + + private function getCacheDir($file, $forWrite) + { + // use the first 2 characters of the hash as a directory prefix + // this should prevent slowdowns due to huge directory listings + // and thus give some basic amount of scalability + $storageDir = $this->path . '/' . substr(md5($file), 0, 2); + if ($forWrite && ! is_dir($storageDir)) { + if (! mkdir($storageDir, 0755, true)) { + throw new Google_Cache_Exception("Could not create storage directory: $storageDir"); + } + } + return $storageDir; + } + + private function acquireReadLock($storageFile) + { + return $this->acquireLock(LOCK_SH, $storageFile); + } + + private function acquireWriteLock($storageFile) + { + $rc = $this->acquireLock(LOCK_EX, $storageFile); + if (!$rc) { + $this->delete($storageFile); + } + return $rc; + } + + private function acquireLock($type, $storageFile) + { + $mode = $type == LOCK_EX ? "w" : "r"; + $this->fh = fopen($storageFile, $mode); + $count = 0; + while (!flock($this->fh, $type | LOCK_NB)) { + // Sleep for 10ms. + usleep(10000); + if (++$count < self::MAX_LOCK_RETRIES) { + return false; + } + } + return true; + } + + public function unlock($storageFile) + { + if ($this->fh) { + flock($this->fh, LOCK_UN); + } + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php new file mode 100644 index 0000000000000000000000000000000000000000..1104afb8aebcd7e80d62f8b6f6dc2d87235adfcf --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php @@ -0,0 +1,137 @@ + + */ +class Google_Cache_Memcache extends Google_Cache_Abstract +{ + private $connection = false; + private $mc = false; + private $host; + private $port; + + public function __construct(Google_Client $client) + { + if (!function_exists('memcache_connect') && !class_exists("Memcached")) { + throw new Google_Cache_Exception("Memcache functions not available"); + } + if ($client->isAppEngine()) { + // No credentials needed for GAE. + $this->mc = new Memcached(); + $this->connection = true; + } else { + $this->host = $client->getClassConfig($this, 'host'); + $this->port = $client->getClassConfig($this, 'port'); + if (empty($this->host) || (empty($this->port) && (string) $this->port != "0")) { + throw new Google_Cache_Exception("You need to supply a valid memcache host and port"); + } + } + } + + /** + * @inheritDoc + */ + public function get($key, $expiration = false) + { + $this->connect(); + $ret = false; + if ($this->mc) { + $ret = $this->mc->get($key); + } else { + $ret = memcache_get($this->connection, $key); + } + if ($ret === false) { + return false; + } + if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) { + $this->delete($key); + return false; + } + return $ret['data']; + } + + /** + * @inheritDoc + * @param string $key + * @param string $value + * @throws Google_Cache_Exception + */ + public function set($key, $value) + { + $this->connect(); + // we store it with the cache_time default expiration so objects will at + // least get cleaned eventually. + $data = array('time' => time(), 'data' => $value); + $rc = false; + if ($this->mc) { + $rc = $this->mc->set($key, $data); + } else { + $rc = memcache_set($this->connection, $key, $data, false); + } + if ($rc == false) { + throw new Google_Cache_Exception("Couldn't store data in cache"); + } + } + + /** + * @inheritDoc + * @param String $key + */ + public function delete($key) + { + $this->connect(); + if ($this->mc) { + $this->mc->delete($key, 0); + } else { + memcache_delete($this->connection, $key, 0); + } + } + + /** + * Lazy initialiser for memcache connection. Uses pconnect for to take + * advantage of the persistence pool where possible. + */ + private function connect() + { + if ($this->connection) { + return; + } + + if (class_exists("Memcached")) { + $this->mc = new Memcached(); + $this->mc->addServer($this->host, $this->port); + $this->connection = true; + } else { + $this->connection = memcache_pconnect($this->host, $this->port); + } + + if (! $this->connection) { + throw new Google_Cache_Exception("Couldn't connect to memcache server"); + } + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php new file mode 100644 index 0000000000000000000000000000000000000000..e15b4f4ea3ce9d57a965f19945068e8a5d129d6e --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php @@ -0,0 +1,665 @@ + + * @author Chirag Shah + */ +class Google_Client +{ + const LIBVER = "1.0.6-beta"; + const USER_AGENT_SUFFIX = "google-api-php-client/"; + /** + * @var Google_Auth_Abstract $auth + */ + private $auth; + + /** + * @var Google_IO_Abstract $io + */ + private $io; + + /** + * @var Google_Cache_Abstract $cache + */ + private $cache; + + /** + * @var Google_Config $config + */ + private $config; + + /** + * @var boolean $deferExecution + */ + private $deferExecution = false; + + /** @var array $scopes */ + // Scopes requested by the client + protected $requestedScopes = array(); + + // definitions of services that are discovered. + protected $services = array(); + + // Used to track authenticated state, can't discover services after doing authenticate() + private $authenticated = false; + + /** + * Construct the Google Client. + * + * @param $config Google_Config or string for the ini file to load + */ + public function __construct($config = null) + { + if (is_string($config) && strlen($config)) { + $config = new Google_Config($config); + } else if ( !($config instanceof Google_Config)) { + $config = new Google_Config(); + + if ($this->isAppEngine()) { + // Automatically use Memcache if we're in AppEngine. + $config->setCacheClass('Google_Cache_Memcache'); + } + + if (version_compare(phpversion(), "5.3.4", "<=") || $this->isAppEngine()) { + // Automatically disable compress.zlib, as currently unsupported. + $config->setClassConfig('Google_Http_Request', 'disable_gzip', true); + } + } + + if ($config->getIoClass() == Google_Config::USE_AUTO_IO_SELECTION) { + if (function_exists('curl_version') && function_exists('curl_exec')) { + $config->setIoClass("Google_IO_Curl"); + } else { + $config->setIoClass("Google_IO_Stream"); + } + } + + $this->config = $config; + } + + /** + * Get a string containing the version of the library. + * + * @return string + */ + public function getLibraryVersion() + { + return self::LIBVER; + } + + /** + * Attempt to exchange a code for an valid authentication token. + * Helper wrapped around the OAuth 2.0 implementation. + * + * @param $code string code from accounts.google.com + * @return string token + */ + public function authenticate($code) + { + $this->authenticated = true; + return $this->getAuth()->authenticate($code); + } + + /** + * Set the auth config from the JSON string provided. + * This structure should match the file downloaded from + * the "Download JSON" button on in the Google Developer + * Console. + * @param string $json the configuration json + */ + public function setAuthConfig($json) + { + $data = json_decode($json); + $key = isset($data->installed) ? 'installed' : 'web'; + if (!isset($data->$key)) { + throw new Google_Exception("Invalid client secret JSON file."); + } + $this->setClientId($data->$key->client_id); + $this->setClientSecret($data->$key->client_secret); + if (isset($data->$key->redirect_uris)) { + $this->setRedirectUri($data->$key->redirect_uris[0]); + } + } + + /** + * Set the auth config from the JSON file in the path + * provided. This should match the file downloaded from + * the "Download JSON" button on in the Google Developer + * Console. + * @param string $file the file location of the client json + */ + public function setAuthConfigFile($file) + { + $this->setAuthConfig(file_get_contents($file)); + } + + /** + * @return array + * @visible For Testing + */ + public function prepareScopes() + { + if (empty($this->requestedScopes)) { + throw new Google_Auth_Exception("No scopes specified"); + } + $scopes = implode(' ', $this->requestedScopes); + return $scopes; + } + + /** + * Set the OAuth 2.0 access token using the string that resulted from calling createAuthUrl() + * or Google_Client#getAccessToken(). + * @param string $accessToken JSON encoded string containing in the following format: + * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer", + * "expires_in":3600, "id_token":"TOKEN", "created":1320790426} + */ + public function setAccessToken($accessToken) + { + if ($accessToken == 'null') { + $accessToken = null; + } + $this->getAuth()->setAccessToken($accessToken); + } + + + + /** + * Set the authenticator object + * @param Google_Auth_Abstract $auth + */ + public function setAuth(Google_Auth_Abstract $auth) + { + $this->config->setAuthClass(get_class($auth)); + $this->auth = $auth; + } + + /** + * Set the IO object + * @param Google_Io_Abstract $auth + */ + public function setIo(Google_Io_Abstract $io) + { + $this->config->setIoClass(get_class($io)); + $this->io = $io; + } + + /** + * Set the Cache object + * @param Google_Cache_Abstract $auth + */ + public function setCache(Google_Cache_Abstract $cache) + { + $this->config->setCacheClass(get_class($cache)); + $this->cache = $cache; + } + + /** + * Construct the OAuth 2.0 authorization request URI. + * @return string + */ + public function createAuthUrl() + { + $scopes = $this->prepareScopes(); + return $this->getAuth()->createAuthUrl($scopes); + } + + /** + * Get the OAuth 2.0 access token. + * @return string $accessToken JSON encoded string in the following format: + * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer", + * "expires_in":3600,"id_token":"TOKEN", "created":1320790426} + */ + public function getAccessToken() + { + $token = $this->getAuth()->getAccessToken(); + // The response is json encoded, so could be the string null. + // It is arguable whether this check should be here or lower + // in the library. + return (null == $token || 'null' == $token || '[]' == $token) ? null : $token; + } + + /** + * Get the OAuth 2.0 refresh token. + * @return string $refreshToken refresh token or null if not available + */ + public function getRefreshToken() + { + return $this->getAuth()->getRefreshToken(); + } + + /** + * Returns if the access_token is expired. + * @return bool Returns True if the access_token is expired. + */ + public function isAccessTokenExpired() + { + return $this->getAuth()->isAccessTokenExpired(); + } + + /** + * Set OAuth 2.0 "state" parameter to achieve per-request customization. + * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2 + * @param string $state + */ + public function setState($state) + { + $this->getAuth()->setState($state); + } + + /** + * @param string $accessType Possible values for access_type include: + * {@code "offline"} to request offline access from the user. + * {@code "online"} to request online access from the user. + */ + public function setAccessType($accessType) + { + $this->config->setAccessType($accessType); + } + + /** + * @param string $approvalPrompt Possible values for approval_prompt include: + * {@code "force"} to force the approval UI to appear. (This is the default value) + * {@code "auto"} to request auto-approval when possible. + */ + public function setApprovalPrompt($approvalPrompt) + { + $this->config->setApprovalPrompt($approvalPrompt); + } + + /** + * Set the login hint, email address or sub id. + * @param string $loginHint + */ + public function setLoginHint($loginHint) + { + $this->config->setLoginHint($loginHint); + } + + /** + * Set the application name, this is included in the User-Agent HTTP header. + * @param string $applicationName + */ + public function setApplicationName($applicationName) + { + $this->config->setApplicationName($applicationName); + } + + /** + * Set the OAuth 2.0 Client ID. + * @param string $clientId + */ + public function setClientId($clientId) + { + $this->config->setClientId($clientId); + } + + /** + * Set the OAuth 2.0 Client Secret. + * @param string $clientSecret + */ + public function setClientSecret($clientSecret) + { + $this->config->setClientSecret($clientSecret); + } + + /** + * Set the OAuth 2.0 Redirect URI. + * @param string $redirectUri + */ + public function setRedirectUri($redirectUri) + { + $this->config->setRedirectUri($redirectUri); + } + + /** + * If 'plus.login' is included in the list of requested scopes, you can use + * this method to define types of app activities that your app will write. + * You can find a list of available types here: + * @link https://developers.google.com/+/api/moment-types + * + * @param array $requestVisibleActions Array of app activity types + */ + public function setRequestVisibleActions($requestVisibleActions) + { + if (is_array($requestVisibleActions)) { + $requestVisibleActions = join(" ", $requestVisibleActions); + } + $this->config->setRequestVisibleActions($requestVisibleActions); + } + + /** + * Set the developer key to use, these are obtained through the API Console. + * @see http://code.google.com/apis/console-help/#generatingdevkeys + * @param string $developerKey + */ + public function setDeveloperKey($developerKey) + { + $this->config->setDeveloperKey($developerKey); + } + + /** + * Set the hd (hosted domain) parameter streamlines the login process for + * Google Apps hosted accounts. By including the domain of the user, you + * restrict sign-in to accounts at that domain. + * @param $hd string - the domain to use. + */ + public function setHostedDomain($hd) + { + $this->config->setHostedDomain($hd); + } + + /** + * Set the prompt hint. Valid values are none, consent and select_account. + * If no value is specified and the user has not previously authorized + * access, then the user is shown a consent screen. + * @param $prompt string + */ + public function setPrompt($prompt) + { + $this->config->setPrompt($prompt); + } + + /** + * openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth + * 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which + * an authentication request is valid. + * @param $realm string - the URL-space to use. + */ + public function setOpenidRealm($realm) + { + $this->config->setOpenidRealm($realm); + } + + /** + * If this is provided with the value true, and the authorization request is + * granted, the authorization will include any previous authorizations + * granted to this user/application combination for other scopes. + * @param $include boolean - the URL-space to use. + */ + public function setIncludeGrantedScopes($include) + { + $this->config->setIncludeGrantedScopes($include); + } + + /** + * Fetches a fresh OAuth 2.0 access token with the given refresh token. + * @param string $refreshToken + * @return void + */ + public function refreshToken($refreshToken) + { + return $this->getAuth()->refreshToken($refreshToken); + } + + /** + * Revoke an OAuth2 access token or refresh token. This method will revoke the current access + * token, if a token isn't provided. + * @throws Google_Auth_Exception + * @param string|null $token The token (access token or a refresh token) that should be revoked. + * @return boolean Returns True if the revocation was successful, otherwise False. + */ + public function revokeToken($token = null) + { + return $this->getAuth()->revokeToken($token); + } + + /** + * Verify an id_token. This method will verify the current id_token, if one + * isn't provided. + * @throws Google_Auth_Exception + * @param string|null $token The token (id_token) that should be verified. + * @return Google_Auth_LoginTicket Returns an apiLoginTicket if the verification was + * successful. + */ + public function verifyIdToken($token = null) + { + return $this->getAuth()->verifyIdToken($token); + } + + /** + * Verify a JWT that was signed with your own certificates. + * + * @param $jwt the token + * @param $certs array of certificates + * @param $required_audience the expected consumer of the token + * @param [$issuer] the expected issues, defaults to Google + * @param [$max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS + * @return token information if valid, false if not + */ + public function verifySignedJwt($id_token, $cert_location, $audience, $issuer, $max_expiry = null) + { + $auth = new Google_Auth_OAuth2($this); + $certs = $auth->retrieveCertsFromLocation($cert_location); + return $auth->verifySignedJwtWithCerts($id_token, $certs, $audience, $issuer, $max_expiry); + } + + /** + * @param Google_Auth_AssertionCredentials $creds + * @return void + */ + public function setAssertionCredentials(Google_Auth_AssertionCredentials $creds) + { + $this->getAuth()->setAssertionCredentials($creds); + } + + /** + * Set the scopes to be requested. Must be called before createAuthUrl(). + * Will remove any previously configured scopes. + * @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.login', + * 'https://www.googleapis.com/auth/moderator') + */ + public function setScopes($scopes) + { + $this->requestedScopes = array(); + $this->addScope($scopes); + } + + /** + * This functions adds a scope to be requested as part of the OAuth2.0 flow. + * Will append any scopes not previously requested to the scope parameter. + * A single string will be treated as a scope to request. An array of strings + * will each be appended. + * @param $scope_or_scopes string|array e.g. "profile" + */ + public function addScope($scope_or_scopes) + { + if (is_string($scope_or_scopes) && !in_array($scope_or_scopes, $this->requestedScopes)) { + $this->requestedScopes[] = $scope_or_scopes; + } else if (is_array($scope_or_scopes)) { + foreach ($scope_or_scopes as $scope) { + $this->addScope($scope); + } + } + } + + /** + * Returns the list of scopes requested by the client + * @return array the list of scopes + * + */ + public function getScopes() + { + return $this->requestedScopes; + } + + /** + * Declare whether batch calls should be used. This may increase throughput + * by making multiple requests in one connection. + * + * @param boolean $useBatch True if the batch support should + * be enabled. Defaults to False. + */ + public function setUseBatch($useBatch) + { + // This is actually an alias for setDefer. + $this->setDefer($useBatch); + } + + /** + * Declare whether making API calls should make the call immediately, or + * return a request which can be called with ->execute(); + * + * @param boolean $defer True if calls should not be executed right away. + */ + public function setDefer($defer) + { + $this->deferExecution = $defer; + } + + /** + * Helper method to execute deferred HTTP requests. + * + * @return object of the type of the expected class or array. + */ + public function execute($request) + { + if ($request instanceof Google_Http_Request) { + $request->setUserAgent( + $this->getApplicationName() + . " " . self::USER_AGENT_SUFFIX + . $this->getLibraryVersion() + ); + if (!$this->getClassConfig("Google_Http_Request", "disable_gzip")) { + $request->enableGzip(); + } + $request->maybeMoveParametersToBody(); + return Google_Http_REST::execute($this, $request); + } else if ($request instanceof Google_Http_Batch) { + return $request->execute(); + } else { + throw new Google_Exception("Do not know how to execute this type of object."); + } + } + + /** + * Whether or not to return raw requests + * @return boolean + */ + public function shouldDefer() + { + return $this->deferExecution; + } + + /** + * @return Google_Auth_Abstract Authentication implementation + */ + public function getAuth() + { + if (!isset($this->auth)) { + $class = $this->config->getAuthClass(); + $this->auth = new $class($this); + } + return $this->auth; + } + + /** + * @return Google_IO_Abstract IO implementation + */ + public function getIo() + { + if (!isset($this->io)) { + $class = $this->config->getIoClass(); + $this->io = new $class($this); + } + return $this->io; + } + + /** + * @return Google_Cache_Abstract Cache implementation + */ + public function getCache() + { + if (!isset($this->cache)) { + $class = $this->config->getCacheClass(); + $this->cache = new $class($this); + } + return $this->cache; + } + + /** + * Retrieve custom configuration for a specific class. + * @param $class string|object - class or instance of class to retrieve + * @param $key string optional - key to retrieve + */ + public function getClassConfig($class, $key = null) + { + if (!is_string($class)) { + $class = get_class($class); + } + return $this->config->getClassConfig($class, $key); + } + + /** + * Set configuration specific to a given class. + * $config->setClassConfig('Google_Cache_File', + * array('directory' => '/tmp/cache')); + * @param $class The class name for the configuration + * @param $config string key or an array of configuration values + * @param $value optional - if $config is a key, the value + * + */ + public function setClassConfig($class, $config, $value = null) + { + if (!is_string($class)) { + $class = get_class($class); + } + return $this->config->setClassConfig($class, $config, $value); + + } + + /** + * @return string the base URL to use for calls to the APIs + */ + public function getBasePath() + { + return $this->config->getBasePath(); + } + + /** + * @return string the name of the application + */ + public function getApplicationName() + { + return $this->config->getApplicationName(); + } + + /** + * Are we running in Google AppEngine? + * return bool + */ + public function isAppEngine() + { + return (isset($_SERVER['SERVER_SOFTWARE']) && + strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine') !== false); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php new file mode 100644 index 0000000000000000000000000000000000000000..6e7bf9b0f1e035586c7b57eb18c6eff03f36bd5a --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php @@ -0,0 +1,96 @@ +modelData[$this->collection_key]) + && is_array($this->modelData[$this->collection_key])) { + reset($this->modelData[$this->collection_key]); + } + } + + public function current() + { + $this->coerceType($this->key()); + if (is_array($this->modelData[$this->collection_key])) { + return current($this->modelData[$this->collection_key]); + } + } + + public function key() + { + if (isset($this->modelData[$this->collection_key]) + && is_array($this->modelData[$this->collection_key])) { + return key($this->modelData[$this->collection_key]); + } + } + + public function next() + { + return next($this->modelData[$this->collection_key]); + } + + public function valid() + { + $key = $this->key(); + return $key !== null && $key !== false; + } + + public function count() + { + return count($this->modelData[$this->collection_key]); + } + + public function offsetExists ($offset) + { + if (!is_numeric($offset)) { + return parent::offsetExists($offset); + } + return isset($this->modelData[$this->collection_key][$offset]); + } + + public function offsetGet($offset) + { + if (!is_numeric($offset)) { + return parent::offsetGet($offset); + } + $this->coerceType($offset); + return $this->modelData[$this->collection_key][$offset]; + } + + public function offsetSet($offset, $value) + { + if (!is_numeric($offset)) { + return parent::offsetSet($offset, $value); + } + $this->modelData[$this->collection_key][$offset] = $value; + } + + public function offsetUnset($offset) + { + if (!is_numeric($offset)) { + return parent::offsetUnset($offset); + } + unset($this->modelData[$this->collection_key][$offset]); + } + + private function coerceType($offset) + { + $typeKey = $this->keyType($this->collection_key); + if (isset($this->$typeKey) && !is_object($this->modelData[$this->collection_key][$offset])) { + $type = $this->$typeKey; + $this->modelData[$this->collection_key][$offset] = + new $type($this->modelData[$this->collection_key][$offset]); + } + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php new file mode 100644 index 0000000000000000000000000000000000000000..84083058fe54eaef62c76f007c52e3b8ea7d7013 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php @@ -0,0 +1,371 @@ +configuration = array( + // The application_name is included in the User-Agent HTTP header. + 'application_name' => '', + + // Which Authentication, Storage and HTTP IO classes to use. + 'auth_class' => 'Google_Auth_OAuth2', + 'io_class' => self::USE_AUTO_IO_SELECTION, + 'cache_class' => 'Google_Cache_File', + + // Don't change these unless you're working against a special development + // or testing environment. + 'base_path' => 'https://www.googleapis.com', + + // Definition of class specific values, like file paths and so on. + 'classes' => array( + 'Google_IO_Abstract' => array( + 'request_timeout_seconds' => 100, + ), + 'Google_Http_Request' => array( + // Disable the use of gzip on calls if set to true. Defaults to false. + 'disable_gzip' => self::GZIP_ENABLED, + + // We default gzip to disabled on uploads even if gzip is otherwise + // enabled, due to some issues seen with small packet sizes for uploads. + // Please test with this option before enabling gzip for uploads in + // a production environment. + 'enable_gzip_for_uploads' => self::GZIP_UPLOADS_DISABLED, + ), + // If you want to pass in OAuth 2.0 settings, they will need to be + // structured like this. + 'Google_Auth_OAuth2' => array( + // Keys for OAuth 2.0 access, see the API console at + // https://developers.google.com/console + 'client_id' => '', + 'client_secret' => '', + 'redirect_uri' => '', + + // Simple API access key, also from the API console. Ensure you get + // a Server key, and not a Browser key. + 'developer_key' => '', + + // Other parameters. + 'hd' => '', + 'prompt' => '', + 'openid.realm' => '', + 'include_granted_scopes' => '', + 'login_hint' => '', + 'request_visible_actions' => '', + 'access_type' => 'online', + 'approval_prompt' => 'auto', + 'federated_signon_certs_url' => + 'https://www.googleapis.com/oauth2/v1/certs', + ), + // Set a default directory for the file cache. + 'Google_Cache_File' => array( + 'directory' => sys_get_temp_dir() . '/Google_Client' + ) + ), + ); + if ($ini_file_location) { + $ini = parse_ini_file($ini_file_location, true); + if (is_array($ini) && count($ini)) { + $this->configuration = array_merge($this->configuration, $ini); + } + } + } + + /** + * Set configuration specific to a given class. + * $config->setClassConfig('Google_Cache_File', + * array('directory' => '/tmp/cache')); + * @param $class The class name for the configuration + * @param $config string key or an array of configuration values + * @param $value optional - if $config is a key, the value + */ + public function setClassConfig($class, $config, $value = null) + { + if (!is_array($config)) { + if (!isset($this->configuration['classes'][$class])) { + $this->configuration['classes'][$class] = array(); + } + $this->configuration['classes'][$class][$config] = $value; + } else { + $this->configuration['classes'][$class] = $config; + } + } + + public function getClassConfig($class, $key = null) + { + if (!isset($this->configuration['classes'][$class])) { + return null; + } + if ($key === null) { + return $this->configuration['classes'][$class]; + } else { + return $this->configuration['classes'][$class][$key]; + } + } + + /** + * Return the configured cache class. + * @return string + */ + public function getCacheClass() + { + return $this->configuration['cache_class']; + } + + /** + * Return the configured Auth class. + * @return string + */ + public function getAuthClass() + { + return $this->configuration['auth_class']; + } + + /** + * Set the auth class. + * + * @param $class the class name to set + */ + public function setAuthClass($class) + { + $prev = $this->configuration['auth_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['auth_class'] = $class; + } + + /** + * Set the IO class. + * + * @param $class the class name to set + */ + public function setIoClass($class) + { + $prev = $this->configuration['io_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['io_class'] = $class; + } + + /** + * Set the cache class. + * + * @param $class the class name to set + */ + public function setCacheClass($class) + { + $prev = $this->configuration['cache_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['cache_class'] = $class; + } + + /** + * Return the configured IO class. + * @return string + */ + public function getIoClass() + { + return $this->configuration['io_class']; + } + + /** + * Set the application name, this is included in the User-Agent HTTP header. + * @param string $name + */ + public function setApplicationName($name) + { + $this->configuration['application_name'] = $name; + } + + /** + * @return string the name of the application + */ + public function getApplicationName() + { + return $this->configuration['application_name']; + } + + /** + * Set the client ID for the auth class. + * @param $key string - the API console client ID + */ + public function setClientId($clientId) + { + $this->setAuthConfig('client_id', $clientId); + } + + /** + * Set the client secret for the auth class. + * @param $key string - the API console client secret + */ + public function setClientSecret($secret) + { + $this->setAuthConfig('client_secret', $secret); + } + + /** + * Set the redirect uri for the auth class. Note that if using the + * Javascript based sign in flow, this should be the string 'postmessage'. + * @param $key string - the URI that users should be redirected to + */ + public function setRedirectUri($uri) + { + $this->setAuthConfig('redirect_uri', $uri); + } + + /** + * Set the app activities for the auth class. + * @param $rva string a space separated list of app activity types + */ + public function setRequestVisibleActions($rva) + { + $this->setAuthConfig('request_visible_actions', $rva); + } + + /** + * Set the the access type requested (offline or online.) + * @param $access string - the access type + */ + public function setAccessType($access) + { + $this->setAuthConfig('access_type', $access); + } + + /** + * Set when to show the approval prompt (auto or force) + * @param $approval string - the approval request + */ + public function setApprovalPrompt($approval) + { + $this->setAuthConfig('approval_prompt', $approval); + } + + /** + * Set the login hint (email address or sub identifier) + * @param $hint string + */ + public function setLoginHint($hint) + { + $this->setAuthConfig('login_hint', $hint); + } + + /** + * Set the developer key for the auth class. Note that this is separate value + * from the client ID - if it looks like a URL, its a client ID! + * @param $key string - the API console developer key + */ + public function setDeveloperKey($key) + { + $this->setAuthConfig('developer_key', $key); + } + + /** + * Set the hd (hosted domain) parameter streamlines the login process for + * Google Apps hosted accounts. By including the domain of the user, you + * restrict sign-in to accounts at that domain. + * @param $hd string - the domain to use. + */ + public function setHostedDomain($hd) + { + $this->setAuthConfig('hd', $hd); + } + + /** + * Set the prompt hint. Valid values are none, consent and select_account. + * If no value is specified and the user has not previously authorized + * access, then the user is shown a consent screen. + * @param $prompt string + */ + public function setPrompt($prompt) + { + $this->setAuthConfig('prompt', $prompt); + } + + /** + * openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth + * 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which + * an authentication request is valid. + * @param $realm string - the URL-space to use. + */ + public function setOpenidRealm($realm) + { + $this->setAuthConfig('openid.realm', $realm); + } + + /** + * If this is provided with the value true, and the authorization request is + * granted, the authorization will include any previous authorizations + * granted to this user/application combination for other scopes. + * @param $include boolean - the URL-space to use. + */ + public function setIncludeGrantedScopes($include) + { + $this->setAuthConfig( + 'include_granted_scopes', + $include ? "true" : "false" + ); + } + + /** + * @return string the base URL to use for API calls + */ + public function getBasePath() + { + return $this->configuration['base_path']; + } + + /** + * Set the auth configuration for the current auth class. + * @param $key - the key to set + * @param $value - the parameter value + */ + private function setAuthConfig($key, $value) + { + if (!isset($this->configuration['classes'][$this->getAuthClass()])) { + $this->configuration['classes'][$this->getAuthClass()] = array(); + } + $this->configuration['classes'][$this->getAuthClass()][$key] = $value; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..af80269718ac93b4ebd16bfbf3c01dd30e986287 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Exception.php @@ -0,0 +1,20 @@ + + */ +class Google_Http_Batch +{ + /** @var string Multipart Boundary. */ + private $boundary; + + /** @var array service requests to be executed. */ + private $requests = array(); + + /** @var Google_Client */ + private $client; + + private $expected_classes = array(); + + private $base_path; + + public function __construct(Google_Client $client, $boundary = false) + { + $this->client = $client; + $this->base_path = $this->client->getBasePath(); + $this->expected_classes = array(); + $boundary = (false == $boundary) ? mt_rand() : $boundary; + $this->boundary = str_replace('"', '', $boundary); + } + + public function add(Google_Http_Request $request, $key = false) + { + if (false == $key) { + $key = mt_rand(); + } + + $this->requests[$key] = $request; + } + + public function execute() + { + $body = ''; + + /** @var Google_Http_Request $req */ + foreach ($this->requests as $key => $req) { + $body .= "--{$this->boundary}\n"; + $body .= $req->toBatchString($key) . "\n"; + $this->expected_classes["response-" . $key] = $req->getExpectedClass(); + } + + $body = rtrim($body); + $body .= "\n--{$this->boundary}--"; + + $url = $this->base_path . '/batch'; + $httpRequest = new Google_Http_Request($url, 'POST'); + $httpRequest->setRequestHeaders( + array('Content-Type' => 'multipart/mixed; boundary=' . $this->boundary) + ); + + $httpRequest->setPostBody($body); + $response = $this->client->getIo()->makeRequest($httpRequest); + + return $this->parseResponse($response); + } + + public function parseResponse(Google_Http_Request $response) + { + $contentType = $response->getResponseHeader('content-type'); + $contentType = explode(';', $contentType); + $boundary = false; + foreach ($contentType as $part) { + $part = (explode('=', $part, 2)); + if (isset($part[0]) && 'boundary' == trim($part[0])) { + $boundary = $part[1]; + } + } + + $body = $response->getResponseBody(); + if ($body) { + $body = str_replace("--$boundary--", "--$boundary", $body); + $parts = explode("--$boundary", $body); + $responses = array(); + + foreach ($parts as $part) { + $part = trim($part); + if (!empty($part)) { + list($metaHeaders, $part) = explode("\r\n\r\n", $part, 2); + $metaHeaders = $this->client->getIo()->getHttpResponseHeaders($metaHeaders); + + $status = substr($part, 0, strpos($part, "\n")); + $status = explode(" ", $status); + $status = $status[1]; + + list($partHeaders, $partBody) = $this->client->getIo()->ParseHttpResponse($part, false); + $response = new Google_Http_Request(""); + $response->setResponseHttpCode($status); + $response->setResponseHeaders($partHeaders); + $response->setResponseBody($partBody); + + // Need content id. + $key = $metaHeaders['content-id']; + + if (isset($this->expected_classes[$key]) && + strlen($this->expected_classes[$key]) > 0) { + $class = $this->expected_classes[$key]; + $response->setExpectedClass($class); + } + + try { + $response = Google_Http_REST::decodeHttpResponse($response); + $responses[$key] = $response; + } catch (Google_Service_Exception $e) { + // Store the exception as the response, so succesful responses + // can be processed. + $responses[$key] = $e; + } + } + } + + return $responses; + } + + return null; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php new file mode 100644 index 0000000000000000000000000000000000000000..83f1c8d2f42d95b3a9d4d3f03288e07b7376d36b --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php @@ -0,0 +1,184 @@ + + */ +class Google_Http_CacheParser +{ + public static $CACHEABLE_HTTP_METHODS = array('GET', 'HEAD'); + public static $CACHEABLE_STATUS_CODES = array('200', '203', '300', '301'); + + /** + * Check if an HTTP request can be cached by a private local cache. + * + * @static + * @param Google_Http_Request $resp + * @return bool True if the request is cacheable. + * False if the request is uncacheable. + */ + public static function isRequestCacheable(Google_Http_Request $resp) + { + $method = $resp->getRequestMethod(); + if (! in_array($method, self::$CACHEABLE_HTTP_METHODS)) { + return false; + } + + // Don't cache authorized requests/responses. + // [rfc2616-14.8] When a shared cache receives a request containing an + // Authorization field, it MUST NOT return the corresponding response + // as a reply to any other request... + if ($resp->getRequestHeader("authorization")) { + return false; + } + + return true; + } + + /** + * Check if an HTTP response can be cached by a private local cache. + * + * @static + * @param Google_Http_Request $resp + * @return bool True if the response is cacheable. + * False if the response is un-cacheable. + */ + public static function isResponseCacheable(Google_Http_Request $resp) + { + // First, check if the HTTP request was cacheable before inspecting the + // HTTP response. + if (false == self::isRequestCacheable($resp)) { + return false; + } + + $code = $resp->getResponseHttpCode(); + if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) { + return false; + } + + // The resource is uncacheable if the resource is already expired and + // the resource doesn't have an ETag for revalidation. + $etag = $resp->getResponseHeader("etag"); + if (self::isExpired($resp) && $etag == false) { + return false; + } + + // [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT + // store any part of either this response or the request that elicited it. + $cacheControl = $resp->getParsedCacheControl(); + if (isset($cacheControl['no-store'])) { + return false; + } + + // Pragma: no-cache is an http request directive, but is occasionally + // used as a response header incorrectly. + $pragma = $resp->getResponseHeader('pragma'); + if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) { + return false; + } + + // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that + // a cache cannot determine from the request headers of a subsequent request + // whether this response is the appropriate representation." + // Given this, we deem responses with the Vary header as uncacheable. + $vary = $resp->getResponseHeader('vary'); + if ($vary) { + return false; + } + + return true; + } + + /** + * @static + * @param Google_Http_Request $resp + * @return bool True if the HTTP response is considered to be expired. + * False if it is considered to be fresh. + */ + public static function isExpired(Google_Http_Request $resp) + { + // HTTP/1.1 clients and caches MUST treat other invalid date formats, + // especially including the value “0”, as in the past. + $parsedExpires = false; + $responseHeaders = $resp->getResponseHeaders(); + + if (isset($responseHeaders['expires'])) { + $rawExpires = $responseHeaders['expires']; + // Check for a malformed expires header first. + if (empty($rawExpires) || (is_numeric($rawExpires) && $rawExpires <= 0)) { + return true; + } + + // See if we can parse the expires header. + $parsedExpires = strtotime($rawExpires); + if (false == $parsedExpires || $parsedExpires <= 0) { + return true; + } + } + + // Calculate the freshness of an http response. + $freshnessLifetime = false; + $cacheControl = $resp->getParsedCacheControl(); + if (isset($cacheControl['max-age'])) { + $freshnessLifetime = $cacheControl['max-age']; + } + + $rawDate = $resp->getResponseHeader('date'); + $parsedDate = strtotime($rawDate); + + if (empty($rawDate) || false == $parsedDate) { + // We can't default this to now, as that means future cache reads + // will always pass with the logic below, so we will require a + // date be injected if not supplied. + throw new Google_Exception("All cacheable requests must have creation dates."); + } + + if (false == $freshnessLifetime && isset($responseHeaders['expires'])) { + $freshnessLifetime = $parsedExpires - $parsedDate; + } + + if (false == $freshnessLifetime) { + return true; + } + + // Calculate the age of an http response. + $age = max(0, time() - $parsedDate); + if (isset($responseHeaders['age'])) { + $age = max($age, strtotime($responseHeaders['age'])); + } + + return $freshnessLifetime <= $age; + } + + /** + * Determine if a cache entry should be revalidated with by the origin. + * + * @param Google_Http_Request $response + * @return bool True if the entry is expired, else return false. + */ + public static function mustRevalidate(Google_Http_Request $response) + { + // [13.3] When a cache has a stale entry that it would like to use as a + // response to a client's request, it first has to check with the origin + // server to see if its cached entry is still usable. + return self::isExpired($response); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php new file mode 100644 index 0000000000000000000000000000000000000000..8005db4bb48931faffb3f774e30db4f3890c36f9 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php @@ -0,0 +1,301 @@ + + * + */ +class Google_Http_MediaFileUpload +{ + const UPLOAD_MEDIA_TYPE = 'media'; + const UPLOAD_MULTIPART_TYPE = 'multipart'; + const UPLOAD_RESUMABLE_TYPE = 'resumable'; + + /** @var string $mimeType */ + private $mimeType; + + /** @var string $data */ + private $data; + + /** @var bool $resumable */ + private $resumable; + + /** @var int $chunkSize */ + private $chunkSize; + + /** @var int $size */ + private $size; + + /** @var string $resumeUri */ + private $resumeUri; + + /** @var int $progress */ + private $progress; + + /** @var Google_Client */ + private $client; + + /** @var Google_Http_Request */ + private $request; + + /** @var string */ + private $boundary; + + /** + * Result code from last HTTP call + * @var int + */ + private $httpResultCode; + + /** + * @param $mimeType string + * @param $data string The bytes you want to upload. + * @param $resumable bool + * @param bool $chunkSize File will be uploaded in chunks of this many bytes. + * only used if resumable=True + */ + public function __construct( + Google_Client $client, + Google_Http_Request $request, + $mimeType, + $data, + $resumable = false, + $chunkSize = false, + $boundary = false + ) { + $this->client = $client; + $this->request = $request; + $this->mimeType = $mimeType; + $this->data = $data; + $this->size = strlen($this->data); + $this->resumable = $resumable; + if (!$chunkSize) { + $chunkSize = 256 * 1024; + } + $this->chunkSize = $chunkSize; + $this->progress = 0; + $this->boundary = $boundary; + + // Process Media Request + $this->process(); + } + + /** + * Set the size of the file that is being uploaded. + * @param $size - int file size in bytes + */ + public function setFileSize($size) + { + $this->size = $size; + } + + /** + * Return the progress on the upload + * @return int progress in bytes uploaded. + */ + public function getProgress() + { + return $this->progress; + } + + /** + * Return the HTTP result code from the last call made. + * @return int code + */ + public function getHttpResultCode() + { + return $this->httpResultCode; + } + + /** + * Send the next part of the file to upload. + * @param [$chunk] the next set of bytes to send. If false will used $data passed + * at construct time. + */ + public function nextChunk($chunk = false) + { + if (false == $this->resumeUri) { + $this->resumeUri = $this->getResumeUri(); + } + + if (false == $chunk) { + $chunk = substr($this->data, $this->progress, $this->chunkSize); + } + + $lastBytePos = $this->progress + strlen($chunk) - 1; + $headers = array( + 'content-range' => "bytes $this->progress-$lastBytePos/$this->size", + 'content-type' => $this->request->getRequestHeader('content-type'), + 'content-length' => $this->chunkSize, + 'expect' => '', + ); + + $httpRequest = new Google_Http_Request( + $this->resumeUri, + 'PUT', + $headers, + $chunk + ); + + if ($this->client->getClassConfig("Google_Http_Request", "enable_gzip_for_uploads")) { + $httpRequest->enableGzip(); + } else { + $httpRequest->disableGzip(); + } + + $response = $this->client->getIo()->makeRequest($httpRequest); + $response->setExpectedClass($this->request->getExpectedClass()); + $code = $response->getResponseHttpCode(); + $this->httpResultCode = $code; + + if (308 == $code) { + // Track the amount uploaded. + $range = explode('-', $response->getResponseHeader('range')); + $this->progress = $range[1] + 1; + + // Allow for changing upload URLs. + $location = $response->getResponseHeader('location'); + if ($location) { + $this->resumeUri = $location; + } + + // No problems, but upload not complete. + return false; + } else { + return Google_Http_REST::decodeHttpResponse($response); + } + } + + /** + * @param $meta + * @param $params + * @return array|bool + * @visible for testing + */ + private function process() + { + $postBody = false; + $contentType = false; + + $meta = $this->request->getPostBody(); + $meta = is_string($meta) ? json_decode($meta, true) : $meta; + + $uploadType = $this->getUploadType($meta); + $this->request->setQueryParam('uploadType', $uploadType); + $this->transformToUploadUrl(); + $mimeType = $this->mimeType ? + $this->mimeType : + $this->request->getRequestHeader('content-type'); + + if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) { + $contentType = $mimeType; + $postBody = is_string($meta) ? $meta : json_encode($meta); + } else if (self::UPLOAD_MEDIA_TYPE == $uploadType) { + $contentType = $mimeType; + $postBody = $this->data; + } else if (self::UPLOAD_MULTIPART_TYPE == $uploadType) { + // This is a multipart/related upload. + $boundary = $this->boundary ? $this->boundary : mt_rand(); + $boundary = str_replace('"', '', $boundary); + $contentType = 'multipart/related; boundary=' . $boundary; + $related = "--$boundary\r\n"; + $related .= "Content-Type: application/json; charset=UTF-8\r\n"; + $related .= "\r\n" . json_encode($meta) . "\r\n"; + $related .= "--$boundary\r\n"; + $related .= "Content-Type: $mimeType\r\n"; + $related .= "Content-Transfer-Encoding: base64\r\n"; + $related .= "\r\n" . base64_encode($this->data) . "\r\n"; + $related .= "--$boundary--"; + $postBody = $related; + } + + $this->request->setPostBody($postBody); + + if (isset($contentType) && $contentType) { + $contentTypeHeader['content-type'] = $contentType; + $this->request->setRequestHeaders($contentTypeHeader); + } + } + + private function transformToUploadUrl() + { + $base = $this->request->getBaseComponent(); + $this->request->setBaseComponent($base . '/upload'); + } + + /** + * Valid upload types: + * - resumable (UPLOAD_RESUMABLE_TYPE) + * - media (UPLOAD_MEDIA_TYPE) + * - multipart (UPLOAD_MULTIPART_TYPE) + * @param $meta + * @return string + * @visible for testing + */ + public function getUploadType($meta) + { + if ($this->resumable) { + return self::UPLOAD_RESUMABLE_TYPE; + } + + if (false == $meta && $this->data) { + return self::UPLOAD_MEDIA_TYPE; + } + + return self::UPLOAD_MULTIPART_TYPE; + } + + private function getResumeUri() + { + $result = null; + $body = $this->request->getPostBody(); + if ($body) { + $headers = array( + 'content-type' => 'application/json; charset=UTF-8', + 'content-length' => Google_Utils::getStrLen($body), + 'x-upload-content-type' => $this->mimeType, + 'x-upload-content-length' => $this->size, + 'expect' => '', + ); + $this->request->setRequestHeaders($headers); + } + + $response = $this->client->getIo()->makeRequest($this->request); + $location = $response->getResponseHeader('location'); + $code = $response->getResponseHttpCode(); + + if (200 == $code && true == $location) { + return $location; + } + $message = $code; + $body = @json_decode($response->getResponseBody()); + if (!empty( $body->error->errors ) ) { + $message .= ': '; + foreach ($body->error->errors as $error) { + $message .= "{$error->domain}, {$error->message};"; + } + $message = rtrim($message, ';'); + } + throw new Google_Exception("Failed to start the resumable upload (HTTP {$message})"); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php new file mode 100644 index 0000000000000000000000000000000000000000..3c318e44ceb3611c3807536bb8c7e7bdc962b7e4 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php @@ -0,0 +1,139 @@ + + * @author Chirag Shah + */ +class Google_Http_REST +{ + /** + * Executes a Google_Http_Request + * + * @param Google_Client $client + * @param Google_Http_Request $req + * @return array decoded result + * @throws Google_Service_Exception on server side error (ie: not authenticated, + * invalid or malformed post body, invalid url) + */ + public static function execute(Google_Client $client, Google_Http_Request $req) + { + $httpRequest = $client->getIo()->makeRequest($req); + $httpRequest->setExpectedClass($req->getExpectedClass()); + return self::decodeHttpResponse($httpRequest); + } + + /** + * Decode an HTTP Response. + * @static + * @throws Google_Service_Exception + * @param Google_Http_Request $response The http response to be decoded. + * @return mixed|null + */ + public static function decodeHttpResponse($response) + { + $code = $response->getResponseHttpCode(); + $body = $response->getResponseBody(); + $decoded = null; + + if ((intVal($code)) >= 300) { + $decoded = json_decode($body, true); + $err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl(); + if (isset($decoded['error']) && + isset($decoded['error']['message']) && + isset($decoded['error']['code'])) { + // if we're getting a json encoded error definition, use that instead of the raw response + // body for improved readability + $err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}"; + } else { + $err .= ": ($code) $body"; + } + + $errors = null; + // Specific check for APIs which don't return error details, such as Blogger. + if (isset($decoded['error']) && isset($decoded['error']['errors'])) { + $errors = $decoded['error']['errors']; + } + + throw new Google_Service_Exception($err, $code, null, $errors); + } + + // Only attempt to decode the response, if the response code wasn't (204) 'no content' + if ($code != '204') { + $decoded = json_decode($body, true); + if ($decoded === null || $decoded === "") { + throw new Google_Service_Exception("Invalid json in service response: $body"); + } + + if ($response->getExpectedClass()) { + $class = $response->getExpectedClass(); + $decoded = new $class($decoded); + } + } + return $decoded; + } + + /** + * Parse/expand request parameters and create a fully qualified + * request uri. + * @static + * @param string $servicePath + * @param string $restPath + * @param array $params + * @return string $requestUrl + */ + public static function createRequestUri($servicePath, $restPath, $params) + { + $requestUrl = $servicePath . $restPath; + $uriTemplateVars = array(); + $queryVars = array(); + foreach ($params as $paramName => $paramSpec) { + if ($paramSpec['type'] == 'boolean') { + $paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false'; + } + if ($paramSpec['location'] == 'path') { + $uriTemplateVars[$paramName] = $paramSpec['value']; + } else if ($paramSpec['location'] == 'query') { + if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) { + foreach ($paramSpec['value'] as $value) { + $queryVars[] = $paramName . '=' . rawurlencode($value); + } + } else { + $queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']); + } + } + } + + if (count($uriTemplateVars)) { + $uriTemplateParser = new Google_Utils_URITemplate(); + $requestUrl = $uriTemplateParser->parse($requestUrl, $uriTemplateVars); + } + + if (count($queryVars)) { + $requestUrl .= '?' . implode($queryVars, '&'); + } + + return $requestUrl; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php new file mode 100644 index 0000000000000000000000000000000000000000..8643694da895926998448766a2129b10fc288de4 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php @@ -0,0 +1,476 @@ + + * @author Chirag Shah + * + */ +class Google_Http_Request +{ + const GZIP_UA = " (gzip)"; + + private $batchHeaders = array( + 'Content-Type' => 'application/http', + 'Content-Transfer-Encoding' => 'binary', + 'MIME-Version' => '1.0', + ); + + protected $queryParams; + protected $requestMethod; + protected $requestHeaders; + protected $baseComponent = null; + protected $path; + protected $postBody; + protected $userAgent; + protected $canGzip = null; + + protected $responseHttpCode; + protected $responseHeaders; + protected $responseBody; + + protected $expectedClass; + + public $accessKey; + + public function __construct( + $url, + $method = 'GET', + $headers = array(), + $postBody = null + ) { + $this->setUrl($url); + $this->setRequestMethod($method); + $this->setRequestHeaders($headers); + $this->setPostBody($postBody); + } + + /** + * Misc function that returns the base url component of the $url + * used by the OAuth signing class to calculate the base string + * @return string The base url component of the $url. + */ + public function getBaseComponent() + { + return $this->baseComponent; + } + + /** + * Set the base URL that path and query parameters will be added to. + * @param $baseComponent string + */ + public function setBaseComponent($baseComponent) + { + $this->baseComponent = $baseComponent; + } + + /** + * Enable support for gzipped responses with this request. + */ + public function enableGzip() + { + $this->setRequestHeaders(array("Accept-Encoding" => "gzip")); + $this->canGzip = true; + $this->setUserAgent($this->userAgent); + } + + /** + * Disable support for gzip responses with this request. + */ + public function disableGzip() + { + if ( + isset($this->requestHeaders['accept-encoding']) && + $this->requestHeaders['accept-encoding'] == "gzip" + ) { + unset($this->requestHeaders['accept-encoding']); + } + $this->canGzip = false; + $this->userAgent = str_replace(self::GZIP_UA, "", $this->userAgent); + } + + /** + * Can this request accept a gzip response? + * @return bool + */ + public function canGzip() + { + return $this->canGzip; + } + + /** + * Misc function that returns an array of the query parameters of the current + * url used by the OAuth signing class to calculate the signature + * @return array Query parameters in the query string. + */ + public function getQueryParams() + { + return $this->queryParams; + } + + /** + * Set a new query parameter. + * @param $key - string to set, does not need to be URL encoded + * @param $value - string to set, does not need to be URL encoded + */ + public function setQueryParam($key, $value) + { + $this->queryParams[$key] = $value; + } + + /** + * @return string HTTP Response Code. + */ + public function getResponseHttpCode() + { + return (int) $this->responseHttpCode; + } + + /** + * @param int $responseHttpCode HTTP Response Code. + */ + public function setResponseHttpCode($responseHttpCode) + { + $this->responseHttpCode = $responseHttpCode; + } + + /** + * @return $responseHeaders (array) HTTP Response Headers. + */ + public function getResponseHeaders() + { + return $this->responseHeaders; + } + + /** + * @return string HTTP Response Body + */ + public function getResponseBody() + { + return $this->responseBody; + } + + /** + * Set the class the response to this request should expect. + * + * @param $class string the class name + */ + public function setExpectedClass($class) + { + $this->expectedClass = $class; + } + + /** + * Retrieve the expected class the response should expect. + * @return string class name + */ + public function getExpectedClass() + { + return $this->expectedClass; + } + + /** + * @param array $headers The HTTP response headers + * to be normalized. + */ + public function setResponseHeaders($headers) + { + $headers = Google_Utils::normalize($headers); + if ($this->responseHeaders) { + $headers = array_merge($this->responseHeaders, $headers); + } + + $this->responseHeaders = $headers; + } + + /** + * @param string $key + * @return array|boolean Returns the requested HTTP header or + * false if unavailable. + */ + public function getResponseHeader($key) + { + return isset($this->responseHeaders[$key]) + ? $this->responseHeaders[$key] + : false; + } + + /** + * @param string $responseBody The HTTP response body. + */ + public function setResponseBody($responseBody) + { + $this->responseBody = $responseBody; + } + + /** + * @return string $url The request URL. + */ + public function getUrl() + { + return $this->baseComponent . $this->path . + (count($this->queryParams) ? + "?" . $this->buildQuery($this->queryParams) : + ''); + } + + /** + * @return string $method HTTP Request Method. + */ + public function getRequestMethod() + { + return $this->requestMethod; + } + + /** + * @return array $headers HTTP Request Headers. + */ + public function getRequestHeaders() + { + return $this->requestHeaders; + } + + /** + * @param string $key + * @return array|boolean Returns the requested HTTP header or + * false if unavailable. + */ + public function getRequestHeader($key) + { + return isset($this->requestHeaders[$key]) + ? $this->requestHeaders[$key] + : false; + } + + /** + * @return string $postBody HTTP Request Body. + */ + public function getPostBody() + { + return $this->postBody; + } + + /** + * @param string $url the url to set + */ + public function setUrl($url) + { + if (substr($url, 0, 4) != 'http') { + // Force the path become relative. + if (substr($url, 0, 1) !== '/') { + $url = '/' . $url; + } + } + $parts = parse_url($url); + if (isset($parts['host'])) { + $this->baseComponent = sprintf( + "%s%s%s", + isset($parts['scheme']) ? $parts['scheme'] . "://" : '', + isset($parts['host']) ? $parts['host'] : '', + isset($parts['port']) ? ":" . $parts['port'] : '' + ); + } + $this->path = isset($parts['path']) ? $parts['path'] : ''; + $this->queryParams = array(); + if (isset($parts['query'])) { + $this->queryParams = $this->parseQuery($parts['query']); + } + } + + /** + * @param string $method Set he HTTP Method and normalize + * it to upper-case, as required by HTTP. + * + */ + public function setRequestMethod($method) + { + $this->requestMethod = strtoupper($method); + } + + /** + * @param array $headers The HTTP request headers + * to be set and normalized. + */ + public function setRequestHeaders($headers) + { + $headers = Google_Utils::normalize($headers); + if ($this->requestHeaders) { + $headers = array_merge($this->requestHeaders, $headers); + } + $this->requestHeaders = $headers; + } + + /** + * @param string $postBody the postBody to set + */ + public function setPostBody($postBody) + { + $this->postBody = $postBody; + } + + /** + * Set the User-Agent Header. + * @param string $userAgent The User-Agent. + */ + public function setUserAgent($userAgent) + { + $this->userAgent = $userAgent; + if ($this->canGzip) { + $this->userAgent = $userAgent . self::GZIP_UA; + } + } + + /** + * @return string The User-Agent. + */ + public function getUserAgent() + { + return $this->userAgent; + } + + /** + * Returns a cache key depending on if this was an OAuth signed request + * in which case it will use the non-signed url and access key to make this + * cache key unique per authenticated user, else use the plain request url + * @return string The md5 hash of the request cache key. + */ + public function getCacheKey() + { + $key = $this->getUrl(); + + if (isset($this->accessKey)) { + $key .= $this->accessKey; + } + + if (isset($this->requestHeaders['authorization'])) { + $key .= $this->requestHeaders['authorization']; + } + + return md5($key); + } + + public function getParsedCacheControl() + { + $parsed = array(); + $rawCacheControl = $this->getResponseHeader('cache-control'); + if ($rawCacheControl) { + $rawCacheControl = str_replace(', ', '&', $rawCacheControl); + parse_str($rawCacheControl, $parsed); + } + + return $parsed; + } + + /** + * @param string $id + * @return string A string representation of the HTTP Request. + */ + public function toBatchString($id) + { + $str = ''; + $path = parse_url($this->getUrl(), PHP_URL_PATH) . "?" . + http_build_query($this->queryParams); + $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n"; + + foreach ($this->getRequestHeaders() as $key => $val) { + $str .= $key . ': ' . $val . "\n"; + } + + if ($this->getPostBody()) { + $str .= "\n"; + $str .= $this->getPostBody(); + } + + $headers = ''; + foreach ($this->batchHeaders as $key => $val) { + $headers .= $key . ': ' . $val . "\n"; + } + + $headers .= "Content-ID: $id\n"; + $str = $headers . "\n" . $str; + + return $str; + } + + /** + * Our own version of parse_str that allows for multiple variables + * with the same name. + * @param $string - the query string to parse + */ + private function parseQuery($string) + { + $return = array(); + $parts = explode("&", $string); + foreach ($parts as $part) { + list($key, $value) = explode('=', $part, 2); + $value = urldecode($value); + if (isset($return[$key])) { + if (!is_array($return[$key])) { + $return[$key] = array($return[$key]); + } + $return[$key][] = $value; + } else { + $return[$key] = $value; + } + } + return $return; + } + + /** + * A version of build query that allows for multiple + * duplicate keys. + * @param $parts array of key value pairs + */ + private function buildQuery($parts) + { + $return = array(); + foreach ($parts as $key => $value) { + if (is_array($value)) { + foreach ($value as $v) { + $return[] = urlencode($key) . "=" . urlencode($v); + } + } else { + $return[] = urlencode($key) . "=" . urlencode($value); + } + } + return implode('&', $return); + } + + /** + * If we're POSTing and have no body to send, we can send the query + * parameters in there, which avoids length issues with longer query + * params. + */ + public function maybeMoveParametersToBody() + { + if ($this->getRequestMethod() == "POST" && empty($this->postBody)) { + $this->setRequestHeaders( + array( + "content-type" => + "application/x-www-form-urlencoded; charset=UTF-8" + ) + ); + $this->setPostBody($this->buildQuery($this->queryParams)); + $this->queryParams = array(); + } + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php new file mode 100644 index 0000000000000000000000000000000000000000..a4025e874ad83cc033eaf8cb9897cee9639c8edc --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php @@ -0,0 +1,332 @@ + null, "PUT" => null); + + /** @var Google_Client */ + protected $client; + + public function __construct(Google_Client $client) + { + $this->client = $client; + $timeout = $client->getClassConfig('Google_IO_Abstract', 'request_timeout_seconds'); + if ($timeout > 0) { + $this->setTimeout($timeout); + } + } + + /** + * Executes a Google_Http_Request and returns the resulting populated Google_Http_Request + * @param Google_Http_Request $request + * @return Google_Http_Request $request + */ + abstract public function executeRequest(Google_Http_Request $request); + + /** + * Set options that update the transport implementation's behavior. + * @param $options + */ + abstract public function setOptions($options); + + /** + * Set the maximum request time in seconds. + * @param $timeout in seconds + */ + abstract public function setTimeout($timeout); + + /** + * Get the maximum request time in seconds. + * @return timeout in seconds + */ + abstract public function getTimeout(); + + /** + * Test for the presence of a cURL header processing bug + * + * The cURL bug was present in versions prior to 7.30.0 and caused the header + * length to be miscalculated when a "Connection established" header added by + * some proxies was present. + * + * @return boolean + */ + abstract protected function needsQuirk(); + + /** + * @visible for testing. + * Cache the response to an HTTP request if it is cacheable. + * @param Google_Http_Request $request + * @return bool Returns true if the insertion was successful. + * Otherwise, return false. + */ + public function setCachedRequest(Google_Http_Request $request) + { + // Determine if the request is cacheable. + if (Google_Http_CacheParser::isResponseCacheable($request)) { + $this->client->getCache()->set($request->getCacheKey(), $request); + return true; + } + + return false; + } + + /** + * Execute an HTTP Request + * + * @param Google_HttpRequest $request the http request to be executed + * @return Google_HttpRequest http request with the response http code, + * response headers and response body filled in + * @throws Google_IO_Exception on curl or IO error + */ + public function makeRequest(Google_Http_Request $request) + { + // First, check to see if we have a valid cached version. + $cached = $this->getCachedRequest($request); + if ($cached !== false && $cached instanceof Google_Http_Request) { + if (!$this->checkMustRevalidateCachedRequest($cached, $request)) { + return $cached; + } + } + + if (array_key_exists($request->getRequestMethod(), self::$ENTITY_HTTP_METHODS)) { + $request = $this->processEntityRequest($request); + } + + list($responseData, $responseHeaders, $respHttpCode) = $this->executeRequest($request); + + if ($respHttpCode == 304 && $cached) { + // If the server responded NOT_MODIFIED, return the cached request. + $this->updateCachedRequest($cached, $responseHeaders); + return $cached; + } + + if (!isset($responseHeaders['Date']) && !isset($responseHeaders['date'])) { + $responseHeaders['Date'] = date("r"); + } + + $request->setResponseHttpCode($respHttpCode); + $request->setResponseHeaders($responseHeaders); + $request->setResponseBody($responseData); + // Store the request in cache (the function checks to see if the request + // can actually be cached) + $this->setCachedRequest($request); + return $request; + } + + /** + * @visible for testing. + * @param Google_Http_Request $request + * @return Google_Http_Request|bool Returns the cached object or + * false if the operation was unsuccessful. + */ + public function getCachedRequest(Google_Http_Request $request) + { + if (false === Google_Http_CacheParser::isRequestCacheable($request)) { + return false; + } + + return $this->client->getCache()->get($request->getCacheKey()); + } + + /** + * @visible for testing + * Process an http request that contains an enclosed entity. + * @param Google_Http_Request $request + * @return Google_Http_Request Processed request with the enclosed entity. + */ + public function processEntityRequest(Google_Http_Request $request) + { + $postBody = $request->getPostBody(); + $contentType = $request->getRequestHeader("content-type"); + + // Set the default content-type as application/x-www-form-urlencoded. + if (false == $contentType) { + $contentType = self::FORM_URLENCODED; + $request->setRequestHeaders(array('content-type' => $contentType)); + } + + // Force the payload to match the content-type asserted in the header. + if ($contentType == self::FORM_URLENCODED && is_array($postBody)) { + $postBody = http_build_query($postBody, '', '&'); + $request->setPostBody($postBody); + } + + // Make sure the content-length header is set. + if (!$postBody || is_string($postBody)) { + $postsLength = strlen($postBody); + $request->setRequestHeaders(array('content-length' => $postsLength)); + } + + return $request; + } + + /** + * Check if an already cached request must be revalidated, and if so update + * the request with the correct ETag headers. + * @param Google_Http_Request $cached A previously cached response. + * @param Google_Http_Request $request The outbound request. + * return bool If the cached object needs to be revalidated, false if it is + * still current and can be re-used. + */ + protected function checkMustRevalidateCachedRequest($cached, $request) + { + if (Google_Http_CacheParser::mustRevalidate($cached)) { + $addHeaders = array(); + if ($cached->getResponseHeader('etag')) { + // [13.3.4] If an entity tag has been provided by the origin server, + // we must use that entity tag in any cache-conditional request. + $addHeaders['If-None-Match'] = $cached->getResponseHeader('etag'); + } elseif ($cached->getResponseHeader('date')) { + $addHeaders['If-Modified-Since'] = $cached->getResponseHeader('date'); + } + + $request->setRequestHeaders($addHeaders); + return true; + } else { + return false; + } + } + + /** + * Update a cached request, using the headers from the last response. + * @param Google_HttpRequest $cached A previously cached response. + * @param mixed Associative array of response headers from the last request. + */ + protected function updateCachedRequest($cached, $responseHeaders) + { + if (isset($responseHeaders['connection'])) { + $hopByHop = array_merge( + self::$HOP_BY_HOP, + explode( + ',', + $responseHeaders['connection'] + ) + ); + + $endToEnd = array(); + foreach ($hopByHop as $key) { + if (isset($responseHeaders[$key])) { + $endToEnd[$key] = $responseHeaders[$key]; + } + } + $cached->setResponseHeaders($endToEnd); + } + } + + /** + * Used by the IO lib and also the batch processing. + * + * @param $respData + * @param $headerSize + * @return array + */ + public function parseHttpResponse($respData, $headerSize) + { + // check proxy header + foreach (self::$CONNECTION_ESTABLISHED_HEADERS as $established_header) { + if (stripos($respData, $established_header) !== false) { + // existed, remove it + $respData = str_ireplace($established_header, '', $respData); + // Subtract the proxy header size unless the cURL bug prior to 7.30.0 + // is present which prevented the proxy header size from being taken into + // account. + if (!$this->needsQuirk()) { + $headerSize -= strlen($established_header); + } + break; + } + } + + if ($headerSize) { + $responseBody = substr($respData, $headerSize); + $responseHeaders = substr($respData, 0, $headerSize); + } else { + $responseSegments = explode("\r\n\r\n", $respData, 2); + $responseHeaders = $responseSegments[0]; + $responseBody = isset($responseSegments[1]) ? $responseSegments[1] : + null; + } + + $responseHeaders = $this->getHttpResponseHeaders($responseHeaders); + return array($responseHeaders, $responseBody); + } + + /** + * Parse out headers from raw headers + * @param rawHeaders array or string + * @return array + */ + public function getHttpResponseHeaders($rawHeaders) + { + if (is_array($rawHeaders)) { + return $this->parseArrayHeaders($rawHeaders); + } else { + return $this->parseStringHeaders($rawHeaders); + } + } + + private function parseStringHeaders($rawHeaders) + { + $headers = array(); + $responseHeaderLines = explode("\r\n", $rawHeaders); + foreach ($responseHeaderLines as $headerLine) { + if ($headerLine && strpos($headerLine, ':') !== false) { + list($header, $value) = explode(': ', $headerLine, 2); + $header = strtolower($header); + if (isset($headers[$header])) { + $headers[$header] .= "\n" . $value; + } else { + $headers[$header] = $value; + } + } + } + return $headers; + } + + private function parseArrayHeaders($rawHeaders) + { + $header_count = count($rawHeaders); + $headers = array(); + + for ($i = 0; $i < $header_count; $i++) { + $header = $rawHeaders[$i]; + // Times will have colons in - so we just want the first match. + $header_parts = explode(': ', $header, 2); + if (count($header_parts) == 2) { + $headers[$header_parts[0]] = $header_parts[1]; + } + } + + return $headers; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php new file mode 100644 index 0000000000000000000000000000000000000000..57a057114cc274cc7f70841fe346337ca1caed26 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php @@ -0,0 +1,137 @@ + + */ + +require_once 'Google/IO/Abstract.php'; + +class Google_IO_Curl extends Google_IO_Abstract +{ + // cURL hex representation of version 7.30.0 + const NO_QUIRK_VERSION = 0x071E00; + + private $options = array(); + /** + * Execute an HTTP Request + * + * @param Google_HttpRequest $request the http request to be executed + * @return Google_HttpRequest http request with the response http code, + * response headers and response body filled in + * @throws Google_IO_Exception on curl or IO error + */ + public function executeRequest(Google_Http_Request $request) + { + $curl = curl_init(); + + if ($request->getPostBody()) { + curl_setopt($curl, CURLOPT_POSTFIELDS, $request->getPostBody()); + } + + $requestHeaders = $request->getRequestHeaders(); + if ($requestHeaders && is_array($requestHeaders)) { + $curlHeaders = array(); + foreach ($requestHeaders as $k => $v) { + $curlHeaders[] = "$k: $v"; + } + curl_setopt($curl, CURLOPT_HTTPHEADER, $curlHeaders); + } + + curl_setopt($curl, CURLOPT_URL, $request->getUrl()); + + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod()); + curl_setopt($curl, CURLOPT_USERAGENT, $request->getUserAgent()); + + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_HEADER, true); + + if ($request->canGzip()) { + curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); + } + + foreach ($this->options as $key => $var) { + curl_setopt($curl, $key, $var); + } + + if (!isset($this->options[CURLOPT_CAINFO])) { + curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem'); + } + + $response = curl_exec($curl); + if ($response === false) { + throw new Google_IO_Exception(curl_error($curl)); + } + $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE); + + list($responseHeaders, $responseBody) = $this->parseHttpResponse($response, $headerSize); + + $responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + + return array($responseBody, $responseHeaders, $responseCode); + } + + /** + * Set options that update the transport implementation's behavior. + * @param $options + */ + public function setOptions($options) + { + $this->options = $options + $this->options; + } + + /** + * Set the maximum request time in seconds. + * @param $timeout in seconds + */ + public function setTimeout($timeout) + { + // Since this timeout is really for putting a bound on the time + // we'll set them both to the same. If you need to specify a longer + // CURLOPT_TIMEOUT, or a tigher CONNECTTIMEOUT, the best thing to + // do is use the setOptions method for the values individually. + $this->options[CURLOPT_CONNECTTIMEOUT] = $timeout; + $this->options[CURLOPT_TIMEOUT] = $timeout; + } + + /** + * Get the maximum request time in seconds. + * @return timeout in seconds + */ + public function getTimeout() + { + return $this->options[CURLOPT_TIMEOUT]; + } + + /** + * Test for the presence of a cURL header processing bug + * + * {@inheritDoc} + * + * @return boolean + */ + protected function needsQuirk() + { + $ver = curl_version(); + $versionNum = $ver['version_number']; + return $versionNum < Google_IO_Curl::NO_QUIRK_VERSION; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..28c2d8ce64505822b309b634666fc67defc1d228 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php @@ -0,0 +1,22 @@ + + */ + +require_once 'Google/IO/Abstract.php'; + +class Google_IO_Stream extends Google_IO_Abstract +{ + const TIMEOUT = "timeout"; + const ZLIB = "compress.zlib://"; + private $options = array(); + private $trappedErrorNumber; + private $trappedErrorString; + + private static $DEFAULT_HTTP_CONTEXT = array( + "follow_location" => 0, + "ignore_errors" => 1, + ); + + private static $DEFAULT_SSL_CONTEXT = array( + "verify_peer" => true, + ); + + /** + * Execute an HTTP Request + * + * @param Google_HttpRequest $request the http request to be executed + * @return Google_HttpRequest http request with the response http code, + * response headers and response body filled in + * @throws Google_IO_Exception on curl or IO error + */ + public function executeRequest(Google_Http_Request $request) + { + $default_options = stream_context_get_options(stream_context_get_default()); + + $requestHttpContext = array_key_exists('http', $default_options) ? + $default_options['http'] : array(); + + if ($request->getPostBody()) { + $requestHttpContext["content"] = $request->getPostBody(); + } + + $requestHeaders = $request->getRequestHeaders(); + if ($requestHeaders && is_array($requestHeaders)) { + $headers = ""; + foreach ($requestHeaders as $k => $v) { + $headers .= "$k: $v\r\n"; + } + $requestHttpContext["header"] = $headers; + } + + $requestHttpContext["method"] = $request->getRequestMethod(); + $requestHttpContext["user_agent"] = $request->getUserAgent(); + + $requestSslContext = array_key_exists('ssl', $default_options) ? + $default_options['ssl'] : array(); + + if (!array_key_exists("cafile", $requestSslContext)) { + $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem'; + } + + $options = array( + "http" => array_merge( + self::$DEFAULT_HTTP_CONTEXT, + $requestHttpContext + ), + "ssl" => array_merge( + self::$DEFAULT_SSL_CONTEXT, + $requestSslContext + ) + ); + + $context = stream_context_create($options); + + $url = $request->getUrl(); + + if ($request->canGzip()) { + $url = self::ZLIB . $url; + } + + // We are trapping any thrown errors in this method only and + // throwing an exception. + $this->trappedErrorNumber = null; + $this->trappedErrorString = null; + + // START - error trap. + set_error_handler(array($this, 'trapError')); + $fh = fopen($url, 'r', false, $context); + restore_error_handler(); + // END - error trap. + + if ($this->trappedErrorNumber) { + throw new Google_IO_Exception( + sprintf( + "HTTP Error: Unable to connect: '%s'", + $this->trappedErrorString + ), + $this->trappedErrorNumber + ); + } + + $response_data = false; + $respHttpCode = self::UNKNOWN_CODE; + if ($fh) { + if (isset($this->options[self::TIMEOUT])) { + stream_set_timeout($fh, $this->options[self::TIMEOUT]); + } + + $response_data = stream_get_contents($fh); + fclose($fh); + + $respHttpCode = $this->getHttpResponseCode($http_response_header); + } + + if (false === $response_data) { + throw new Google_IO_Exception( + sprintf( + "HTTP Error: Unable to connect: '%s'", + $respHttpCode + ), + $respHttpCode + ); + } + + $responseHeaders = $this->getHttpResponseHeaders($http_response_header); + + return array($response_data, $responseHeaders, $respHttpCode); + } + + /** + * Set options that update the transport implementation's behavior. + * @param $options + */ + public function setOptions($options) + { + $this->options = $options + $this->options; + } + + /** + * Method to handle errors, used for error handling around + * stream connection methods. + */ + public function trapError($errno, $errstr) + { + $this->trappedErrorNumber = $errno; + $this->trappedErrorString = $errstr; + } + + /** + * Set the maximum request time in seconds. + * @param $timeout in seconds + */ + public function setTimeout($timeout) + { + $this->options[self::TIMEOUT] = $timeout; + } + + /** + * Get the maximum request time in seconds. + * @return timeout in seconds + */ + public function getTimeout() + { + return $this->options[self::TIMEOUT]; + } + + /** + * Test for the presence of a cURL header processing bug + * + * {@inheritDoc} + * + * @return boolean + */ + protected function needsQuirk() + { + return false; + } + + protected function getHttpResponseCode($response_headers) + { + $header_count = count($response_headers); + + for ($i = 0; $i < $header_count; $i++) { + $header = $response_headers[$i]; + if (strncasecmp("HTTP", $header, strlen("HTTP")) == 0) { + $response = explode(' ', $header); + return $response[1]; + } + } + return self::UNKNOWN_CODE; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/io/cacerts.pem b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem similarity index 96% rename from apps/files_external/3rdparty/google-api-php-client/src/io/cacerts.pem rename to apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem index da36ed1ba6de0a71d38a13188f82d89f440017bd..79a49289cbe702f86c39f26c4354f36ad8f3f2d3 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/io/cacerts.pem +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem @@ -712,3 +712,27 @@ IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd -----END CERTIFICATE----- +GeoTrust Global CA +================== + +-----BEGIN CERTIFICATE----- +MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT +MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0 +aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw +WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE +AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m +OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu +T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c +JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR +Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz +PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm +aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM +TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g +LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO +BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv +dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB +AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL +NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W +b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S +-----END CERTIFICATE----- diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php new file mode 100644 index 0000000000000000000000000000000000000000..2bb9a333d66e3f25c8313092e7872a46f20f5c6a --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php @@ -0,0 +1,265 @@ + + * + */ +class Google_Model implements ArrayAccess +{ + protected $internal_gapi_mappings = array(); + protected $modelData = array(); + protected $processed = array(); + + /** + * Polymorphic - accepts a variable number of arguments dependent + * on the type of the model subclass. + */ + public function __construct() + { + if (func_num_args() == 1 && is_array(func_get_arg(0))) { + // Initialize the model with the array's contents. + $array = func_get_arg(0); + $this->mapTypes($array); + } + } + + public function __get($key) + { + $keyTypeName = $this->keyType($key); + $keyDataType = $this->dataType($key); + if (isset($this->$keyTypeName) && !isset($this->processed[$key])) { + if (isset($this->modelData[$key])) { + $val = $this->modelData[$key]; + } else if (isset($this->$keyDataType) && + ($this->$keyDataType == 'array' || $this->$keyDataType == 'map')) { + $val = array(); + } else { + $val = null; + } + + if ($this->isAssociativeArray($val)) { + if (isset($this->$keyDataType) && 'map' == $this->$keyDataType) { + foreach ($val as $arrayKey => $arrayItem) { + $this->modelData[$key][$arrayKey] = + $this->createObjectFromName($keyTypeName, $arrayItem); + } + } else { + $this->modelData[$key] = $this->createObjectFromName($keyTypeName, $val); + } + } else if (is_array($val)) { + $arrayObject = array(); + foreach ($val as $arrayIndex => $arrayItem) { + $arrayObject[$arrayIndex] = + $this->createObjectFromName($keyTypeName, $arrayItem); + } + $this->modelData[$key] = $arrayObject; + } + $this->processed[$key] = true; + } + + return isset($this->modelData[$key]) ? $this->modelData[$key] : null; + } + + /** + * Initialize this object's properties from an array. + * + * @param array $array Used to seed this object's properties. + * @return void + */ + protected function mapTypes($array) + { + // Hard initilise simple types, lazy load more complex ones. + foreach ($array as $key => $val) { + if ( !property_exists($this, $this->keyType($key)) && + property_exists($this, $key)) { + $this->$key = $val; + unset($array[$key]); + } elseif (property_exists($this, $camelKey = Google_Utils::camelCase($key))) { + // This checks if property exists as camelCase, leaving it in array as snake_case + // in case of backwards compatibility issues. + $this->$camelKey = $val; + } + } + $this->modelData = $array; + } + + /** + * Create a simplified object suitable for straightforward + * conversion to JSON. This is relatively expensive + * due to the usage of reflection, but shouldn't be called + * a whole lot, and is the most straightforward way to filter. + */ + public function toSimpleObject() + { + $object = new stdClass(); + + // Process all other data. + foreach ($this->modelData as $key => $val) { + $result = $this->getSimpleValue($val); + if ($result !== null) { + $object->$key = $result; + } + } + + // Process all public properties. + $reflect = new ReflectionObject($this); + $props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC); + foreach ($props as $member) { + $name = $member->getName(); + $result = $this->getSimpleValue($this->$name); + if ($result !== null) { + $name = $this->getMappedName($name); + $object->$name = $result; + } + } + + return $object; + } + + /** + * Handle different types of values, primarily + * other objects and map and array data types. + */ + private function getSimpleValue($value) + { + if ($value instanceof Google_Model) { + return $value->toSimpleObject(); + } else if (is_array($value)) { + $return = array(); + foreach ($value as $key => $a_value) { + $a_value = $this->getSimpleValue($a_value); + if ($a_value !== null) { + $key = $this->getMappedName($key); + $return[$key] = $a_value; + } + } + return $return; + } + return $value; + } + + /** + * If there is an internal name mapping, use that. + */ + private function getMappedName($key) + { + if (isset($this->internal_gapi_mappings) && + isset($this->internal_gapi_mappings[$key])) { + $key = $this->internal_gapi_mappings[$key]; + } + return $key; + } + + /** + * Returns true only if the array is associative. + * @param array $array + * @return bool True if the array is associative. + */ + protected function isAssociativeArray($array) + { + if (!is_array($array)) { + return false; + } + $keys = array_keys($array); + foreach ($keys as $key) { + if (is_string($key)) { + return true; + } + } + return false; + } + + /** + * Given a variable name, discover its type. + * + * @param $name + * @param $item + * @return object The object from the item. + */ + private function createObjectFromName($name, $item) + { + $type = $this->$name; + return new $type($item); + } + + /** + * Verify if $obj is an array. + * @throws Google_Exception Thrown if $obj isn't an array. + * @param array $obj Items that should be validated. + * @param string $method Method expecting an array as an argument. + */ + public function assertIsArray($obj, $method) + { + if ($obj && !is_array($obj)) { + throw new Google_Exception( + "Incorrect parameter type passed to $method(). Expected an array." + ); + } + } + + public function offsetExists($offset) + { + return isset($this->$offset) || isset($this->modelData[$offset]); + } + + public function offsetGet($offset) + { + return isset($this->$offset) ? + $this->$offset : + $this->__get($offset); + } + + public function offsetSet($offset, $value) + { + if (property_exists($this, $offset)) { + $this->$offset = $value; + } else { + $this->modelData[$offset] = $value; + $this->processed[$offset] = true; + } + } + + public function offsetUnset($offset) + { + unset($this->modelData[$offset]); + } + + protected function keyType($key) + { + return $key . "Type"; + } + + protected function dataType($key) + { + return $key . "DataType"; + } + + public function __isset($key) + { + return isset($this->modelData[$key]); + } + + public function __unset($key) + { + unset($this->modelData[$key]); + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php new file mode 100644 index 0000000000000000000000000000000000000000..2e0b6c5228273343f7ec072f4f1816ba767d137f --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php @@ -0,0 +1,39 @@ +client = $client; + } + + /** + * Return the associated Google_Client class. + * @return Google_Client + */ + public function getClient() + { + return $this->client; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php new file mode 100644 index 0000000000000000000000000000000000000000..291a609123223f846b4bea28018c866a9300345b --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php @@ -0,0 +1,6136 @@ + + * The API to interact with Drive. + *

+ * + *

+ * For more information about this service, see the API + * Documentation + *

+ * + * @author Google, Inc. + */ +class Google_Service_Drive extends Google_Service +{ + /** View and manage the files and documents in your Google Drive. */ + const DRIVE = "https://www.googleapis.com/auth/drive"; + /** View and manage its own configuration data in your Google Drive. */ + const DRIVE_APPDATA = "https://www.googleapis.com/auth/drive.appdata"; + /** View your Google Drive apps. */ + const DRIVE_APPS_READONLY = "https://www.googleapis.com/auth/drive.apps.readonly"; + /** View and manage Google Drive files that you have opened or created with this app. */ + const DRIVE_FILE = "https://www.googleapis.com/auth/drive.file"; + /** View metadata for files and documents in your Google Drive. */ + const DRIVE_METADATA_READONLY = "https://www.googleapis.com/auth/drive.metadata.readonly"; + /** View the files and documents in your Google Drive. */ + const DRIVE_READONLY = "https://www.googleapis.com/auth/drive.readonly"; + /** Modify your Google Apps Script scripts' behavior. */ + const DRIVE_SCRIPTS = "https://www.googleapis.com/auth/drive.scripts"; + + public $about; + public $apps; + public $changes; + public $channels; + public $children; + public $comments; + public $files; + public $parents; + public $permissions; + public $properties; + public $realtime; + public $replies; + public $revisions; + + + /** + * Constructs the internal representation of the Drive service. + * + * @param Google_Client $client + */ + public function __construct(Google_Client $client) + { + parent::__construct($client); + $this->servicePath = 'drive/v2/'; + $this->version = 'v2'; + $this->serviceName = 'drive'; + + $this->about = new Google_Service_Drive_About_Resource( + $this, + $this->serviceName, + 'about', + array( + 'methods' => array( + 'get' => array( + 'path' => 'about', + 'httpMethod' => 'GET', + 'parameters' => array( + 'includeSubscribed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxChangeIdCount' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->apps = new Google_Service_Drive_Apps_Resource( + $this, + $this->serviceName, + 'apps', + array( + 'methods' => array( + 'get' => array( + 'path' => 'apps/{appId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'appId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'apps', + 'httpMethod' => 'GET', + 'parameters' => array( + 'languageCode' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'appFilterExtensions' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'appFilterMimeTypes' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->changes = new Google_Service_Drive_Changes_Resource( + $this, + $this->serviceName, + 'changes', + array( + 'methods' => array( + 'get' => array( + 'path' => 'changes/{changeId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'changeId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'changes', + 'httpMethod' => 'GET', + 'parameters' => array( + 'includeSubscribed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'changes/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'includeSubscribed' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->channels = new Google_Service_Drive_Channels_Resource( + $this, + $this->serviceName, + 'channels', + array( + 'methods' => array( + 'stop' => array( + 'path' => 'channels/stop', + 'httpMethod' => 'POST', + 'parameters' => array(), + ), + ) + ) + ); + $this->children = new Google_Service_Drive_Children_Resource( + $this, + $this->serviceName, + 'children', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{folderId}/children/{childId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'childId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{folderId}/children/{childId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'childId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'files/{folderId}/children', + 'httpMethod' => 'POST', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{folderId}/children', + 'httpMethod' => 'GET', + 'parameters' => array( + 'folderId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ), + ) + ) + ); + $this->comments = new Google_Service_Drive_Comments_Resource( + $this, + $this->serviceName, + 'comments', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/comments', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/comments', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updatedMin' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/comments/{commentId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->files = new Google_Service_Drive_Files_Resource( + $this, + $this->serviceName, + 'files', + array( + 'methods' => array( + 'copy' => array( + 'path' => 'files/{fileId}/copy', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'delete' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'emptyTrash' => array( + 'path' => 'files/trash', + 'httpMethod' => 'DELETE', + 'parameters' => array(), + ),'get' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'files', + 'httpMethod' => 'POST', + 'parameters' => array( + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'useContentAsIndexableText' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'list' => array( + 'path' => 'files', + 'httpMethod' => 'GET', + 'parameters' => array( + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'corpus' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'addParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'removeParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'setModifiedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'useContentAsIndexableText' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'newRevision' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'touch' => array( + 'path' => 'files/{fileId}/touch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'trash' => array( + 'path' => 'files/{fileId}/trash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'untrash' => array( + 'path' => 'files/{fileId}/untrash', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'addParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'removeParents' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'setModifiedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'useContentAsIndexableText' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocrLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'pinned' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'newRevision' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'ocr' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'timedTextLanguage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'timedTextTrackName' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'watch' => array( + 'path' => 'files/{fileId}/watch', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'updateViewedDate' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'projection' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->parents = new Google_Service_Drive_Parents_Resource( + $this, + $this->serviceName, + 'parents', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/parents/{parentId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/parents/{parentId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'parentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/parents', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/parents', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->permissions = new Google_Service_Drive_Permissions_Resource( + $this, + $this->serviceName, + 'permissions', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'getIdForEmail' => array( + 'path' => 'permissionIds/{email}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'email' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/permissions', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'emailMessage' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'sendNotificationEmails' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/permissions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'transferOwnership' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/permissions/{permissionId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'permissionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'transferOwnership' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ), + ) + ) + ); + $this->properties = new Google_Service_Drive_Properties_Resource( + $this, + $this->serviceName, + 'properties', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/properties', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/properties', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/properties/{propertyKey}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'propertyKey' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'visibility' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->realtime = new Google_Service_Drive_Realtime_Resource( + $this, + $this->serviceName, + 'realtime', + array( + 'methods' => array( + 'get' => array( + 'path' => 'files/{fileId}/realtime', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revision' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/realtime', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'baseRevision' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), + ), + ) + ) + ); + $this->replies = new Google_Service_Drive_Replies_Resource( + $this, + $this->serviceName, + 'replies', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + ), + ),'insert' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies', + 'httpMethod' => 'POST', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'pageToken' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'includeDeleted' => array( + 'location' => 'query', + 'type' => 'boolean', + ), + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/comments/{commentId}/replies/{replyId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'commentId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'replyId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + $this->revisions = new Google_Service_Drive_Revisions_Resource( + $this, + $this->serviceName, + 'revisions', + array( + 'methods' => array( + 'delete' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'DELETE', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'get' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'list' => array( + 'path' => 'files/{fileId}/revisions', + 'httpMethod' => 'GET', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'patch' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'PATCH', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ),'update' => array( + 'path' => 'files/{fileId}/revisions/{revisionId}', + 'httpMethod' => 'PUT', + 'parameters' => array( + 'fileId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + 'revisionId' => array( + 'location' => 'path', + 'type' => 'string', + 'required' => true, + ), + ), + ), + ) + ) + ); + } +} + + +/** + * The "about" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $about = $driveService->about; + * + */ +class Google_Service_Drive_About_Resource extends Google_Service_Resource +{ + + /** + * Gets the information about the current user along with Drive API settings + * (about.get) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool includeSubscribed + * When calculating the number of remaining change IDs, whether to include public files the user + * has opened and shared files. When set to false, this counts only change IDs for owned files and + * any shared or public files that the user has explicitly added to a folder they own. + * @opt_param string maxChangeIdCount + * Maximum number of remaining change IDs to count + * @opt_param string startChangeId + * Change ID to start counting from when calculating number of remaining change IDs + * @return Google_Service_Drive_About + */ + public function get($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_About"); + } +} + +/** + * The "apps" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $apps = $driveService->apps; + * + */ +class Google_Service_Drive_Apps_Resource extends Google_Service_Resource +{ + + /** + * Gets a specific app. (apps.get) + * + * @param string $appId + * The ID of the app. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_App + */ + public function get($appId, $optParams = array()) + { + $params = array('appId' => $appId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_App"); + } + /** + * Lists a user's installed apps. (apps.listApps) + * + * @param array $optParams Optional parameters. + * + * @opt_param string languageCode + * A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format + * (http://www.unicode.org/reports/tr35/). + * @opt_param string appFilterExtensions + * A comma-separated list of file extensions for open with filtering. All apps within the given app + * query scope which can open any of the given file extensions will be included in the response. If + * appFilterMimeTypes are provided as well, the result is a union of the two resulting app lists. + * @opt_param string appFilterMimeTypes + * A comma-separated list of MIME types for open with filtering. All apps within the given app + * query scope which can open any of the given MIME types will be included in the response. If + * appFilterExtensions are provided as well, the result is a union of the two resulting app lists. + * @return Google_Service_Drive_AppList + */ + public function listApps($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_AppList"); + } +} + +/** + * The "changes" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $changes = $driveService->changes; + * + */ +class Google_Service_Drive_Changes_Resource extends Google_Service_Resource +{ + + /** + * Gets a specific change. (changes.get) + * + * @param string $changeId + * The ID of the change. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Change + */ + public function get($changeId, $optParams = array()) + { + $params = array('changeId' => $changeId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Change"); + } + /** + * Lists the changes for a user. (changes.listChanges) + * + * @param array $optParams Optional parameters. + * + * @opt_param bool includeSubscribed + * Whether to include public files the user has opened and shared files. When set to false, the + * list only includes owned files plus any shared or public files the user has explicitly added to + * a folder they own. + * @opt_param string startChangeId + * Change ID to start listing changes from. + * @opt_param bool includeDeleted + * Whether to include deleted items. + * @opt_param int maxResults + * Maximum number of changes to return. + * @opt_param string pageToken + * Page token for changes. + * @return Google_Service_Drive_ChangeList + */ + public function listChanges($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_ChangeList"); + } + /** + * Subscribe to changes for a user. (changes.watch) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool includeSubscribed + * Whether to include public files the user has opened and shared files. When set to false, the + * list only includes owned files plus any shared or public files the user has explicitly added to + * a folder they own. + * @opt_param string startChangeId + * Change ID to start listing changes from. + * @opt_param bool includeDeleted + * Whether to include deleted items. + * @opt_param int maxResults + * Maximum number of changes to return. + * @opt_param string pageToken + * Page token for changes. + * @return Google_Service_Drive_Channel + */ + public function watch(Google_Service_Drive_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Drive_Channel"); + } +} + +/** + * The "channels" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $channels = $driveService->channels; + * + */ +class Google_Service_Drive_Channels_Resource extends Google_Service_Resource +{ + + /** + * Stop watching resources through this channel (channels.stop) + * + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + */ + public function stop(Google_Service_Drive_Channel $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('stop', array($params)); + } +} + +/** + * The "children" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $children = $driveService->children; + * + */ +class Google_Service_Drive_Children_Resource extends Google_Service_Resource +{ + + /** + * Removes a child from a folder. (children.delete) + * + * @param string $folderId + * The ID of the folder. + * @param string $childId + * The ID of the child. + * @param array $optParams Optional parameters. + */ + public function delete($folderId, $childId, $optParams = array()) + { + $params = array('folderId' => $folderId, 'childId' => $childId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific child reference. (children.get) + * + * @param string $folderId + * The ID of the folder. + * @param string $childId + * The ID of the child. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ChildReference + */ + public function get($folderId, $childId, $optParams = array()) + { + $params = array('folderId' => $folderId, 'childId' => $childId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_ChildReference"); + } + /** + * Inserts a file into a folder. (children.insert) + * + * @param string $folderId + * The ID of the folder. + * @param Google_ChildReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ChildReference + */ + public function insert($folderId, Google_Service_Drive_ChildReference $postBody, $optParams = array()) + { + $params = array('folderId' => $folderId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_ChildReference"); + } + /** + * Lists a folder's children. (children.listChildren) + * + * @param string $folderId + * The ID of the folder. + * @param array $optParams Optional parameters. + * + * @opt_param string q + * Query string for searching children. + * @opt_param string pageToken + * Page token for children. + * @opt_param int maxResults + * Maximum number of children to return. + * @return Google_Service_Drive_ChildList + */ + public function listChildren($folderId, $optParams = array()) + { + $params = array('folderId' => $folderId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_ChildList"); + } +} + +/** + * The "comments" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $comments = $driveService->comments; + * + */ +class Google_Service_Drive_Comments_Resource extends Google_Service_Resource +{ + + /** + * Deletes a comment. (comments.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $commentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a comment by ID. (comments.get) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeDeleted + * If set, this will succeed when retrieving a deleted comment, and will include any deleted + * replies. + * @return Google_Service_Drive_Comment + */ + public function get($fileId, $commentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Comment"); + } + /** + * Creates a new comment on the given file. (comments.insert) + * + * @param string $fileId + * The ID of the file. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Comment + */ + public function insert($fileId, Google_Service_Drive_Comment $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_Comment"); + } + /** + * Lists a file's comments. (comments.listComments) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, used to page through large result sets. To get the next page of results, + * set this parameter to the value of "nextPageToken" from the previous response. + * @opt_param string updatedMin + * Only discussions that were updated after this timestamp will be returned. Formatted as an RFC + * 3339 timestamp. + * @opt_param bool includeDeleted + * If set, all comments and replies, including deleted comments and replies (with content stripped) + * will be returned. + * @opt_param int maxResults + * The maximum number of discussions to include in the response, used for paging. + * @return Google_Service_Drive_CommentList + */ + public function listComments($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_CommentList"); + } + /** + * Updates an existing comment. This method supports patch semantics. + * (comments.patch) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Comment + */ + public function patch($fileId, $commentId, Google_Service_Drive_Comment $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Comment"); + } + /** + * Updates an existing comment. (comments.update) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param Google_Comment $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Comment + */ + public function update($fileId, $commentId, Google_Service_Drive_Comment $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Comment"); + } +} + +/** + * The "files" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $files = $driveService->files; + * + */ +class Google_Service_Drive_Files_Resource extends Google_Service_Resource +{ + + /** + * Creates a copy of the specified file. (files.copy) + * + * @param string $fileId + * The ID of the file to copy. + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param string visibility + * The visibility of the new file. This parameter is only relevant when the source is not a native + * Google Doc and convert=false. + * @opt_param bool pinned + * Whether to pin the head revision of the new copy. A file can have a maximum of 200 pinned + * revisions. + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextTrackName + * The timed text track name. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @return Google_Service_Drive_DriveFile + */ + public function copy($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('copy', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Permanently deletes a file by ID. Skips the trash. (files.delete) + * + * @param string $fileId + * The ID of the file to delete. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Permanently deletes all of the user's trashed files. (files.emptyTrash) + * + * @param array $optParams Optional parameters. + */ + public function emptyTrash($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('emptyTrash', array($params)); + } + /** + * Gets a file's metadata by ID. (files.get) + * + * @param string $fileId + * The ID for the file in question. + * @param array $optParams Optional parameters. + * + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully retrieving the file. + * @opt_param string projection + * This parameter is deprecated and has no function. + * @return Google_Service_Drive_DriveFile + */ + public function get($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Insert a new file. (files.insert) + * + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param bool useContentAsIndexableText + * Whether to use the content as indexable text. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param string visibility + * The visibility of the new file. This parameter is only relevant when convert=false. + * @opt_param bool pinned + * Whether to pin the head revision of the uploaded file. A file can have a maximum of 200 pinned + * revisions. + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextTrackName + * The timed text track name. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @return Google_Service_Drive_DriveFile + */ + public function insert(Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Lists the user's files. (files.listFiles) + * + * @param array $optParams Optional parameters. + * + * @opt_param string q + * Query string for searching files. + * @opt_param string pageToken + * Page token for files. + * @opt_param string corpus + * The body of items (files/documents) to which the query applies. + * @opt_param string projection + * This parameter is deprecated and has no function. + * @opt_param int maxResults + * Maximum number of files to return. + * @return Google_Service_Drive_FileList + */ + public function listFiles($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_FileList"); + } + /** + * Updates file metadata and/or content. This method supports patch semantics. + * (files.patch) + * + * @param string $fileId + * The ID of the file to update. + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string addParents + * Comma-separated list of parent IDs to add. + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully updating the file. + * @opt_param string removeParents + * Comma-separated list of parent IDs to remove. + * @opt_param bool setModifiedDate + * Whether to set the modified date with the supplied modified date. + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param bool useContentAsIndexableText + * Whether to use the content as indexable text. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param bool pinned + * Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. + * @opt_param bool newRevision + * Whether a blob upload should create a new revision. If false, the blob data in the current head + * revision is replaced. If true or not set, a new blob is created as head revision, and previous + * revisions are preserved (causing increased use of the user's data storage quota). + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @opt_param string timedTextTrackName + * The timed text track name. + * @return Google_Service_Drive_DriveFile + */ + public function patch($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Set the file's updated time to the current server time. (files.touch) + * + * @param string $fileId + * The ID of the file to update. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_DriveFile + */ + public function touch($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('touch', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Moves a file to the trash. (files.trash) + * + * @param string $fileId + * The ID of the file to trash. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_DriveFile + */ + public function trash($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('trash', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Restores a file from the trash. (files.untrash) + * + * @param string $fileId + * The ID of the file to untrash. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_DriveFile + */ + public function untrash($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('untrash', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Updates file metadata and/or content. (files.update) + * + * @param string $fileId + * The ID of the file to update. + * @param Google_DriveFile $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string addParents + * Comma-separated list of parent IDs to add. + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully updating the file. + * @opt_param string removeParents + * Comma-separated list of parent IDs to remove. + * @opt_param bool setModifiedDate + * Whether to set the modified date with the supplied modified date. + * @opt_param bool convert + * Whether to convert this file to the corresponding Google Docs format. + * @opt_param bool useContentAsIndexableText + * Whether to use the content as indexable text. + * @opt_param string ocrLanguage + * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. + * @opt_param bool pinned + * Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. + * @opt_param bool newRevision + * Whether a blob upload should create a new revision. If false, the blob data in the current head + * revision is replaced. If true or not set, a new blob is created as head revision, and previous + * revisions are preserved (causing increased use of the user's data storage quota). + * @opt_param bool ocr + * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. + * @opt_param string timedTextLanguage + * The language of the timed text. + * @opt_param string timedTextTrackName + * The timed text track name. + * @return Google_Service_Drive_DriveFile + */ + public function update($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_DriveFile"); + } + /** + * Subscribe to changes on a file (files.watch) + * + * @param string $fileId + * The ID for the file in question. + * @param Google_Channel $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool updateViewedDate + * Whether to update the view date after successfully retrieving the file. + * @opt_param string projection + * This parameter is deprecated and has no function. + * @return Google_Service_Drive_Channel + */ + public function watch($fileId, Google_Service_Drive_Channel $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('watch', array($params), "Google_Service_Drive_Channel"); + } +} + +/** + * The "parents" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $parents = $driveService->parents; + * + */ +class Google_Service_Drive_Parents_Resource extends Google_Service_Resource +{ + + /** + * Removes a parent from a file. (parents.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $parentId + * The ID of the parent. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $parentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'parentId' => $parentId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific parent reference. (parents.get) + * + * @param string $fileId + * The ID of the file. + * @param string $parentId + * The ID of the parent. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ParentReference + */ + public function get($fileId, $parentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'parentId' => $parentId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_ParentReference"); + } + /** + * Adds a parent folder for a file. (parents.insert) + * + * @param string $fileId + * The ID of the file. + * @param Google_ParentReference $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ParentReference + */ + public function insert($fileId, Google_Service_Drive_ParentReference $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_ParentReference"); + } + /** + * Lists a file's parents. (parents.listParents) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_ParentList + */ + public function listParents($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_ParentList"); + } +} + +/** + * The "permissions" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $permissions = $driveService->permissions; + * + */ +class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource +{ + + /** + * Deletes a permission from a file. (permissions.delete) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $permissionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a permission by ID. (permissions.get) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Permission + */ + public function get($fileId, $permissionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Permission"); + } + /** + * Returns the permission ID for an email address. (permissions.getIdForEmail) + * + * @param string $email + * The email address for which to return a permission ID + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_PermissionId + */ + public function getIdForEmail($email, $optParams = array()) + { + $params = array('email' => $email); + $params = array_merge($params, $optParams); + return $this->call('getIdForEmail', array($params), "Google_Service_Drive_PermissionId"); + } + /** + * Inserts a permission for a file. (permissions.insert) + * + * @param string $fileId + * The ID for the file. + * @param Google_Permission $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string emailMessage + * A custom message to include in notification emails. + * @opt_param bool sendNotificationEmails + * Whether to send notification emails when sharing to users or groups. This parameter is ignored + * and an email is sent if the role is owner. + * @return Google_Service_Drive_Permission + */ + public function insert($fileId, Google_Service_Drive_Permission $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_Permission"); + } + /** + * Lists a file's permissions. (permissions.listPermissions) + * + * @param string $fileId + * The ID for the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_PermissionList + */ + public function listPermissions($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_PermissionList"); + } + /** + * Updates a permission. This method supports patch semantics. + * (permissions.patch) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param Google_Permission $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool transferOwnership + * Whether changing a role to 'owner' should also downgrade the current owners to writers. + * @return Google_Service_Drive_Permission + */ + public function patch($fileId, $permissionId, Google_Service_Drive_Permission $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Permission"); + } + /** + * Updates a permission. (permissions.update) + * + * @param string $fileId + * The ID for the file. + * @param string $permissionId + * The ID for the permission. + * @param Google_Permission $postBody + * @param array $optParams Optional parameters. + * + * @opt_param bool transferOwnership + * Whether changing a role to 'owner' should also downgrade the current owners to writers. + * @return Google_Service_Drive_Permission + */ + public function update($fileId, $permissionId, Google_Service_Drive_Permission $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Permission"); + } +} + +/** + * The "properties" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $properties = $driveService->properties; + * + */ +class Google_Service_Drive_Properties_Resource extends Google_Service_Resource +{ + + /** + * Deletes a property. (properties.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + */ + public function delete($fileId, $propertyKey, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a property by its key. (properties.get) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + * @return Google_Service_Drive_Property + */ + public function get($fileId, $propertyKey, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Property"); + } + /** + * Adds a property to a file. (properties.insert) + * + * @param string $fileId + * The ID of the file. + * @param Google_Property $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Property + */ + public function insert($fileId, Google_Service_Drive_Property $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_Property"); + } + /** + * Lists a file's properties. (properties.listProperties) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_PropertyList + */ + public function listProperties($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_PropertyList"); + } + /** + * Updates a property. This method supports patch semantics. (properties.patch) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param Google_Property $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + * @return Google_Service_Drive_Property + */ + public function patch($fileId, $propertyKey, Google_Service_Drive_Property $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Property"); + } + /** + * Updates a property. (properties.update) + * + * @param string $fileId + * The ID of the file. + * @param string $propertyKey + * The key of the property. + * @param Google_Property $postBody + * @param array $optParams Optional parameters. + * + * @opt_param string visibility + * The visibility of the property. + * @return Google_Service_Drive_Property + */ + public function update($fileId, $propertyKey, Google_Service_Drive_Property $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Property"); + } +} + +/** + * The "realtime" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $realtime = $driveService->realtime; + * + */ +class Google_Service_Drive_Realtime_Resource extends Google_Service_Resource +{ + + /** + * Exports the contents of the Realtime API data model associated with this file + * as JSON. (realtime.get) + * + * @param string $fileId + * The ID of the file that the Realtime API data model is associated with. + * @param array $optParams Optional parameters. + * + * @opt_param int revision + * The revision of the Realtime API data model to export. Revisions start at 1 (the initial empty + * data model) and are incremented with each change. If this parameter is excluded, the most recent + * data model will be returned. + */ + public function get($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params)); + } + /** + * Overwrites the Realtime API data model associated with this file with the + * provided JSON data model. (realtime.update) + * + * @param string $fileId + * The ID of the file that the Realtime API data model is associated with. + * @param array $optParams Optional parameters. + * + * @opt_param string baseRevision + * The revision of the model to diff the uploaded model against. If set, the uploaded model is + * diffed against the provided revision and those differences are merged with any changes made to + * the model after the provided revision. If not set, the uploaded model replaces the current model + * on the server. + */ + public function update($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('update', array($params)); + } +} + +/** + * The "replies" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $replies = $driveService->replies; + * + */ +class Google_Service_Drive_Replies_Resource extends Google_Service_Resource +{ + + /** + * Deletes a reply. (replies.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $commentId, $replyId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a reply. (replies.get) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param array $optParams Optional parameters. + * + * @opt_param bool includeDeleted + * If set, this will succeed when retrieving a deleted reply. + * @return Google_Service_Drive_CommentReply + */ + public function get($fileId, $commentId, $replyId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_CommentReply"); + } + /** + * Creates a new reply to the given comment. (replies.insert) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param Google_CommentReply $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_CommentReply + */ + public function insert($fileId, $commentId, Google_Service_Drive_CommentReply $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('insert', array($params), "Google_Service_Drive_CommentReply"); + } + /** + * Lists all of the replies to a comment. (replies.listReplies) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param array $optParams Optional parameters. + * + * @opt_param string pageToken + * The continuation token, used to page through large result sets. To get the next page of results, + * set this parameter to the value of "nextPageToken" from the previous response. + * @opt_param bool includeDeleted + * If set, all replies, including deleted replies (with content stripped) will be returned. + * @opt_param int maxResults + * The maximum number of replies to include in the response, used for paging. + * @return Google_Service_Drive_CommentReplyList + */ + public function listReplies($fileId, $commentId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_CommentReplyList"); + } + /** + * Updates an existing reply. This method supports patch semantics. + * (replies.patch) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param Google_CommentReply $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_CommentReply + */ + public function patch($fileId, $commentId, $replyId, Google_Service_Drive_CommentReply $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_CommentReply"); + } + /** + * Updates an existing reply. (replies.update) + * + * @param string $fileId + * The ID of the file. + * @param string $commentId + * The ID of the comment. + * @param string $replyId + * The ID of the reply. + * @param Google_CommentReply $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_CommentReply + */ + public function update($fileId, $commentId, $replyId, Google_Service_Drive_CommentReply $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_CommentReply"); + } +} + +/** + * The "revisions" collection of methods. + * Typical usage is: + * + * $driveService = new Google_Service_Drive(...); + * $revisions = $driveService->revisions; + * + */ +class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource +{ + + /** + * Removes a revision. (revisions.delete) + * + * @param string $fileId + * The ID of the file. + * @param string $revisionId + * The ID of the revision. + * @param array $optParams Optional parameters. + */ + public function delete($fileId, $revisionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId); + $params = array_merge($params, $optParams); + return $this->call('delete', array($params)); + } + /** + * Gets a specific revision. (revisions.get) + * + * @param string $fileId + * The ID of the file. + * @param string $revisionId + * The ID of the revision. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Revision + */ + public function get($fileId, $revisionId, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId); + $params = array_merge($params, $optParams); + return $this->call('get', array($params), "Google_Service_Drive_Revision"); + } + /** + * Lists a file's revisions. (revisions.listRevisions) + * + * @param string $fileId + * The ID of the file. + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_RevisionList + */ + public function listRevisions($fileId, $optParams = array()) + { + $params = array('fileId' => $fileId); + $params = array_merge($params, $optParams); + return $this->call('list', array($params), "Google_Service_Drive_RevisionList"); + } + /** + * Updates a revision. This method supports patch semantics. (revisions.patch) + * + * @param string $fileId + * The ID for the file. + * @param string $revisionId + * The ID for the revision. + * @param Google_Revision $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Revision + */ + public function patch($fileId, $revisionId, Google_Service_Drive_Revision $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('patch', array($params), "Google_Service_Drive_Revision"); + } + /** + * Updates a revision. (revisions.update) + * + * @param string $fileId + * The ID for the file. + * @param string $revisionId + * The ID for the revision. + * @param Google_Revision $postBody + * @param array $optParams Optional parameters. + * @return Google_Service_Drive_Revision + */ + public function update($fileId, $revisionId, Google_Service_Drive_Revision $postBody, $optParams = array()) + { + $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody); + $params = array_merge($params, $optParams); + return $this->call('update', array($params), "Google_Service_Drive_Revision"); + } +} + + + + +class Google_Service_Drive_About extends Google_Collection +{ + protected $collection_key = 'quotaBytesByService'; + protected $internal_gapi_mappings = array( + ); + protected $additionalRoleInfoType = 'Google_Service_Drive_AboutAdditionalRoleInfo'; + protected $additionalRoleInfoDataType = 'array'; + public $domainSharingPolicy; + public $etag; + protected $exportFormatsType = 'Google_Service_Drive_AboutExportFormats'; + protected $exportFormatsDataType = 'array'; + protected $featuresType = 'Google_Service_Drive_AboutFeatures'; + protected $featuresDataType = 'array'; + protected $importFormatsType = 'Google_Service_Drive_AboutImportFormats'; + protected $importFormatsDataType = 'array'; + public $isCurrentAppInstalled; + public $kind; + public $languageCode; + public $largestChangeId; + protected $maxUploadSizesType = 'Google_Service_Drive_AboutMaxUploadSizes'; + protected $maxUploadSizesDataType = 'array'; + public $name; + public $permissionId; + protected $quotaBytesByServiceType = 'Google_Service_Drive_AboutQuotaBytesByService'; + protected $quotaBytesByServiceDataType = 'array'; + public $quotaBytesTotal; + public $quotaBytesUsed; + public $quotaBytesUsedAggregate; + public $quotaBytesUsedInTrash; + public $quotaType; + public $remainingChangeIds; + public $rootFolderId; + public $selfLink; + protected $userType = 'Google_Service_Drive_User'; + protected $userDataType = ''; + + public function setAdditionalRoleInfo($additionalRoleInfo) + { + $this->additionalRoleInfo = $additionalRoleInfo; + } + + public function getAdditionalRoleInfo() + { + return $this->additionalRoleInfo; + } + + public function setDomainSharingPolicy($domainSharingPolicy) + { + $this->domainSharingPolicy = $domainSharingPolicy; + } + + public function getDomainSharingPolicy() + { + return $this->domainSharingPolicy; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExportFormats($exportFormats) + { + $this->exportFormats = $exportFormats; + } + + public function getExportFormats() + { + return $this->exportFormats; + } + + public function setFeatures($features) + { + $this->features = $features; + } + + public function getFeatures() + { + return $this->features; + } + + public function setImportFormats($importFormats) + { + $this->importFormats = $importFormats; + } + + public function getImportFormats() + { + return $this->importFormats; + } + + public function setIsCurrentAppInstalled($isCurrentAppInstalled) + { + $this->isCurrentAppInstalled = $isCurrentAppInstalled; + } + + public function getIsCurrentAppInstalled() + { + return $this->isCurrentAppInstalled; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLanguageCode($languageCode) + { + $this->languageCode = $languageCode; + } + + public function getLanguageCode() + { + return $this->languageCode; + } + + public function setLargestChangeId($largestChangeId) + { + $this->largestChangeId = $largestChangeId; + } + + public function getLargestChangeId() + { + return $this->largestChangeId; + } + + public function setMaxUploadSizes($maxUploadSizes) + { + $this->maxUploadSizes = $maxUploadSizes; + } + + public function getMaxUploadSizes() + { + return $this->maxUploadSizes; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPermissionId($permissionId) + { + $this->permissionId = $permissionId; + } + + public function getPermissionId() + { + return $this->permissionId; + } + + public function setQuotaBytesByService($quotaBytesByService) + { + $this->quotaBytesByService = $quotaBytesByService; + } + + public function getQuotaBytesByService() + { + return $this->quotaBytesByService; + } + + public function setQuotaBytesTotal($quotaBytesTotal) + { + $this->quotaBytesTotal = $quotaBytesTotal; + } + + public function getQuotaBytesTotal() + { + return $this->quotaBytesTotal; + } + + public function setQuotaBytesUsed($quotaBytesUsed) + { + $this->quotaBytesUsed = $quotaBytesUsed; + } + + public function getQuotaBytesUsed() + { + return $this->quotaBytesUsed; + } + + public function setQuotaBytesUsedAggregate($quotaBytesUsedAggregate) + { + $this->quotaBytesUsedAggregate = $quotaBytesUsedAggregate; + } + + public function getQuotaBytesUsedAggregate() + { + return $this->quotaBytesUsedAggregate; + } + + public function setQuotaBytesUsedInTrash($quotaBytesUsedInTrash) + { + $this->quotaBytesUsedInTrash = $quotaBytesUsedInTrash; + } + + public function getQuotaBytesUsedInTrash() + { + return $this->quotaBytesUsedInTrash; + } + + public function setQuotaType($quotaType) + { + $this->quotaType = $quotaType; + } + + public function getQuotaType() + { + return $this->quotaType; + } + + public function setRemainingChangeIds($remainingChangeIds) + { + $this->remainingChangeIds = $remainingChangeIds; + } + + public function getRemainingChangeIds() + { + return $this->remainingChangeIds; + } + + public function setRootFolderId($rootFolderId) + { + $this->rootFolderId = $rootFolderId; + } + + public function getRootFolderId() + { + return $this->rootFolderId; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setUser(Google_Service_Drive_User $user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } +} + +class Google_Service_Drive_AboutAdditionalRoleInfo extends Google_Collection +{ + protected $collection_key = 'roleSets'; + protected $internal_gapi_mappings = array( + ); + protected $roleSetsType = 'Google_Service_Drive_AboutAdditionalRoleInfoRoleSets'; + protected $roleSetsDataType = 'array'; + public $type; + + public function setRoleSets($roleSets) + { + $this->roleSets = $roleSets; + } + + public function getRoleSets() + { + return $this->roleSets; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Drive_AboutAdditionalRoleInfoRoleSets extends Google_Collection +{ + protected $collection_key = 'additionalRoles'; + protected $internal_gapi_mappings = array( + ); + public $additionalRoles; + public $primaryRole; + + public function setAdditionalRoles($additionalRoles) + { + $this->additionalRoles = $additionalRoles; + } + + public function getAdditionalRoles() + { + return $this->additionalRoles; + } + + public function setPrimaryRole($primaryRole) + { + $this->primaryRole = $primaryRole; + } + + public function getPrimaryRole() + { + return $this->primaryRole; + } +} + +class Google_Service_Drive_AboutExportFormats extends Google_Collection +{ + protected $collection_key = 'targets'; + protected $internal_gapi_mappings = array( + ); + public $source; + public $targets; + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setTargets($targets) + { + $this->targets = $targets; + } + + public function getTargets() + { + return $this->targets; + } +} + +class Google_Service_Drive_AboutFeatures extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $featureName; + public $featureRate; + + public function setFeatureName($featureName) + { + $this->featureName = $featureName; + } + + public function getFeatureName() + { + return $this->featureName; + } + + public function setFeatureRate($featureRate) + { + $this->featureRate = $featureRate; + } + + public function getFeatureRate() + { + return $this->featureRate; + } +} + +class Google_Service_Drive_AboutImportFormats extends Google_Collection +{ + protected $collection_key = 'targets'; + protected $internal_gapi_mappings = array( + ); + public $source; + public $targets; + + public function setSource($source) + { + $this->source = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setTargets($targets) + { + $this->targets = $targets; + } + + public function getTargets() + { + return $this->targets; + } +} + +class Google_Service_Drive_AboutMaxUploadSizes extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $size; + public $type; + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Drive_AboutQuotaBytesByService extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $bytesUsed; + public $serviceName; + + public function setBytesUsed($bytesUsed) + { + $this->bytesUsed = $bytesUsed; + } + + public function getBytesUsed() + { + return $this->bytesUsed; + } + + public function setServiceName($serviceName) + { + $this->serviceName = $serviceName; + } + + public function getServiceName() + { + return $this->serviceName; + } +} + +class Google_Service_Drive_App extends Google_Collection +{ + protected $collection_key = 'secondaryMimeTypes'; + protected $internal_gapi_mappings = array( + ); + public $authorized; + public $createInFolderTemplate; + public $createUrl; + public $hasDriveWideScope; + protected $iconsType = 'Google_Service_Drive_AppIcons'; + protected $iconsDataType = 'array'; + public $id; + public $installed; + public $kind; + public $longDescription; + public $name; + public $objectType; + public $openUrlTemplate; + public $primaryFileExtensions; + public $primaryMimeTypes; + public $productId; + public $productUrl; + public $secondaryFileExtensions; + public $secondaryMimeTypes; + public $shortDescription; + public $supportsCreate; + public $supportsImport; + public $supportsMultiOpen; + public $supportsOfflineCreate; + public $useByDefault; + + public function setAuthorized($authorized) + { + $this->authorized = $authorized; + } + + public function getAuthorized() + { + return $this->authorized; + } + + public function setCreateInFolderTemplate($createInFolderTemplate) + { + $this->createInFolderTemplate = $createInFolderTemplate; + } + + public function getCreateInFolderTemplate() + { + return $this->createInFolderTemplate; + } + + public function setCreateUrl($createUrl) + { + $this->createUrl = $createUrl; + } + + public function getCreateUrl() + { + return $this->createUrl; + } + + public function setHasDriveWideScope($hasDriveWideScope) + { + $this->hasDriveWideScope = $hasDriveWideScope; + } + + public function getHasDriveWideScope() + { + return $this->hasDriveWideScope; + } + + public function setIcons($icons) + { + $this->icons = $icons; + } + + public function getIcons() + { + return $this->icons; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setInstalled($installed) + { + $this->installed = $installed; + } + + public function getInstalled() + { + return $this->installed; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLongDescription($longDescription) + { + $this->longDescription = $longDescription; + } + + public function getLongDescription() + { + return $this->longDescription; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setObjectType($objectType) + { + $this->objectType = $objectType; + } + + public function getObjectType() + { + return $this->objectType; + } + + public function setOpenUrlTemplate($openUrlTemplate) + { + $this->openUrlTemplate = $openUrlTemplate; + } + + public function getOpenUrlTemplate() + { + return $this->openUrlTemplate; + } + + public function setPrimaryFileExtensions($primaryFileExtensions) + { + $this->primaryFileExtensions = $primaryFileExtensions; + } + + public function getPrimaryFileExtensions() + { + return $this->primaryFileExtensions; + } + + public function setPrimaryMimeTypes($primaryMimeTypes) + { + $this->primaryMimeTypes = $primaryMimeTypes; + } + + public function getPrimaryMimeTypes() + { + return $this->primaryMimeTypes; + } + + public function setProductId($productId) + { + $this->productId = $productId; + } + + public function getProductId() + { + return $this->productId; + } + + public function setProductUrl($productUrl) + { + $this->productUrl = $productUrl; + } + + public function getProductUrl() + { + return $this->productUrl; + } + + public function setSecondaryFileExtensions($secondaryFileExtensions) + { + $this->secondaryFileExtensions = $secondaryFileExtensions; + } + + public function getSecondaryFileExtensions() + { + return $this->secondaryFileExtensions; + } + + public function setSecondaryMimeTypes($secondaryMimeTypes) + { + $this->secondaryMimeTypes = $secondaryMimeTypes; + } + + public function getSecondaryMimeTypes() + { + return $this->secondaryMimeTypes; + } + + public function setShortDescription($shortDescription) + { + $this->shortDescription = $shortDescription; + } + + public function getShortDescription() + { + return $this->shortDescription; + } + + public function setSupportsCreate($supportsCreate) + { + $this->supportsCreate = $supportsCreate; + } + + public function getSupportsCreate() + { + return $this->supportsCreate; + } + + public function setSupportsImport($supportsImport) + { + $this->supportsImport = $supportsImport; + } + + public function getSupportsImport() + { + return $this->supportsImport; + } + + public function setSupportsMultiOpen($supportsMultiOpen) + { + $this->supportsMultiOpen = $supportsMultiOpen; + } + + public function getSupportsMultiOpen() + { + return $this->supportsMultiOpen; + } + + public function setSupportsOfflineCreate($supportsOfflineCreate) + { + $this->supportsOfflineCreate = $supportsOfflineCreate; + } + + public function getSupportsOfflineCreate() + { + return $this->supportsOfflineCreate; + } + + public function setUseByDefault($useByDefault) + { + $this->useByDefault = $useByDefault; + } + + public function getUseByDefault() + { + return $this->useByDefault; + } +} + +class Google_Service_Drive_AppIcons extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $category; + public $iconUrl; + public $size; + + public function setCategory($category) + { + $this->category = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setIconUrl($iconUrl) + { + $this->iconUrl = $iconUrl; + } + + public function getIconUrl() + { + return $this->iconUrl; + } + + public function setSize($size) + { + $this->size = $size; + } + + public function getSize() + { + return $this->size; + } +} + +class Google_Service_Drive_AppList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $defaultAppIds; + public $etag; + protected $itemsType = 'Google_Service_Drive_App'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setDefaultAppIds($defaultAppIds) + { + $this->defaultAppIds = $defaultAppIds; + } + + public function getDefaultAppIds() + { + return $this->defaultAppIds; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Change extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $deleted; + protected $fileType = 'Google_Service_Drive_DriveFile'; + protected $fileDataType = ''; + public $fileId; + public $id; + public $kind; + public $modificationDate; + public $selfLink; + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setFile(Google_Service_Drive_DriveFile $file) + { + $this->file = $file; + } + + public function getFile() + { + return $this->file; + } + + public function setFileId($fileId) + { + $this->fileId = $fileId; + } + + public function getFileId() + { + return $this->fileId; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModificationDate($modificationDate) + { + $this->modificationDate = $modificationDate; + } + + public function getModificationDate() + { + return $this->modificationDate; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ChangeList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Change'; + protected $itemsDataType = 'array'; + public $kind; + public $largestChangeId; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLargestChangeId($largestChangeId) + { + $this->largestChangeId = $largestChangeId; + } + + public function getLargestChangeId() + { + return $this->largestChangeId; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Channel extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $address; + public $expiration; + public $id; + public $kind; + public $params; + public $payload; + public $resourceId; + public $resourceUri; + public $token; + public $type; + + public function setAddress($address) + { + $this->address = $address; + } + + public function getAddress() + { + return $this->address; + } + + public function setExpiration($expiration) + { + $this->expiration = $expiration; + } + + public function getExpiration() + { + return $this->expiration; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParams($params) + { + $this->params = $params; + } + + public function getParams() + { + return $this->params; + } + + public function setPayload($payload) + { + $this->payload = $payload; + } + + public function getPayload() + { + return $this->payload; + } + + public function setResourceId($resourceId) + { + $this->resourceId = $resourceId; + } + + public function getResourceId() + { + return $this->resourceId; + } + + public function setResourceUri($resourceUri) + { + $this->resourceUri = $resourceUri; + } + + public function getResourceUri() + { + return $this->resourceUri; + } + + public function setToken($token) + { + $this->token = $token; + } + + public function getToken() + { + return $this->token; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } +} + +class Google_Service_Drive_ChannelParams extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_ChildList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_ChildReference'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ChildReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $childLink; + public $id; + public $kind; + public $selfLink; + + public function setChildLink($childLink) + { + $this->childLink = $childLink; + } + + public function getChildLink() + { + return $this->childLink; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Comment extends Google_Collection +{ + protected $collection_key = 'replies'; + protected $internal_gapi_mappings = array( + ); + public $anchor; + protected $authorType = 'Google_Service_Drive_User'; + protected $authorDataType = ''; + public $commentId; + public $content; + protected $contextType = 'Google_Service_Drive_CommentContext'; + protected $contextDataType = ''; + public $createdDate; + public $deleted; + public $fileId; + public $fileTitle; + public $htmlContent; + public $kind; + public $modifiedDate; + protected $repliesType = 'Google_Service_Drive_CommentReply'; + protected $repliesDataType = 'array'; + public $selfLink; + public $status; + + public function setAnchor($anchor) + { + $this->anchor = $anchor; + } + + public function getAnchor() + { + return $this->anchor; + } + + public function setAuthor(Google_Service_Drive_User $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setCommentId($commentId) + { + $this->commentId = $commentId; + } + + public function getCommentId() + { + return $this->commentId; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setContext(Google_Service_Drive_CommentContext $context) + { + $this->context = $context; + } + + public function getContext() + { + return $this->context; + } + + public function setCreatedDate($createdDate) + { + $this->createdDate = $createdDate; + } + + public function getCreatedDate() + { + return $this->createdDate; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setFileId($fileId) + { + $this->fileId = $fileId; + } + + public function getFileId() + { + return $this->fileId; + } + + public function setFileTitle($fileTitle) + { + $this->fileTitle = $fileTitle; + } + + public function getFileTitle() + { + return $this->fileTitle; + } + + public function setHtmlContent($htmlContent) + { + $this->htmlContent = $htmlContent; + } + + public function getHtmlContent() + { + return $this->htmlContent; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setReplies($replies) + { + $this->replies = $replies; + } + + public function getReplies() + { + return $this->replies; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setStatus($status) + { + $this->status = $status; + } + + public function getStatus() + { + return $this->status; + } +} + +class Google_Service_Drive_CommentContext extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $type; + public $value; + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } +} + +class Google_Service_Drive_CommentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Drive_Comment'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_CommentReply extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + protected $authorType = 'Google_Service_Drive_User'; + protected $authorDataType = ''; + public $content; + public $createdDate; + public $deleted; + public $htmlContent; + public $kind; + public $modifiedDate; + public $replyId; + public $verb; + + public function setAuthor(Google_Service_Drive_User $author) + { + $this->author = $author; + } + + public function getAuthor() + { + return $this->author; + } + + public function setContent($content) + { + $this->content = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setCreatedDate($createdDate) + { + $this->createdDate = $createdDate; + } + + public function getCreatedDate() + { + return $this->createdDate; + } + + public function setDeleted($deleted) + { + $this->deleted = $deleted; + } + + public function getDeleted() + { + return $this->deleted; + } + + public function setHtmlContent($htmlContent) + { + $this->htmlContent = $htmlContent; + } + + public function getHtmlContent() + { + return $this->htmlContent; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setReplyId($replyId) + { + $this->replyId = $replyId; + } + + public function getReplyId() + { + return $this->replyId; + } + + public function setVerb($verb) + { + $this->verb = $verb; + } + + public function getVerb() + { + return $this->verb; + } +} + +class Google_Service_Drive_CommentReplyList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + protected $itemsType = 'Google_Service_Drive_CommentReply'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_DriveFile extends Google_Collection +{ + protected $collection_key = 'properties'; + protected $internal_gapi_mappings = array( + ); + public $alternateLink; + public $appDataContents; + public $copyable; + public $createdDate; + public $defaultOpenWithLink; + public $description; + public $downloadUrl; + public $editable; + public $embedLink; + public $etag; + public $explicitlyTrashed; + public $exportLinks; + public $fileExtension; + public $fileSize; + public $headRevisionId; + public $iconLink; + public $id; + protected $imageMediaMetadataType = 'Google_Service_Drive_DriveFileImageMediaMetadata'; + protected $imageMediaMetadataDataType = ''; + protected $indexableTextType = 'Google_Service_Drive_DriveFileIndexableText'; + protected $indexableTextDataType = ''; + public $kind; + protected $labelsType = 'Google_Service_Drive_DriveFileLabels'; + protected $labelsDataType = ''; + protected $lastModifyingUserType = 'Google_Service_Drive_User'; + protected $lastModifyingUserDataType = ''; + public $lastModifyingUserName; + public $lastViewedByMeDate; + public $markedViewedByMeDate; + public $md5Checksum; + public $mimeType; + public $modifiedByMeDate; + public $modifiedDate; + public $openWithLinks; + public $originalFilename; + public $ownerNames; + protected $ownersType = 'Google_Service_Drive_User'; + protected $ownersDataType = 'array'; + protected $parentsType = 'Google_Service_Drive_ParentReference'; + protected $parentsDataType = 'array'; + protected $permissionsType = 'Google_Service_Drive_Permission'; + protected $permissionsDataType = 'array'; + protected $propertiesType = 'Google_Service_Drive_Property'; + protected $propertiesDataType = 'array'; + public $quotaBytesUsed; + public $selfLink; + public $shared; + public $sharedWithMeDate; + protected $sharingUserType = 'Google_Service_Drive_User'; + protected $sharingUserDataType = ''; + protected $thumbnailType = 'Google_Service_Drive_DriveFileThumbnail'; + protected $thumbnailDataType = ''; + public $thumbnailLink; + public $title; + protected $userPermissionType = 'Google_Service_Drive_Permission'; + protected $userPermissionDataType = ''; + public $version; + protected $videoMediaMetadataType = 'Google_Service_Drive_DriveFileVideoMediaMetadata'; + protected $videoMediaMetadataDataType = ''; + public $webContentLink; + public $webViewLink; + public $writersCanShare; + + public function setAlternateLink($alternateLink) + { + $this->alternateLink = $alternateLink; + } + + public function getAlternateLink() + { + return $this->alternateLink; + } + + public function setAppDataContents($appDataContents) + { + $this->appDataContents = $appDataContents; + } + + public function getAppDataContents() + { + return $this->appDataContents; + } + + public function setCopyable($copyable) + { + $this->copyable = $copyable; + } + + public function getCopyable() + { + return $this->copyable; + } + + public function setCreatedDate($createdDate) + { + $this->createdDate = $createdDate; + } + + public function getCreatedDate() + { + return $this->createdDate; + } + + public function setDefaultOpenWithLink($defaultOpenWithLink) + { + $this->defaultOpenWithLink = $defaultOpenWithLink; + } + + public function getDefaultOpenWithLink() + { + return $this->defaultOpenWithLink; + } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setDownloadUrl($downloadUrl) + { + $this->downloadUrl = $downloadUrl; + } + + public function getDownloadUrl() + { + return $this->downloadUrl; + } + + public function setEditable($editable) + { + $this->editable = $editable; + } + + public function getEditable() + { + return $this->editable; + } + + public function setEmbedLink($embedLink) + { + $this->embedLink = $embedLink; + } + + public function getEmbedLink() + { + return $this->embedLink; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExplicitlyTrashed($explicitlyTrashed) + { + $this->explicitlyTrashed = $explicitlyTrashed; + } + + public function getExplicitlyTrashed() + { + return $this->explicitlyTrashed; + } + + public function setExportLinks($exportLinks) + { + $this->exportLinks = $exportLinks; + } + + public function getExportLinks() + { + return $this->exportLinks; + } + + public function setFileExtension($fileExtension) + { + $this->fileExtension = $fileExtension; + } + + public function getFileExtension() + { + return $this->fileExtension; + } + + public function setFileSize($fileSize) + { + $this->fileSize = $fileSize; + } + + public function getFileSize() + { + return $this->fileSize; + } + + public function setHeadRevisionId($headRevisionId) + { + $this->headRevisionId = $headRevisionId; + } + + public function getHeadRevisionId() + { + return $this->headRevisionId; + } + + public function setIconLink($iconLink) + { + $this->iconLink = $iconLink; + } + + public function getIconLink() + { + return $this->iconLink; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setImageMediaMetadata(Google_Service_Drive_DriveFileImageMediaMetadata $imageMediaMetadata) + { + $this->imageMediaMetadata = $imageMediaMetadata; + } + + public function getImageMediaMetadata() + { + return $this->imageMediaMetadata; + } + + public function setIndexableText(Google_Service_Drive_DriveFileIndexableText $indexableText) + { + $this->indexableText = $indexableText; + } + + public function getIndexableText() + { + return $this->indexableText; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLabels(Google_Service_Drive_DriveFileLabels $labels) + { + $this->labels = $labels; + } + + public function getLabels() + { + return $this->labels; + } + + public function setLastModifyingUser(Google_Service_Drive_User $lastModifyingUser) + { + $this->lastModifyingUser = $lastModifyingUser; + } + + public function getLastModifyingUser() + { + return $this->lastModifyingUser; + } + + public function setLastModifyingUserName($lastModifyingUserName) + { + $this->lastModifyingUserName = $lastModifyingUserName; + } + + public function getLastModifyingUserName() + { + return $this->lastModifyingUserName; + } + + public function setLastViewedByMeDate($lastViewedByMeDate) + { + $this->lastViewedByMeDate = $lastViewedByMeDate; + } + + public function getLastViewedByMeDate() + { + return $this->lastViewedByMeDate; + } + + public function setMarkedViewedByMeDate($markedViewedByMeDate) + { + $this->markedViewedByMeDate = $markedViewedByMeDate; + } + + public function getMarkedViewedByMeDate() + { + return $this->markedViewedByMeDate; + } + + public function setMd5Checksum($md5Checksum) + { + $this->md5Checksum = $md5Checksum; + } + + public function getMd5Checksum() + { + return $this->md5Checksum; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setModifiedByMeDate($modifiedByMeDate) + { + $this->modifiedByMeDate = $modifiedByMeDate; + } + + public function getModifiedByMeDate() + { + return $this->modifiedByMeDate; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setOpenWithLinks($openWithLinks) + { + $this->openWithLinks = $openWithLinks; + } + + public function getOpenWithLinks() + { + return $this->openWithLinks; + } + + public function setOriginalFilename($originalFilename) + { + $this->originalFilename = $originalFilename; + } + + public function getOriginalFilename() + { + return $this->originalFilename; + } + + public function setOwnerNames($ownerNames) + { + $this->ownerNames = $ownerNames; + } + + public function getOwnerNames() + { + return $this->ownerNames; + } + + public function setOwners($owners) + { + $this->owners = $owners; + } + + public function getOwners() + { + return $this->owners; + } + + public function setParents($parents) + { + $this->parents = $parents; + } + + public function getParents() + { + return $this->parents; + } + + public function setPermissions($permissions) + { + $this->permissions = $permissions; + } + + public function getPermissions() + { + return $this->permissions; + } + + public function setProperties($properties) + { + $this->properties = $properties; + } + + public function getProperties() + { + return $this->properties; + } + + public function setQuotaBytesUsed($quotaBytesUsed) + { + $this->quotaBytesUsed = $quotaBytesUsed; + } + + public function getQuotaBytesUsed() + { + return $this->quotaBytesUsed; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setShared($shared) + { + $this->shared = $shared; + } + + public function getShared() + { + return $this->shared; + } + + public function setSharedWithMeDate($sharedWithMeDate) + { + $this->sharedWithMeDate = $sharedWithMeDate; + } + + public function getSharedWithMeDate() + { + return $this->sharedWithMeDate; + } + + public function setSharingUser(Google_Service_Drive_User $sharingUser) + { + $this->sharingUser = $sharingUser; + } + + public function getSharingUser() + { + return $this->sharingUser; + } + + public function setThumbnail(Google_Service_Drive_DriveFileThumbnail $thumbnail) + { + $this->thumbnail = $thumbnail; + } + + public function getThumbnail() + { + return $this->thumbnail; + } + + public function setThumbnailLink($thumbnailLink) + { + $this->thumbnailLink = $thumbnailLink; + } + + public function getThumbnailLink() + { + return $this->thumbnailLink; + } + + public function setTitle($title) + { + $this->title = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUserPermission(Google_Service_Drive_Permission $userPermission) + { + $this->userPermission = $userPermission; + } + + public function getUserPermission() + { + return $this->userPermission; + } + + public function setVersion($version) + { + $this->version = $version; + } + + public function getVersion() + { + return $this->version; + } + + public function setVideoMediaMetadata(Google_Service_Drive_DriveFileVideoMediaMetadata $videoMediaMetadata) + { + $this->videoMediaMetadata = $videoMediaMetadata; + } + + public function getVideoMediaMetadata() + { + return $this->videoMediaMetadata; + } + + public function setWebContentLink($webContentLink) + { + $this->webContentLink = $webContentLink; + } + + public function getWebContentLink() + { + return $this->webContentLink; + } + + public function setWebViewLink($webViewLink) + { + $this->webViewLink = $webViewLink; + } + + public function getWebViewLink() + { + return $this->webViewLink; + } + + public function setWritersCanShare($writersCanShare) + { + $this->writersCanShare = $writersCanShare; + } + + public function getWritersCanShare() + { + return $this->writersCanShare; + } +} + +class Google_Service_Drive_DriveFileExportLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_DriveFileImageMediaMetadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $aperture; + public $cameraMake; + public $cameraModel; + public $colorSpace; + public $date; + public $exposureBias; + public $exposureMode; + public $exposureTime; + public $flashUsed; + public $focalLength; + public $height; + public $isoSpeed; + public $lens; + protected $locationType = 'Google_Service_Drive_DriveFileImageMediaMetadataLocation'; + protected $locationDataType = ''; + public $maxApertureValue; + public $meteringMode; + public $rotation; + public $sensor; + public $subjectDistance; + public $whiteBalance; + public $width; + + public function setAperture($aperture) + { + $this->aperture = $aperture; + } + + public function getAperture() + { + return $this->aperture; + } + + public function setCameraMake($cameraMake) + { + $this->cameraMake = $cameraMake; + } + + public function getCameraMake() + { + return $this->cameraMake; + } + + public function setCameraModel($cameraModel) + { + $this->cameraModel = $cameraModel; + } + + public function getCameraModel() + { + return $this->cameraModel; + } + + public function setColorSpace($colorSpace) + { + $this->colorSpace = $colorSpace; + } + + public function getColorSpace() + { + return $this->colorSpace; + } + + public function setDate($date) + { + $this->date = $date; + } + + public function getDate() + { + return $this->date; + } + + public function setExposureBias($exposureBias) + { + $this->exposureBias = $exposureBias; + } + + public function getExposureBias() + { + return $this->exposureBias; + } + + public function setExposureMode($exposureMode) + { + $this->exposureMode = $exposureMode; + } + + public function getExposureMode() + { + return $this->exposureMode; + } + + public function setExposureTime($exposureTime) + { + $this->exposureTime = $exposureTime; + } + + public function getExposureTime() + { + return $this->exposureTime; + } + + public function setFlashUsed($flashUsed) + { + $this->flashUsed = $flashUsed; + } + + public function getFlashUsed() + { + return $this->flashUsed; + } + + public function setFocalLength($focalLength) + { + $this->focalLength = $focalLength; + } + + public function getFocalLength() + { + return $this->focalLength; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setIsoSpeed($isoSpeed) + { + $this->isoSpeed = $isoSpeed; + } + + public function getIsoSpeed() + { + return $this->isoSpeed; + } + + public function setLens($lens) + { + $this->lens = $lens; + } + + public function getLens() + { + return $this->lens; + } + + public function setLocation(Google_Service_Drive_DriveFileImageMediaMetadataLocation $location) + { + $this->location = $location; + } + + public function getLocation() + { + return $this->location; + } + + public function setMaxApertureValue($maxApertureValue) + { + $this->maxApertureValue = $maxApertureValue; + } + + public function getMaxApertureValue() + { + return $this->maxApertureValue; + } + + public function setMeteringMode($meteringMode) + { + $this->meteringMode = $meteringMode; + } + + public function getMeteringMode() + { + return $this->meteringMode; + } + + public function setRotation($rotation) + { + $this->rotation = $rotation; + } + + public function getRotation() + { + return $this->rotation; + } + + public function setSensor($sensor) + { + $this->sensor = $sensor; + } + + public function getSensor() + { + return $this->sensor; + } + + public function setSubjectDistance($subjectDistance) + { + $this->subjectDistance = $subjectDistance; + } + + public function getSubjectDistance() + { + return $this->subjectDistance; + } + + public function setWhiteBalance($whiteBalance) + { + $this->whiteBalance = $whiteBalance; + } + + public function getWhiteBalance() + { + return $this->whiteBalance; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Drive_DriveFileImageMediaMetadataLocation extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $altitude; + public $latitude; + public $longitude; + + public function setAltitude($altitude) + { + $this->altitude = $altitude; + } + + public function getAltitude() + { + return $this->altitude; + } + + public function setLatitude($latitude) + { + $this->latitude = $latitude; + } + + public function getLatitude() + { + return $this->latitude; + } + + public function setLongitude($longitude) + { + $this->longitude = $longitude; + } + + public function getLongitude() + { + return $this->longitude; + } +} + +class Google_Service_Drive_DriveFileIndexableText extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $text; + + public function setText($text) + { + $this->text = $text; + } + + public function getText() + { + return $this->text; + } +} + +class Google_Service_Drive_DriveFileLabels extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $hidden; + public $restricted; + public $starred; + public $trashed; + public $viewed; + + public function setHidden($hidden) + { + $this->hidden = $hidden; + } + + public function getHidden() + { + return $this->hidden; + } + + public function setRestricted($restricted) + { + $this->restricted = $restricted; + } + + public function getRestricted() + { + return $this->restricted; + } + + public function setStarred($starred) + { + $this->starred = $starred; + } + + public function getStarred() + { + return $this->starred; + } + + public function setTrashed($trashed) + { + $this->trashed = $trashed; + } + + public function getTrashed() + { + return $this->trashed; + } + + public function setViewed($viewed) + { + $this->viewed = $viewed; + } + + public function getViewed() + { + return $this->viewed; + } +} + +class Google_Service_Drive_DriveFileOpenWithLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_DriveFileThumbnail extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $image; + public $mimeType; + + public function setImage($image) + { + $this->image = $image; + } + + public function getImage() + { + return $this->image; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } +} + +class Google_Service_Drive_DriveFileVideoMediaMetadata extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $durationMillis; + public $height; + public $width; + + public function setDurationMillis($durationMillis) + { + $this->durationMillis = $durationMillis; + } + + public function getDurationMillis() + { + return $this->durationMillis; + } + + public function setHeight($height) + { + $this->height = $height; + } + + public function getHeight() + { + return $this->height; + } + + public function setWidth($width) + { + $this->width = $width; + } + + public function getWidth() + { + return $this->width; + } +} + +class Google_Service_Drive_FileList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_DriveFile'; + protected $itemsDataType = 'array'; + public $kind; + public $nextLink; + public $nextPageToken; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setNextLink($nextLink) + { + $this->nextLink = $nextLink; + } + + public function getNextLink() + { + return $this->nextLink; + } + + public function setNextPageToken($nextPageToken) + { + $this->nextPageToken = $nextPageToken; + } + + public function getNextPageToken() + { + return $this->nextPageToken; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ParentList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_ParentReference'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_ParentReference extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $isRoot; + public $kind; + public $parentLink; + public $selfLink; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setIsRoot($isRoot) + { + $this->isRoot = $isRoot; + } + + public function getIsRoot() + { + return $this->isRoot; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setParentLink($parentLink) + { + $this->parentLink = $parentLink; + } + + public function getParentLink() + { + return $this->parentLink; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Permission extends Google_Collection +{ + protected $collection_key = 'additionalRoles'; + protected $internal_gapi_mappings = array( + ); + public $additionalRoles; + public $authKey; + public $domain; + public $emailAddress; + public $etag; + public $id; + public $kind; + public $name; + public $photoLink; + public $role; + public $selfLink; + public $type; + public $value; + public $withLink; + + public function setAdditionalRoles($additionalRoles) + { + $this->additionalRoles = $additionalRoles; + } + + public function getAdditionalRoles() + { + return $this->additionalRoles; + } + + public function setAuthKey($authKey) + { + $this->authKey = $authKey; + } + + public function getAuthKey() + { + return $this->authKey; + } + + public function setDomain($domain) + { + $this->domain = $domain; + } + + public function getDomain() + { + return $this->domain; + } + + public function setEmailAddress($emailAddress) + { + $this->emailAddress = $emailAddress; + } + + public function getEmailAddress() + { + return $this->emailAddress; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function setPhotoLink($photoLink) + { + $this->photoLink = $photoLink; + } + + public function getPhotoLink() + { + return $this->photoLink; + } + + public function setRole($role) + { + $this->role = $role; + } + + public function getRole() + { + return $this->role; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setType($type) + { + $this->type = $type; + } + + public function getType() + { + return $this->type; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } + + public function setWithLink($withLink) + { + $this->withLink = $withLink; + } + + public function getWithLink() + { + return $this->withLink; + } +} + +class Google_Service_Drive_PermissionId extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $id; + public $kind; + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } +} + +class Google_Service_Drive_PermissionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Permission'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Property extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $etag; + public $key; + public $kind; + public $selfLink; + public $value; + public $visibility; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setKey($key) + { + $this->key = $key; + } + + public function getKey() + { + return $this->key; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function getValue() + { + return $this->value; + } + + public function setVisibility($visibility) + { + $this->visibility = $visibility; + } + + public function getVisibility() + { + return $this->visibility; + } +} + +class Google_Service_Drive_PropertyList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Property'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_Revision extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $downloadUrl; + public $etag; + public $exportLinks; + public $fileSize; + public $id; + public $kind; + protected $lastModifyingUserType = 'Google_Service_Drive_User'; + protected $lastModifyingUserDataType = ''; + public $lastModifyingUserName; + public $md5Checksum; + public $mimeType; + public $modifiedDate; + public $originalFilename; + public $pinned; + public $publishAuto; + public $published; + public $publishedLink; + public $publishedOutsideDomain; + public $selfLink; + + public function setDownloadUrl($downloadUrl) + { + $this->downloadUrl = $downloadUrl; + } + + public function getDownloadUrl() + { + return $this->downloadUrl; + } + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setExportLinks($exportLinks) + { + $this->exportLinks = $exportLinks; + } + + public function getExportLinks() + { + return $this->exportLinks; + } + + public function setFileSize($fileSize) + { + $this->fileSize = $fileSize; + } + + public function getFileSize() + { + return $this->fileSize; + } + + public function setId($id) + { + $this->id = $id; + } + + public function getId() + { + return $this->id; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setLastModifyingUser(Google_Service_Drive_User $lastModifyingUser) + { + $this->lastModifyingUser = $lastModifyingUser; + } + + public function getLastModifyingUser() + { + return $this->lastModifyingUser; + } + + public function setLastModifyingUserName($lastModifyingUserName) + { + $this->lastModifyingUserName = $lastModifyingUserName; + } + + public function getLastModifyingUserName() + { + return $this->lastModifyingUserName; + } + + public function setMd5Checksum($md5Checksum) + { + $this->md5Checksum = $md5Checksum; + } + + public function getMd5Checksum() + { + return $this->md5Checksum; + } + + public function setMimeType($mimeType) + { + $this->mimeType = $mimeType; + } + + public function getMimeType() + { + return $this->mimeType; + } + + public function setModifiedDate($modifiedDate) + { + $this->modifiedDate = $modifiedDate; + } + + public function getModifiedDate() + { + return $this->modifiedDate; + } + + public function setOriginalFilename($originalFilename) + { + $this->originalFilename = $originalFilename; + } + + public function getOriginalFilename() + { + return $this->originalFilename; + } + + public function setPinned($pinned) + { + $this->pinned = $pinned; + } + + public function getPinned() + { + return $this->pinned; + } + + public function setPublishAuto($publishAuto) + { + $this->publishAuto = $publishAuto; + } + + public function getPublishAuto() + { + return $this->publishAuto; + } + + public function setPublished($published) + { + $this->published = $published; + } + + public function getPublished() + { + return $this->published; + } + + public function setPublishedLink($publishedLink) + { + $this->publishedLink = $publishedLink; + } + + public function getPublishedLink() + { + return $this->publishedLink; + } + + public function setPublishedOutsideDomain($publishedOutsideDomain) + { + $this->publishedOutsideDomain = $publishedOutsideDomain; + } + + public function getPublishedOutsideDomain() + { + return $this->publishedOutsideDomain; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_RevisionExportLinks extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); +} + +class Google_Service_Drive_RevisionList extends Google_Collection +{ + protected $collection_key = 'items'; + protected $internal_gapi_mappings = array( + ); + public $etag; + protected $itemsType = 'Google_Service_Drive_Revision'; + protected $itemsDataType = 'array'; + public $kind; + public $selfLink; + + public function setEtag($etag) + { + $this->etag = $etag; + } + + public function getEtag() + { + return $this->etag; + } + + public function setItems($items) + { + $this->items = $items; + } + + public function getItems() + { + return $this->items; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setSelfLink($selfLink) + { + $this->selfLink = $selfLink; + } + + public function getSelfLink() + { + return $this->selfLink; + } +} + +class Google_Service_Drive_User extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $displayName; + public $emailAddress; + public $isAuthenticatedUser; + public $kind; + public $permissionId; + protected $pictureType = 'Google_Service_Drive_UserPicture'; + protected $pictureDataType = ''; + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setEmailAddress($emailAddress) + { + $this->emailAddress = $emailAddress; + } + + public function getEmailAddress() + { + return $this->emailAddress; + } + + public function setIsAuthenticatedUser($isAuthenticatedUser) + { + $this->isAuthenticatedUser = $isAuthenticatedUser; + } + + public function getIsAuthenticatedUser() + { + return $this->isAuthenticatedUser; + } + + public function setKind($kind) + { + $this->kind = $kind; + } + + public function getKind() + { + return $this->kind; + } + + public function setPermissionId($permissionId) + { + $this->permissionId = $permissionId; + } + + public function getPermissionId() + { + return $this->permissionId; + } + + public function setPicture(Google_Service_Drive_UserPicture $picture) + { + $this->picture = $picture; + } + + public function getPicture() + { + return $this->picture; + } +} + +class Google_Service_Drive_UserPicture extends Google_Model +{ + protected $internal_gapi_mappings = array( + ); + public $url; + + public function setUrl($url) + { + $this->url = $url; + } + + public function getUrl() + { + return $this->url; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..a780ff7b47cde2ffa5b699a122949d2153c8697e --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php @@ -0,0 +1,53 @@ += 0) { + parent::__construct($message, $code, $previous); + } else { + parent::__construct($message, $code); + } + + $this->errors = $errors; + } + + /** + * An example of the possible errors returned. + * + * { + * "domain": "global", + * "reason": "authError", + * "message": "Invalid Credentials", + * "locationType": "header", + * "location": "Authorization", + * } + * + * @return [{string, string}] List of errors return in an HTTP response or []. + */ + public function getErrors() + { + return $this->errors; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php new file mode 100644 index 0000000000000000000000000000000000000000..d396907e1d0ce394353161331337c8e3c3911da0 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php @@ -0,0 +1,210 @@ + + * @author Chirag Shah + * + */ +class Google_Service_Resource +{ + // Valid query parameters that work, but don't appear in discovery. + private $stackParameters = array( + 'alt' => array('type' => 'string', 'location' => 'query'), + 'fields' => array('type' => 'string', 'location' => 'query'), + 'trace' => array('type' => 'string', 'location' => 'query'), + 'userIp' => array('type' => 'string', 'location' => 'query'), + 'userip' => array('type' => 'string', 'location' => 'query'), + 'quotaUser' => array('type' => 'string', 'location' => 'query'), + 'data' => array('type' => 'string', 'location' => 'body'), + 'mimeType' => array('type' => 'string', 'location' => 'header'), + 'uploadType' => array('type' => 'string', 'location' => 'query'), + 'mediaUpload' => array('type' => 'complex', 'location' => 'query'), + ); + + /** @var Google_Service $service */ + private $service; + + /** @var Google_Client $client */ + private $client; + + /** @var string $serviceName */ + private $serviceName; + + /** @var string $resourceName */ + private $resourceName; + + /** @var array $methods */ + private $methods; + + public function __construct($service, $serviceName, $resourceName, $resource) + { + $this->service = $service; + $this->client = $service->getClient(); + $this->serviceName = $serviceName; + $this->resourceName = $resourceName; + $this->methods = isset($resource['methods']) ? + $resource['methods'] : + array($resourceName => $resource); + } + + /** + * TODO(ianbarber): This function needs simplifying. + * @param $name + * @param $arguments + * @param $expected_class - optional, the expected class name + * @return Google_Http_Request|expected_class + * @throws Google_Exception + */ + public function call($name, $arguments, $expected_class = null) + { + if (! isset($this->methods[$name])) { + throw new Google_Exception( + "Unknown function: " . + "{$this->serviceName}->{$this->resourceName}->{$name}()" + ); + } + $method = $this->methods[$name]; + $parameters = $arguments[0]; + + // postBody is a special case since it's not defined in the discovery + // document as parameter, but we abuse the param entry for storing it. + $postBody = null; + if (isset($parameters['postBody'])) { + if ($parameters['postBody'] instanceof Google_Model) { + // In the cases the post body is an existing object, we want + // to use the smart method to create a simple object for + // for JSONification. + $parameters['postBody'] = $parameters['postBody']->toSimpleObject(); + } else if (is_object($parameters['postBody'])) { + // If the post body is another kind of object, we will try and + // wrangle it into a sensible format. + $parameters['postBody'] = + $this->convertToArrayAndStripNulls($parameters['postBody']); + } + $postBody = json_encode($parameters['postBody']); + unset($parameters['postBody']); + } + + // TODO(ianbarber): optParams here probably should have been + // handled already - this may well be redundant code. + if (isset($parameters['optParams'])) { + $optParams = $parameters['optParams']; + unset($parameters['optParams']); + $parameters = array_merge($parameters, $optParams); + } + + if (!isset($method['parameters'])) { + $method['parameters'] = array(); + } + + $method['parameters'] = array_merge( + $method['parameters'], + $this->stackParameters + ); + foreach ($parameters as $key => $val) { + if ($key != 'postBody' && ! isset($method['parameters'][$key])) { + throw new Google_Exception("($name) unknown parameter: '$key'"); + } + } + + foreach ($method['parameters'] as $paramName => $paramSpec) { + if (isset($paramSpec['required']) && + $paramSpec['required'] && + ! isset($parameters[$paramName]) + ) { + throw new Google_Exception("($name) missing required param: '$paramName'"); + } + if (isset($parameters[$paramName])) { + $value = $parameters[$paramName]; + $parameters[$paramName] = $paramSpec; + $parameters[$paramName]['value'] = $value; + unset($parameters[$paramName]['required']); + } else { + // Ensure we don't pass nulls. + unset($parameters[$paramName]); + } + } + + $servicePath = $this->service->servicePath; + + $url = Google_Http_REST::createRequestUri( + $servicePath, + $method['path'], + $parameters + ); + $httpRequest = new Google_Http_Request( + $url, + $method['httpMethod'], + null, + $postBody + ); + $httpRequest->setBaseComponent($this->client->getBasePath()); + + if ($postBody) { + $contentTypeHeader = array(); + $contentTypeHeader['content-type'] = 'application/json; charset=UTF-8'; + $httpRequest->setRequestHeaders($contentTypeHeader); + $httpRequest->setPostBody($postBody); + } + + $httpRequest = $this->client->getAuth()->sign($httpRequest); + $httpRequest->setExpectedClass($expected_class); + + if (isset($parameters['data']) && + ($parameters['uploadType']['value'] == 'media' || $parameters['uploadType']['value'] == 'multipart')) { + // If we are doing a simple media upload, trigger that as a convenience. + $mfu = new Google_Http_MediaFileUpload( + $this->client, + $httpRequest, + isset($parameters['mimeType']) ? $parameters['mimeType']['value'] : 'application/octet-stream', + $parameters['data']['value'] + ); + } + + if ($this->client->shouldDefer()) { + // If we are in batch or upload mode, return the raw request. + return $httpRequest; + } + + return $this->client->execute($httpRequest); + } + + protected function convertToArrayAndStripNulls($o) + { + $o = (array) $o; + foreach ($o as $k => $v) { + if ($v === null) { + unset($o[$k]); + } elseif (is_object($v) || is_array($v)) { + $o[$k] = $this->convertToArrayAndStripNulls($o[$k]); + } + } + return $o; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/Abstract.php new file mode 100644 index 0000000000000000000000000000000000000000..250180920db1a76e8fa5fad62c86f7bb16d1a7f6 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/Abstract.php @@ -0,0 +1,29 @@ + + */ +abstract class Google_Signer_Abstract +{ + /** + * Signs data, returns the signature as binary data. + */ + abstract public function sign($data); +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php new file mode 100644 index 0000000000000000000000000000000000000000..7cc6098bb63625d5f37f14365eef232c00e5f8dc --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php @@ -0,0 +1,91 @@ + + */ +class Google_Signer_P12 extends Google_Signer_Abstract +{ + // OpenSSL private key resource + private $privateKey; + + // Creates a new signer from a .p12 file. + public function __construct($p12, $password) + { + if (!function_exists('openssl_x509_read')) { + throw new Google_Exception( + 'The Google PHP API library needs the openssl PHP extension' + ); + } + + // If the private key is provided directly, then this isn't in the p12 + // format. Different versions of openssl support different p12 formats + // and the key from google wasn't being accepted by the version available + // at the time. + if (!$password && strpos($p12, "-----BEGIN RSA PRIVATE KEY-----") !== false) { + $this->privateKey = openssl_pkey_get_private($p12); + } else { + // This throws on error + $certs = array(); + if (!openssl_pkcs12_read($p12, $certs, $password)) { + throw new Google_Auth_Exception( + "Unable to parse the p12 file. " . + "Is this a .p12 file? Is the password correct? OpenSSL error: " . + openssl_error_string() + ); + } + // TODO(beaton): is this part of the contract for the openssl_pkcs12_read + // method? What happens if there are multiple private keys? Do we care? + if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) { + throw new Google_Auth_Exception("No private key found in p12 file."); + } + $this->privateKey = openssl_pkey_get_private($certs['pkey']); + } + + if (!$this->privateKey) { + throw new Google_Auth_Exception("Unable to load private key"); + } + } + + public function __destruct() + { + if ($this->privateKey) { + openssl_pkey_free($this->privateKey); + } + } + + public function sign($data) + { + if (version_compare(PHP_VERSION, '5.3.0') < 0) { + throw new Google_Auth_Exception( + "PHP 5.3.0 or higher is required to use service accounts." + ); + } + $hash = defined("OPENSSL_ALGO_SHA256") ? OPENSSL_ALGO_SHA256 : "sha256"; + if (!openssl_sign($data, $signature, $this->privateKey, $hash)) { + throw new Google_Auth_Exception("Unable to sign data"); + } + return $signature; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php new file mode 100644 index 0000000000000000000000000000000000000000..f5ef32cd4d6f72d106007a065d09ba9fb5f6efef --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php @@ -0,0 +1,135 @@ + + */ +class Google_Utils +{ + public static function urlSafeB64Encode($data) + { + $b64 = base64_encode($data); + $b64 = str_replace( + array('+', '/', '\r', '\n', '='), + array('-', '_'), + $b64 + ); + return $b64; + } + + public static function urlSafeB64Decode($b64) + { + $b64 = str_replace( + array('-', '_'), + array('+', '/'), + $b64 + ); + return base64_decode($b64); + } + + /** + * Misc function used to count the number of bytes in a post body, in the + * world of multi-byte chars and the unpredictability of + * strlen/mb_strlen/sizeof, this is the only way to do that in a sane + * manner at the moment. + * + * This algorithm was originally developed for the + * Solar Framework by Paul M. Jones + * + * @link http://solarphp.com/ + * @link http://svn.solarphp.com/core/trunk/Solar/Json.php + * @link http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php + * @param string $str + * @return int The number of bytes in a string. + */ + public static function getStrLen($str) + { + $strlenVar = strlen($str); + $d = $ret = 0; + for ($count = 0; $count < $strlenVar; ++ $count) { + $ordinalValue = ord($str{$ret}); + switch (true) { + case (($ordinalValue >= 0x20) && ($ordinalValue <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ret ++; + break; + case (($ordinalValue & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 2; + break; + case (($ordinalValue & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 3; + break; + case (($ordinalValue & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 4; + break; + case (($ordinalValue & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 5; + break; + case (($ordinalValue & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $ret += 6; + break; + default: + $ret ++; + } + } + return $ret; + } + + /** + * Normalize all keys in an array to lower-case. + * @param array $arr + * @return array Normalized array. + */ + public static function normalize($arr) + { + if (!is_array($arr)) { + return array(); + } + + $normalized = array(); + foreach ($arr as $key => $val) { + $normalized[strtolower($key)] = $val; + } + return $normalized; + } + + /** + * Convert a string to camelCase + * @param string $value + * @return string + */ + public static function camelCase($value) + { + $value = ucwords(str_replace(array('-', '_'), ' ', $value)); + $value = str_replace(' ', '', $value); + $value[0] = strtolower($value[0]); + return $value; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php new file mode 100644 index 0000000000000000000000000000000000000000..f5ee38bb333db8aaf3350e488f3ec322386a2b8d --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php @@ -0,0 +1,333 @@ + "reserved", + "/" => "segments", + "." => "dotprefix", + "#" => "fragment", + ";" => "semicolon", + "?" => "form", + "&" => "continuation" + ); + + /** + * @var reserved array + * These are the characters which should not be URL encoded in reserved + * strings. + */ + private $reserved = array( + "=", ",", "!", "@", "|", ":", "/", "?", "#", + "[", "]",'$', "&", "'", "(", ")", "*", "+", ";" + ); + private $reservedEncoded = array( + "%3D", "%2C", "%21", "%40", "%7C", "%3A", "%2F", "%3F", + "%23", "%5B", "%5D", "%24", "%26", "%27", "%28", "%29", + "%2A", "%2B", "%3B" + ); + + public function parse($string, array $parameters) + { + return $this->resolveNextSection($string, $parameters); + } + + /** + * This function finds the first matching {...} block and + * executes the replacement. It then calls itself to find + * subsequent blocks, if any. + */ + private function resolveNextSection($string, $parameters) + { + $start = strpos($string, "{"); + if ($start === false) { + return $string; + } + $end = strpos($string, "}"); + if ($end === false) { + return $string; + } + $string = $this->replace($string, $start, $end, $parameters); + return $this->resolveNextSection($string, $parameters); + } + + private function replace($string, $start, $end, $parameters) + { + // We know a data block will have {} round it, so we can strip that. + $data = substr($string, $start + 1, $end - $start - 1); + + // If the first character is one of the reserved operators, it effects + // the processing of the stream. + if (isset($this->operators[$data[0]])) { + $op = $this->operators[$data[0]]; + $data = substr($data, 1); + $prefix = ""; + $prefix_on_missing = false; + + switch ($op) { + case "reserved": + // Reserved means certain characters should not be URL encoded + $data = $this->replaceVars($data, $parameters, ",", null, true); + break; + case "fragment": + // Comma separated with fragment prefix. Bare values only. + $prefix = "#"; + $prefix_on_missing = true; + $data = $this->replaceVars($data, $parameters, ",", null, true); + break; + case "segments": + // Slash separated data. Bare values only. + $prefix = "/"; + $data =$this->replaceVars($data, $parameters, "/"); + break; + case "dotprefix": + // Dot separated data. Bare values only. + $prefix = "."; + $prefix_on_missing = true; + $data = $this->replaceVars($data, $parameters, "."); + break; + case "semicolon": + // Semicolon prefixed and separated. Uses the key name + $prefix = ";"; + $data = $this->replaceVars($data, $parameters, ";", "=", false, true, false); + break; + case "form": + // Standard URL format. Uses the key name + $prefix = "?"; + $data = $this->replaceVars($data, $parameters, "&", "="); + break; + case "continuation": + // Standard URL, but with leading ampersand. Uses key name. + $prefix = "&"; + $data = $this->replaceVars($data, $parameters, "&", "="); + break; + } + + // Add the initial prefix character if data is valid. + if ($data || ($data !== false && $prefix_on_missing)) { + $data = $prefix . $data; + } + + } else { + // If no operator we replace with the defaults. + $data = $this->replaceVars($data, $parameters); + } + // This is chops out the {...} and replaces with the new section. + return substr($string, 0, $start) . $data . substr($string, $end + 1); + } + + private function replaceVars( + $section, + $parameters, + $sep = ",", + $combine = null, + $reserved = false, + $tag_empty = false, + $combine_on_empty = true + ) { + if (strpos($section, ",") === false) { + // If we only have a single value, we can immediately process. + return $this->combine( + $section, + $parameters, + $sep, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ); + } else { + // If we have multiple values, we need to split and loop over them. + // Each is treated individually, then glued together with the + // separator character. + $vars = explode(",", $section); + return $this->combineList( + $vars, + $sep, + $parameters, + $combine, + $reserved, + false, // Never emit empty strings in multi-param replacements + $combine_on_empty + ); + } + } + + public function combine( + $key, + $parameters, + $sep, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ) { + $length = false; + $explode = false; + $skip_final_combine = false; + $value = false; + + // Check for length restriction. + if (strpos($key, ":") !== false) { + list($key, $length) = explode(":", $key); + } + + // Check for explode parameter. + if ($key[strlen($key) - 1] == "*") { + $explode = true; + $key = substr($key, 0, -1); + $skip_final_combine = true; + } + + // Define the list separator. + $list_sep = $explode ? $sep : ","; + + if (isset($parameters[$key])) { + $data_type = $this->getDataType($parameters[$key]); + switch($data_type) { + case self::TYPE_SCALAR: + $value = $this->getValue($parameters[$key], $length); + break; + case self::TYPE_LIST: + $values = array(); + foreach ($parameters[$key] as $pkey => $pvalue) { + $pvalue = $this->getValue($pvalue, $length); + if ($combine && $explode) { + $values[$pkey] = $key . $combine . $pvalue; + } else { + $values[$pkey] = $pvalue; + } + } + $value = implode($list_sep, $values); + if ($value == '') { + return ''; + } + break; + case self::TYPE_MAP: + $values = array(); + foreach ($parameters[$key] as $pkey => $pvalue) { + $pvalue = $this->getValue($pvalue, $length); + if ($explode) { + $pkey = $this->getValue($pkey, $length); + $values[] = $pkey . "=" . $pvalue; // Explode triggers = combine. + } else { + $values[] = $pkey; + $values[] = $pvalue; + } + } + $value = implode($list_sep, $values); + if ($value == '') { + return false; + } + break; + } + } else if ($tag_empty) { + // If we are just indicating empty values with their key name, return that. + return $key; + } else { + // Otherwise we can skip this variable due to not being defined. + return false; + } + + if ($reserved) { + $value = str_replace($this->reservedEncoded, $this->reserved, $value); + } + + // If we do not need to include the key name, we just return the raw + // value. + if (!$combine || $skip_final_combine) { + return $value; + } + + // Else we combine the key name: foo=bar, if value is not the empty string. + return $key . ($value != '' || $combine_on_empty ? $combine . $value : ''); + } + + /** + * Return the type of a passed in value + */ + private function getDataType($data) + { + if (is_array($data)) { + reset($data); + if (key($data) !== 0) { + return self::TYPE_MAP; + } + return self::TYPE_LIST; + } + return self::TYPE_SCALAR; + } + + /** + * Utility function that merges multiple combine calls + * for multi-key templates. + */ + private function combineList( + $vars, + $sep, + $parameters, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ) { + $ret = array(); + foreach ($vars as $var) { + $response = $this->combine( + $var, + $parameters, + $sep, + $combine, + $reserved, + $tag_empty, + $combine_on_empty + ); + if ($response === false) { + continue; + } + $ret[] = $response; + } + return implode($sep, $ret); + } + + /** + * Utility function to encode and trim values + */ + private function getValue($value, $length) + { + if ($length) { + $value = substr($value, 0, $length); + } + $value = rawurlencode($value); + return $value; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Abstract.php new file mode 100644 index 0000000000000000000000000000000000000000..e6c9eeb03cca0935323109d9feaa8ca3a5a9d2bb --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Abstract.php @@ -0,0 +1,30 @@ + + */ +abstract class Google_Verifier_Abstract +{ + /** + * Checks a signature, returns true if the signature is correct, + * false otherwise. + */ + abstract public function verify($data, $signature); +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php new file mode 100644 index 0000000000000000000000000000000000000000..f281575e172cc2b9c05e1ee86f5377868261bb16 --- /dev/null +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php @@ -0,0 +1,74 @@ + + */ +class Google_Verifier_Pem extends Google_Verifier_Abstract +{ + private $publicKey; + + /** + * Constructs a verifier from the supplied PEM-encoded certificate. + * + * $pem: a PEM encoded certificate (not a file). + * @param $pem + * @throws Google_Auth_Exception + * @throws Google_Exception + */ + public function __construct($pem) + { + if (!function_exists('openssl_x509_read')) { + throw new Google_Exception('Google API PHP client needs the openssl PHP extension'); + } + $this->publicKey = openssl_x509_read($pem); + if (!$this->publicKey) { + throw new Google_Auth_Exception("Unable to parse PEM: $pem"); + } + } + + public function __destruct() + { + if ($this->publicKey) { + openssl_x509_free($this->publicKey); + } + } + + /** + * Verifies the signature on data. + * + * Returns true if the signature is valid, false otherwise. + * @param $data + * @param $signature + * @throws Google_Auth_Exception + * @return bool + */ + public function verify($data, $signature) + { + $hash = defined("OPENSSL_ALGO_SHA256") ? OPENSSL_ALGO_SHA256 : "sha256"; + $status = openssl_verify($data, $signature, $this->publicKey, $hash); + if ($status === -1) { + throw new Google_Auth_Exception('Signature verification error: ' . openssl_error_string()); + } + return $status === 1; + } +} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google_Client.php b/apps/files_external/3rdparty/google-api-php-client/src/Google_Client.php deleted file mode 100644 index 498d3a8e9dd284267226e541b1fdc30d02aa16d8..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google_Client.php +++ /dev/null @@ -1,462 +0,0 @@ - - * @author Chirag Shah - */ -class Google_Client { - /** - * @static - * @var Google_Auth $auth - */ - static $auth; - - /** - * @static - * @var Google_IO $io - */ - static $io; - - /** - * @static - * @var Google_Cache $cache - */ - static $cache; - - /** - * @static - * @var boolean $useBatch - */ - static $useBatch = false; - - /** @var array $scopes */ - protected $scopes = array(); - - /** @var bool $useObjects */ - protected $useObjects = false; - - // definitions of services that are discovered. - protected $services = array(); - - // Used to track authenticated state, can't discover services after doing authenticate() - private $authenticated = false; - - public function __construct($config = array()) { - global $apiConfig; - $apiConfig = array_merge($apiConfig, $config); - self::$cache = new $apiConfig['cacheClass'](); - self::$auth = new $apiConfig['authClass'](); - self::$io = new $apiConfig['ioClass'](); - } - - /** - * Add a service - */ - public function addService($service, $version = false) { - global $apiConfig; - if ($this->authenticated) { - throw new Google_Exception('Cant add services after having authenticated'); - } - $this->services[$service] = array(); - if (isset($apiConfig['services'][$service])) { - // Merge the service descriptor with the default values - $this->services[$service] = array_merge($this->services[$service], $apiConfig['services'][$service]); - } - } - - public function authenticate($code = null) { - $service = $this->prepareService(); - $this->authenticated = true; - return self::$auth->authenticate($service, $code); - } - - /** - * @return array - * @visible For Testing - */ - public function prepareService() { - $service = array(); - $scopes = array(); - if ($this->scopes) { - $scopes = $this->scopes; - } else { - foreach ($this->services as $key => $val) { - if (isset($val['scope'])) { - if (is_array($val['scope'])) { - $scopes = array_merge($val['scope'], $scopes); - } else { - $scopes[] = $val['scope']; - } - } else { - $scopes[] = 'https://www.googleapis.com/auth/' . $key; - } - unset($val['discoveryURI']); - unset($val['scope']); - $service = array_merge($service, $val); - } - } - $service['scope'] = implode(' ', $scopes); - return $service; - } - - /** - * Set the OAuth 2.0 access token using the string that resulted from calling authenticate() - * or Google_Client#getAccessToken(). - * @param string $accessToken JSON encoded string containing in the following format: - * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer", - * "expires_in":3600, "id_token":"TOKEN", "created":1320790426} - */ - public function setAccessToken($accessToken) { - if ($accessToken == null || 'null' == $accessToken) { - $accessToken = null; - } - self::$auth->setAccessToken($accessToken); - } - - /** - * Set the type of Auth class the client should use. - * @param string $authClassName - */ - public function setAuthClass($authClassName) { - self::$auth = new $authClassName(); - } - - /** - * Construct the OAuth 2.0 authorization request URI. - * @return string - */ - public function createAuthUrl() { - $service = $this->prepareService(); - return self::$auth->createAuthUrl($service['scope']); - } - - /** - * Get the OAuth 2.0 access token. - * @return string $accessToken JSON encoded string in the following format: - * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer", - * "expires_in":3600,"id_token":"TOKEN", "created":1320790426} - */ - public function getAccessToken() { - $token = self::$auth->getAccessToken(); - return (null == $token || 'null' == $token) ? null : $token; - } - - /** - * Returns if the access_token is expired. - * @return bool Returns True if the access_token is expired. - */ - public function isAccessTokenExpired() { - return self::$auth->isAccessTokenExpired(); - } - - /** - * Set the developer key to use, these are obtained through the API Console. - * @see http://code.google.com/apis/console-help/#generatingdevkeys - * @param string $developerKey - */ - public function setDeveloperKey($developerKey) { - self::$auth->setDeveloperKey($developerKey); - } - - /** - * Set OAuth 2.0 "state" parameter to achieve per-request customization. - * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2 - * @param string $state - */ - public function setState($state) { - self::$auth->setState($state); - } - - /** - * @param string $accessType Possible values for access_type include: - * {@code "offline"} to request offline access from the user. (This is the default value) - * {@code "online"} to request online access from the user. - */ - public function setAccessType($accessType) { - self::$auth->setAccessType($accessType); - } - - /** - * @param string $approvalPrompt Possible values for approval_prompt include: - * {@code "force"} to force the approval UI to appear. (This is the default value) - * {@code "auto"} to request auto-approval when possible. - */ - public function setApprovalPrompt($approvalPrompt) { - self::$auth->setApprovalPrompt($approvalPrompt); - } - - /** - * Set the application name, this is included in the User-Agent HTTP header. - * @param string $applicationName - */ - public function setApplicationName($applicationName) { - global $apiConfig; - $apiConfig['application_name'] = $applicationName; - } - - /** - * Set the OAuth 2.0 Client ID. - * @param string $clientId - */ - public function setClientId($clientId) { - global $apiConfig; - $apiConfig['oauth2_client_id'] = $clientId; - self::$auth->clientId = $clientId; - } - - /** - * Get the OAuth 2.0 Client ID. - */ - public function getClientId() { - return self::$auth->clientId; - } - - /** - * Set the OAuth 2.0 Client Secret. - * @param string $clientSecret - */ - public function setClientSecret($clientSecret) { - global $apiConfig; - $apiConfig['oauth2_client_secret'] = $clientSecret; - self::$auth->clientSecret = $clientSecret; - } - - /** - * Get the OAuth 2.0 Client Secret. - */ - public function getClientSecret() { - return self::$auth->clientSecret; - } - - /** - * Set the OAuth 2.0 Redirect URI. - * @param string $redirectUri - */ - public function setRedirectUri($redirectUri) { - global $apiConfig; - $apiConfig['oauth2_redirect_uri'] = $redirectUri; - self::$auth->redirectUri = $redirectUri; - } - - /** - * Get the OAuth 2.0 Redirect URI. - */ - public function getRedirectUri() { - return self::$auth->redirectUri; - } - - /** - * Fetches a fresh OAuth 2.0 access token with the given refresh token. - * @param string $refreshToken - * @return void - */ - public function refreshToken($refreshToken) { - self::$auth->refreshToken($refreshToken); - } - - /** - * Revoke an OAuth2 access token or refresh token. This method will revoke the current access - * token, if a token isn't provided. - * @throws Google_AuthException - * @param string|null $token The token (access token or a refresh token) that should be revoked. - * @return boolean Returns True if the revocation was successful, otherwise False. - */ - public function revokeToken($token = null) { - self::$auth->revokeToken($token); - } - - /** - * Verify an id_token. This method will verify the current id_token, if one - * isn't provided. - * @throws Google_AuthException - * @param string|null $token The token (id_token) that should be verified. - * @return Google_LoginTicket Returns an apiLoginTicket if the verification was - * successful. - */ - public function verifyIdToken($token = null) { - return self::$auth->verifyIdToken($token); - } - - /** - * @param Google_AssertionCredentials $creds - * @return void - */ - public function setAssertionCredentials(Google_AssertionCredentials $creds) { - self::$auth->setAssertionCredentials($creds); - } - - /** - * This function allows you to overrule the automatically generated scopes, - * so that you can ask for more or less permission in the auth flow - * Set this before you call authenticate() though! - * @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/moderator') - */ - public function setScopes($scopes) { - $this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes; - } - - /** - * Returns the list of scopes set on the client - * @return array the list of scopes - * - */ - public function getScopes() { - return $this->scopes; - } - - /** - * Declare if objects should be returned by the api service classes. - * - * @param boolean $useObjects True if objects should be returned by the service classes. - * False if associative arrays should be returned (default behavior). - * @experimental - */ - public function setUseObjects($useObjects) { - global $apiConfig; - $apiConfig['use_objects'] = $useObjects; - } - - /** - * Declare if objects should be returned by the api service classes. - * - * @param boolean $useBatch True if the experimental batch support should - * be enabled. Defaults to False. - * @experimental - */ - public function setUseBatch($useBatch) { - self::$useBatch = $useBatch; - } - - /** - * @static - * @return Google_Auth the implementation of apiAuth. - */ - public static function getAuth() { - return Google_Client::$auth; - } - - /** - * @static - * @return Google_IO the implementation of apiIo. - */ - public static function getIo() { - return Google_Client::$io; - } - - /** - * @return Google_Cache the implementation of apiCache. - */ - public function getCache() { - return Google_Client::$cache; - } -} - -// Exceptions that the Google PHP API Library can throw -class Google_Exception extends Exception {} -class Google_AuthException extends Google_Exception {} -class Google_CacheException extends Google_Exception {} -class Google_IOException extends Google_Exception {} -class Google_ServiceException extends Google_Exception { - /** - * Optional list of errors returned in a JSON body of an HTTP error response. - */ - protected $errors = array(); - - /** - * Override default constructor to add ability to set $errors. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - * @param [{string, string}] errors List of errors returned in an HTTP - * response. Defaults to []. - */ - public function __construct($message, $code = 0, Exception $previous = null, - $errors = array()) { - if(version_compare(PHP_VERSION, '5.3.0') >= 0) { - parent::__construct($message, $code, $previous); - } else { - parent::__construct($message, $code); - } - - $this->errors = $errors; - } - - /** - * An example of the possible errors returned. - * - * { - * "domain": "global", - * "reason": "authError", - * "message": "Invalid Credentials", - * "locationType": "header", - * "location": "Authorization", - * } - * - * @return [{string, string}] List of errors return in an HTTP response or []. - */ - public function getErrors() { - return $this->errors; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_AssertionCredentials.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_AssertionCredentials.php deleted file mode 100644 index d9b4394ba38fa6c71831e0b0e6f5fca285bd5c09..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_AssertionCredentials.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class Google_AssertionCredentials { - const MAX_TOKEN_LIFETIME_SECS = 3600; - - public $serviceAccountName; - public $scopes; - public $privateKey; - public $privateKeyPassword; - public $assertionType; - public $sub; - /** - * @deprecated - * @link http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06 - */ - public $prn; - - /** - * @param $serviceAccountName - * @param $scopes array List of scopes - * @param $privateKey - * @param string $privateKeyPassword - * @param string $assertionType - * @param bool|string $sub The email address of the user for which the - * application is requesting delegated access. - * - */ - public function __construct( - $serviceAccountName, - $scopes, - $privateKey, - $privateKeyPassword = 'notasecret', - $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer', - $sub = false) { - $this->serviceAccountName = $serviceAccountName; - $this->scopes = is_string($scopes) ? $scopes : implode(' ', $scopes); - $this->privateKey = $privateKey; - $this->privateKeyPassword = $privateKeyPassword; - $this->assertionType = $assertionType; - $this->sub = $sub; - $this->prn = $sub; - } - - public function generateAssertion() { - $now = time(); - - $jwtParams = array( - 'aud' => Google_OAuth2::OAUTH2_TOKEN_URI, - 'scope' => $this->scopes, - 'iat' => $now, - 'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS, - 'iss' => $this->serviceAccountName, - ); - - if ($this->sub !== false) { - $jwtParams['sub'] = $this->sub; - } else if ($this->prn !== false) { - $jwtParams['prn'] = $this->prn; - } - - return $this->makeSignedJwt($jwtParams); - } - - /** - * Creates a signed JWT. - * @param array $payload - * @return string The signed JWT. - */ - private function makeSignedJwt($payload) { - $header = array('typ' => 'JWT', 'alg' => 'RS256'); - - $segments = array( - Google_Utils::urlSafeB64Encode(json_encode($header)), - Google_Utils::urlSafeB64Encode(json_encode($payload)) - ); - - $signingInput = implode('.', $segments); - $signer = new Google_P12Signer($this->privateKey, $this->privateKeyPassword); - $signature = $signer->sign($signingInput); - $segments[] = Google_Utils::urlSafeB64Encode($signature); - - return implode(".", $segments); - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Auth.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Auth.php deleted file mode 100644 index 010782d4a60ed91eeb4f113cb129389c8d8f21f5..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Auth.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - */ -abstract class Google_Auth { - abstract public function authenticate($service); - abstract public function sign(Google_HttpRequest $request); - abstract public function createAuthUrl($scope); - - abstract public function getAccessToken(); - abstract public function setAccessToken($accessToken); - abstract public function setDeveloperKey($developerKey); - abstract public function refreshToken($refreshToken); - abstract public function revokeToken(); -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_AuthNone.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_AuthNone.php deleted file mode 100644 index 6ca6bc2b0db00d2f3ed1db06b7aa78bfd454fae9..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_AuthNone.php +++ /dev/null @@ -1,48 +0,0 @@ - - * @author Chirag Shah - */ -class Google_AuthNone extends Google_Auth { - public $key = null; - - public function __construct() { - global $apiConfig; - if (!empty($apiConfig['developer_key'])) { - $this->setDeveloperKey($apiConfig['developer_key']); - } - } - - public function setDeveloperKey($key) {$this->key = $key;} - public function authenticate($service) {/*noop*/} - public function setAccessToken($accessToken) {/* noop*/} - public function getAccessToken() {return null;} - public function createAuthUrl($scope) {return null;} - public function refreshToken($refreshToken) {/* noop*/} - public function revokeToken() {/* noop*/} - - public function sign(Google_HttpRequest $request) { - if ($this->key) { - $request->setUrl($request->getUrl() . ((strpos($request->getUrl(), '?') === false) ? '?' : '&') - . 'key='.urlencode($this->key)); - } - return $request; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_LoginTicket.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_LoginTicket.php deleted file mode 100644 index c0ce614232bd63500bc599895cda11607b823b52..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_LoginTicket.php +++ /dev/null @@ -1,63 +0,0 @@ - - */ -class Google_LoginTicket { - const USER_ATTR = "id"; - - // Information from id token envelope. - private $envelope; - - // Information from id token payload. - private $payload; - - /** - * Creates a user based on the supplied token. - * - * @param string $envelope Header from a verified authentication token. - * @param string $payload Information from a verified authentication token. - */ - public function __construct($envelope, $payload) { - $this->envelope = $envelope; - $this->payload = $payload; - } - - /** - * Returns the numeric identifier for the user. - * @throws Google_AuthException - * @return - */ - public function getUserId() { - if (array_key_exists(self::USER_ATTR, $this->payload)) { - return $this->payload[self::USER_ATTR]; - } - throw new Google_AuthException("No user_id in token"); - } - - /** - * Returns attributes from the login ticket. This can contain - * various information about the user session. - * @return array - */ - public function getAttributes() { - return array("envelope" => $this->envelope, "payload" => $this->payload); - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_OAuth2.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_OAuth2.php deleted file mode 100644 index a07d4365a7a6ce33e1f77371f1cbc505307393e4..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_OAuth2.php +++ /dev/null @@ -1,445 +0,0 @@ - - * @author Chirag Shah - * - */ -class Google_OAuth2 extends Google_Auth { - public $clientId; - public $clientSecret; - public $developerKey; - public $token; - public $redirectUri; - public $state; - public $accessType = 'offline'; - public $approvalPrompt = 'force'; - - /** @var Google_AssertionCredentials $assertionCredentials */ - public $assertionCredentials; - - const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke'; - const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token'; - const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth'; - const OAUTH2_FEDERATED_SIGNON_CERTS_URL = 'https://www.googleapis.com/oauth2/v1/certs'; - const CLOCK_SKEW_SECS = 300; // five minutes in seconds - const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds - const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds - - /** - * Instantiates the class, but does not initiate the login flow, leaving it - * to the discretion of the caller (which is done by calling authenticate()). - */ - public function __construct() { - global $apiConfig; - - if (! empty($apiConfig['developer_key'])) { - $this->developerKey = $apiConfig['developer_key']; - } - - if (! empty($apiConfig['oauth2_client_id'])) { - $this->clientId = $apiConfig['oauth2_client_id']; - } - - if (! empty($apiConfig['oauth2_client_secret'])) { - $this->clientSecret = $apiConfig['oauth2_client_secret']; - } - - if (! empty($apiConfig['oauth2_redirect_uri'])) { - $this->redirectUri = $apiConfig['oauth2_redirect_uri']; - } - - if (! empty($apiConfig['oauth2_access_type'])) { - $this->accessType = $apiConfig['oauth2_access_type']; - } - - if (! empty($apiConfig['oauth2_approval_prompt'])) { - $this->approvalPrompt = $apiConfig['oauth2_approval_prompt']; - } - - } - - /** - * @param $service - * @param string|null $code - * @throws Google_AuthException - * @return string - */ - public function authenticate($service, $code = null) { - if (!$code && isset($_GET['code'])) { - $code = $_GET['code']; - } - - if ($code) { - // We got here from the redirect from a successful authorization grant, fetch the access token - $request = Google_Client::$io->makeRequest(new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), array( - 'code' => $code, - 'grant_type' => 'authorization_code', - 'redirect_uri' => $this->redirectUri, - 'client_id' => $this->clientId, - 'client_secret' => $this->clientSecret - ))); - - if ($request->getResponseHttpCode() == 200) { - $this->setAccessToken($request->getResponseBody()); - $this->token['created'] = time(); - return $this->getAccessToken(); - } else { - $response = $request->getResponseBody(); - $decodedResponse = json_decode($response, true); - if ($decodedResponse != null && $decodedResponse['error']) { - $response = $decodedResponse['error']; - } - throw new Google_AuthException("Error fetching OAuth2 access token, message: '$response'", $request->getResponseHttpCode()); - } - } - - $authUrl = $this->createAuthUrl($service['scope']); - header('Location: ' . $authUrl); - return true; - } - - /** - * Create a URL to obtain user authorization. - * The authorization endpoint allows the user to first - * authenticate, and then grant/deny the access request. - * @param string $scope The scope is expressed as a list of space-delimited strings. - * @return string - */ - public function createAuthUrl($scope) { - $params = array( - 'response_type=code', - 'redirect_uri=' . urlencode($this->redirectUri), - 'client_id=' . urlencode($this->clientId), - 'scope=' . urlencode($scope), - 'access_type=' . urlencode($this->accessType), - 'approval_prompt=' . urlencode($this->approvalPrompt), - ); - - if (isset($this->state)) { - $params[] = 'state=' . urlencode($this->state); - } - $params = implode('&', $params); - return self::OAUTH2_AUTH_URL . "?$params"; - } - - /** - * @param string $token - * @throws Google_AuthException - */ - public function setAccessToken($token) { - $token = json_decode($token, true); - if ($token == null) { - throw new Google_AuthException('Could not json decode the token'); - } - if (! isset($token['access_token'])) { - throw new Google_AuthException("Invalid token format"); - } - $this->token = $token; - } - - public function getAccessToken() { - return json_encode($this->token); - } - - public function setDeveloperKey($developerKey) { - $this->developerKey = $developerKey; - } - - public function setState($state) { - $this->state = $state; - } - - public function setAccessType($accessType) { - $this->accessType = $accessType; - } - - public function setApprovalPrompt($approvalPrompt) { - $this->approvalPrompt = $approvalPrompt; - } - - public function setAssertionCredentials(Google_AssertionCredentials $creds) { - $this->assertionCredentials = $creds; - } - - /** - * Include an accessToken in a given apiHttpRequest. - * @param Google_HttpRequest $request - * @return Google_HttpRequest - * @throws Google_AuthException - */ - public function sign(Google_HttpRequest $request) { - // add the developer key to the request before signing it - if ($this->developerKey) { - $requestUrl = $request->getUrl(); - $requestUrl .= (strpos($request->getUrl(), '?') === false) ? '?' : '&'; - $requestUrl .= 'key=' . urlencode($this->developerKey); - $request->setUrl($requestUrl); - } - - // Cannot sign the request without an OAuth access token. - if (null == $this->token && null == $this->assertionCredentials) { - return $request; - } - - // Check if the token is set to expire in the next 30 seconds - // (or has already expired). - if ($this->isAccessTokenExpired()) { - if ($this->assertionCredentials) { - $this->refreshTokenWithAssertion(); - } else { - if (! array_key_exists('refresh_token', $this->token)) { - throw new Google_AuthException("The OAuth 2.0 access token has expired, " - . "and a refresh token is not available. Refresh tokens are not " - . "returned for responses that were auto-approved."); - } - $this->refreshToken($this->token['refresh_token']); - } - } - - // Add the OAuth2 header to the request - $request->setRequestHeaders( - array('Authorization' => 'Bearer ' . $this->token['access_token']) - ); - - return $request; - } - - /** - * Fetches a fresh access token with the given refresh token. - * @param string $refreshToken - * @return void - */ - public function refreshToken($refreshToken) { - $this->refreshTokenRequest(array( - 'client_id' => $this->clientId, - 'client_secret' => $this->clientSecret, - 'refresh_token' => $refreshToken, - 'grant_type' => 'refresh_token' - )); - } - - /** - * Fetches a fresh access token with a given assertion token. - * @param Google_AssertionCredentials $assertionCredentials optional. - * @return void - */ - public function refreshTokenWithAssertion($assertionCredentials = null) { - if (!$assertionCredentials) { - $assertionCredentials = $this->assertionCredentials; - } - - $this->refreshTokenRequest(array( - 'grant_type' => 'assertion', - 'assertion_type' => $assertionCredentials->assertionType, - 'assertion' => $assertionCredentials->generateAssertion(), - )); - } - - private function refreshTokenRequest($params) { - $http = new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), $params); - $request = Google_Client::$io->makeRequest($http); - - $code = $request->getResponseHttpCode(); - $body = $request->getResponseBody(); - if (200 == $code) { - $token = json_decode($body, true); - if ($token == null) { - throw new Google_AuthException("Could not json decode the access token"); - } - - if (! isset($token['access_token']) || ! isset($token['expires_in'])) { - throw new Google_AuthException("Invalid token format"); - } - - $this->token['access_token'] = $token['access_token']; - $this->token['expires_in'] = $token['expires_in']; - $this->token['created'] = time(); - } else { - throw new Google_AuthException("Error refreshing the OAuth2 token, message: '$body'", $code); - } - } - - /** - * Revoke an OAuth2 access token or refresh token. This method will revoke the current access - * token, if a token isn't provided. - * @throws Google_AuthException - * @param string|null $token The token (access token or a refresh token) that should be revoked. - * @return boolean Returns True if the revocation was successful, otherwise False. - */ - public function revokeToken($token = null) { - if (!$token) { - $token = $this->token['access_token']; - } - $request = new Google_HttpRequest(self::OAUTH2_REVOKE_URI, 'POST', array(), "token=$token"); - $response = Google_Client::$io->makeRequest($request); - $code = $response->getResponseHttpCode(); - if ($code == 200) { - $this->token = null; - return true; - } - - return false; - } - - /** - * Returns if the access_token is expired. - * @return bool Returns True if the access_token is expired. - */ - public function isAccessTokenExpired() { - if (null == $this->token) { - return true; - } - - // If the token is set to expire in the next 30 seconds. - $expired = ($this->token['created'] - + ($this->token['expires_in'] - 30)) < time(); - - return $expired; - } - - // Gets federated sign-on certificates to use for verifying identity tokens. - // Returns certs as array structure, where keys are key ids, and values - // are PEM encoded certificates. - private function getFederatedSignOnCerts() { - // This relies on makeRequest caching certificate responses. - $request = Google_Client::$io->makeRequest(new Google_HttpRequest( - self::OAUTH2_FEDERATED_SIGNON_CERTS_URL)); - if ($request->getResponseHttpCode() == 200) { - $certs = json_decode($request->getResponseBody(), true); - if ($certs) { - return $certs; - } - } - throw new Google_AuthException( - "Failed to retrieve verification certificates: '" . - $request->getResponseBody() . "'.", - $request->getResponseHttpCode()); - } - - /** - * Verifies an id token and returns the authenticated apiLoginTicket. - * Throws an exception if the id token is not valid. - * The audience parameter can be used to control which id tokens are - * accepted. By default, the id token must have been issued to this OAuth2 client. - * - * @param $id_token - * @param $audience - * @return Google_LoginTicket - */ - public function verifyIdToken($id_token = null, $audience = null) { - if (!$id_token) { - $id_token = $this->token['id_token']; - } - - $certs = $this->getFederatedSignonCerts(); - if (!$audience) { - $audience = $this->clientId; - } - return $this->verifySignedJwtWithCerts($id_token, $certs, $audience); - } - - // Verifies the id token, returns the verified token contents. - // Visible for testing. - function verifySignedJwtWithCerts($jwt, $certs, $required_audience) { - $segments = explode(".", $jwt); - if (count($segments) != 3) { - throw new Google_AuthException("Wrong number of segments in token: $jwt"); - } - $signed = $segments[0] . "." . $segments[1]; - $signature = Google_Utils::urlSafeB64Decode($segments[2]); - - // Parse envelope. - $envelope = json_decode(Google_Utils::urlSafeB64Decode($segments[0]), true); - if (!$envelope) { - throw new Google_AuthException("Can't parse token envelope: " . $segments[0]); - } - - // Parse token - $json_body = Google_Utils::urlSafeB64Decode($segments[1]); - $payload = json_decode($json_body, true); - if (!$payload) { - throw new Google_AuthException("Can't parse token payload: " . $segments[1]); - } - - // Check signature - $verified = false; - foreach ($certs as $keyName => $pem) { - $public_key = new Google_PemVerifier($pem); - if ($public_key->verify($signed, $signature)) { - $verified = true; - break; - } - } - - if (!$verified) { - throw new Google_AuthException("Invalid token signature: $jwt"); - } - - // Check issued-at timestamp - $iat = 0; - if (array_key_exists("iat", $payload)) { - $iat = $payload["iat"]; - } - if (!$iat) { - throw new Google_AuthException("No issue time in token: $json_body"); - } - $earliest = $iat - self::CLOCK_SKEW_SECS; - - // Check expiration timestamp - $now = time(); - $exp = 0; - if (array_key_exists("exp", $payload)) { - $exp = $payload["exp"]; - } - if (!$exp) { - throw new Google_AuthException("No expiration time in token: $json_body"); - } - if ($exp >= $now + self::MAX_TOKEN_LIFETIME_SECS) { - throw new Google_AuthException( - "Expiration time too far in future: $json_body"); - } - - $latest = $exp + self::CLOCK_SKEW_SECS; - if ($now < $earliest) { - throw new Google_AuthException( - "Token used too early, $now < $earliest: $json_body"); - } - if ($now > $latest) { - throw new Google_AuthException( - "Token used too late, $now > $latest: $json_body"); - } - - // TODO(beaton): check issuer field? - - // Check audience - $aud = $payload["aud"]; - if ($aud != $required_audience) { - throw new Google_AuthException("Wrong recipient, $aud != $required_audience: $json_body"); - } - - // All good. - return new Google_LoginTicket($envelope, $payload); - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_P12Signer.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_P12Signer.php deleted file mode 100644 index 1bed5909913686db299bf20a97abb4c698a42bcc..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_P12Signer.php +++ /dev/null @@ -1,70 +0,0 @@ - - */ -class Google_P12Signer extends Google_Signer { - // OpenSSL private key resource - private $privateKey; - - // Creates a new signer from a .p12 file. - function __construct($p12, $password) { - if (!function_exists('openssl_x509_read')) { - throw new Exception( - 'The Google PHP API library needs the openssl PHP extension'); - } - - // This throws on error - $certs = array(); - if (!openssl_pkcs12_read($p12, $certs, $password)) { - throw new Google_AuthException("Unable to parse the p12 file. " . - "Is this a .p12 file? Is the password correct? OpenSSL error: " . - openssl_error_string()); - } - // TODO(beaton): is this part of the contract for the openssl_pkcs12_read - // method? What happens if there are multiple private keys? Do we care? - if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) { - throw new Google_AuthException("No private key found in p12 file."); - } - $this->privateKey = openssl_pkey_get_private($certs["pkey"]); - if (!$this->privateKey) { - throw new Google_AuthException("Unable to load private key in "); - } - } - - function __destruct() { - if ($this->privateKey) { - openssl_pkey_free($this->privateKey); - } - } - - function sign($data) { - if(version_compare(PHP_VERSION, '5.3.0') < 0) { - throw new Google_AuthException( - "PHP 5.3.0 or higher is required to use service accounts."); - } - if (!openssl_sign($data, $signature, $this->privateKey, "sha256")) { - throw new Google_AuthException("Unable to sign data"); - } - return $signature; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_PemVerifier.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_PemVerifier.php deleted file mode 100644 index 6c1c85fa20e1161cd7b225c0a55a2abe70e361a1..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_PemVerifier.php +++ /dev/null @@ -1,66 +0,0 @@ - - */ -class Google_PemVerifier extends Google_Verifier { - private $publicKey; - - /** - * Constructs a verifier from the supplied PEM-encoded certificate. - * - * $pem: a PEM encoded certificate (not a file). - * @param $pem - * @throws Google_AuthException - * @throws Google_Exception - */ - function __construct($pem) { - if (!function_exists('openssl_x509_read')) { - throw new Google_Exception('Google API PHP client needs the openssl PHP extension'); - } - $this->publicKey = openssl_x509_read($pem); - if (!$this->publicKey) { - throw new Google_AuthException("Unable to parse PEM: $pem"); - } - } - - function __destruct() { - if ($this->publicKey) { - openssl_x509_free($this->publicKey); - } - } - - /** - * Verifies the signature on data. - * - * Returns true if the signature is valid, false otherwise. - * @param $data - * @param $signature - * @throws Google_AuthException - * @return bool - */ - function verify($data, $signature) { - $status = openssl_verify($data, $signature, $this->publicKey, "sha256"); - if ($status === -1) { - throw new Google_AuthException('Signature verification error: ' . openssl_error_string()); - } - return $status === 1; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Signer.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Signer.php deleted file mode 100644 index 7892baac8dffa65fb64f23ff8ba474aa8e28045e..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Signer.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ -abstract class Google_Signer { - /** - * Signs data, returns the signature as binary data. - */ - abstract public function sign($data); -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Verifier.php b/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Verifier.php deleted file mode 100644 index 2839a371df18e51e0181b74db024b98af8c910a6..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/auth/Google_Verifier.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -abstract class Google_Verifier { - /** - * Checks a signature, returns true if the signature is correct, - * false otherwise. - */ - abstract public function verify($data, $signature); -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_ApcCache.php b/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_ApcCache.php deleted file mode 100644 index 3523c98dccab3172b57a60fd3727432711454ebd..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_ApcCache.php +++ /dev/null @@ -1,98 +0,0 @@ - - */ -class googleApcCache extends Google_Cache { - - public function __construct() { - if (! function_exists('apc_add')) { - throw new Google_CacheException("Apc functions not available"); - } - } - - private function isLocked($key) { - if ((@apc_fetch($key . '.lock')) === false) { - return false; - } - return true; - } - - private function createLock($key) { - // the interesting thing is that this could fail if the lock was created in the meantime.. - // but we'll ignore that out of convenience - @apc_add($key . '.lock', '', 5); - } - - private function removeLock($key) { - // suppress all warnings, if some other process removed it that's ok too - @apc_delete($key . '.lock'); - } - - private function waitForLock($key) { - // 20 x 250 = 5 seconds - $tries = 20; - $cnt = 0; - do { - // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks.. - usleep(250); - $cnt ++; - } while ($cnt <= $tries && $this->isLocked($key)); - if ($this->isLocked($key)) { - // 5 seconds passed, assume the owning process died off and remove it - $this->removeLock($key); - } - } - - /** - * @inheritDoc - */ - public function get($key, $expiration = false) { - - if (($ret = @apc_fetch($key)) === false) { - return false; - } - if (!$expiration || (time() - $ret['time'] > $expiration)) { - $this->delete($key); - return false; - } - return unserialize($ret['data']); - } - - /** - * @inheritDoc - */ - public function set($key, $value) { - if (@apc_store($key, array('time' => time(), 'data' => serialize($value))) == false) { - throw new Google_CacheException("Couldn't store data"); - } - } - - /** - * @inheritDoc - * @param String $key - */ - public function delete($key) { - @apc_delete($key); - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_Cache.php b/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_Cache.php deleted file mode 100644 index 809c55e2b154d8d5f1c50eb3d3bd372efb81b44a..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_Cache.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -abstract class Google_Cache { - - /** - * Retrieves the data for the given key, or false if they - * key is unknown or expired - * - * @param String $key The key who's data to retrieve - * @param boolean|int $expiration Expiration time in seconds - * - */ - abstract function get($key, $expiration = false); - - /** - * Store the key => $value set. The $value is serialized - * by this function so can be of any type - * - * @param string $key Key of the data - * @param string $value data - */ - abstract function set($key, $value); - - /** - * Removes the key/data pair for the given $key - * - * @param String $key - */ - abstract function delete($key); -} - - diff --git a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_FileCache.php b/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_FileCache.php deleted file mode 100644 index 1e32859a48bd25ed306796eacbdcd3c380944285..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_FileCache.php +++ /dev/null @@ -1,137 +0,0 @@ - - */ -class Google_FileCache extends Google_Cache { - private $path; - - public function __construct() { - global $apiConfig; - $this->path = $apiConfig['ioFileCache_directory']; - } - - private function isLocked($storageFile) { - // our lock file convention is simple: /the/file/path.lock - return file_exists($storageFile . '.lock'); - } - - private function createLock($storageFile) { - $storageDir = dirname($storageFile); - if (! is_dir($storageDir)) { - // @codeCoverageIgnoreStart - if (! @mkdir($storageDir, 0755, true)) { - // make sure the failure isn't because of a concurrency issue - if (! is_dir($storageDir)) { - throw new Google_CacheException("Could not create storage directory: $storageDir"); - } - } - // @codeCoverageIgnoreEnd - } - @touch($storageFile . '.lock'); - } - - private function removeLock($storageFile) { - // suppress all warnings, if some other process removed it that's ok too - @unlink($storageFile . '.lock'); - } - - private function waitForLock($storageFile) { - // 20 x 250 = 5 seconds - $tries = 20; - $cnt = 0; - do { - // make sure PHP picks up on file changes. This is an expensive action but really can't be avoided - clearstatcache(); - // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks.. - usleep(250); - $cnt ++; - } while ($cnt <= $tries && $this->isLocked($storageFile)); - if ($this->isLocked($storageFile)) { - // 5 seconds passed, assume the owning process died off and remove it - $this->removeLock($storageFile); - } - } - - private function getCacheDir($hash) { - // use the first 2 characters of the hash as a directory prefix - // this should prevent slowdowns due to huge directory listings - // and thus give some basic amount of scalability - return $this->path . '/' . substr($hash, 0, 2); - } - - private function getCacheFile($hash) { - return $this->getCacheDir($hash) . '/' . $hash; - } - - public function get($key, $expiration = false) { - $storageFile = $this->getCacheFile(md5($key)); - // See if this storage file is locked, if so we wait up to 5 seconds for the lock owning process to - // complete it's work. If the lock is not released within that time frame, it's cleaned up. - // This should give us a fair amount of 'Cache Stampeding' protection - if ($this->isLocked($storageFile)) { - $this->waitForLock($storageFile); - } - if (file_exists($storageFile) && is_readable($storageFile)) { - $now = time(); - if (! $expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) { - if (($data = @file_get_contents($storageFile)) !== false) { - $data = unserialize($data); - return $data; - } - } - } - return false; - } - - public function set($key, $value) { - $storageDir = $this->getCacheDir(md5($key)); - $storageFile = $this->getCacheFile(md5($key)); - if ($this->isLocked($storageFile)) { - // some other process is writing to this file too, wait until it's done to prevent hiccups - $this->waitForLock($storageFile); - } - if (! is_dir($storageDir)) { - if (! @mkdir($storageDir, 0755, true)) { - throw new Google_CacheException("Could not create storage directory: $storageDir"); - } - } - // we serialize the whole request object, since we don't only want the - // responseContent but also the postBody used, headers, size, etc - $data = serialize($value); - $this->createLock($storageFile); - if (! @file_put_contents($storageFile, $data)) { - $this->removeLock($storageFile); - throw new Google_CacheException("Could not store data in the file"); - } - $this->removeLock($storageFile); - } - - public function delete($key) { - $file = $this->getCacheFile(md5($key)); - if (! @unlink($file)) { - throw new Google_CacheException("Cache file could not be deleted"); - } - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_MemcacheCache.php b/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_MemcacheCache.php deleted file mode 100644 index 22493f8b1ecd3987da10f1ae4c1238b1e350b712..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/cache/Google_MemcacheCache.php +++ /dev/null @@ -1,130 +0,0 @@ - - */ -class Google_MemcacheCache extends Google_Cache { - private $connection = false; - - public function __construct() { - global $apiConfig; - if (! function_exists('memcache_connect')) { - throw new Google_CacheException("Memcache functions not available"); - } - $this->host = $apiConfig['ioMemCacheCache_host']; - $this->port = $apiConfig['ioMemCacheCache_port']; - if (empty($this->host) || empty($this->port)) { - throw new Google_CacheException("You need to supply a valid memcache host and port"); - } - } - - private function isLocked($key) { - $this->check(); - if ((@memcache_get($this->connection, $key . '.lock')) === false) { - return false; - } - return true; - } - - private function createLock($key) { - $this->check(); - // the interesting thing is that this could fail if the lock was created in the meantime.. - // but we'll ignore that out of convenience - @memcache_add($this->connection, $key . '.lock', '', 0, 5); - } - - private function removeLock($key) { - $this->check(); - // suppress all warnings, if some other process removed it that's ok too - @memcache_delete($this->connection, $key . '.lock'); - } - - private function waitForLock($key) { - $this->check(); - // 20 x 250 = 5 seconds - $tries = 20; - $cnt = 0; - do { - // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks.. - usleep(250); - $cnt ++; - } while ($cnt <= $tries && $this->isLocked($key)); - if ($this->isLocked($key)) { - // 5 seconds passed, assume the owning process died off and remove it - $this->removeLock($key); - } - } - - // I prefer lazy initialization since the cache isn't used every request - // so this potentially saves a lot of overhead - private function connect() { - if (! $this->connection = @memcache_pconnect($this->host, $this->port)) { - throw new Google_CacheException("Couldn't connect to memcache server"); - } - } - - private function check() { - if (! $this->connection) { - $this->connect(); - } - } - - /** - * @inheritDoc - */ - public function get($key, $expiration = false) { - $this->check(); - if (($ret = @memcache_get($this->connection, $key)) === false) { - return false; - } - if (! $expiration || (time() - $ret['time'] > $expiration)) { - $this->delete($key); - return false; - } - return $ret['data']; - } - - /** - * @inheritDoc - * @param string $key - * @param string $value - * @throws Google_CacheException - */ - public function set($key, $value) { - $this->check(); - // we store it with the cache_time default expiration so objects will at least get cleaned eventually. - if (@memcache_set($this->connection, $key, array('time' => time(), - 'data' => $value), false) == false) { - throw new Google_CacheException("Couldn't store data in cache"); - } - } - - /** - * @inheritDoc - * @param String $key - */ - public function delete($key) { - $this->check(); - @memcache_delete($this->connection, $key); - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/config.php b/apps/files_external/3rdparty/google-api-php-client/src/config.php deleted file mode 100644 index e3a57138d05b3d84aec96137feeed73b7d947b83..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/config.php +++ /dev/null @@ -1,81 +0,0 @@ - false, - - // The application_name is included in the User-Agent HTTP header. - 'application_name' => '', - - // OAuth2 Settings, you can get these keys at https://code.google.com/apis/console - 'oauth2_client_id' => '', - 'oauth2_client_secret' => '', - 'oauth2_redirect_uri' => '', - - // The developer key, you get this at https://code.google.com/apis/console - 'developer_key' => '', - - // Site name to show in the Google's OAuth 1 authentication screen. - 'site_name' => 'www.example.org', - - // Which Authentication, Storage and HTTP IO classes to use. - 'authClass' => 'Google_OAuth2', - 'ioClass' => 'Google_CurlIO', - 'cacheClass' => 'Google_FileCache', - - // Don't change these unless you're working against a special development or testing environment. - 'basePath' => 'https://www.googleapis.com', - - // IO Class dependent configuration, you only have to configure the values - // for the class that was configured as the ioClass above - 'ioFileCache_directory' => - (function_exists('sys_get_temp_dir') ? - sys_get_temp_dir() . '/Google_Client' : - '/tmp/Google_Client'), - - // Definition of service specific values like scopes, oauth token URLs, etc - 'services' => array( - 'analytics' => array('scope' => 'https://www.googleapis.com/auth/analytics.readonly'), - 'calendar' => array( - 'scope' => array( - "https://www.googleapis.com/auth/calendar", - "https://www.googleapis.com/auth/calendar.readonly", - ) - ), - 'books' => array('scope' => 'https://www.googleapis.com/auth/books'), - 'latitude' => array( - 'scope' => array( - 'https://www.googleapis.com/auth/latitude.all.best', - 'https://www.googleapis.com/auth/latitude.all.city', - ) - ), - 'moderator' => array('scope' => 'https://www.googleapis.com/auth/moderator'), - 'oauth2' => array( - 'scope' => array( - 'https://www.googleapis.com/auth/userinfo.profile', - 'https://www.googleapis.com/auth/userinfo.email', - ) - ), - 'plus' => array('scope' => 'https://www.googleapis.com/auth/plus.login'), - 'siteVerification' => array('scope' => 'https://www.googleapis.com/auth/siteverification'), - 'tasks' => array('scope' => 'https://www.googleapis.com/auth/tasks'), - 'urlshortener' => array('scope' => 'https://www.googleapis.com/auth/urlshortener') - ) -); diff --git a/apps/files_external/3rdparty/google-api-php-client/src/contrib/Google_DriveService.php b/apps/files_external/3rdparty/google-api-php-client/src/contrib/Google_DriveService.php deleted file mode 100644 index 896e8b93826fc53d3cf540b402966d6d8cc3cd1c..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/contrib/Google_DriveService.php +++ /dev/null @@ -1,3143 +0,0 @@ - - * $driveService = new Google_DriveService(...); - * $about = $driveService->about; - * - */ - class Google_AboutServiceResource extends Google_ServiceResource { - - - /** - * Gets the information about the current user along with Drive API settings (about.get) - * - * @param array $optParams Optional parameters. - * - * @opt_param bool includeSubscribed When calculating the number of remaining change IDs, whether to include shared files and public files the user has opened. When set to false, this counts only change IDs for owned files and any shared or public files that the user has explictly added to a folder in Drive. - * @opt_param string maxChangeIdCount Maximum number of remaining change IDs to count - * @opt_param string startChangeId Change ID to start counting from when calculating number of remaining change IDs - * @return Google_About - */ - public function get($optParams = array()) { - $params = array(); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_About($data); - } else { - return $data; - } - } - } - - /** - * The "apps" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $apps = $driveService->apps; - * - */ - class Google_AppsServiceResource extends Google_ServiceResource { - - - /** - * Gets a specific app. (apps.get) - * - * @param string $appId The ID of the app. - * @param array $optParams Optional parameters. - * @return Google_App - */ - public function get($appId, $optParams = array()) { - $params = array('appId' => $appId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_App($data); - } else { - return $data; - } - } - /** - * Lists a user's installed apps. (apps.list) - * - * @param array $optParams Optional parameters. - * @return Google_AppList - */ - public function listApps($optParams = array()) { - $params = array(); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_AppList($data); - } else { - return $data; - } - } - } - - /** - * The "changes" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $changes = $driveService->changes; - * - */ - class Google_ChangesServiceResource extends Google_ServiceResource { - - - /** - * Gets a specific change. (changes.get) - * - * @param string $changeId The ID of the change. - * @param array $optParams Optional parameters. - * @return Google_Change - */ - public function get($changeId, $optParams = array()) { - $params = array('changeId' => $changeId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_Change($data); - } else { - return $data; - } - } - /** - * Lists the changes for a user. (changes.list) - * - * @param array $optParams Optional parameters. - * - * @opt_param bool includeDeleted Whether to include deleted items. - * @opt_param bool includeSubscribed Whether to include shared files and public files the user has opened. When set to false, the list will include owned files plus any shared or public files the user has explictly added to a folder in Drive. - * @opt_param int maxResults Maximum number of changes to return. - * @opt_param string pageToken Page token for changes. - * @opt_param string startChangeId Change ID to start listing changes from. - * @return Google_ChangeList - */ - public function listChanges($optParams = array()) { - $params = array(); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_ChangeList($data); - } else { - return $data; - } - } - } - - /** - * The "children" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $children = $driveService->children; - * - */ - class Google_ChildrenServiceResource extends Google_ServiceResource { - - - /** - * Removes a child from a folder. (children.delete) - * - * @param string $folderId The ID of the folder. - * @param string $childId The ID of the child. - * @param array $optParams Optional parameters. - */ - public function delete($folderId, $childId, $optParams = array()) { - $params = array('folderId' => $folderId, 'childId' => $childId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a specific child reference. (children.get) - * - * @param string $folderId The ID of the folder. - * @param string $childId The ID of the child. - * @param array $optParams Optional parameters. - * @return Google_ChildReference - */ - public function get($folderId, $childId, $optParams = array()) { - $params = array('folderId' => $folderId, 'childId' => $childId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_ChildReference($data); - } else { - return $data; - } - } - /** - * Inserts a file into a folder. (children.insert) - * - * @param string $folderId The ID of the folder. - * @param Google_ChildReference $postBody - * @param array $optParams Optional parameters. - * @return Google_ChildReference - */ - public function insert($folderId, Google_ChildReference $postBody, $optParams = array()) { - $params = array('folderId' => $folderId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_ChildReference($data); - } else { - return $data; - } - } - /** - * Lists a folder's children. (children.list) - * - * @param string $folderId The ID of the folder. - * @param array $optParams Optional parameters. - * - * @opt_param int maxResults Maximum number of children to return. - * @opt_param string pageToken Page token for children. - * @opt_param string q Query string for searching children. - * @return Google_ChildList - */ - public function listChildren($folderId, $optParams = array()) { - $params = array('folderId' => $folderId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_ChildList($data); - } else { - return $data; - } - } - } - - /** - * The "comments" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $comments = $driveService->comments; - * - */ - class Google_CommentsServiceResource extends Google_ServiceResource { - - - /** - * Deletes a comment. (comments.delete) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param array $optParams Optional parameters. - */ - public function delete($fileId, $commentId, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a comment by ID. (comments.get) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param array $optParams Optional parameters. - * - * @opt_param bool includeDeleted If set, this will succeed when retrieving a deleted comment, and will include any deleted replies. - * @return Google_Comment - */ - public function get($fileId, $commentId, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_Comment($data); - } else { - return $data; - } - } - /** - * Creates a new comment on the given file. (comments.insert) - * - * @param string $fileId The ID of the file. - * @param Google_Comment $postBody - * @param array $optParams Optional parameters. - * @return Google_Comment - */ - public function insert($fileId, Google_Comment $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_Comment($data); - } else { - return $data; - } - } - /** - * Lists a file's comments. (comments.list) - * - * @param string $fileId The ID of the file. - * @param array $optParams Optional parameters. - * - * @opt_param bool includeDeleted If set, all comments and replies, including deleted comments and replies (with content stripped) will be returned. - * @opt_param int maxResults The maximum number of discussions to include in the response, used for paging. - * @opt_param string pageToken The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. - * @opt_param string updatedMin Only discussions that were updated after this timestamp will be returned. Formatted as an RFC 3339 timestamp. - * @return Google_CommentList - */ - public function listComments($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_CommentList($data); - } else { - return $data; - } - } - /** - * Updates an existing comment. This method supports patch semantics. (comments.patch) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param Google_Comment $postBody - * @param array $optParams Optional parameters. - * @return Google_Comment - */ - public function patch($fileId, $commentId, Google_Comment $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('patch', array($params)); - if ($this->useObjects()) { - return new Google_Comment($data); - } else { - return $data; - } - } - /** - * Updates an existing comment. (comments.update) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param Google_Comment $postBody - * @param array $optParams Optional parameters. - * @return Google_Comment - */ - public function update($fileId, $commentId, Google_Comment $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('update', array($params)); - if ($this->useObjects()) { - return new Google_Comment($data); - } else { - return $data; - } - } - } - - /** - * The "files" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $files = $driveService->files; - * - */ - class Google_FilesServiceResource extends Google_ServiceResource { - - - /** - * Creates a copy of the specified file. (files.copy) - * - * @param string $fileId The ID of the file to copy. - * @param Google_DriveFile $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param bool pinned Whether to pin the head revision of the new copy. - * @opt_param string timedTextLanguage The language of the timed text. - * @opt_param string timedTextTrackName The timed text track name. - * @return Google_DriveFile - */ - public function copy($fileId, Google_DriveFile $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('copy', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Permanently deletes a file by ID. Skips the trash. (files.delete) - * - * @param string $fileId The ID of the file to delete. - * @param array $optParams Optional parameters. - */ - public function delete($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a file's metadata by ID. (files.get) - * - * @param string $fileId The ID for the file in question. - * @param array $optParams Optional parameters. - * - * @opt_param string projection This parameter is deprecated and has no function. - * @opt_param bool updateViewedDate Whether to update the view date after successfully retrieving the file. - * @return Google_DriveFile - */ - public function get($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Insert a new file. (files.insert) - * - * @param Google_DriveFile $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param bool pinned Whether to pin the head revision of the uploaded file. - * @opt_param string timedTextLanguage The language of the timed text. - * @opt_param string timedTextTrackName The timed text track name. - * @opt_param bool useContentAsIndexableText Whether to use the content as indexable text. - * @return Google_DriveFile - */ - public function insert(Google_DriveFile $postBody, $optParams = array()) { - $params = array('postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Lists the user's files. (files.list) - * - * @param array $optParams Optional parameters. - * - * @opt_param int maxResults Maximum number of files to return. - * @opt_param string pageToken Page token for files. - * @opt_param string projection This parameter is deprecated and has no function. - * @opt_param string q Query string for searching files. - * @return Google_FileList - */ - public function listFiles($optParams = array()) { - $params = array(); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_FileList($data); - } else { - return $data; - } - } - /** - * Updates file metadata and/or content. This method supports patch semantics. (files.patch) - * - * @param string $fileId The ID of the file to update. - * @param Google_DriveFile $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool newRevision Whether a blob upload should create a new revision. If not set or false, the blob data in the current head revision is replaced. If true, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota). - * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param bool pinned Whether to pin the new revision. - * @opt_param bool setModifiedDate Whether to set the modified date with the supplied modified date. - * @opt_param string timedTextLanguage The language of the timed text. - * @opt_param string timedTextTrackName The timed text track name. - * @opt_param bool updateViewedDate Whether to update the view date after successfully updating the file. - * @opt_param bool useContentAsIndexableText Whether to use the content as indexable text. - * @return Google_DriveFile - */ - public function patch($fileId, Google_DriveFile $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('patch', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Set the file's updated time to the current server time. (files.touch) - * - * @param string $fileId The ID of the file to update. - * @param array $optParams Optional parameters. - * @return Google_DriveFile - */ - public function touch($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('touch', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Moves a file to the trash. (files.trash) - * - * @param string $fileId The ID of the file to trash. - * @param array $optParams Optional parameters. - * @return Google_DriveFile - */ - public function trash($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('trash', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Restores a file from the trash. (files.untrash) - * - * @param string $fileId The ID of the file to untrash. - * @param array $optParams Optional parameters. - * @return Google_DriveFile - */ - public function untrash($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('untrash', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - /** - * Updates file metadata and/or content. (files.update) - * - * @param string $fileId The ID of the file to update. - * @param Google_DriveFile $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool newRevision Whether a blob upload should create a new revision. If not set or false, the blob data in the current head revision is replaced. If true, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota). - * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param bool pinned Whether to pin the new revision. - * @opt_param bool setModifiedDate Whether to set the modified date with the supplied modified date. - * @opt_param string timedTextLanguage The language of the timed text. - * @opt_param string timedTextTrackName The timed text track name. - * @opt_param bool updateViewedDate Whether to update the view date after successfully updating the file. - * @opt_param bool useContentAsIndexableText Whether to use the content as indexable text. - * @return Google_DriveFile - */ - public function update($fileId, Google_DriveFile $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('update', array($params)); - if ($this->useObjects()) { - return new Google_DriveFile($data); - } else { - return $data; - } - } - } - - /** - * The "parents" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $parents = $driveService->parents; - * - */ - class Google_ParentsServiceResource extends Google_ServiceResource { - - - /** - * Removes a parent from a file. (parents.delete) - * - * @param string $fileId The ID of the file. - * @param string $parentId The ID of the parent. - * @param array $optParams Optional parameters. - */ - public function delete($fileId, $parentId, $optParams = array()) { - $params = array('fileId' => $fileId, 'parentId' => $parentId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a specific parent reference. (parents.get) - * - * @param string $fileId The ID of the file. - * @param string $parentId The ID of the parent. - * @param array $optParams Optional parameters. - * @return Google_ParentReference - */ - public function get($fileId, $parentId, $optParams = array()) { - $params = array('fileId' => $fileId, 'parentId' => $parentId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_ParentReference($data); - } else { - return $data; - } - } - /** - * Adds a parent folder for a file. (parents.insert) - * - * @param string $fileId The ID of the file. - * @param Google_ParentReference $postBody - * @param array $optParams Optional parameters. - * @return Google_ParentReference - */ - public function insert($fileId, Google_ParentReference $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_ParentReference($data); - } else { - return $data; - } - } - /** - * Lists a file's parents. (parents.list) - * - * @param string $fileId The ID of the file. - * @param array $optParams Optional parameters. - * @return Google_ParentList - */ - public function listParents($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_ParentList($data); - } else { - return $data; - } - } - } - - /** - * The "permissions" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $permissions = $driveService->permissions; - * - */ - class Google_PermissionsServiceResource extends Google_ServiceResource { - - - /** - * Deletes a permission from a file. (permissions.delete) - * - * @param string $fileId The ID for the file. - * @param string $permissionId The ID for the permission. - * @param array $optParams Optional parameters. - */ - public function delete($fileId, $permissionId, $optParams = array()) { - $params = array('fileId' => $fileId, 'permissionId' => $permissionId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a permission by ID. (permissions.get) - * - * @param string $fileId The ID for the file. - * @param string $permissionId The ID for the permission. - * @param array $optParams Optional parameters. - * @return Google_Permission - */ - public function get($fileId, $permissionId, $optParams = array()) { - $params = array('fileId' => $fileId, 'permissionId' => $permissionId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_Permission($data); - } else { - return $data; - } - } - /** - * Inserts a permission for a file. (permissions.insert) - * - * @param string $fileId The ID for the file. - * @param Google_Permission $postBody - * @param array $optParams Optional parameters. - * - * @opt_param string emailMessage A custom message to include in notification emails. - * @opt_param bool sendNotificationEmails Whether to send notification emails when sharing to users or groups. - * @return Google_Permission - */ - public function insert($fileId, Google_Permission $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_Permission($data); - } else { - return $data; - } - } - /** - * Lists a file's permissions. (permissions.list) - * - * @param string $fileId The ID for the file. - * @param array $optParams Optional parameters. - * @return Google_PermissionList - */ - public function listPermissions($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_PermissionList($data); - } else { - return $data; - } - } - /** - * Updates a permission. This method supports patch semantics. (permissions.patch) - * - * @param string $fileId The ID for the file. - * @param string $permissionId The ID for the permission. - * @param Google_Permission $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool transferOwnership Whether changing a role to 'owner' should also downgrade the current owners to writers. - * @return Google_Permission - */ - public function patch($fileId, $permissionId, Google_Permission $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('patch', array($params)); - if ($this->useObjects()) { - return new Google_Permission($data); - } else { - return $data; - } - } - /** - * Updates a permission. (permissions.update) - * - * @param string $fileId The ID for the file. - * @param string $permissionId The ID for the permission. - * @param Google_Permission $postBody - * @param array $optParams Optional parameters. - * - * @opt_param bool transferOwnership Whether changing a role to 'owner' should also downgrade the current owners to writers. - * @return Google_Permission - */ - public function update($fileId, $permissionId, Google_Permission $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('update', array($params)); - if ($this->useObjects()) { - return new Google_Permission($data); - } else { - return $data; - } - } - } - - /** - * The "properties" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $properties = $driveService->properties; - * - */ - class Google_PropertiesServiceResource extends Google_ServiceResource { - - - /** - * Deletes a property. (properties.delete) - * - * @param string $fileId The ID of the file. - * @param string $propertyKey The key of the property. - * @param array $optParams Optional parameters. - * - * @opt_param string visibility The visibility of the property. - */ - public function delete($fileId, $propertyKey, $optParams = array()) { - $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a property by its key. (properties.get) - * - * @param string $fileId The ID of the file. - * @param string $propertyKey The key of the property. - * @param array $optParams Optional parameters. - * - * @opt_param string visibility The visibility of the property. - * @return Google_Property - */ - public function get($fileId, $propertyKey, $optParams = array()) { - $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_Property($data); - } else { - return $data; - } - } - /** - * Adds a property to a file. (properties.insert) - * - * @param string $fileId The ID of the file. - * @param Google_Property $postBody - * @param array $optParams Optional parameters. - * @return Google_Property - */ - public function insert($fileId, Google_Property $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_Property($data); - } else { - return $data; - } - } - /** - * Lists a file's properties. (properties.list) - * - * @param string $fileId The ID of the file. - * @param array $optParams Optional parameters. - * @return Google_PropertyList - */ - public function listProperties($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_PropertyList($data); - } else { - return $data; - } - } - /** - * Updates a property. This method supports patch semantics. (properties.patch) - * - * @param string $fileId The ID of the file. - * @param string $propertyKey The key of the property. - * @param Google_Property $postBody - * @param array $optParams Optional parameters. - * - * @opt_param string visibility The visibility of the property. - * @return Google_Property - */ - public function patch($fileId, $propertyKey, Google_Property $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('patch', array($params)); - if ($this->useObjects()) { - return new Google_Property($data); - } else { - return $data; - } - } - /** - * Updates a property. (properties.update) - * - * @param string $fileId The ID of the file. - * @param string $propertyKey The key of the property. - * @param Google_Property $postBody - * @param array $optParams Optional parameters. - * - * @opt_param string visibility The visibility of the property. - * @return Google_Property - */ - public function update($fileId, $propertyKey, Google_Property $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('update', array($params)); - if ($this->useObjects()) { - return new Google_Property($data); - } else { - return $data; - } - } - } - - /** - * The "replies" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $replies = $driveService->replies; - * - */ - class Google_RepliesServiceResource extends Google_ServiceResource { - - - /** - * Deletes a reply. (replies.delete) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param string $replyId The ID of the reply. - * @param array $optParams Optional parameters. - */ - public function delete($fileId, $commentId, $replyId, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a reply. (replies.get) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param string $replyId The ID of the reply. - * @param array $optParams Optional parameters. - * - * @opt_param bool includeDeleted If set, this will succeed when retrieving a deleted reply. - * @return Google_CommentReply - */ - public function get($fileId, $commentId, $replyId, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_CommentReply($data); - } else { - return $data; - } - } - /** - * Creates a new reply to the given comment. (replies.insert) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param Google_CommentReply $postBody - * @param array $optParams Optional parameters. - * @return Google_CommentReply - */ - public function insert($fileId, $commentId, Google_CommentReply $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('insert', array($params)); - if ($this->useObjects()) { - return new Google_CommentReply($data); - } else { - return $data; - } - } - /** - * Lists all of the replies to a comment. (replies.list) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param array $optParams Optional parameters. - * - * @opt_param bool includeDeleted If set, all replies, including deleted replies (with content stripped) will be returned. - * @opt_param int maxResults The maximum number of replies to include in the response, used for paging. - * @opt_param string pageToken The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. - * @return Google_CommentReplyList - */ - public function listReplies($fileId, $commentId, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_CommentReplyList($data); - } else { - return $data; - } - } - /** - * Updates an existing reply. This method supports patch semantics. (replies.patch) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param string $replyId The ID of the reply. - * @param Google_CommentReply $postBody - * @param array $optParams Optional parameters. - * @return Google_CommentReply - */ - public function patch($fileId, $commentId, $replyId, Google_CommentReply $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('patch', array($params)); - if ($this->useObjects()) { - return new Google_CommentReply($data); - } else { - return $data; - } - } - /** - * Updates an existing reply. (replies.update) - * - * @param string $fileId The ID of the file. - * @param string $commentId The ID of the comment. - * @param string $replyId The ID of the reply. - * @param Google_CommentReply $postBody - * @param array $optParams Optional parameters. - * @return Google_CommentReply - */ - public function update($fileId, $commentId, $replyId, Google_CommentReply $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('update', array($params)); - if ($this->useObjects()) { - return new Google_CommentReply($data); - } else { - return $data; - } - } - } - - /** - * The "revisions" collection of methods. - * Typical usage is: - * - * $driveService = new Google_DriveService(...); - * $revisions = $driveService->revisions; - * - */ - class Google_RevisionsServiceResource extends Google_ServiceResource { - - - /** - * Removes a revision. (revisions.delete) - * - * @param string $fileId The ID of the file. - * @param string $revisionId The ID of the revision. - * @param array $optParams Optional parameters. - */ - public function delete($fileId, $revisionId, $optParams = array()) { - $params = array('fileId' => $fileId, 'revisionId' => $revisionId); - $params = array_merge($params, $optParams); - $data = $this->__call('delete', array($params)); - return $data; - } - /** - * Gets a specific revision. (revisions.get) - * - * @param string $fileId The ID of the file. - * @param string $revisionId The ID of the revision. - * @param array $optParams Optional parameters. - * @return Google_Revision - */ - public function get($fileId, $revisionId, $optParams = array()) { - $params = array('fileId' => $fileId, 'revisionId' => $revisionId); - $params = array_merge($params, $optParams); - $data = $this->__call('get', array($params)); - if ($this->useObjects()) { - return new Google_Revision($data); - } else { - return $data; - } - } - /** - * Lists a file's revisions. (revisions.list) - * - * @param string $fileId The ID of the file. - * @param array $optParams Optional parameters. - * @return Google_RevisionList - */ - public function listRevisions($fileId, $optParams = array()) { - $params = array('fileId' => $fileId); - $params = array_merge($params, $optParams); - $data = $this->__call('list', array($params)); - if ($this->useObjects()) { - return new Google_RevisionList($data); - } else { - return $data; - } - } - /** - * Updates a revision. This method supports patch semantics. (revisions.patch) - * - * @param string $fileId The ID for the file. - * @param string $revisionId The ID for the revision. - * @param Google_Revision $postBody - * @param array $optParams Optional parameters. - * @return Google_Revision - */ - public function patch($fileId, $revisionId, Google_Revision $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('patch', array($params)); - if ($this->useObjects()) { - return new Google_Revision($data); - } else { - return $data; - } - } - /** - * Updates a revision. (revisions.update) - * - * @param string $fileId The ID for the file. - * @param string $revisionId The ID for the revision. - * @param Google_Revision $postBody - * @param array $optParams Optional parameters. - * @return Google_Revision - */ - public function update($fileId, $revisionId, Google_Revision $postBody, $optParams = array()) { - $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody); - $params = array_merge($params, $optParams); - $data = $this->__call('update', array($params)); - if ($this->useObjects()) { - return new Google_Revision($data); - } else { - return $data; - } - } - } - -/** - * Service definition for Google_Drive (v2). - * - *

- * The API to interact with Drive. - *

- * - *

- * For more information about this service, see the - * API Documentation - *

- * - * @author Google, Inc. - */ -class Google_DriveService extends Google_Service { - public $about; - public $apps; - public $changes; - public $children; - public $comments; - public $files; - public $parents; - public $permissions; - public $properties; - public $replies; - public $revisions; - /** - * Constructs the internal representation of the Drive service. - * - * @param Google_Client $client - */ - public function __construct(Google_Client $client) { - $this->servicePath = 'drive/v2/'; - $this->version = 'v2'; - $this->serviceName = 'drive'; - - $client->addService($this->serviceName, $this->version); - $this->about = new Google_AboutServiceResource($this, $this->serviceName, 'about', json_decode('{"methods": {"get": {"id": "drive.about.get", "path": "about", "httpMethod": "GET", "parameters": {"includeSubscribed": {"type": "boolean", "default": "true", "location": "query"}, "maxChangeIdCount": {"type": "string", "default": "1", "format": "int64", "location": "query"}, "startChangeId": {"type": "string", "format": "int64", "location": "query"}}, "response": {"$ref": "About"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true)); - $this->apps = new Google_AppsServiceResource($this, $this->serviceName, 'apps', json_decode('{"methods": {"get": {"id": "drive.apps.get", "path": "apps/{appId}", "httpMethod": "GET", "parameters": {"appId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "App"}, "scopes": ["https://www.googleapis.com/auth/drive.apps.readonly"]}, "list": {"id": "drive.apps.list", "path": "apps", "httpMethod": "GET", "response": {"$ref": "AppList"}, "scopes": ["https://www.googleapis.com/auth/drive.apps.readonly"]}}}', true)); - $this->changes = new Google_ChangesServiceResource($this, $this->serviceName, 'changes', json_decode('{"methods": {"get": {"id": "drive.changes.get", "path": "changes/{changeId}", "httpMethod": "GET", "parameters": {"changeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Change"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "list": {"id": "drive.changes.list", "path": "changes", "httpMethod": "GET", "parameters": {"includeDeleted": {"type": "boolean", "default": "true", "location": "query"}, "includeSubscribed": {"type": "boolean", "default": "true", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "startChangeId": {"type": "string", "format": "int64", "location": "query"}}, "response": {"$ref": "ChangeList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"], "supportsSubscription": true}}}', true)); - $this->children = new Google_ChildrenServiceResource($this, $this->serviceName, 'children', json_decode('{"methods": {"delete": {"id": "drive.children.delete", "path": "files/{folderId}/children/{childId}", "httpMethod": "DELETE", "parameters": {"childId": {"type": "string", "required": true, "location": "path"}, "folderId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.children.get", "path": "files/{folderId}/children/{childId}", "httpMethod": "GET", "parameters": {"childId": {"type": "string", "required": true, "location": "path"}, "folderId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ChildReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.children.insert", "path": "files/{folderId}/children", "httpMethod": "POST", "parameters": {"folderId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ChildReference"}, "response": {"$ref": "ChildReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.children.list", "path": "files/{folderId}/children", "httpMethod": "GET", "parameters": {"folderId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "q": {"type": "string", "location": "query"}}, "response": {"$ref": "ChildList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true)); - $this->comments = new Google_CommentsServiceResource($this, $this->serviceName, 'comments', json_decode('{"methods": {"delete": {"id": "drive.comments.delete", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "DELETE", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "get": {"id": "drive.comments.get", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.comments.insert", "path": "files/{fileId}/comments", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "list": {"id": "drive.comments.list", "path": "files/{fileId}/comments", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}, "maxResults": {"type": "integer", "default": "20", "format": "int32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "updatedMin": {"type": "string", "location": "query"}}, "response": {"$ref": "CommentList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.comments.patch", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "PATCH", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.comments.update", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "PUT", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true)); - $this->files = new Google_FilesServiceResource($this, $this->serviceName, 'files', json_decode('{"methods": {"copy": {"id": "drive.files.copy", "path": "files/{fileId}/copy", "httpMethod": "POST", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "delete": {"id": "drive.files.delete", "path": "files/{fileId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.files.get", "path": "files/{fileId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "false", "location": "query"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"], "supportsSubscription": true}, "insert": {"id": "drive.files.insert", "path": "files", "httpMethod": "POST", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "useContentAsIndexableText": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["*/*"], "maxSize": "10GB", "protocols": {"simple": {"multipart": true, "path": "/upload/drive/v2/files"}, "resumable": {"multipart": true, "path": "/resumable/upload/drive/v2/files"}}}, "supportsSubscription": true}, "list": {"id": "drive.files.list", "path": "files", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "q": {"type": "string", "location": "query"}}, "response": {"$ref": "FileList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.files.patch", "path": "files/{fileId}", "httpMethod": "PATCH", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "newRevision": {"type": "boolean", "default": "true", "location": "query"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "setModifiedDate": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "true", "location": "query"}, "useContentAsIndexableText": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.scripts"]}, "touch": {"id": "drive.files.touch", "path": "files/{fileId}/touch", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "trash": {"id": "drive.files.trash", "path": "files/{fileId}/trash", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "untrash": {"id": "drive.files.untrash", "path": "files/{fileId}/untrash", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.files.update", "path": "files/{fileId}", "httpMethod": "PUT", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "newRevision": {"type": "boolean", "default": "true", "location": "query"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "setModifiedDate": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "true", "location": "query"}, "useContentAsIndexableText": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.scripts"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["*/*"], "maxSize": "10GB", "protocols": {"simple": {"multipart": true, "path": "/upload/drive/v2/files/{fileId}"}, "resumable": {"multipart": true, "path": "/resumable/upload/drive/v2/files/{fileId}"}}}}}}', true)); - $this->parents = new Google_ParentsServiceResource($this, $this->serviceName, 'parents', json_decode('{"methods": {"delete": {"id": "drive.parents.delete", "path": "files/{fileId}/parents/{parentId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "parentId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.parents.get", "path": "files/{fileId}/parents/{parentId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "parentId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ParentReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.parents.insert", "path": "files/{fileId}/parents", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ParentReference"}, "response": {"$ref": "ParentReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.parents.list", "path": "files/{fileId}/parents", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ParentList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true)); - $this->permissions = new Google_PermissionsServiceResource($this, $this->serviceName, 'permissions', json_decode('{"methods": {"delete": {"id": "drive.permissions.delete", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.permissions.get", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.permissions.insert", "path": "files/{fileId}/permissions", "httpMethod": "POST", "parameters": {"emailMessage": {"type": "string", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "sendNotificationEmails": {"type": "boolean", "default": "true", "location": "query"}}, "request": {"$ref": "Permission"}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.permissions.list", "path": "files/{fileId}/permissions", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PermissionList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.permissions.patch", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PATCH", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}, "transferOwnership": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "Permission"}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.permissions.update", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PUT", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}, "transferOwnership": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "Permission"}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true)); - $this->properties = new Google_PropertiesServiceResource($this, $this->serviceName, 'properties', json_decode('{"methods": {"delete": {"id": "drive.properties.delete", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.properties.get", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.properties.insert", "path": "files/{fileId}/properties", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Property"}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.properties.list", "path": "files/{fileId}/properties", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PropertyList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.properties.patch", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "PATCH", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "request": {"$ref": "Property"}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.properties.update", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "PUT", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "request": {"$ref": "Property"}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true)); - $this->replies = new Google_RepliesServiceResource($this, $this->serviceName, 'replies', json_decode('{"methods": {"delete": {"id": "drive.replies.delete", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "DELETE", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.replies.get", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.replies.insert", "path": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "POST", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommentReply"}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.replies.list", "path": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}, "maxResults": {"type": "integer", "default": "20", "format": "int32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CommentReplyList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.replies.patch", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PATCH", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommentReply"}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.replies.update", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PUT", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommentReply"}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true)); - $this->revisions = new Google_RevisionsServiceResource($this, $this->serviceName, 'revisions', json_decode('{"methods": {"delete": {"id": "drive.revisions.delete", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.revisions.get", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Revision"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "list": {"id": "drive.revisions.list", "path": "files/{fileId}/revisions", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "RevisionList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.revisions.patch", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PATCH", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Revision"}, "response": {"$ref": "Revision"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.revisions.update", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PUT", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Revision"}, "response": {"$ref": "Revision"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true)); - - } -} - - - -class Google_About extends Google_Model { - protected $__additionalRoleInfoType = 'Google_AboutAdditionalRoleInfo'; - protected $__additionalRoleInfoDataType = 'array'; - public $additionalRoleInfo; - public $domainSharingPolicy; - public $etag; - protected $__exportFormatsType = 'Google_AboutExportFormats'; - protected $__exportFormatsDataType = 'array'; - public $exportFormats; - protected $__featuresType = 'Google_AboutFeatures'; - protected $__featuresDataType = 'array'; - public $features; - protected $__importFormatsType = 'Google_AboutImportFormats'; - protected $__importFormatsDataType = 'array'; - public $importFormats; - public $isCurrentAppInstalled; - public $kind; - public $largestChangeId; - protected $__maxUploadSizesType = 'Google_AboutMaxUploadSizes'; - protected $__maxUploadSizesDataType = 'array'; - public $maxUploadSizes; - public $name; - public $permissionId; - public $quotaBytesTotal; - public $quotaBytesUsed; - public $quotaBytesUsedAggregate; - public $quotaBytesUsedInTrash; - public $remainingChangeIds; - public $rootFolderId; - public $selfLink; - protected $__userType = 'Google_User'; - protected $__userDataType = ''; - public $user; - public function setAdditionalRoleInfo(/* array(Google_AboutAdditionalRoleInfo) */ $additionalRoleInfo) { - $this->assertIsArray($additionalRoleInfo, 'Google_AboutAdditionalRoleInfo', __METHOD__); - $this->additionalRoleInfo = $additionalRoleInfo; - } - public function getAdditionalRoleInfo() { - return $this->additionalRoleInfo; - } - public function setDomainSharingPolicy($domainSharingPolicy) { - $this->domainSharingPolicy = $domainSharingPolicy; - } - public function getDomainSharingPolicy() { - return $this->domainSharingPolicy; - } - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setExportFormats(/* array(Google_AboutExportFormats) */ $exportFormats) { - $this->assertIsArray($exportFormats, 'Google_AboutExportFormats', __METHOD__); - $this->exportFormats = $exportFormats; - } - public function getExportFormats() { - return $this->exportFormats; - } - public function setFeatures(/* array(Google_AboutFeatures) */ $features) { - $this->assertIsArray($features, 'Google_AboutFeatures', __METHOD__); - $this->features = $features; - } - public function getFeatures() { - return $this->features; - } - public function setImportFormats(/* array(Google_AboutImportFormats) */ $importFormats) { - $this->assertIsArray($importFormats, 'Google_AboutImportFormats', __METHOD__); - $this->importFormats = $importFormats; - } - public function getImportFormats() { - return $this->importFormats; - } - public function setIsCurrentAppInstalled($isCurrentAppInstalled) { - $this->isCurrentAppInstalled = $isCurrentAppInstalled; - } - public function getIsCurrentAppInstalled() { - return $this->isCurrentAppInstalled; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setLargestChangeId($largestChangeId) { - $this->largestChangeId = $largestChangeId; - } - public function getLargestChangeId() { - return $this->largestChangeId; - } - public function setMaxUploadSizes(/* array(Google_AboutMaxUploadSizes) */ $maxUploadSizes) { - $this->assertIsArray($maxUploadSizes, 'Google_AboutMaxUploadSizes', __METHOD__); - $this->maxUploadSizes = $maxUploadSizes; - } - public function getMaxUploadSizes() { - return $this->maxUploadSizes; - } - public function setName($name) { - $this->name = $name; - } - public function getName() { - return $this->name; - } - public function setPermissionId($permissionId) { - $this->permissionId = $permissionId; - } - public function getPermissionId() { - return $this->permissionId; - } - public function setQuotaBytesTotal($quotaBytesTotal) { - $this->quotaBytesTotal = $quotaBytesTotal; - } - public function getQuotaBytesTotal() { - return $this->quotaBytesTotal; - } - public function setQuotaBytesUsed($quotaBytesUsed) { - $this->quotaBytesUsed = $quotaBytesUsed; - } - public function getQuotaBytesUsed() { - return $this->quotaBytesUsed; - } - public function setQuotaBytesUsedAggregate($quotaBytesUsedAggregate) { - $this->quotaBytesUsedAggregate = $quotaBytesUsedAggregate; - } - public function getQuotaBytesUsedAggregate() { - return $this->quotaBytesUsedAggregate; - } - public function setQuotaBytesUsedInTrash($quotaBytesUsedInTrash) { - $this->quotaBytesUsedInTrash = $quotaBytesUsedInTrash; - } - public function getQuotaBytesUsedInTrash() { - return $this->quotaBytesUsedInTrash; - } - public function setRemainingChangeIds($remainingChangeIds) { - $this->remainingChangeIds = $remainingChangeIds; - } - public function getRemainingChangeIds() { - return $this->remainingChangeIds; - } - public function setRootFolderId($rootFolderId) { - $this->rootFolderId = $rootFolderId; - } - public function getRootFolderId() { - return $this->rootFolderId; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } - public function setUser(Google_User $user) { - $this->user = $user; - } - public function getUser() { - return $this->user; - } -} - -class Google_AboutAdditionalRoleInfo extends Google_Model { - protected $__roleSetsType = 'Google_AboutAdditionalRoleInfoRoleSets'; - protected $__roleSetsDataType = 'array'; - public $roleSets; - public $type; - public function setRoleSets(/* array(Google_AboutAdditionalRoleInfoRoleSets) */ $roleSets) { - $this->assertIsArray($roleSets, 'Google_AboutAdditionalRoleInfoRoleSets', __METHOD__); - $this->roleSets = $roleSets; - } - public function getRoleSets() { - return $this->roleSets; - } - public function setType($type) { - $this->type = $type; - } - public function getType() { - return $this->type; - } -} - -class Google_AboutAdditionalRoleInfoRoleSets extends Google_Model { - public $additionalRoles; - public $primaryRole; - public function setAdditionalRoles(/* array(Google_string) */ $additionalRoles) { - $this->assertIsArray($additionalRoles, 'Google_string', __METHOD__); - $this->additionalRoles = $additionalRoles; - } - public function getAdditionalRoles() { - return $this->additionalRoles; - } - public function setPrimaryRole($primaryRole) { - $this->primaryRole = $primaryRole; - } - public function getPrimaryRole() { - return $this->primaryRole; - } -} - -class Google_AboutExportFormats extends Google_Model { - public $source; - public $targets; - public function setSource($source) { - $this->source = $source; - } - public function getSource() { - return $this->source; - } - public function setTargets(/* array(Google_string) */ $targets) { - $this->assertIsArray($targets, 'Google_string', __METHOD__); - $this->targets = $targets; - } - public function getTargets() { - return $this->targets; - } -} - -class Google_AboutFeatures extends Google_Model { - public $featureName; - public $featureRate; - public function setFeatureName($featureName) { - $this->featureName = $featureName; - } - public function getFeatureName() { - return $this->featureName; - } - public function setFeatureRate($featureRate) { - $this->featureRate = $featureRate; - } - public function getFeatureRate() { - return $this->featureRate; - } -} - -class Google_AboutImportFormats extends Google_Model { - public $source; - public $targets; - public function setSource($source) { - $this->source = $source; - } - public function getSource() { - return $this->source; - } - public function setTargets(/* array(Google_string) */ $targets) { - $this->assertIsArray($targets, 'Google_string', __METHOD__); - $this->targets = $targets; - } - public function getTargets() { - return $this->targets; - } -} - -class Google_AboutMaxUploadSizes extends Google_Model { - public $size; - public $type; - public function setSize($size) { - $this->size = $size; - } - public function getSize() { - return $this->size; - } - public function setType($type) { - $this->type = $type; - } - public function getType() { - return $this->type; - } -} - -class Google_App extends Google_Model { - public $authorized; - protected $__iconsType = 'Google_AppIcons'; - protected $__iconsDataType = 'array'; - public $icons; - public $id; - public $installed; - public $kind; - public $name; - public $objectType; - public $primaryFileExtensions; - public $primaryMimeTypes; - public $productUrl; - public $secondaryFileExtensions; - public $secondaryMimeTypes; - public $supportsCreate; - public $supportsImport; - public $useByDefault; - public function setAuthorized($authorized) { - $this->authorized = $authorized; - } - public function getAuthorized() { - return $this->authorized; - } - public function setIcons(/* array(Google_AppIcons) */ $icons) { - $this->assertIsArray($icons, 'Google_AppIcons', __METHOD__); - $this->icons = $icons; - } - public function getIcons() { - return $this->icons; - } - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setInstalled($installed) { - $this->installed = $installed; - } - public function getInstalled() { - return $this->installed; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setName($name) { - $this->name = $name; - } - public function getName() { - return $this->name; - } - public function setObjectType($objectType) { - $this->objectType = $objectType; - } - public function getObjectType() { - return $this->objectType; - } - public function setPrimaryFileExtensions(/* array(Google_string) */ $primaryFileExtensions) { - $this->assertIsArray($primaryFileExtensions, 'Google_string', __METHOD__); - $this->primaryFileExtensions = $primaryFileExtensions; - } - public function getPrimaryFileExtensions() { - return $this->primaryFileExtensions; - } - public function setPrimaryMimeTypes(/* array(Google_string) */ $primaryMimeTypes) { - $this->assertIsArray($primaryMimeTypes, 'Google_string', __METHOD__); - $this->primaryMimeTypes = $primaryMimeTypes; - } - public function getPrimaryMimeTypes() { - return $this->primaryMimeTypes; - } - public function setProductUrl($productUrl) { - $this->productUrl = $productUrl; - } - public function getProductUrl() { - return $this->productUrl; - } - public function setSecondaryFileExtensions(/* array(Google_string) */ $secondaryFileExtensions) { - $this->assertIsArray($secondaryFileExtensions, 'Google_string', __METHOD__); - $this->secondaryFileExtensions = $secondaryFileExtensions; - } - public function getSecondaryFileExtensions() { - return $this->secondaryFileExtensions; - } - public function setSecondaryMimeTypes(/* array(Google_string) */ $secondaryMimeTypes) { - $this->assertIsArray($secondaryMimeTypes, 'Google_string', __METHOD__); - $this->secondaryMimeTypes = $secondaryMimeTypes; - } - public function getSecondaryMimeTypes() { - return $this->secondaryMimeTypes; - } - public function setSupportsCreate($supportsCreate) { - $this->supportsCreate = $supportsCreate; - } - public function getSupportsCreate() { - return $this->supportsCreate; - } - public function setSupportsImport($supportsImport) { - $this->supportsImport = $supportsImport; - } - public function getSupportsImport() { - return $this->supportsImport; - } - public function setUseByDefault($useByDefault) { - $this->useByDefault = $useByDefault; - } - public function getUseByDefault() { - return $this->useByDefault; - } -} - -class Google_AppIcons extends Google_Model { - public $category; - public $iconUrl; - public $size; - public function setCategory($category) { - $this->category = $category; - } - public function getCategory() { - return $this->category; - } - public function setIconUrl($iconUrl) { - $this->iconUrl = $iconUrl; - } - public function getIconUrl() { - return $this->iconUrl; - } - public function setSize($size) { - $this->size = $size; - } - public function getSize() { - return $this->size; - } -} - -class Google_AppList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_App'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_App) */ $items) { - $this->assertIsArray($items, 'Google_App', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_Change extends Google_Model { - public $deleted; - protected $__fileType = 'Google_DriveFile'; - protected $__fileDataType = ''; - public $file; - public $fileId; - public $id; - public $kind; - public $selfLink; - public function setDeleted($deleted) { - $this->deleted = $deleted; - } - public function getDeleted() { - return $this->deleted; - } - public function setFile(Google_DriveFile $file) { - $this->file = $file; - } - public function getFile() { - return $this->file; - } - public function setFileId($fileId) { - $this->fileId = $fileId; - } - public function getFileId() { - return $this->fileId; - } - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_ChangeList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_Change'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $largestChangeId; - public $nextLink; - public $nextPageToken; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_Change) */ $items) { - $this->assertIsArray($items, 'Google_Change', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setLargestChangeId($largestChangeId) { - $this->largestChangeId = $largestChangeId; - } - public function getLargestChangeId() { - return $this->largestChangeId; - } - public function setNextLink($nextLink) { - $this->nextLink = $nextLink; - } - public function getNextLink() { - return $this->nextLink; - } - public function setNextPageToken($nextPageToken) { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() { - return $this->nextPageToken; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_ChildList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_ChildReference'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $nextLink; - public $nextPageToken; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_ChildReference) */ $items) { - $this->assertIsArray($items, 'Google_ChildReference', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setNextLink($nextLink) { - $this->nextLink = $nextLink; - } - public function getNextLink() { - return $this->nextLink; - } - public function setNextPageToken($nextPageToken) { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() { - return $this->nextPageToken; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_ChildReference extends Google_Model { - public $childLink; - public $id; - public $kind; - public $selfLink; - public function setChildLink($childLink) { - $this->childLink = $childLink; - } - public function getChildLink() { - return $this->childLink; - } - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_Comment extends Google_Model { - public $anchor; - protected $__authorType = 'Google_User'; - protected $__authorDataType = ''; - public $author; - public $commentId; - public $content; - protected $__contextType = 'Google_CommentContext'; - protected $__contextDataType = ''; - public $context; - public $createdDate; - public $deleted; - public $fileId; - public $fileTitle; - public $htmlContent; - public $kind; - public $modifiedDate; - protected $__repliesType = 'Google_CommentReply'; - protected $__repliesDataType = 'array'; - public $replies; - public $selfLink; - public $status; - public function setAnchor($anchor) { - $this->anchor = $anchor; - } - public function getAnchor() { - return $this->anchor; - } - public function setAuthor(Google_User $author) { - $this->author = $author; - } - public function getAuthor() { - return $this->author; - } - public function setCommentId($commentId) { - $this->commentId = $commentId; - } - public function getCommentId() { - return $this->commentId; - } - public function setContent($content) { - $this->content = $content; - } - public function getContent() { - return $this->content; - } - public function setContext(Google_CommentContext $context) { - $this->context = $context; - } - public function getContext() { - return $this->context; - } - public function setCreatedDate($createdDate) { - $this->createdDate = $createdDate; - } - public function getCreatedDate() { - return $this->createdDate; - } - public function setDeleted($deleted) { - $this->deleted = $deleted; - } - public function getDeleted() { - return $this->deleted; - } - public function setFileId($fileId) { - $this->fileId = $fileId; - } - public function getFileId() { - return $this->fileId; - } - public function setFileTitle($fileTitle) { - $this->fileTitle = $fileTitle; - } - public function getFileTitle() { - return $this->fileTitle; - } - public function setHtmlContent($htmlContent) { - $this->htmlContent = $htmlContent; - } - public function getHtmlContent() { - return $this->htmlContent; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setModifiedDate($modifiedDate) { - $this->modifiedDate = $modifiedDate; - } - public function getModifiedDate() { - return $this->modifiedDate; - } - public function setReplies(/* array(Google_CommentReply) */ $replies) { - $this->assertIsArray($replies, 'Google_CommentReply', __METHOD__); - $this->replies = $replies; - } - public function getReplies() { - return $this->replies; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } - public function setStatus($status) { - $this->status = $status; - } - public function getStatus() { - return $this->status; - } -} - -class Google_CommentContext extends Google_Model { - public $type; - public $value; - public function setType($type) { - $this->type = $type; - } - public function getType() { - return $this->type; - } - public function setValue($value) { - $this->value = $value; - } - public function getValue() { - return $this->value; - } -} - -class Google_CommentList extends Google_Model { - protected $__itemsType = 'Google_Comment'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $nextPageToken; - public function setItems(/* array(Google_Comment) */ $items) { - $this->assertIsArray($items, 'Google_Comment', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setNextPageToken($nextPageToken) { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() { - return $this->nextPageToken; - } -} - -class Google_CommentReply extends Google_Model { - protected $__authorType = 'Google_User'; - protected $__authorDataType = ''; - public $author; - public $content; - public $createdDate; - public $deleted; - public $htmlContent; - public $kind; - public $modifiedDate; - public $replyId; - public $verb; - public function setAuthor(Google_User $author) { - $this->author = $author; - } - public function getAuthor() { - return $this->author; - } - public function setContent($content) { - $this->content = $content; - } - public function getContent() { - return $this->content; - } - public function setCreatedDate($createdDate) { - $this->createdDate = $createdDate; - } - public function getCreatedDate() { - return $this->createdDate; - } - public function setDeleted($deleted) { - $this->deleted = $deleted; - } - public function getDeleted() { - return $this->deleted; - } - public function setHtmlContent($htmlContent) { - $this->htmlContent = $htmlContent; - } - public function getHtmlContent() { - return $this->htmlContent; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setModifiedDate($modifiedDate) { - $this->modifiedDate = $modifiedDate; - } - public function getModifiedDate() { - return $this->modifiedDate; - } - public function setReplyId($replyId) { - $this->replyId = $replyId; - } - public function getReplyId() { - return $this->replyId; - } - public function setVerb($verb) { - $this->verb = $verb; - } - public function getVerb() { - return $this->verb; - } -} - -class Google_CommentReplyList extends Google_Model { - protected $__itemsType = 'Google_CommentReply'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $nextPageToken; - public function setItems(/* array(Google_CommentReply) */ $items) { - $this->assertIsArray($items, 'Google_CommentReply', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setNextPageToken($nextPageToken) { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() { - return $this->nextPageToken; - } -} - -class Google_DriveFile extends Google_Model { - public $alternateLink; - public $appDataContents; - public $createdDate; - public $description; - public $downloadUrl; - public $editable; - public $embedLink; - public $etag; - public $explicitlyTrashed; - public $exportLinks; - public $fileExtension; - public $fileSize; - public $iconLink; - public $id; - protected $__imageMediaMetadataType = 'Google_DriveFileImageMediaMetadata'; - protected $__imageMediaMetadataDataType = ''; - public $imageMediaMetadata; - protected $__indexableTextType = 'Google_DriveFileIndexableText'; - protected $__indexableTextDataType = ''; - public $indexableText; - public $kind; - protected $__labelsType = 'Google_DriveFileLabels'; - protected $__labelsDataType = ''; - public $labels; - protected $__lastModifyingUserType = 'Google_User'; - protected $__lastModifyingUserDataType = ''; - public $lastModifyingUser; - public $lastModifyingUserName; - public $lastViewedByMeDate; - public $md5Checksum; - public $mimeType; - public $modifiedByMeDate; - public $modifiedDate; - public $originalFilename; - public $ownerNames; - protected $__ownersType = 'Google_User'; - protected $__ownersDataType = 'array'; - public $owners; - protected $__parentsType = 'Google_ParentReference'; - protected $__parentsDataType = 'array'; - public $parents; - public $quotaBytesUsed; - public $selfLink; - public $shared; - public $sharedWithMeDate; - protected $__thumbnailType = 'Google_DriveFileThumbnail'; - protected $__thumbnailDataType = ''; - public $thumbnail; - public $thumbnailLink; - public $title; - protected $__userPermissionType = 'Google_Permission'; - protected $__userPermissionDataType = ''; - public $userPermission; - public $webContentLink; - public $webViewLink; - public $writersCanShare; - public function setAlternateLink($alternateLink) { - $this->alternateLink = $alternateLink; - } - public function getAlternateLink() { - return $this->alternateLink; - } - public function setAppDataContents($appDataContents) { - $this->appDataContents = $appDataContents; - } - public function getAppDataContents() { - return $this->appDataContents; - } - public function setCreatedDate($createdDate) { - $this->createdDate = $createdDate; - } - public function getCreatedDate() { - return $this->createdDate; - } - public function setDescription($description) { - $this->description = $description; - } - public function getDescription() { - return $this->description; - } - public function setDownloadUrl($downloadUrl) { - $this->downloadUrl = $downloadUrl; - } - public function getDownloadUrl() { - return $this->downloadUrl; - } - public function setEditable($editable) { - $this->editable = $editable; - } - public function getEditable() { - return $this->editable; - } - public function setEmbedLink($embedLink) { - $this->embedLink = $embedLink; - } - public function getEmbedLink() { - return $this->embedLink; - } - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setExplicitlyTrashed($explicitlyTrashed) { - $this->explicitlyTrashed = $explicitlyTrashed; - } - public function getExplicitlyTrashed() { - return $this->explicitlyTrashed; - } - public function setExportLinks($exportLinks) { - $this->exportLinks = $exportLinks; - } - public function getExportLinks() { - return $this->exportLinks; - } - public function setFileExtension($fileExtension) { - $this->fileExtension = $fileExtension; - } - public function getFileExtension() { - return $this->fileExtension; - } - public function setFileSize($fileSize) { - $this->fileSize = $fileSize; - } - public function getFileSize() { - return $this->fileSize; - } - public function setIconLink($iconLink) { - $this->iconLink = $iconLink; - } - public function getIconLink() { - return $this->iconLink; - } - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setImageMediaMetadata(Google_DriveFileImageMediaMetadata $imageMediaMetadata) { - $this->imageMediaMetadata = $imageMediaMetadata; - } - public function getImageMediaMetadata() { - return $this->imageMediaMetadata; - } - public function setIndexableText(Google_DriveFileIndexableText $indexableText) { - $this->indexableText = $indexableText; - } - public function getIndexableText() { - return $this->indexableText; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setLabels(Google_DriveFileLabels $labels) { - $this->labels = $labels; - } - public function getLabels() { - return $this->labels; - } - public function setLastModifyingUser(Google_User $lastModifyingUser) { - $this->lastModifyingUser = $lastModifyingUser; - } - public function getLastModifyingUser() { - return $this->lastModifyingUser; - } - public function setLastModifyingUserName($lastModifyingUserName) { - $this->lastModifyingUserName = $lastModifyingUserName; - } - public function getLastModifyingUserName() { - return $this->lastModifyingUserName; - } - public function setLastViewedByMeDate($lastViewedByMeDate) { - $this->lastViewedByMeDate = $lastViewedByMeDate; - } - public function getLastViewedByMeDate() { - return $this->lastViewedByMeDate; - } - public function setMd5Checksum($md5Checksum) { - $this->md5Checksum = $md5Checksum; - } - public function getMd5Checksum() { - return $this->md5Checksum; - } - public function setMimeType($mimeType) { - $this->mimeType = $mimeType; - } - public function getMimeType() { - return $this->mimeType; - } - public function setModifiedByMeDate($modifiedByMeDate) { - $this->modifiedByMeDate = $modifiedByMeDate; - } - public function getModifiedByMeDate() { - return $this->modifiedByMeDate; - } - public function setModifiedDate($modifiedDate) { - $this->modifiedDate = $modifiedDate; - } - public function getModifiedDate() { - return $this->modifiedDate; - } - public function setOriginalFilename($originalFilename) { - $this->originalFilename = $originalFilename; - } - public function getOriginalFilename() { - return $this->originalFilename; - } - public function setOwnerNames(/* array(Google_string) */ $ownerNames) { - $this->assertIsArray($ownerNames, 'Google_string', __METHOD__); - $this->ownerNames = $ownerNames; - } - public function getOwnerNames() { - return $this->ownerNames; - } - public function setOwners(/* array(Google_User) */ $owners) { - $this->assertIsArray($owners, 'Google_User', __METHOD__); - $this->owners = $owners; - } - public function getOwners() { - return $this->owners; - } - public function setParents(/* array(Google_ParentReference) */ $parents) { - $this->assertIsArray($parents, 'Google_ParentReference', __METHOD__); - $this->parents = $parents; - } - public function getParents() { - return $this->parents; - } - public function setQuotaBytesUsed($quotaBytesUsed) { - $this->quotaBytesUsed = $quotaBytesUsed; - } - public function getQuotaBytesUsed() { - return $this->quotaBytesUsed; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } - public function setShared($shared) { - $this->shared = $shared; - } - public function getShared() { - return $this->shared; - } - public function setSharedWithMeDate($sharedWithMeDate) { - $this->sharedWithMeDate = $sharedWithMeDate; - } - public function getSharedWithMeDate() { - return $this->sharedWithMeDate; - } - public function setThumbnail(Google_DriveFileThumbnail $thumbnail) { - $this->thumbnail = $thumbnail; - } - public function getThumbnail() { - return $this->thumbnail; - } - public function setThumbnailLink($thumbnailLink) { - $this->thumbnailLink = $thumbnailLink; - } - public function getThumbnailLink() { - return $this->thumbnailLink; - } - public function setTitle($title) { - $this->title = $title; - } - public function getTitle() { - return $this->title; - } - public function setUserPermission(Google_Permission $userPermission) { - $this->userPermission = $userPermission; - } - public function getUserPermission() { - return $this->userPermission; - } - public function setWebContentLink($webContentLink) { - $this->webContentLink = $webContentLink; - } - public function getWebContentLink() { - return $this->webContentLink; - } - public function setWebViewLink($webViewLink) { - $this->webViewLink = $webViewLink; - } - public function getWebViewLink() { - return $this->webViewLink; - } - public function setWritersCanShare($writersCanShare) { - $this->writersCanShare = $writersCanShare; - } - public function getWritersCanShare() { - return $this->writersCanShare; - } -} - -class Google_DriveFileImageMediaMetadata extends Google_Model { - public $aperture; - public $cameraMake; - public $cameraModel; - public $colorSpace; - public $date; - public $exposureBias; - public $exposureMode; - public $exposureTime; - public $flashUsed; - public $focalLength; - public $height; - public $isoSpeed; - public $lens; - protected $__locationType = 'Google_DriveFileImageMediaMetadataLocation'; - protected $__locationDataType = ''; - public $location; - public $maxApertureValue; - public $meteringMode; - public $rotation; - public $sensor; - public $subjectDistance; - public $whiteBalance; - public $width; - public function setAperture($aperture) { - $this->aperture = $aperture; - } - public function getAperture() { - return $this->aperture; - } - public function setCameraMake($cameraMake) { - $this->cameraMake = $cameraMake; - } - public function getCameraMake() { - return $this->cameraMake; - } - public function setCameraModel($cameraModel) { - $this->cameraModel = $cameraModel; - } - public function getCameraModel() { - return $this->cameraModel; - } - public function setColorSpace($colorSpace) { - $this->colorSpace = $colorSpace; - } - public function getColorSpace() { - return $this->colorSpace; - } - public function setDate($date) { - $this->date = $date; - } - public function getDate() { - return $this->date; - } - public function setExposureBias($exposureBias) { - $this->exposureBias = $exposureBias; - } - public function getExposureBias() { - return $this->exposureBias; - } - public function setExposureMode($exposureMode) { - $this->exposureMode = $exposureMode; - } - public function getExposureMode() { - return $this->exposureMode; - } - public function setExposureTime($exposureTime) { - $this->exposureTime = $exposureTime; - } - public function getExposureTime() { - return $this->exposureTime; - } - public function setFlashUsed($flashUsed) { - $this->flashUsed = $flashUsed; - } - public function getFlashUsed() { - return $this->flashUsed; - } - public function setFocalLength($focalLength) { - $this->focalLength = $focalLength; - } - public function getFocalLength() { - return $this->focalLength; - } - public function setHeight($height) { - $this->height = $height; - } - public function getHeight() { - return $this->height; - } - public function setIsoSpeed($isoSpeed) { - $this->isoSpeed = $isoSpeed; - } - public function getIsoSpeed() { - return $this->isoSpeed; - } - public function setLens($lens) { - $this->lens = $lens; - } - public function getLens() { - return $this->lens; - } - public function setLocation(Google_DriveFileImageMediaMetadataLocation $location) { - $this->location = $location; - } - public function getLocation() { - return $this->location; - } - public function setMaxApertureValue($maxApertureValue) { - $this->maxApertureValue = $maxApertureValue; - } - public function getMaxApertureValue() { - return $this->maxApertureValue; - } - public function setMeteringMode($meteringMode) { - $this->meteringMode = $meteringMode; - } - public function getMeteringMode() { - return $this->meteringMode; - } - public function setRotation($rotation) { - $this->rotation = $rotation; - } - public function getRotation() { - return $this->rotation; - } - public function setSensor($sensor) { - $this->sensor = $sensor; - } - public function getSensor() { - return $this->sensor; - } - public function setSubjectDistance($subjectDistance) { - $this->subjectDistance = $subjectDistance; - } - public function getSubjectDistance() { - return $this->subjectDistance; - } - public function setWhiteBalance($whiteBalance) { - $this->whiteBalance = $whiteBalance; - } - public function getWhiteBalance() { - return $this->whiteBalance; - } - public function setWidth($width) { - $this->width = $width; - } - public function getWidth() { - return $this->width; - } -} - -class Google_DriveFileImageMediaMetadataLocation extends Google_Model { - public $altitude; - public $latitude; - public $longitude; - public function setAltitude($altitude) { - $this->altitude = $altitude; - } - public function getAltitude() { - return $this->altitude; - } - public function setLatitude($latitude) { - $this->latitude = $latitude; - } - public function getLatitude() { - return $this->latitude; - } - public function setLongitude($longitude) { - $this->longitude = $longitude; - } - public function getLongitude() { - return $this->longitude; - } -} - -class Google_DriveFileIndexableText extends Google_Model { - public $text; - public function setText($text) { - $this->text = $text; - } - public function getText() { - return $this->text; - } -} - -class Google_DriveFileLabels extends Google_Model { - public $hidden; - public $restricted; - public $starred; - public $trashed; - public $viewed; - public function setHidden($hidden) { - $this->hidden = $hidden; - } - public function getHidden() { - return $this->hidden; - } - public function setRestricted($restricted) { - $this->restricted = $restricted; - } - public function getRestricted() { - return $this->restricted; - } - public function setStarred($starred) { - $this->starred = $starred; - } - public function getStarred() { - return $this->starred; - } - public function setTrashed($trashed) { - $this->trashed = $trashed; - } - public function getTrashed() { - return $this->trashed; - } - public function setViewed($viewed) { - $this->viewed = $viewed; - } - public function getViewed() { - return $this->viewed; - } -} - -class Google_DriveFileThumbnail extends Google_Model { - public $image; - public $mimeType; - public function setImage($image) { - $this->image = $image; - } - public function getImage() { - return $this->image; - } - public function setMimeType($mimeType) { - $this->mimeType = $mimeType; - } - public function getMimeType() { - return $this->mimeType; - } -} - -class Google_FileList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_DriveFile'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $nextLink; - public $nextPageToken; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_DriveFile) */ $items) { - $this->assertIsArray($items, 'Google_DriveFile', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setNextLink($nextLink) { - $this->nextLink = $nextLink; - } - public function getNextLink() { - return $this->nextLink; - } - public function setNextPageToken($nextPageToken) { - $this->nextPageToken = $nextPageToken; - } - public function getNextPageToken() { - return $this->nextPageToken; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_ParentList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_ParentReference'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_ParentReference) */ $items) { - $this->assertIsArray($items, 'Google_ParentReference', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_ParentReference extends Google_Model { - public $id; - public $isRoot; - public $kind; - public $parentLink; - public $selfLink; - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setIsRoot($isRoot) { - $this->isRoot = $isRoot; - } - public function getIsRoot() { - return $this->isRoot; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setParentLink($parentLink) { - $this->parentLink = $parentLink; - } - public function getParentLink() { - return $this->parentLink; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_Permission extends Google_Model { - public $additionalRoles; - public $authKey; - public $etag; - public $id; - public $kind; - public $name; - public $photoLink; - public $role; - public $selfLink; - public $type; - public $value; - public $withLink; - public function setAdditionalRoles(/* array(Google_string) */ $additionalRoles) { - $this->assertIsArray($additionalRoles, 'Google_string', __METHOD__); - $this->additionalRoles = $additionalRoles; - } - public function getAdditionalRoles() { - return $this->additionalRoles; - } - public function setAuthKey($authKey) { - $this->authKey = $authKey; - } - public function getAuthKey() { - return $this->authKey; - } - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setName($name) { - $this->name = $name; - } - public function getName() { - return $this->name; - } - public function setPhotoLink($photoLink) { - $this->photoLink = $photoLink; - } - public function getPhotoLink() { - return $this->photoLink; - } - public function setRole($role) { - $this->role = $role; - } - public function getRole() { - return $this->role; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } - public function setType($type) { - $this->type = $type; - } - public function getType() { - return $this->type; - } - public function setValue($value) { - $this->value = $value; - } - public function getValue() { - return $this->value; - } - public function setWithLink($withLink) { - $this->withLink = $withLink; - } - public function getWithLink() { - return $this->withLink; - } -} - -class Google_PermissionList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_Permission'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_Permission) */ $items) { - $this->assertIsArray($items, 'Google_Permission', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_Property extends Google_Model { - public $etag; - public $key; - public $kind; - public $selfLink; - public $value; - public $visibility; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setKey($key) { - $this->key = $key; - } - public function getKey() { - return $this->key; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } - public function setValue($value) { - $this->value = $value; - } - public function getValue() { - return $this->value; - } - public function setVisibility($visibility) { - $this->visibility = $visibility; - } - public function getVisibility() { - return $this->visibility; - } -} - -class Google_PropertyList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_Property'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_Property) */ $items) { - $this->assertIsArray($items, 'Google_Property', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_Revision extends Google_Model { - public $downloadUrl; - public $etag; - public $exportLinks; - public $fileSize; - public $id; - public $kind; - protected $__lastModifyingUserType = 'Google_User'; - protected $__lastModifyingUserDataType = ''; - public $lastModifyingUser; - public $lastModifyingUserName; - public $md5Checksum; - public $mimeType; - public $modifiedDate; - public $originalFilename; - public $pinned; - public $publishAuto; - public $published; - public $publishedLink; - public $publishedOutsideDomain; - public $selfLink; - public function setDownloadUrl($downloadUrl) { - $this->downloadUrl = $downloadUrl; - } - public function getDownloadUrl() { - return $this->downloadUrl; - } - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setExportLinks($exportLinks) { - $this->exportLinks = $exportLinks; - } - public function getExportLinks() { - return $this->exportLinks; - } - public function setFileSize($fileSize) { - $this->fileSize = $fileSize; - } - public function getFileSize() { - return $this->fileSize; - } - public function setId($id) { - $this->id = $id; - } - public function getId() { - return $this->id; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setLastModifyingUser(Google_User $lastModifyingUser) { - $this->lastModifyingUser = $lastModifyingUser; - } - public function getLastModifyingUser() { - return $this->lastModifyingUser; - } - public function setLastModifyingUserName($lastModifyingUserName) { - $this->lastModifyingUserName = $lastModifyingUserName; - } - public function getLastModifyingUserName() { - return $this->lastModifyingUserName; - } - public function setMd5Checksum($md5Checksum) { - $this->md5Checksum = $md5Checksum; - } - public function getMd5Checksum() { - return $this->md5Checksum; - } - public function setMimeType($mimeType) { - $this->mimeType = $mimeType; - } - public function getMimeType() { - return $this->mimeType; - } - public function setModifiedDate($modifiedDate) { - $this->modifiedDate = $modifiedDate; - } - public function getModifiedDate() { - return $this->modifiedDate; - } - public function setOriginalFilename($originalFilename) { - $this->originalFilename = $originalFilename; - } - public function getOriginalFilename() { - return $this->originalFilename; - } - public function setPinned($pinned) { - $this->pinned = $pinned; - } - public function getPinned() { - return $this->pinned; - } - public function setPublishAuto($publishAuto) { - $this->publishAuto = $publishAuto; - } - public function getPublishAuto() { - return $this->publishAuto; - } - public function setPublished($published) { - $this->published = $published; - } - public function getPublished() { - return $this->published; - } - public function setPublishedLink($publishedLink) { - $this->publishedLink = $publishedLink; - } - public function getPublishedLink() { - return $this->publishedLink; - } - public function setPublishedOutsideDomain($publishedOutsideDomain) { - $this->publishedOutsideDomain = $publishedOutsideDomain; - } - public function getPublishedOutsideDomain() { - return $this->publishedOutsideDomain; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_RevisionList extends Google_Model { - public $etag; - protected $__itemsType = 'Google_Revision'; - protected $__itemsDataType = 'array'; - public $items; - public $kind; - public $selfLink; - public function setEtag($etag) { - $this->etag = $etag; - } - public function getEtag() { - return $this->etag; - } - public function setItems(/* array(Google_Revision) */ $items) { - $this->assertIsArray($items, 'Google_Revision', __METHOD__); - $this->items = $items; - } - public function getItems() { - return $this->items; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setSelfLink($selfLink) { - $this->selfLink = $selfLink; - } - public function getSelfLink() { - return $this->selfLink; - } -} - -class Google_User extends Google_Model { - public $displayName; - public $isAuthenticatedUser; - public $kind; - public $permissionId; - protected $__pictureType = 'Google_UserPicture'; - protected $__pictureDataType = ''; - public $picture; - public function setDisplayName($displayName) { - $this->displayName = $displayName; - } - public function getDisplayName() { - return $this->displayName; - } - public function setIsAuthenticatedUser($isAuthenticatedUser) { - $this->isAuthenticatedUser = $isAuthenticatedUser; - } - public function getIsAuthenticatedUser() { - return $this->isAuthenticatedUser; - } - public function setKind($kind) { - $this->kind = $kind; - } - public function getKind() { - return $this->kind; - } - public function setPermissionId($permissionId) { - $this->permissionId = $permissionId; - } - public function getPermissionId() { - return $this->permissionId; - } - public function setPicture(Google_UserPicture $picture) { - $this->picture = $picture; - } - public function getPicture() { - return $this->picture; - } -} - -class Google_UserPicture extends Google_Model { - public $url; - public function setUrl($url) { - $this->url = $url; - } - public function getUrl() { - return $this->url; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/external/URITemplateParser.php b/apps/files_external/3rdparty/google-api-php-client/src/external/URITemplateParser.php deleted file mode 100644 index 594adbb15e24abe333f8d681ed2b6ea360e40280..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/external/URITemplateParser.php +++ /dev/null @@ -1,209 +0,0 @@ -template = $template; - } - - public function expand($data) { - // Modification to make this a bit more performant (since gettype is very slow) - if (! is_array($data)) { - $data = (array)$data; - } - /* - // Original code, which uses a slow gettype() statement, kept in place for if the assumption that is_array always works here is incorrect - switch (gettype($data)) { - case "boolean": - case "integer": - case "double": - case "string": - case "object": - $data = (array)$data; - break; - } -*/ - - // Resolve template vars - preg_match_all('/\{([^\}]*)\}/', $this->template, $em); - - foreach ($em[1] as $i => $bare_expression) { - preg_match('/^([\+\;\?\/\.]{1})?(.*)$/', $bare_expression, $lm); - $exp = new StdClass(); - $exp->expression = $em[0][$i]; - $exp->operator = $lm[1]; - $exp->variable_list = $lm[2]; - $exp->varspecs = explode(',', $exp->variable_list); - $exp->vars = array(); - foreach ($exp->varspecs as $varspec) { - preg_match('/^([a-zA-Z0-9_]+)([\*\+]{1})?([\:\^][0-9-]+)?(\=[^,]+)?$/', $varspec, $vm); - $var = new StdClass(); - $var->name = $vm[1]; - $var->modifier = isset($vm[2]) && $vm[2] ? $vm[2] : null; - $var->modifier = isset($vm[3]) && $vm[3] ? $vm[3] : $var->modifier; - $var->default = isset($vm[4]) ? substr($vm[4], 1) : null; - $exp->vars[] = $var; - } - - // Add processing flags - $exp->reserved = false; - $exp->prefix = ''; - $exp->delimiter = ','; - switch ($exp->operator) { - case '+': - $exp->reserved = 'true'; - break; - case ';': - $exp->prefix = ';'; - $exp->delimiter = ';'; - break; - case '?': - $exp->prefix = '?'; - $exp->delimiter = '&'; - break; - case '/': - $exp->prefix = '/'; - $exp->delimiter = '/'; - break; - case '.': - $exp->prefix = '.'; - $exp->delimiter = '.'; - break; - } - $expressions[] = $exp; - } - - // Expansion - $this->expansion = $this->template; - - foreach ($expressions as $exp) { - $part = $exp->prefix; - $exp->one_var_defined = false; - foreach ($exp->vars as $var) { - $val = ''; - if ($exp->one_var_defined && isset($data[$var->name])) { - $part .= $exp->delimiter; - } - // Variable present - if (isset($data[$var->name])) { - $exp->one_var_defined = true; - $var->data = $data[$var->name]; - - $val = self::val_from_var($var, $exp); - - // Variable missing - } else { - if ($var->default) { - $exp->one_var_defined = true; - $val = $var->default; - } - } - $part .= $val; - } - if (! $exp->one_var_defined) $part = ''; - $this->expansion = str_replace($exp->expression, $part, $this->expansion); - } - - return $this->expansion; - } - - private function val_from_var($var, $exp) { - $val = ''; - if (is_array($var->data)) { - $i = 0; - if ($exp->operator == '?' && ! $var->modifier) { - $val .= $var->name . '='; - } - foreach ($var->data as $k => $v) { - $del = $var->modifier ? $exp->delimiter : ','; - $ek = rawurlencode($k); - $ev = rawurlencode($v); - - // Array - if ($k !== $i) { - if ($var->modifier == '+') { - $val .= $var->name . '.'; - } - if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') { - $val .= $ek . '='; - } else { - $val .= $ek . $del; - } - - // List - } else { - if ($var->modifier == '+') { - if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') { - $val .= $var->name . '='; - } else { - $val .= $var->name . '.'; - } - } - } - $val .= $ev . $del; - $i ++; - } - $val = trim($val, $del); - - // Strings, numbers, etc. - } else { - if ($exp->operator == '?') { - $val = $var->name . (isset($var->data) ? '=' : ''); - } else if ($exp->operator == ';') { - $val = $var->name . ($var->data ? '=' : ''); - } - $val .= rawurlencode($var->data); - if ($exp->operator == '+') { - $val = str_replace(self::$reserved_pct, self::$reserved, $val); - } - } - return $val; - } - - public function match($uri) {} - - public function __toString() { - return $this->template; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_CacheParser.php b/apps/files_external/3rdparty/google-api-php-client/src/io/Google_CacheParser.php deleted file mode 100644 index 7f5accfefe9720a79ff7b7a7fd6063de8a0ae7d3..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_CacheParser.php +++ /dev/null @@ -1,173 +0,0 @@ - - */ -class Google_CacheParser { - public static $CACHEABLE_HTTP_METHODS = array('GET', 'HEAD'); - public static $CACHEABLE_STATUS_CODES = array('200', '203', '300', '301'); - - private function __construct() {} - - /** - * Check if an HTTP request can be cached by a private local cache. - * - * @static - * @param Google_HttpRequest $resp - * @return bool True if the request is cacheable. - * False if the request is uncacheable. - */ - public static function isRequestCacheable (Google_HttpRequest $resp) { - $method = $resp->getRequestMethod(); - if (! in_array($method, self::$CACHEABLE_HTTP_METHODS)) { - return false; - } - - // Don't cache authorized requests/responses. - // [rfc2616-14.8] When a shared cache receives a request containing an - // Authorization field, it MUST NOT return the corresponding response - // as a reply to any other request... - if ($resp->getRequestHeader("authorization")) { - return false; - } - - return true; - } - - /** - * Check if an HTTP response can be cached by a private local cache. - * - * @static - * @param Google_HttpRequest $resp - * @return bool True if the response is cacheable. - * False if the response is un-cacheable. - */ - public static function isResponseCacheable (Google_HttpRequest $resp) { - // First, check if the HTTP request was cacheable before inspecting the - // HTTP response. - if (false == self::isRequestCacheable($resp)) { - return false; - } - - $code = $resp->getResponseHttpCode(); - if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) { - return false; - } - - // The resource is uncacheable if the resource is already expired and - // the resource doesn't have an ETag for revalidation. - $etag = $resp->getResponseHeader("etag"); - if (self::isExpired($resp) && $etag == false) { - return false; - } - - // [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT - // store any part of either this response or the request that elicited it. - $cacheControl = $resp->getParsedCacheControl(); - if (isset($cacheControl['no-store'])) { - return false; - } - - // Pragma: no-cache is an http request directive, but is occasionally - // used as a response header incorrectly. - $pragma = $resp->getResponseHeader('pragma'); - if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) { - return false; - } - - // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that - // a cache cannot determine from the request headers of a subsequent request - // whether this response is the appropriate representation." - // Given this, we deem responses with the Vary header as uncacheable. - $vary = $resp->getResponseHeader('vary'); - if ($vary) { - return false; - } - - return true; - } - - /** - * @static - * @param Google_HttpRequest $resp - * @return bool True if the HTTP response is considered to be expired. - * False if it is considered to be fresh. - */ - public static function isExpired(Google_HttpRequest $resp) { - // HTTP/1.1 clients and caches MUST treat other invalid date formats, - // especially including the value “0”, as in the past. - $parsedExpires = false; - $responseHeaders = $resp->getResponseHeaders(); - if (isset($responseHeaders['expires'])) { - $rawExpires = $responseHeaders['expires']; - // Check for a malformed expires header first. - if (empty($rawExpires) || (is_numeric($rawExpires) && $rawExpires <= 0)) { - return true; - } - - // See if we can parse the expires header. - $parsedExpires = strtotime($rawExpires); - if (false == $parsedExpires || $parsedExpires <= 0) { - return true; - } - } - - // Calculate the freshness of an http response. - $freshnessLifetime = false; - $cacheControl = $resp->getParsedCacheControl(); - if (isset($cacheControl['max-age'])) { - $freshnessLifetime = $cacheControl['max-age']; - } - - $rawDate = $resp->getResponseHeader('date'); - $parsedDate = strtotime($rawDate); - - if (empty($rawDate) || false == $parsedDate) { - $parsedDate = time(); - } - if (false == $freshnessLifetime && isset($responseHeaders['expires'])) { - $freshnessLifetime = $parsedExpires - $parsedDate; - } - - if (false == $freshnessLifetime) { - return true; - } - - // Calculate the age of an http response. - $age = max(0, time() - $parsedDate); - if (isset($responseHeaders['age'])) { - $age = max($age, strtotime($responseHeaders['age'])); - } - - return $freshnessLifetime <= $age; - } - - /** - * Determine if a cache entry should be revalidated with by the origin. - * - * @param Google_HttpRequest $response - * @return bool True if the entry is expired, else return false. - */ - public static function mustRevalidate(Google_HttpRequest $response) { - // [13.3] When a cache has a stale entry that it would like to use as a - // response to a client's request, it first has to check with the origin - // server to see if its cached entry is still usable. - return self::isExpired($response); - } -} \ No newline at end of file diff --git a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_CurlIO.php b/apps/files_external/3rdparty/google-api-php-client/src/io/Google_CurlIO.php deleted file mode 100644 index 65352f29882d5286522a42d371ea9922fc0446a9..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_CurlIO.php +++ /dev/null @@ -1,278 +0,0 @@ - - * @author Chirag Shah - */ - -require_once 'Google_CacheParser.php'; - -class Google_CurlIO implements Google_IO { - const CONNECTION_ESTABLISHED = "HTTP/1.0 200 Connection established\r\n\r\n"; - const FORM_URLENCODED = 'application/x-www-form-urlencoded'; - - private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null); - private static $HOP_BY_HOP = array( - 'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization', - 'te', 'trailers', 'transfer-encoding', 'upgrade'); - - private $curlParams = array ( - CURLOPT_RETURNTRANSFER => true, - CURLOPT_FOLLOWLOCATION => 0, - CURLOPT_FAILONERROR => false, - CURLOPT_SSL_VERIFYPEER => true, - CURLOPT_HEADER => true, - CURLOPT_VERBOSE => false, - ); - - /** - * Perform an authenticated / signed apiHttpRequest. - * This function takes the apiHttpRequest, calls apiAuth->sign on it - * (which can modify the request in what ever way fits the auth mechanism) - * and then calls apiCurlIO::makeRequest on the signed request - * - * @param Google_HttpRequest $request - * @return Google_HttpRequest The resulting HTTP response including the - * responseHttpCode, responseHeaders and responseBody. - */ - public function authenticatedRequest(Google_HttpRequest $request) { - $request = Google_Client::$auth->sign($request); - return $this->makeRequest($request); - } - - /** - * Execute a apiHttpRequest - * - * @param Google_HttpRequest $request the http request to be executed - * @return Google_HttpRequest http request with the response http code, response - * headers and response body filled in - * @throws Google_IOException on curl or IO error - */ - public function makeRequest(Google_HttpRequest $request) { - // First, check to see if we have a valid cached version. - $cached = $this->getCachedRequest($request); - if ($cached !== false) { - if (Google_CacheParser::mustRevalidate($cached)) { - $addHeaders = array(); - if ($cached->getResponseHeader('etag')) { - // [13.3.4] If an entity tag has been provided by the origin server, - // we must use that entity tag in any cache-conditional request. - $addHeaders['If-None-Match'] = $cached->getResponseHeader('etag'); - } elseif ($cached->getResponseHeader('date')) { - $addHeaders['If-Modified-Since'] = $cached->getResponseHeader('date'); - } - - $request->setRequestHeaders($addHeaders); - } else { - // No need to revalidate the request, return it directly - return $cached; - } - } - - if (array_key_exists($request->getRequestMethod(), - self::$ENTITY_HTTP_METHODS)) { - $request = $this->processEntityRequest($request); - } - - $ch = curl_init(); - curl_setopt_array($ch, $this->curlParams); - curl_setopt($ch, CURLOPT_URL, $request->getUrl()); - if ($request->getPostBody()) { - curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getPostBody()); - } - - $requestHeaders = $request->getRequestHeaders(); - if ($requestHeaders && is_array($requestHeaders)) { - $parsed = array(); - foreach ($requestHeaders as $k => $v) { - $parsed[] = "$k: $v"; - } - curl_setopt($ch, CURLOPT_HTTPHEADER, $parsed); - } - - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod()); - curl_setopt($ch, CURLOPT_USERAGENT, $request->getUserAgent()); - $respData = curl_exec($ch); - - // Retry if certificates are missing. - if (curl_errno($ch) == CURLE_SSL_CACERT) { - error_log('SSL certificate problem, verify that the CA cert is OK.' - . ' Retrying with the CA cert bundle from google-api-php-client.'); - curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem'); - $respData = curl_exec($ch); - } - - $respHeaderSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); - $respHttpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE); - $curlErrorNum = curl_errno($ch); - $curlError = curl_error($ch); - curl_close($ch); - if ($curlErrorNum != CURLE_OK) { - throw new Google_IOException("HTTP Error: ($respHttpCode) $curlError"); - } - - // Parse out the raw response into usable bits - list($responseHeaders, $responseBody) = - self::parseHttpResponse($respData, $respHeaderSize); - - if ($respHttpCode == 304 && $cached) { - // If the server responded NOT_MODIFIED, return the cached request. - if (isset($responseHeaders['connection'])) { - $hopByHop = array_merge( - self::$HOP_BY_HOP, - explode(',', $responseHeaders['connection']) - ); - - $endToEnd = array(); - foreach($hopByHop as $key) { - if (isset($responseHeaders[$key])) { - $endToEnd[$key] = $responseHeaders[$key]; - } - } - $cached->setResponseHeaders($endToEnd); - } - return $cached; - } - - // Fill in the apiHttpRequest with the response values - $request->setResponseHttpCode($respHttpCode); - $request->setResponseHeaders($responseHeaders); - $request->setResponseBody($responseBody); - // Store the request in cache (the function checks to see if the request - // can actually be cached) - $this->setCachedRequest($request); - // And finally return it - return $request; - } - - /** - * @visible for testing. - * Cache the response to an HTTP request if it is cacheable. - * @param Google_HttpRequest $request - * @return bool Returns true if the insertion was successful. - * Otherwise, return false. - */ - public function setCachedRequest(Google_HttpRequest $request) { - // Determine if the request is cacheable. - if (Google_CacheParser::isResponseCacheable($request)) { - Google_Client::$cache->set($request->getCacheKey(), $request); - return true; - } - - return false; - } - - /** - * @visible for testing. - * @param Google_HttpRequest $request - * @return Google_HttpRequest|bool Returns the cached object or - * false if the operation was unsuccessful. - */ - public function getCachedRequest(Google_HttpRequest $request) { - if (false == Google_CacheParser::isRequestCacheable($request)) { - false; - } - - return Google_Client::$cache->get($request->getCacheKey()); - } - - /** - * @param $respData - * @param $headerSize - * @return array - */ - public static function parseHttpResponse($respData, $headerSize) { - if (stripos($respData, self::CONNECTION_ESTABLISHED) !== false) { - $respData = str_ireplace(self::CONNECTION_ESTABLISHED, '', $respData); - } - - if ($headerSize) { - $responseBody = substr($respData, $headerSize); - $responseHeaders = substr($respData, 0, $headerSize); - } else { - list($responseHeaders, $responseBody) = explode("\r\n\r\n", $respData, 2); - } - - $responseHeaders = self::parseResponseHeaders($responseHeaders); - return array($responseHeaders, $responseBody); - } - - public static function parseResponseHeaders($rawHeaders) { - $responseHeaders = array(); - - $responseHeaderLines = explode("\r\n", $rawHeaders); - foreach ($responseHeaderLines as $headerLine) { - if ($headerLine && strpos($headerLine, ':') !== false) { - list($header, $value) = explode(': ', $headerLine, 2); - $header = strtolower($header); - if (isset($responseHeaders[$header])) { - $responseHeaders[$header] .= "\n" . $value; - } else { - $responseHeaders[$header] = $value; - } - } - } - return $responseHeaders; - } - - /** - * @visible for testing - * Process an http request that contains an enclosed entity. - * @param Google_HttpRequest $request - * @return Google_HttpRequest Processed request with the enclosed entity. - */ - public function processEntityRequest(Google_HttpRequest $request) { - $postBody = $request->getPostBody(); - $contentType = $request->getRequestHeader("content-type"); - - // Set the default content-type as application/x-www-form-urlencoded. - if (false == $contentType) { - $contentType = self::FORM_URLENCODED; - $request->setRequestHeaders(array('content-type' => $contentType)); - } - - // Force the payload to match the content-type asserted in the header. - if ($contentType == self::FORM_URLENCODED && is_array($postBody)) { - $postBody = http_build_query($postBody, '', '&'); - $request->setPostBody($postBody); - } - - // Make sure the content-length header is set. - if (!$postBody || is_string($postBody)) { - $postsLength = strlen($postBody); - $request->setRequestHeaders(array('content-length' => $postsLength)); - } - - return $request; - } - - /** - * Set options that update cURL's default behavior. - * The list of accepted options are: - * {@link http://php.net/manual/en/function.curl-setopt.php] - * - * @param array $optCurlParams Multiple options used by a cURL session. - */ - public function setOptions($optCurlParams) { - foreach ($optCurlParams as $key => $val) { - $this->curlParams[$key] = $val; - } - } -} \ No newline at end of file diff --git a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_HttpRequest.php b/apps/files_external/3rdparty/google-api-php-client/src/io/Google_HttpRequest.php deleted file mode 100644 index b98eae5400891cca40f921616cdf46e7deba66b1..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_HttpRequest.php +++ /dev/null @@ -1,304 +0,0 @@ - - * @author Chirag Shah - * - */ -class Google_HttpRequest { - const USER_AGENT_SUFFIX = "google-api-php-client/0.6.0"; - private $batchHeaders = array( - 'Content-Type' => 'application/http', - 'Content-Transfer-Encoding' => 'binary', - 'MIME-Version' => '1.0', - 'Content-Length' => '' - ); - - protected $url; - protected $requestMethod; - protected $requestHeaders; - protected $postBody; - protected $userAgent; - - protected $responseHttpCode; - protected $responseHeaders; - protected $responseBody; - - public $accessKey; - - public function __construct($url, $method = 'GET', $headers = array(), $postBody = null) { - $this->setUrl($url); - $this->setRequestMethod($method); - $this->setRequestHeaders($headers); - $this->setPostBody($postBody); - - global $apiConfig; - if (empty($apiConfig['application_name'])) { - $this->userAgent = self::USER_AGENT_SUFFIX; - } else { - $this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX; - } - } - - /** - * Misc function that returns the base url component of the $url - * used by the OAuth signing class to calculate the base string - * @return string The base url component of the $url. - * @see http://oauth.net/core/1.0a/#anchor13 - */ - public function getBaseUrl() { - if ($pos = strpos($this->url, '?')) { - return substr($this->url, 0, $pos); - } - return $this->url; - } - - /** - * Misc function that returns an array of the query parameters of the current - * url used by the OAuth signing class to calculate the signature - * @return array Query parameters in the query string. - */ - public function getQueryParams() { - if ($pos = strpos($this->url, '?')) { - $queryStr = substr($this->url, $pos + 1); - $params = array(); - parse_str($queryStr, $params); - return $params; - } - return array(); - } - - /** - * @return string HTTP Response Code. - */ - public function getResponseHttpCode() { - return (int) $this->responseHttpCode; - } - - /** - * @param int $responseHttpCode HTTP Response Code. - */ - public function setResponseHttpCode($responseHttpCode) { - $this->responseHttpCode = $responseHttpCode; - } - - /** - * @return $responseHeaders (array) HTTP Response Headers. - */ - public function getResponseHeaders() { - return $this->responseHeaders; - } - - /** - * @return string HTTP Response Body - */ - public function getResponseBody() { - return $this->responseBody; - } - - /** - * @param array $headers The HTTP response headers - * to be normalized. - */ - public function setResponseHeaders($headers) { - $headers = Google_Utils::normalize($headers); - if ($this->responseHeaders) { - $headers = array_merge($this->responseHeaders, $headers); - } - - $this->responseHeaders = $headers; - } - - /** - * @param string $key - * @return array|boolean Returns the requested HTTP header or - * false if unavailable. - */ - public function getResponseHeader($key) { - return isset($this->responseHeaders[$key]) - ? $this->responseHeaders[$key] - : false; - } - - /** - * @param string $responseBody The HTTP response body. - */ - public function setResponseBody($responseBody) { - $this->responseBody = $responseBody; - } - - /** - * @return string $url The request URL. - */ - - public function getUrl() { - return $this->url; - } - - /** - * @return string $method HTTP Request Method. - */ - public function getRequestMethod() { - return $this->requestMethod; - } - - /** - * @return array $headers HTTP Request Headers. - */ - public function getRequestHeaders() { - return $this->requestHeaders; - } - - /** - * @param string $key - * @return array|boolean Returns the requested HTTP header or - * false if unavailable. - */ - public function getRequestHeader($key) { - return isset($this->requestHeaders[$key]) - ? $this->requestHeaders[$key] - : false; - } - - /** - * @return string $postBody HTTP Request Body. - */ - public function getPostBody() { - return $this->postBody; - } - - /** - * @param string $url the url to set - */ - public function setUrl($url) { - if (substr($url, 0, 4) == 'http') { - $this->url = $url; - } else { - // Force the path become relative. - if (substr($url, 0, 1) !== '/') { - $url = '/' . $url; - } - global $apiConfig; - $this->url = $apiConfig['basePath'] . $url; - } - } - - /** - * @param string $method Set he HTTP Method and normalize - * it to upper-case, as required by HTTP. - * - */ - public function setRequestMethod($method) { - $this->requestMethod = strtoupper($method); - } - - /** - * @param array $headers The HTTP request headers - * to be set and normalized. - */ - public function setRequestHeaders($headers) { - $headers = Google_Utils::normalize($headers); - if ($this->requestHeaders) { - $headers = array_merge($this->requestHeaders, $headers); - } - $this->requestHeaders = $headers; - } - - /** - * @param string $postBody the postBody to set - */ - public function setPostBody($postBody) { - $this->postBody = $postBody; - } - - /** - * Set the User-Agent Header. - * @param string $userAgent The User-Agent. - */ - public function setUserAgent($userAgent) { - $this->userAgent = $userAgent; - } - - /** - * @return string The User-Agent. - */ - public function getUserAgent() { - return $this->userAgent; - } - - /** - * Returns a cache key depending on if this was an OAuth signed request - * in which case it will use the non-signed url and access key to make this - * cache key unique per authenticated user, else use the plain request url - * @return string The md5 hash of the request cache key. - */ - public function getCacheKey() { - $key = $this->getUrl(); - - if (isset($this->accessKey)) { - $key .= $this->accessKey; - } - - if (isset($this->requestHeaders['authorization'])) { - $key .= $this->requestHeaders['authorization']; - } - - return md5($key); - } - - public function getParsedCacheControl() { - $parsed = array(); - $rawCacheControl = $this->getResponseHeader('cache-control'); - if ($rawCacheControl) { - $rawCacheControl = str_replace(', ', '&', $rawCacheControl); - parse_str($rawCacheControl, $parsed); - } - - return $parsed; - } - - /** - * @param string $id - * @return string A string representation of the HTTP Request. - */ - public function toBatchString($id) { - $str = ''; - foreach($this->batchHeaders as $key => $val) { - $str .= $key . ': ' . $val . "\n"; - } - - $str .= "Content-ID: $id\n"; - $str .= "\n"; - - $path = parse_url($this->getUrl(), PHP_URL_PATH); - $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n"; - foreach($this->getRequestHeaders() as $key => $val) { - $str .= $key . ': ' . $val . "\n"; - } - - if ($this->getPostBody()) { - $str .= "\n"; - $str .= $this->getPostBody(); - } - - return $str; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_IO.php b/apps/files_external/3rdparty/google-api-php-client/src/io/Google_IO.php deleted file mode 100644 index 5445e6990387ebffd1a8c7f4b8970ed12d87ea66..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_IO.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ -interface Google_IO { - /** - * An utility function that first calls $this->auth->sign($request) and then executes makeRequest() - * on that signed request. Used for when a request should be authenticated - * @param Google_HttpRequest $request - * @return Google_HttpRequest $request - */ - public function authenticatedRequest(Google_HttpRequest $request); - - /** - * Executes a apIHttpRequest and returns the resulting populated httpRequest - * @param Google_HttpRequest $request - * @return Google_HttpRequest $request - */ - public function makeRequest(Google_HttpRequest $request); - - /** - * Set options that update the transport implementation's behavior. - * @param $options - */ - public function setOptions($options); - -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_REST.php b/apps/files_external/3rdparty/google-api-php-client/src/io/Google_REST.php deleted file mode 100644 index d0f3b3d564c885ac8eddfd81b4f4f8264532d991..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/io/Google_REST.php +++ /dev/null @@ -1,128 +0,0 @@ - - * @author Chirag Shah - */ -class Google_REST { - /** - * Executes a apiServiceRequest using a RESTful call by transforming it into - * an apiHttpRequest, and executed via apiIO::authenticatedRequest(). - * - * @param Google_HttpRequest $req - * @return array decoded result - * @throws Google_ServiceException on server side error (ie: not authenticated, - * invalid or malformed post body, invalid url) - */ - static public function execute(Google_HttpRequest $req) { - $httpRequest = Google_Client::$io->makeRequest($req); - $decodedResponse = self::decodeHttpResponse($httpRequest); - $ret = isset($decodedResponse['data']) - ? $decodedResponse['data'] : $decodedResponse; - return $ret; - } - - - /** - * Decode an HTTP Response. - * @static - * @throws Google_ServiceException - * @param Google_HttpRequest $response The http response to be decoded. - * @return mixed|null - */ - public static function decodeHttpResponse($response) { - $code = $response->getResponseHttpCode(); - $body = $response->getResponseBody(); - $decoded = null; - - if ((intVal($code)) >= 300) { - $decoded = json_decode($body, true); - $err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl(); - if ($decoded != null && isset($decoded['error']['message']) && isset($decoded['error']['code'])) { - // if we're getting a json encoded error definition, use that instead of the raw response - // body for improved readability - $err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}"; - } else { - $err .= ": ($code) $body"; - } - - throw new Google_ServiceException($err, $code, null, $decoded['error']['errors']); - } - - // Only attempt to decode the response, if the response code wasn't (204) 'no content' - if ($code != '204') { - $decoded = json_decode($body, true); - if ($decoded === null || $decoded === "") { - throw new Google_ServiceException("Invalid json in service response: $body"); - } - } - return $decoded; - } - - /** - * Parse/expand request parameters and create a fully qualified - * request uri. - * @static - * @param string $servicePath - * @param string $restPath - * @param array $params - * @return string $requestUrl - */ - static function createRequestUri($servicePath, $restPath, $params) { - $requestUrl = $servicePath . $restPath; - $uriTemplateVars = array(); - $queryVars = array(); - foreach ($params as $paramName => $paramSpec) { - // Discovery v1.0 puts the canonical location under the 'location' field. - if (! isset($paramSpec['location'])) { - $paramSpec['location'] = $paramSpec['restParameterType']; - } - - if ($paramSpec['type'] == 'boolean') { - $paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false'; - } - if ($paramSpec['location'] == 'path') { - $uriTemplateVars[$paramName] = $paramSpec['value']; - } else { - if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) { - foreach ($paramSpec['value'] as $value) { - $queryVars[] = $paramName . '=' . rawurlencode($value); - } - } else { - $queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']); - } - } - } - - if (count($uriTemplateVars)) { - $uriTemplateParser = new URI_Template_Parser($requestUrl); - $requestUrl = $uriTemplateParser->expand($uriTemplateVars); - } - //FIXME work around for the the uri template lib which url encodes - // the @'s & confuses our servers. - $requestUrl = str_replace('%40', '@', $requestUrl); - - if (count($queryVars)) { - $requestUrl .= '?' . implode($queryVars, '&'); - } - - return $requestUrl; - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_BatchRequest.php b/apps/files_external/3rdparty/google-api-php-client/src/service/Google_BatchRequest.php deleted file mode 100644 index 3916b223a7edc8554b564205d9ad986d51a915a7..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_BatchRequest.php +++ /dev/null @@ -1,110 +0,0 @@ - - */ -class Google_BatchRequest { - /** @var string Multipart Boundary. */ - private $boundary; - - /** @var array service requests to be executed. */ - private $requests = array(); - - public function __construct($boundary = false) { - $boundary = (false == $boundary) ? mt_rand() : $boundary; - $this->boundary = str_replace('"', '', $boundary); - } - - public function add(Google_HttpRequest $request, $key = false) { - if (false == $key) { - $key = mt_rand(); - } - - $this->requests[$key] = $request; - } - - public function execute() { - $body = ''; - - /** @var Google_HttpRequest $req */ - foreach($this->requests as $key => $req) { - $body .= "--{$this->boundary}\n"; - $body .= $req->toBatchString($key) . "\n"; - } - - $body = rtrim($body); - $body .= "\n--{$this->boundary}--"; - - global $apiConfig; - $url = $apiConfig['basePath'] . '/batch'; - $httpRequest = new Google_HttpRequest($url, 'POST'); - $httpRequest->setRequestHeaders(array( - 'Content-Type' => 'multipart/mixed; boundary=' . $this->boundary)); - - $httpRequest->setPostBody($body); - $response = Google_Client::$io->makeRequest($httpRequest); - - $response = $this->parseResponse($response); - return $response; - } - - public function parseResponse(Google_HttpRequest $response) { - $contentType = $response->getResponseHeader('content-type'); - $contentType = explode(';', $contentType); - $boundary = false; - foreach($contentType as $part) { - $part = (explode('=', $part, 2)); - if (isset($part[0]) && 'boundary' == trim($part[0])) { - $boundary = $part[1]; - } - } - - $body = $response->getResponseBody(); - if ($body) { - $body = str_replace("--$boundary--", "--$boundary", $body); - $parts = explode("--$boundary", $body); - $responses = array(); - - foreach($parts as $part) { - $part = trim($part); - if (!empty($part)) { - list($metaHeaders, $part) = explode("\r\n\r\n", $part, 2); - $metaHeaders = Google_CurlIO::parseResponseHeaders($metaHeaders); - - $status = substr($part, 0, strpos($part, "\n")); - $status = explode(" ", $status); - $status = $status[1]; - - list($partHeaders, $partBody) = Google_CurlIO::parseHttpResponse($part, false); - $response = new Google_HttpRequest(""); - $response->setResponseHttpCode($status); - $response->setResponseHeaders($partHeaders); - $response->setResponseBody($partBody); - $response = Google_REST::decodeHttpResponse($response); - - // Need content id. - $responses[$metaHeaders['content-id']] = $response; - } - } - - return $responses; - } - - return null; - } -} \ No newline at end of file diff --git a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_MediaFileUpload.php b/apps/files_external/3rdparty/google-api-php-client/src/service/Google_MediaFileUpload.php deleted file mode 100644 index c64e18851df2a13b7a40400b7997a5a2635d999a..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_MediaFileUpload.php +++ /dev/null @@ -1,262 +0,0 @@ - - * - */ -class Google_MediaFileUpload { - const UPLOAD_MEDIA_TYPE = 'media'; - const UPLOAD_MULTIPART_TYPE = 'multipart'; - const UPLOAD_RESUMABLE_TYPE = 'resumable'; - - /** @var string $mimeType */ - public $mimeType; - - /** @var string $data */ - public $data; - - /** @var bool $resumable */ - public $resumable; - - /** @var int $chunkSize */ - public $chunkSize; - - /** @var int $size */ - public $size; - - /** @var string $resumeUri */ - public $resumeUri; - - /** @var int $progress */ - public $progress; - - /** - * @param $mimeType string - * @param $data string The bytes you want to upload. - * @param $resumable bool - * @param bool $chunkSize File will be uploaded in chunks of this many bytes. - * only used if resumable=True - */ - public function __construct($mimeType, $data, $resumable=false, $chunkSize=false) { - $this->mimeType = $mimeType; - $this->data = $data; - $this->size = strlen($this->data); - $this->resumable = $resumable; - if(!$chunkSize) { - $chunkSize = 256 * 1024; - } - $this->chunkSize = $chunkSize; - $this->progress = 0; - } - - public function setFileSize($size) { - $this->size = $size; - } - - /** - * @static - * @param $meta - * @param $params - * @return array|bool - */ - public static function process($meta, &$params) { - $payload = array(); - $meta = is_string($meta) ? json_decode($meta, true) : $meta; - $uploadType = self::getUploadType($meta, $payload, $params); - if (!$uploadType) { - // Process as a normal API request. - return false; - } - - // Process as a media upload request. - $params['uploadType'] = array( - 'type' => 'string', - 'location' => 'query', - 'value' => $uploadType, - ); - - $mimeType = isset($params['mimeType']) - ? $params['mimeType']['value'] - : false; - unset($params['mimeType']); - - if (!$mimeType) { - $mimeType = $payload['content-type']; - } - - if (isset($params['file'])) { - // This is a standard file upload with curl. - $file = $params['file']['value']; - unset($params['file']); - return self::processFileUpload($file, $mimeType); - } - - $data = isset($params['data']) - ? $params['data']['value'] - : false; - unset($params['data']); - - if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) { - $payload['content-type'] = $mimeType; - $payload['postBody'] = is_string($meta) ? $meta : json_encode($meta); - - } elseif (self::UPLOAD_MEDIA_TYPE == $uploadType) { - // This is a simple media upload. - $payload['content-type'] = $mimeType; - $payload['postBody'] = $data; - } - - elseif (self::UPLOAD_MULTIPART_TYPE == $uploadType) { - // This is a multipart/related upload. - $boundary = isset($params['boundary']['value']) ? $params['boundary']['value'] : mt_rand(); - $boundary = str_replace('"', '', $boundary); - $payload['content-type'] = 'multipart/related; boundary=' . $boundary; - $related = "--$boundary\r\n"; - $related .= "Content-Type: application/json; charset=UTF-8\r\n"; - $related .= "\r\n" . json_encode($meta) . "\r\n"; - $related .= "--$boundary\r\n"; - $related .= "Content-Type: $mimeType\r\n"; - $related .= "Content-Transfer-Encoding: base64\r\n"; - $related .= "\r\n" . base64_encode($data) . "\r\n"; - $related .= "--$boundary--"; - $payload['postBody'] = $related; - } - - return $payload; - } - - /** - * Prepares a standard file upload via cURL. - * @param $file - * @param $mime - * @return array Includes the processed file name. - * @visible For testing. - */ - public static function processFileUpload($file, $mime) { - if (!$file) return array(); - if (substr($file, 0, 1) != '@') { - $file = '@' . $file; - } - - // This is a standard file upload with curl. - $params = array('postBody' => array('file' => $file)); - if ($mime) { - $params['content-type'] = $mime; - } - - return $params; - } - - /** - * Valid upload types: - * - resumable (UPLOAD_RESUMABLE_TYPE) - * - media (UPLOAD_MEDIA_TYPE) - * - multipart (UPLOAD_MULTIPART_TYPE) - * - none (false) - * @param $meta - * @param $payload - * @param $params - * @return bool|string - */ - public static function getUploadType($meta, &$payload, &$params) { - if (isset($params['mediaUpload']) - && get_class($params['mediaUpload']['value']) == 'Google_MediaFileUpload') { - $upload = $params['mediaUpload']['value']; - unset($params['mediaUpload']); - $payload['content-type'] = $upload->mimeType; - if (isset($upload->resumable) && $upload->resumable) { - return self::UPLOAD_RESUMABLE_TYPE; - } - } - - // Allow the developer to override the upload type. - if (isset($params['uploadType'])) { - return $params['uploadType']['value']; - } - - $data = isset($params['data']['value']) - ? $params['data']['value'] : false; - - if (false == $data && false == isset($params['file'])) { - // No upload data available. - return false; - } - - if (isset($params['file'])) { - return self::UPLOAD_MEDIA_TYPE; - } - - if (false == $meta) { - return self::UPLOAD_MEDIA_TYPE; - } - - return self::UPLOAD_MULTIPART_TYPE; - } - - - public function nextChunk(Google_HttpRequest $req, $chunk=false) { - if (false == $this->resumeUri) { - $this->resumeUri = $this->getResumeUri($req); - } - - if (false == $chunk) { - $chunk = substr($this->data, $this->progress, $this->chunkSize); - } - - $lastBytePos = $this->progress + strlen($chunk) - 1; - $headers = array( - 'content-range' => "bytes $this->progress-$lastBytePos/$this->size", - 'content-type' => $req->getRequestHeader('content-type'), - 'content-length' => $this->chunkSize, - 'expect' => '', - ); - - $httpRequest = new Google_HttpRequest($this->resumeUri, 'PUT', $headers, $chunk); - $response = Google_Client::$io->authenticatedRequest($httpRequest); - $code = $response->getResponseHttpCode(); - if (308 == $code) { - $range = explode('-', $response->getResponseHeader('range')); - $this->progress = $range[1] + 1; - return false; - } else { - return Google_REST::decodeHttpResponse($response); - } - } - - private function getResumeUri(Google_HttpRequest $httpRequest) { - $result = null; - $body = $httpRequest->getPostBody(); - if ($body) { - $httpRequest->setRequestHeaders(array( - 'content-type' => 'application/json; charset=UTF-8', - 'content-length' => Google_Utils::getStrLen($body), - 'x-upload-content-type' => $this->mimeType, - 'x-upload-content-length' => $this->size, - 'expect' => '', - )); - } - - $response = Google_Client::$io->makeRequest($httpRequest); - $location = $response->getResponseHeader('location'); - $code = $response->getResponseHttpCode(); - if (200 == $code && true == $location) { - return $location; - } - throw new Google_Exception("Failed to start the resumable upload"); - } -} \ No newline at end of file diff --git a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Model.php b/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Model.php deleted file mode 100644 index cb44cb257481b231c2f38203f460bd54576a5f91..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Model.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - */ -class Google_Model { - public function __construct( /* polymorphic */ ) { - if (func_num_args() == 1 && is_array(func_get_arg(0))) { - // Initialize the model with the array's contents. - $array = func_get_arg(0); - $this->mapTypes($array); - } - } - - /** - * Initialize this object's properties from an array. - * - * @param array $array Used to seed this object's properties. - * @return void - */ - protected function mapTypes($array) { - foreach ($array as $key => $val) { - $this->$key = $val; - - $keyTypeName = "__$key" . 'Type'; - $keyDataType = "__$key" . 'DataType'; - if ($this->useObjects() && property_exists($this, $keyTypeName)) { - if ($this->isAssociativeArray($val)) { - if (isset($this->$keyDataType) && 'map' == $this->$keyDataType) { - foreach($val as $arrayKey => $arrayItem) { - $val[$arrayKey] = $this->createObjectFromName($keyTypeName, $arrayItem); - } - $this->$key = $val; - } else { - $this->$key = $this->createObjectFromName($keyTypeName, $val); - } - } else if (is_array($val)) { - $arrayObject = array(); - foreach ($val as $arrayIndex => $arrayItem) { - $arrayObject[$arrayIndex] = $this->createObjectFromName($keyTypeName, $arrayItem); - } - $this->$key = $arrayObject; - } - } - } - } - - /** - * Returns true only if the array is associative. - * @param array $array - * @return bool True if the array is associative. - */ - protected function isAssociativeArray($array) { - if (!is_array($array)) { - return false; - } - $keys = array_keys($array); - foreach($keys as $key) { - if (is_string($key)) { - return true; - } - } - return false; - } - - /** - * Given a variable name, discover its type. - * - * @param $name - * @param $item - * @return object The object from the item. - */ - private function createObjectFromName($name, $item) { - $type = $this->$name; - return new $type($item); - } - - protected function useObjects() { - global $apiConfig; - return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']); - } - - /** - * Verify if $obj is an array. - * @throws Google_Exception Thrown if $obj isn't an array. - * @param array $obj Items that should be validated. - * @param string $type Array items should be of this type. - * @param string $method Method expecting an array as an argument. - */ - public function assertIsArray($obj, $type, $method) { - if ($obj && !is_array($obj)) { - throw new Google_Exception("Incorrect parameter type passed to $method(), expected an" - . " array containing items of type $type."); - } - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Service.php b/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Service.php deleted file mode 100644 index 1f4731fb2f4b2d5a16925e61f89ef95b8746ddf6..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Service.php +++ /dev/null @@ -1,22 +0,0 @@ - - * @author Chirag Shah - * - */ -class Google_ServiceResource { - // Valid query parameters that work, but don't appear in discovery. - private $stackParameters = array( - 'alt' => array('type' => 'string', 'location' => 'query'), - 'boundary' => array('type' => 'string', 'location' => 'query'), - 'fields' => array('type' => 'string', 'location' => 'query'), - 'trace' => array('type' => 'string', 'location' => 'query'), - 'userIp' => array('type' => 'string', 'location' => 'query'), - 'userip' => array('type' => 'string', 'location' => 'query'), - 'quotaUser' => array('type' => 'string', 'location' => 'query'), - 'file' => array('type' => 'complex', 'location' => 'body'), - 'data' => array('type' => 'string', 'location' => 'body'), - 'mimeType' => array('type' => 'string', 'location' => 'header'), - 'uploadType' => array('type' => 'string', 'location' => 'query'), - 'mediaUpload' => array('type' => 'complex', 'location' => 'query'), - ); - - /** @var Google_Service $service */ - private $service; - - /** @var string $serviceName */ - private $serviceName; - - /** @var string $resourceName */ - private $resourceName; - - /** @var array $methods */ - private $methods; - - public function __construct($service, $serviceName, $resourceName, $resource) { - $this->service = $service; - $this->serviceName = $serviceName; - $this->resourceName = $resourceName; - $this->methods = isset($resource['methods']) ? $resource['methods'] : array($resourceName => $resource); - } - - /** - * @param $name - * @param $arguments - * @return Google_HttpRequest|array - * @throws Google_Exception - */ - public function __call($name, $arguments) { - if (! isset($this->methods[$name])) { - throw new Google_Exception("Unknown function: {$this->serviceName}->{$this->resourceName}->{$name}()"); - } - $method = $this->methods[$name]; - $parameters = $arguments[0]; - - // postBody is a special case since it's not defined in the discovery document as parameter, but we abuse the param entry for storing it - $postBody = null; - if (isset($parameters['postBody'])) { - if (is_object($parameters['postBody'])) { - $this->stripNull($parameters['postBody']); - } - - // Some APIs require the postBody to be set under the data key. - if (is_array($parameters['postBody']) && 'latitude' == $this->serviceName) { - if (!isset($parameters['postBody']['data'])) { - $rawBody = $parameters['postBody']; - unset($parameters['postBody']); - $parameters['postBody']['data'] = $rawBody; - } - } - - $postBody = is_array($parameters['postBody']) || is_object($parameters['postBody']) - ? json_encode($parameters['postBody']) - : $parameters['postBody']; - unset($parameters['postBody']); - - if (isset($parameters['optParams'])) { - $optParams = $parameters['optParams']; - unset($parameters['optParams']); - $parameters = array_merge($parameters, $optParams); - } - } - - if (!isset($method['parameters'])) { - $method['parameters'] = array(); - } - - $method['parameters'] = array_merge($method['parameters'], $this->stackParameters); - foreach ($parameters as $key => $val) { - if ($key != 'postBody' && ! isset($method['parameters'][$key])) { - throw new Google_Exception("($name) unknown parameter: '$key'"); - } - } - if (isset($method['parameters'])) { - foreach ($method['parameters'] as $paramName => $paramSpec) { - if (isset($paramSpec['required']) && $paramSpec['required'] && ! isset($parameters[$paramName])) { - throw new Google_Exception("($name) missing required param: '$paramName'"); - } - if (isset($parameters[$paramName])) { - $value = $parameters[$paramName]; - $parameters[$paramName] = $paramSpec; - $parameters[$paramName]['value'] = $value; - unset($parameters[$paramName]['required']); - } else { - unset($parameters[$paramName]); - } - } - } - - // Discovery v1.0 puts the canonical method id under the 'id' field. - if (! isset($method['id'])) { - $method['id'] = $method['rpcMethod']; - } - - // Discovery v1.0 puts the canonical path under the 'path' field. - if (! isset($method['path'])) { - $method['path'] = $method['restPath']; - } - - $servicePath = $this->service->servicePath; - - // Process Media Request - $contentType = false; - if (isset($method['mediaUpload'])) { - $media = Google_MediaFileUpload::process($postBody, $parameters); - if ($media) { - $contentType = isset($media['content-type']) ? $media['content-type']: null; - $postBody = isset($media['postBody']) ? $media['postBody'] : null; - $servicePath = $method['mediaUpload']['protocols']['simple']['path']; - $method['path'] = ''; - } - } - - $url = Google_REST::createRequestUri($servicePath, $method['path'], $parameters); - $httpRequest = new Google_HttpRequest($url, $method['httpMethod'], null, $postBody); - if ($postBody) { - $contentTypeHeader = array(); - if (isset($contentType) && $contentType) { - $contentTypeHeader['content-type'] = $contentType; - } else { - $contentTypeHeader['content-type'] = 'application/json; charset=UTF-8'; - $contentTypeHeader['content-length'] = Google_Utils::getStrLen($postBody); - } - $httpRequest->setRequestHeaders($contentTypeHeader); - } - - $httpRequest = Google_Client::$auth->sign($httpRequest); - if (Google_Client::$useBatch) { - return $httpRequest; - } - - // Terminate immediately if this is a resumable request. - if (isset($parameters['uploadType']['value']) - && Google_MediaFileUpload::UPLOAD_RESUMABLE_TYPE == $parameters['uploadType']['value']) { - $contentTypeHeader = array(); - if (isset($contentType) && $contentType) { - $contentTypeHeader['content-type'] = $contentType; - } - $httpRequest->setRequestHeaders($contentTypeHeader); - if ($postBody) { - $httpRequest->setPostBody($postBody); - } - return $httpRequest; - } - - return Google_REST::execute($httpRequest); - } - - public function useObjects() { - global $apiConfig; - return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']); - } - - protected function stripNull(&$o) { - $o = (array) $o; - foreach ($o as $k => $v) { - if ($v === null || strstr($k, "\0*\0__")) { - unset($o[$k]); - } - elseif (is_object($v) || is_array($v)) { - $this->stripNull($o[$k]); - } - } - } -} diff --git a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Utils.php b/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Utils.php deleted file mode 100644 index be94902c2edf963ca6d36ae2ab66d02941a897a4..0000000000000000000000000000000000000000 --- a/apps/files_external/3rdparty/google-api-php-client/src/service/Google_Utils.php +++ /dev/null @@ -1,117 +0,0 @@ - - */ -class Google_Utils { - public static function urlSafeB64Encode($data) { - $b64 = base64_encode($data); - $b64 = str_replace(array('+', '/', '\r', '\n', '='), - array('-', '_'), - $b64); - return $b64; - } - - public static function urlSafeB64Decode($b64) { - $b64 = str_replace(array('-', '_'), - array('+', '/'), - $b64); - return base64_decode($b64); - } - - /** - * Misc function used to count the number of bytes in a post body, in the world of multi-byte chars - * and the unpredictability of strlen/mb_strlen/sizeof, this is the only way to do that in a sane - * manner at the moment. - * - * This algorithm was originally developed for the - * Solar Framework by Paul M. Jones - * - * @link http://solarphp.com/ - * @link http://svn.solarphp.com/core/trunk/Solar/Json.php - * @link http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php - * @param string $str - * @return int The number of bytes in a string. - */ - static public function getStrLen($str) { - $strlenVar = strlen($str); - $d = $ret = 0; - for ($count = 0; $count < $strlenVar; ++ $count) { - $ordinalValue = ord($str{$ret}); - switch (true) { - case (($ordinalValue >= 0x20) && ($ordinalValue <= 0x7F)): - // characters U-00000000 - U-0000007F (same as ASCII) - $ret ++; - break; - - case (($ordinalValue & 0xE0) == 0xC0): - // characters U-00000080 - U-000007FF, mask 110XXXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $ret += 2; - break; - - case (($ordinalValue & 0xF0) == 0xE0): - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $ret += 3; - break; - - case (($ordinalValue & 0xF8) == 0xF0): - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $ret += 4; - break; - - case (($ordinalValue & 0xFC) == 0xF8): - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $ret += 5; - break; - - case (($ordinalValue & 0xFE) == 0xFC): - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $ret += 6; - break; - default: - $ret ++; - } - } - return $ret; - } - - /** - * Normalize all keys in an array to lower-case. - * @param array $arr - * @return array Normalized array. - */ - public static function normalize($arr) { - if (!is_array($arr)) { - return array(); - } - - $normalized = array(); - foreach ($arr as $key => $val) { - $normalized[strtolower($key)] = $val; - } - return $normalized; - } -} \ No newline at end of file diff --git a/apps/files_external/ajax/google.php b/apps/files_external/ajax/google.php index 40c10aa5d071905207e27d4e3dbfbb87c83f4cb5..b80f24bbd2ca37edd4475443826300b8dd8fc816 100644 --- a/apps/files_external/ajax/google.php +++ b/apps/files_external/ajax/google.php @@ -1,7 +1,7 @@ setClientSecret($_POST['client_secret']); $client->setRedirectUri($_POST['redirect']); $client->setScopes(array('https://www.googleapis.com/auth/drive')); + $client->setAccessType('offline'); if (isset($_POST['step'])) { $step = $_POST['step']; if ($step == 1) { diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index 3486b8db51be1233ddf91ea04f07c22906a42ea3..ea14f7adbcf69c46d59c3f4786077dca3ab5de0e 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -21,6 +21,8 @@ OC::$CLASSPATH['OC\Files\Storage\SFTP'] = 'files_external/lib/sftp.php'; OC::$CLASSPATH['OC_Mount_Config'] = 'files_external/lib/config.php'; OC::$CLASSPATH['OCA\Files\External\Api'] = 'files_external/lib/api.php'; +OCP\Util::addTranslations('files_external'); + OCP\App::registerAdmin('files_external', 'settings'); if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') == 'yes') { OCP\App::registerPersonal('files_external', 'personal'); diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml index b8bada8e743ccc83ae5054681a00c18cee7bbd28..6acb58960d4aac789d867edca6bb227be9fbd9bc 100644 --- a/apps/files_external/appinfo/info.xml +++ b/apps/files_external/appinfo/info.xml @@ -2,11 +2,18 @@ files_external External storage support - Mount external storage sources + + This application enables administrators to configure connections to external storage provides, such as FTP servers, S3 or SWIFT object stores, Google Drive, Dropbox, other ownCloud servers, WebDAV servers and more. Administrators can choose in the GUI which type of storage to enable, and can mount these storage locations for a user, a group, or the entire system. Users will see a new folder appear in their root ownCloud directory, and then can then access and use it like any other ownCloud folder. External Storage also allows users to share files stored in these external location. In these cases, the credentials for the owner of the file are used then the recipient requests the file from external storage, thereby ensuring that the recipient can get at the file that was shared. + + In addition to the GUI, it is possible to configure external storage manually at the command line. This option provides the advanced user with more flexibility for configuring bulk external storage mounts, as well as setting mount priorities. More information is available in the External Storage GUI documentation and the External Storage Configuration File documentation. + AGPL Robin Appelman, Michael Gapczynski, Vincent Petry 4.93 true + + admin-external-storage + diff --git a/apps/files_external/img/app.svg b/apps/files_external/img/app.svg new file mode 100644 index 0000000000000000000000000000000000000000..df1bfd163ff3d66bcb17a6f6871c410feb8adae5 --- /dev/null +++ b/apps/files_external/img/app.svg @@ -0,0 +1,212 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/files_external/js/app.js b/apps/files_external/js/app.js index 58ad1a0f6ef96a06e1a4760fe8950baa3b9abe4d..bf853f926dcf969bff35e634e7aa92df40acf79e 100644 --- a/apps/files_external/js/app.js +++ b/apps/files_external/js/app.js @@ -9,8 +9,14 @@ */ if (!OCA.External) { + /** + * @namespace + */ OCA.External = {}; } +/** + * @namespace + */ OCA.External.App = { fileList: null, diff --git a/apps/files_external/js/mountsfilelist.js b/apps/files_external/js/mountsfilelist.js index 20bf0f785db6670e61c19dff9153dd5ce1189252..c45faafd9bf5e3d9d8a325843c92534f0aa6326d 100644 --- a/apps/files_external/js/mountsfilelist.js +++ b/apps/files_external/js/mountsfilelist.js @@ -10,15 +10,29 @@ (function() { /** - * External storage file list - */ + * @class OCA.External.FileList + * @augments OCA.Files.FileList + * + * @classdesc External storage file list. + * + * Displays a list of mount points visible + * for the current user. + * + * @param $el container element with existing markup for the #controls + * and a table + * @param [options] map of options, see other parameters + **/ var FileList = function($el, options) { this.initialize($el, options); }; - FileList.prototype = _.extend({}, OCA.Files.FileList.prototype, { + FileList.prototype = _.extend({}, OCA.Files.FileList.prototype, + /** @lends OCA.External.FileList.prototype */ { appName: 'External storage', + /** + * @private + */ initialize: function($el, options) { OCA.Files.FileList.prototype.initialize.apply(this, arguments); if (this.initialized) { @@ -26,6 +40,9 @@ } }, + /** + * @param {OCA.External.MountPointInfo} fileData + */ _createRow: function(fileData) { // TODO: hook earlier and render the whole row here var $tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments); @@ -114,5 +131,15 @@ } }); + /** + * Mount point info attributes. + * + * @typedef {Object} OCA.External.MountPointInfo + * + * @property {String} name mount point name + * @property {String} scope mount point scope "personal" or "system" + * @property {String} backend external storage backend name + */ + OCA.External.FileList = FileList; })(); diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 00d2a920cbf8077e8820fc36012ef3382fc3ff18..75d45ae19247151553771cd73e44700b197d6e9b 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -19,28 +19,28 @@ function getSelection($row) { return values; } -function highlightBorder(element, highlight) { - $(element).toggleClass('warning-input', highlight); +function highlightBorder($element, highlight) { + $element.toggleClass('warning-input', highlight); return highlight; } -function highlightInput(input) { - if ($(input).attr('type') === 'text' || $(input).attr('type') === 'password') { - return highlightBorder(input, - ($(input).val() === '' && !$(input).hasClass('optional'))); +function highlightInput($input) { + if ($input.attr('type') === 'text' || $input.attr('type') === 'password') { + return highlightBorder($input, + ($input.val() === '' && !$input.hasClass('optional'))); } } OC.MountConfig={ - saveStorage:function(tr, callback) { - var mountPoint = $(tr).find('.mountPoint input').val(); - var oldMountPoint = $(tr).find('.mountPoint input').data('mountpoint'); + saveStorage:function($tr, callback) { + var mountPoint = $tr.find('.mountPoint input').val(); + var oldMountPoint = $tr.find('.mountPoint input').data('mountpoint'); if (mountPoint === '') { return false; } - var statusSpan = $(tr).closest('tr').find('.status span'); - var backendClass = $(tr).find('.backend').data('class'); - var configuration = $(tr).find('.configuration input'); + var statusSpan = $tr.find('.status span'); + var backendClass = $tr.find('.backend').data('class'); + var configuration = $tr.find('.configuration input'); var addMountPoint = true; if (configuration.length < 1) { return false; @@ -62,14 +62,14 @@ OC.MountConfig={ } }); if ($('#externalStorage').data('admin') === true) { - var multiselect = getSelection($(tr)); + var multiselect = getSelection($tr); } if (addMountPoint) { var status = false; if ($('#externalStorage').data('admin') === true) { var isPersonal = false; - var oldGroups = $(tr).find('.applicable').data('applicable-groups'); - var oldUsers = $(tr).find('.applicable').data('applicable-users'); + var oldGroups = $tr.find('.applicable').data('applicable-groups'); + var oldUsers = $tr.find('.applicable').data('applicable-users'); var groups = []; var users = []; $.each(multiselect, function(index, value) { @@ -102,7 +102,7 @@ OC.MountConfig={ oldMountPoint: oldMountPoint }, success: function(result) { - $(tr).find('.mountPoint input').data('mountpoint', mountPoint); + $tr.find('.mountPoint input').data('mountpoint', mountPoint); status = updateStatus(statusSpan, result); if (callback) { callback(status); @@ -116,8 +116,8 @@ OC.MountConfig={ } }); }); - $(tr).find('.applicable').data('applicable-groups', groups); - $(tr).find('.applicable').data('applicable-users', users); + $tr.find('.applicable').data('applicable-groups', groups); + $tr.find('.applicable').data('applicable-users', users); var mountType = 'group'; $.each(oldGroups, function(index, applicable) { $.ajax({type: 'POST', @@ -163,7 +163,7 @@ OC.MountConfig={ oldMountPoint: oldMountPoint }, success: function(result) { - $(tr).find('.mountPoint input').data('mountpoint', mountPoint); + $tr.find('.mountPoint input').data('mountpoint', mountPoint); status = updateStatus(statusSpan, result); if (callback) { callback(status); @@ -183,20 +183,23 @@ OC.MountConfig={ }; $(document).ready(function() { + var $externalStorage = $('#externalStorage'); + //initialize hidden input field with list of users and groups - $('#externalStorage').find('tr:not(#addMountPoint)').each(function(i,tr) { - var applicable = $(tr).find('.applicable'); - if (applicable.length > 0) { - var groups = applicable.data('applicable-groups'); + $externalStorage.find('tr:not(#addMountPoint)').each(function(i,tr) { + var $tr = $(tr); + var $applicable = $tr.find('.applicable'); + if ($applicable.length > 0) { + var groups = $applicable.data('applicable-groups'); var groupsId = []; $.each(groups, function () { - groupsId.push(this+"(group)"); + groupsId.push(this + '(group)'); }); - var users = applicable.data('applicable-users'); + var users = $applicable.data('applicable-users'); if (users.indexOf('all') > -1) { - $(tr).find('.applicableUsers').val(''); + $tr.find('.applicableUsers').val(''); } else { - $(tr).find('.applicableUsers').val(groupsId.concat(users).join(',')); + $tr.find('.applicableUsers').val(groupsId.concat(users).join(',')); } } }); @@ -221,7 +224,7 @@ $(document).ready(function() { }; }, results: function (data, page) { - if (data.status === "success") { + if (data.status === 'success') { var results = []; var userCount = 0; // users is an object @@ -256,10 +259,10 @@ $(document).ready(function() { type: 'POST', contentType: 'application/json', data: JSON.stringify(users), - dataType: "json" + dataType: 'json' }).done(function(data) { var results = []; - if (data.status === "success") { + if (data.status === 'success') { $.each(data.users, function(user, displayname) { if (displayname !== false) { results.push({name:user, displayname:displayname, type:'user'}); @@ -294,9 +297,9 @@ $(document).ready(function() { } }, escapeMarkup: function (m) { return m; } // we escape the markup in formatResult and formatSelection - }).on("select2-loaded", function() { - $.each($(".avatardiv"), function(i, div) { - $div = $(div); + }).on('select2-loaded', function() { + $.each($('.avatardiv'), function(i, div) { + var $div = $(div); if ($div.data('type') === 'user') { $div.avatar($div.data('name'),32); } @@ -306,21 +309,21 @@ $(document).ready(function() { } addSelect2($('tr:not(#addMountPoint) .applicableUsers')); - $('#externalStorage').on('change', '#selectBackend', function() { - var tr = $(this).closest("tr"); - $('#externalStorage tbody').append($(tr).clone()); - $('#externalStorage tbody tr').last().find('.mountPoint input').val(''); + $externalStorage.on('change', '#selectBackend', function() { + var $tr = $(this).closest('tr'); + $externalStorage.find('tbody').append($tr.clone()); + $externalStorage.find('tbody tr').last().find('.mountPoint input').val(''); var selected = $(this).find('option:selected').text(); var backendClass = $(this).val(); - $(tr).find('.backend').text(selected); - if ($(tr).find('.mountPoint input').val() === '') { - $(tr).find('.mountPoint input').val(suggestMountPoint(selected)); + $tr.find('.backend').text(selected); + if ($tr.find('.mountPoint input').val() === '') { + $tr.find('.mountPoint input').val(suggestMountPoint(selected)); } - $(tr).addClass(backendClass); - $(tr).find('.status').append(''); - $(tr).find('.backend').data('class', backendClass); + $tr.addClass(backendClass); + $tr.find('.status').append(''); + $tr.find('.backend').data('class', backendClass); var configurations = $(this).data('configurations'); - var td = $(tr).find('td.configuration'); + var $td = $tr.find('td.configuration'); $.each(configurations, function(backend, parameters) { if (backend === backendClass) { $.each(parameters['configuration'], function(parameter, placeholder) { @@ -342,20 +345,20 @@ $(document).ready(function() { newElement = $(''); } highlightInput(newElement); - td.append(newElement); + $td.append(newElement); }); - if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length === 1) { + if (parameters['custom'] && $externalStorage.find('tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length === 1) { OC.addScript('files_external', parameters['custom']); } - td.children().not('[type=hidden]').first().focus(); + $td.children().not('[type=hidden]').first().focus(); return false; } }); - $(tr).find('td').last().attr('class', 'remove'); - $(tr).find('td').last().removeAttr('style'); - $(tr).removeAttr('id'); + $tr.find('td').last().attr('class', 'remove'); + $tr.find('td').last().removeAttr('style'); + $tr.removeAttr('id'); $(this).remove(); - addSelect2($('tr:not(#addMountPoint) .applicableUsers')); + addSelect2($tr.find('.applicableUsers')); }); function suggestMountPoint(defaultMountPoint) { @@ -369,7 +372,7 @@ $(document).ready(function() { var match = true; while (match && i < 20) { match = false; - $('#externalStorage tbody td.mountPoint input').each(function(index, mountPoint) { + $externalStorage.find('tbody td.mountPoint input').each(function(index, mountPoint) { if ($(mountPoint).val() === defaultMountPoint+append) { match = true; return false; @@ -385,54 +388,54 @@ $(document).ready(function() { return defaultMountPoint+append; } - $('#externalStorage').on('paste', 'td input', function() { - var tr = $(this).closest("tr"); - var me = this; + $externalStorage.on('paste', 'td input', function() { + var $me = $(this); + var $tr = $me.closest('tr'); setTimeout(function() { - highlightInput($(me)); - OC.MountConfig.saveStorage(tr); + highlightInput($me); + OC.MountConfig.saveStorage($tr); }, 20); }); var timer; - $('#externalStorage').on('keyup', 'td input', function() { + $externalStorage.on('keyup', 'td input', function() { clearTimeout(timer); - var tr = $(this).closest("tr"); + var $tr = $(this).closest('tr'); highlightInput($(this)); if ($(this).val) { timer = setTimeout(function() { - OC.MountConfig.saveStorage(tr); + OC.MountConfig.saveStorage($tr); }, 2000); } }); - $('#externalStorage').on('change', 'td input:checkbox', function() { - OC.MountConfig.saveStorage($(this).closest("tr")); + $externalStorage.on('change', 'td input:checkbox', function() { + OC.MountConfig.saveStorage($(this).closest('tr')); }); - $('#externalStorage').on('change', '.applicable', function() { - OC.MountConfig.saveStorage($(this).closest("tr")); + $externalStorage.on('change', '.applicable', function() { + OC.MountConfig.saveStorage($(this).closest('tr')); }); - $('#externalStorage').on('click', '.status>span', function() { - OC.MountConfig.saveStorage($(this).closest("tr")); + $externalStorage.on('click', '.status>span', function() { + OC.MountConfig.saveStorage($(this).closest('tr')); }); $('#sslCertificate').on('click', 'td.remove>img', function() { - var $tr = $(this).closest("tr"); + var $tr = $(this).closest('tr'); $.post(OC.filePath('files_external', 'ajax', 'removeRootCertificate.php'), {cert: $tr.attr('id')}); $tr.remove(); return true; }); - $('#externalStorage').on('click', 'td.remove>img', function() { - var tr = $(this).closest('tr'); - var mountPoint = $(tr).find('.mountPoint input').val(); + $externalStorage.on('click', 'td.remove>img', function() { + var $tr = $(this).closest('tr'); + var mountPoint = $tr.find('.mountPoint input').val(); - if ($('#externalStorage').data('admin') === true) { + if ($externalStorage.data('admin') === true) { var isPersonal = false; - var multiselect = getSelection($(tr)); + var multiselect = getSelection($tr); $.each(multiselect, function(index, value) { var pos = value.indexOf('(group)'); if (pos != -1) { @@ -450,10 +453,11 @@ $(document).ready(function() { var isPersonal = true; $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); } - $(tr).remove(); + $tr.remove(); }); - $('#allowUserMounting').bind('change', function() { + var $allowUserMounting = $('#allowUserMounting'); + $allowUserMounting.bind('change', function() { OC.msg.startSaving('#userMountingMsg'); if (this.checked) { OC.AppConfig.setValue('files_external', 'allow_user_mounting', 'yes'); @@ -475,8 +479,8 @@ $(document).ready(function() { // disable allowUserMounting if(userMountingBackends.length === 0) { - $('#allowUserMounting').prop('checked', false); - $('#allowUserMounting').trigger('change'); + $allowUserMounting.prop('checked', false); + $allowUserMounting.trigger('change'); } }); diff --git a/apps/files_external/l10n/af_ZA.js b/apps/files_external/l10n/af_ZA.js new file mode 100644 index 0000000000000000000000000000000000000000..1c56071d430fe77abfd98d21535ee1a1faa235ad --- /dev/null +++ b/apps/files_external/l10n/af_ZA.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_external", + { + "Username" : "Gebruikersnaam", + "Password" : "Wagwoord", + "Share" : "Deel", + "Personal" : "Persoonlik" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/af_ZA.json b/apps/files_external/l10n/af_ZA.json new file mode 100644 index 0000000000000000000000000000000000000000..ddb1414664971c972e727c4f1a2890d32c4f7368 --- /dev/null +++ b/apps/files_external/l10n/af_ZA.json @@ -0,0 +1,7 @@ +{ "translations": { + "Username" : "Gebruikersnaam", + "Password" : "Wagwoord", + "Share" : "Deel", + "Personal" : "Persoonlik" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/af_ZA.php b/apps/files_external/l10n/af_ZA.php deleted file mode 100644 index 7b416fc117a99196f7b0b5412e2b9d2525475d7b..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/af_ZA.php +++ /dev/null @@ -1,8 +0,0 @@ - "Gebruikersnaam", -"Password" => "Wagwoord", -"Share" => "Deel", -"Personal" => "Persoonlik" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/ar.js b/apps/files_external/l10n/ar.js new file mode 100644 index 0000000000000000000000000000000000000000..c2825869a7e603aaa6a8818383a0e5dfb5fd5e01 --- /dev/null +++ b/apps/files_external/l10n/ar.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_external", + { + "Location" : "المكان", + "Port" : "المنفذ", + "Region" : "المنطقة", + "Host" : "المضيف", + "Username" : "إسم المستخدم", + "Password" : "كلمة السر", + "Share" : "شارك", + "URL" : "عنوان الموقع", + "Personal" : "شخصي", + "Saved" : "حفظ", + "Name" : "اسم", + "Folder name" : "اسم المجلد", + "Configuration" : "إعداد", + "Delete" : "إلغاء" +}, +"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/files_external/l10n/ar.json b/apps/files_external/l10n/ar.json new file mode 100644 index 0000000000000000000000000000000000000000..64650283140f873ef8365d6bd1e9058a4300461b --- /dev/null +++ b/apps/files_external/l10n/ar.json @@ -0,0 +1,17 @@ +{ "translations": { + "Location" : "المكان", + "Port" : "المنفذ", + "Region" : "المنطقة", + "Host" : "المضيف", + "Username" : "إسم المستخدم", + "Password" : "كلمة السر", + "Share" : "شارك", + "URL" : "عنوان الموقع", + "Personal" : "شخصي", + "Saved" : "حفظ", + "Name" : "اسم", + "Folder name" : "اسم المجلد", + "Configuration" : "إعداد", + "Delete" : "إلغاء" +},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ar.php b/apps/files_external/l10n/ar.php deleted file mode 100644 index ad06d9c778efbacad6d89b7d77bb51651d301d66..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ar.php +++ /dev/null @@ -1,18 +0,0 @@ - "المكان", -"Port" => "المنفذ", -"Region" => "المنطقة", -"Host" => "المضيف", -"Username" => "إسم المستخدم", -"Password" => "كلمة السر", -"Share" => "شارك", -"URL" => "عنوان الموقع", -"Personal" => "شخصي", -"Saved" => "حفظ", -"Name" => "اسم", -"Folder name" => "اسم المجلد", -"Configuration" => "إعداد", -"Delete" => "إلغاء" -); -$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"; diff --git a/apps/files_external/l10n/ast.js b/apps/files_external/l10n/ast.js new file mode 100644 index 0000000000000000000000000000000000000000..d1d9f05b498c357cb1c69c4aca89c02bb17f77e8 --- /dev/null +++ b/apps/files_external/l10n/ast.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Falló la descarga de los tokens solicitaos. Verifica que la clave y el secretu de la app de Dropbox ye correuta.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Falló la descarga de los tokens solicitaos. Verifica que la clave y el secretu de la app de Dropbox ye correuta.", + "Please provide a valid Dropbox app key and secret." : "Por favor, proporciona una clave válida de l'app Dropbox y una clave secreta.", + "Step 1 failed. Exception: %s" : "Pasu 1 fallíu. Esceición: %s", + "Step 2 failed. Exception: %s" : "Pasu 2 fallíu. Esceición: %s", + "External storage" : "Almacenamientu esternu", + "Local" : "Llocal", + "Location" : "Llocalización", + "Amazon S3" : "Amazon S3", + "Key" : "Clave", + "Secret" : "Secretu", + "Bucket" : "Depósitu", + "Amazon S3 and compliant" : "Amazon S3 y compatibilidá", + "Access Key" : "Clave d'accesu", + "Secret Key" : "Clave Secreta", + "Hostname" : "Nome d'agospiu", + "Port" : "Puertu", + "Region" : "Rexón", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilu de ruta", + "App key" : "App principal", + "App secret" : "App secreta", + "Host" : "Sirvidor", + "Username" : "Nome d'usuariu", + "Password" : "Contraseña", + "Root" : "Raíz", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "ID de veceru", + "Client secret" : "Veceru secretu", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Rexón (opcional pa OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clave API (necesaria pa Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nome d'inquilín (necesariu pa OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contraseña (necesaria pa OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome de Serviciu (necesariu pa OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL d'identidá de puntu final (necesariu pa OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tiempu d'espera de peticiones HTTP en segundos", + "Share" : "Compartir", + "SMB / CIFS using OC login" : "SMB / CIFS usando accesu OC", + "Username as share" : "Nome d'usuariu como Compartición", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Subcarpeta remota", + "Access granted" : "Accesu concedíu", + "Error configuring Dropbox storage" : "Fallu configurando l'almacenamientu de Dropbox", + "Grant access" : "Conceder accesu", + "Error configuring Google Drive storage" : "Fallu configurando l'almacenamientu de Google Drive", + "Personal" : "Personal", + "System" : "Sistema", + "All users. Type to select user or group." : "Tolos usuarios. Escribe pa seleccionar usuariu o grupu.", + "(group)" : "(grupu)", + "Saved" : "Guardáu", + "Note: " : "Nota: ", + " and " : "y", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de cURL en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de FTP en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" nun ta instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", + "You don't have any external storages" : "Nun tienes almacenamientos esternos", + "Name" : "Nome", + "Storage type" : "Triba d'almacenamientu", + "Scope" : "Ámbitu", + "External Storage" : "Almacenamientu esternu", + "Folder name" : "Nome de la carpeta", + "Configuration" : "Configuración", + "Available for" : "Disponible pa", + "Add storage" : "Amestar almacenamientu", + "Delete" : "Desaniciar", + "Enable User External Storage" : "Habilitar almacenamientu esterno d'usuariu", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamientu esternu" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/ast.json b/apps/files_external/l10n/ast.json new file mode 100644 index 0000000000000000000000000000000000000000..eeca7714b311164e1923c0d45e69f38eb6d4d32d --- /dev/null +++ b/apps/files_external/l10n/ast.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Falló la descarga de los tokens solicitaos. Verifica que la clave y el secretu de la app de Dropbox ye correuta.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Falló la descarga de los tokens solicitaos. Verifica que la clave y el secretu de la app de Dropbox ye correuta.", + "Please provide a valid Dropbox app key and secret." : "Por favor, proporciona una clave válida de l'app Dropbox y una clave secreta.", + "Step 1 failed. Exception: %s" : "Pasu 1 fallíu. Esceición: %s", + "Step 2 failed. Exception: %s" : "Pasu 2 fallíu. Esceición: %s", + "External storage" : "Almacenamientu esternu", + "Local" : "Llocal", + "Location" : "Llocalización", + "Amazon S3" : "Amazon S3", + "Key" : "Clave", + "Secret" : "Secretu", + "Bucket" : "Depósitu", + "Amazon S3 and compliant" : "Amazon S3 y compatibilidá", + "Access Key" : "Clave d'accesu", + "Secret Key" : "Clave Secreta", + "Hostname" : "Nome d'agospiu", + "Port" : "Puertu", + "Region" : "Rexón", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilu de ruta", + "App key" : "App principal", + "App secret" : "App secreta", + "Host" : "Sirvidor", + "Username" : "Nome d'usuariu", + "Password" : "Contraseña", + "Root" : "Raíz", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "ID de veceru", + "Client secret" : "Veceru secretu", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Rexón (opcional pa OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clave API (necesaria pa Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nome d'inquilín (necesariu pa OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contraseña (necesaria pa OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome de Serviciu (necesariu pa OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL d'identidá de puntu final (necesariu pa OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tiempu d'espera de peticiones HTTP en segundos", + "Share" : "Compartir", + "SMB / CIFS using OC login" : "SMB / CIFS usando accesu OC", + "Username as share" : "Nome d'usuariu como Compartición", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Subcarpeta remota", + "Access granted" : "Accesu concedíu", + "Error configuring Dropbox storage" : "Fallu configurando l'almacenamientu de Dropbox", + "Grant access" : "Conceder accesu", + "Error configuring Google Drive storage" : "Fallu configurando l'almacenamientu de Google Drive", + "Personal" : "Personal", + "System" : "Sistema", + "All users. Type to select user or group." : "Tolos usuarios. Escribe pa seleccionar usuariu o grupu.", + "(group)" : "(grupu)", + "Saved" : "Guardáu", + "Note: " : "Nota: ", + " and " : "y", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de cURL en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de FTP en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" nun ta instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", + "You don't have any external storages" : "Nun tienes almacenamientos esternos", + "Name" : "Nome", + "Storage type" : "Triba d'almacenamientu", + "Scope" : "Ámbitu", + "External Storage" : "Almacenamientu esternu", + "Folder name" : "Nome de la carpeta", + "Configuration" : "Configuración", + "Available for" : "Disponible pa", + "Add storage" : "Amestar almacenamientu", + "Delete" : "Desaniciar", + "Enable User External Storage" : "Habilitar almacenamientu esterno d'usuariu", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamientu esternu" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ast.php b/apps/files_external/l10n/ast.php deleted file mode 100644 index 0aba42d38af823022665a2647db731a1abc9b426..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ast.php +++ /dev/null @@ -1,71 +0,0 @@ - "Falló la descarga de los tokens solicitaos. Verifica que la clave y el secretu de la app de Dropbox ye correuta.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Falló la descarga de los tokens solicitaos. Verifica que la clave y el secretu de la app de Dropbox ye correuta.", -"Please provide a valid Dropbox app key and secret." => "Por favor, proporciona una clave válida de l'app Dropbox y una clave secreta.", -"Step 1 failed. Exception: %s" => "Pasu 1 fallíu. Esceición: %s", -"Step 2 failed. Exception: %s" => "Pasu 2 fallíu. Esceición: %s", -"External storage" => "Almacenamientu esternu", -"Local" => "Llocal", -"Location" => "Llocalización", -"Amazon S3" => "Amazon S3", -"Key" => "Clave", -"Secret" => "Secretu", -"Bucket" => "Depósitu", -"Amazon S3 and compliant" => "Amazon S3 y compatibilidá", -"Access Key" => "Clave d'accesu", -"Secret Key" => "Clave Secreta", -"Hostname" => "Nome d'agospiu", -"Port" => "Puertu", -"Region" => "Rexón", -"Enable SSL" => "Habilitar SSL", -"Enable Path Style" => "Habilitar Estilu de ruta", -"App key" => "App principal", -"App secret" => "App secreta", -"Host" => "Sirvidor", -"Username" => "Nome d'usuariu", -"Password" => "Contraseña", -"Root" => "Raíz", -"Secure ftps://" => "Secure ftps://", -"Client ID" => "ID de veceru", -"Client secret" => "Veceru secretu", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Rexón (opcional pa OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "Clave API (necesaria pa Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Nome d'inquilín (necesariu pa OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Contraseña (necesaria pa OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nome de Serviciu (necesariu pa OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL d'identidá de puntu final (necesariu pa OpenStack Object Storage)", -"Share" => "Compartir", -"SMB / CIFS using OC login" => "SMB / CIFS usando accesu OC", -"Username as share" => "Nome d'usuariu como Compartición", -"URL" => "URL", -"Secure https://" => "Secure https://", -"Remote subfolder" => "Subcarpeta remota", -"Access granted" => "Accesu concedíu", -"Error configuring Dropbox storage" => "Fallu configurando l'almacenamientu de Dropbox", -"Grant access" => "Conceder accesu", -"Error configuring Google Drive storage" => "Fallu configurando l'almacenamientu de Google Drive", -"Personal" => "Personal", -"System" => "Sistema", -"(group)" => "(grupu)", -"Saved" => "Guardáu", -"Note: " => "Nota: ", -" and " => "y", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: El soporte de cURL en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: El soporte de FTP en PHP nun ta activáu o instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: \"%s\" nun ta instaláu. Nun pue montase %s. Pídi-y al alministrador de sistema que lu instale.", -"You don't have any external storages" => "Nun tienes almacenamientos esternos", -"Name" => "Nome", -"Storage type" => "Triba d'almacenamientu", -"Scope" => "Ámbitu", -"External Storage" => "Almacenamientu esternu", -"Folder name" => "Nome de la carpeta", -"Configuration" => "Configuración", -"Available for" => "Disponible pa", -"Add storage" => "Amestar almacenamientu", -"Delete" => "Desaniciar", -"Enable User External Storage" => "Habilitar almacenamientu esterno d'usuariu", -"Allow users to mount the following external storage" => "Permitir a los usuarios montar el siguiente almacenamientu esternu" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/az.js b/apps/files_external/l10n/az.js new file mode 100644 index 0000000000000000000000000000000000000000..78cb4de59f48531ea436e92aa33f2fccd112c870 --- /dev/null +++ b/apps/files_external/l10n/az.js @@ -0,0 +1,24 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Müraciət token-nin alınmasında səhv baş verdi. Əmin olun ki, sizin Dropbox proqraminin açarı və gizlisi düzgündür.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Müraciət token-nin alınmasında səhv baş verdi. Əmin olun ki, sizin Dropbox proqraminin açarı və gizlisi düzgündür.", + "Please provide a valid Dropbox app key and secret." : "Xahiş olunur düzgün Dropbox proqram açarı və gizlisini təqdim edəsiniz.", + "Step 2 failed. Exception: %s" : "2-ci addım. İstisna: %s", + "External storage" : "Kənar informasıya daşıyıcısı", + "Location" : "Yerləşdiyiniz ünvan", + "Key" : "Açar", + "Secret" : "Gizli", + "Enable SSL" : "SSL-i işə sal", + "Host" : "Şəbəkədə ünvan", + "Username" : "İstifadəçi adı", + "Password" : "Şifrə", + "Share" : "Yayımla", + "URL" : "URL", + "Personal" : "Şəxsi", + "Saved" : "Saxlanıldı", + "Name" : "Ad", + "Folder name" : "Qovluq adı", + "Delete" : "Sil" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/az.json b/apps/files_external/l10n/az.json new file mode 100644 index 0000000000000000000000000000000000000000..e9d51e8fa92e357be458d6b4e1ef8f95375873b1 --- /dev/null +++ b/apps/files_external/l10n/az.json @@ -0,0 +1,22 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Müraciət token-nin alınmasında səhv baş verdi. Əmin olun ki, sizin Dropbox proqraminin açarı və gizlisi düzgündür.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Müraciət token-nin alınmasında səhv baş verdi. Əmin olun ki, sizin Dropbox proqraminin açarı və gizlisi düzgündür.", + "Please provide a valid Dropbox app key and secret." : "Xahiş olunur düzgün Dropbox proqram açarı və gizlisini təqdim edəsiniz.", + "Step 2 failed. Exception: %s" : "2-ci addım. İstisna: %s", + "External storage" : "Kənar informasıya daşıyıcısı", + "Location" : "Yerləşdiyiniz ünvan", + "Key" : "Açar", + "Secret" : "Gizli", + "Enable SSL" : "SSL-i işə sal", + "Host" : "Şəbəkədə ünvan", + "Username" : "İstifadəçi adı", + "Password" : "Şifrə", + "Share" : "Yayımla", + "URL" : "URL", + "Personal" : "Şəxsi", + "Saved" : "Saxlanıldı", + "Name" : "Ad", + "Folder name" : "Qovluq adı", + "Delete" : "Sil" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/az.php b/apps/files_external/l10n/az.php deleted file mode 100644 index 330e8234a615f723690838636d63198f9e935e30..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/az.php +++ /dev/null @@ -1,23 +0,0 @@ - "Müraciət token-nin alınmasında səhv baş verdi. Əmin olun ki, sizin Dropbox proqraminin açarı və gizlisi düzgündür.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Müraciət token-nin alınmasında səhv baş verdi. Əmin olun ki, sizin Dropbox proqraminin açarı və gizlisi düzgündür.", -"Please provide a valid Dropbox app key and secret." => "Xahiş olunur düzgün Dropbox proqram açarı və gizlisini təqdim edəsiniz.", -"Step 2 failed. Exception: %s" => "2-ci addım. İstisna: %s", -"External storage" => "Kənar informasıya daşıyıcısı", -"Location" => "Yerləşdiyiniz ünvan", -"Key" => "Açar", -"Secret" => "Gizli", -"Enable SSL" => "SSL-i işə sal", -"Host" => "Şəbəkədə ünvan", -"Username" => "İstifadəçi adı", -"Password" => "Şifrə", -"Share" => "Yayımla", -"URL" => "URL", -"Personal" => "Şəxsi", -"Saved" => "Saxlanıldı", -"Name" => "Ad", -"Folder name" => "Qovluq adı", -"Delete" => "Sil" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/bg_BG.js b/apps/files_external/l10n/bg_BG.js new file mode 100644 index 0000000000000000000000000000000000000000..1944af503f12647727131fc73c424adda3a1249a --- /dev/null +++ b/apps/files_external/l10n/bg_BG.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Неуспешно изтеглянето на токени за заявка. Провери дали Dropbox app key и secret са правилни.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Неуспешно изтеглянето на токени за заявка. Провери дали Dropbox app key и secret са правилни.", + "Please provide a valid Dropbox app key and secret." : "Моля, задай валидни Dropbox app key и secret.", + "Step 1 failed. Exception: %s" : "Стъпка 1 - неуспешна. Грешка: %s", + "Step 2 failed. Exception: %s" : "Стъпка 2 - неуспешна. Грешка: %s", + "External storage" : "Външно дисково пространство", + "Local" : "Локален", + "Location" : "Местоположение", + "Amazon S3" : "Amazon S3", + "Key" : "Key", + "Secret" : "Secret", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 и съвместими", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Сървър", + "Port" : "Порт", + "Region" : "Регион", + "Enable SSL" : "Включи SSL", + "Enable Path Style" : "Включи Path Style", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Сървър", + "Username" : "Потребителско Име", + "Password" : "Парола", + "Root" : "Root", + "Secure ftps://" : "Сигурен ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Регион (незадължително за OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (задължително за Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (задължително за OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Парола (задължително за OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Name (задължително за OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (задължително за OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Timeout за HTTP заявки в секунди", + "Share" : "Споделяне", + "SMB / CIFS using OC login" : "SMB / CIFS използвайки OC профил", + "Username as share" : "Потребителско име като споделена папка", + "URL" : "Интернет Адрес", + "Secure https://" : "Подсигурен https://", + "Remote subfolder" : "Външна подпапка", + "Access granted" : "Достъпът разрешен", + "Error configuring Dropbox storage" : "Грешка при настройката на Dropbox дисковото пространство.", + "Grant access" : "Разреши достъп", + "Error configuring Google Drive storage" : "Грешка при настройката на Dropbox дисковото пространство.", + "Personal" : "Личен", + "System" : "Системен", + "All users. Type to select user or group." : "Всички потребители. Пиши, за да избереш потребител или група.", + "(group)" : "(група)", + "Saved" : "Запазено", + "Note: " : "Бележка: ", + " and " : "и", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: PHP подръжката на cURL не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: PHP подръжката на FTP не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: \"%s\" не е инсталиран. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", + "You don't have any external storages" : "Нямаш никакви външни дискови пространства", + "Name" : "Име", + "Storage type" : "Тип дисково пространство", + "Scope" : "Обхват", + "External Storage" : "Външно Дисково Пространство", + "Folder name" : "Име на папката", + "Configuration" : "Настройки", + "Available for" : "Достъпно за", + "Add storage" : "Добави дисково пространство", + "Delete" : "Изтрий", + "Enable User External Storage" : "Разреши Потребителско Външно Дисково Пространство", + "Allow users to mount the following external storage" : "Разреши на потребителите да прикачват следното външно дисково пространство" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/bg_BG.json b/apps/files_external/l10n/bg_BG.json new file mode 100644 index 0000000000000000000000000000000000000000..0564415c3d62c307b07bc6120fd9fdbf92164285 --- /dev/null +++ b/apps/files_external/l10n/bg_BG.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Неуспешно изтеглянето на токени за заявка. Провери дали Dropbox app key и secret са правилни.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Неуспешно изтеглянето на токени за заявка. Провери дали Dropbox app key и secret са правилни.", + "Please provide a valid Dropbox app key and secret." : "Моля, задай валидни Dropbox app key и secret.", + "Step 1 failed. Exception: %s" : "Стъпка 1 - неуспешна. Грешка: %s", + "Step 2 failed. Exception: %s" : "Стъпка 2 - неуспешна. Грешка: %s", + "External storage" : "Външно дисково пространство", + "Local" : "Локален", + "Location" : "Местоположение", + "Amazon S3" : "Amazon S3", + "Key" : "Key", + "Secret" : "Secret", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 и съвместими", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Сървър", + "Port" : "Порт", + "Region" : "Регион", + "Enable SSL" : "Включи SSL", + "Enable Path Style" : "Включи Path Style", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Сървър", + "Username" : "Потребителско Име", + "Password" : "Парола", + "Root" : "Root", + "Secure ftps://" : "Сигурен ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Регион (незадължително за OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (задължително за Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (задължително за OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Парола (задължително за OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Name (задължително за OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (задължително за OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Timeout за HTTP заявки в секунди", + "Share" : "Споделяне", + "SMB / CIFS using OC login" : "SMB / CIFS използвайки OC профил", + "Username as share" : "Потребителско име като споделена папка", + "URL" : "Интернет Адрес", + "Secure https://" : "Подсигурен https://", + "Remote subfolder" : "Външна подпапка", + "Access granted" : "Достъпът разрешен", + "Error configuring Dropbox storage" : "Грешка при настройката на Dropbox дисковото пространство.", + "Grant access" : "Разреши достъп", + "Error configuring Google Drive storage" : "Грешка при настройката на Dropbox дисковото пространство.", + "Personal" : "Личен", + "System" : "Системен", + "All users. Type to select user or group." : "Всички потребители. Пиши, за да избереш потребител или група.", + "(group)" : "(група)", + "Saved" : "Запазено", + "Note: " : "Бележка: ", + " and " : "и", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: PHP подръжката на cURL не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: PHP подръжката на FTP не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: \"%s\" не е инсталиран. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", + "You don't have any external storages" : "Нямаш никакви външни дискови пространства", + "Name" : "Име", + "Storage type" : "Тип дисково пространство", + "Scope" : "Обхват", + "External Storage" : "Външно Дисково Пространство", + "Folder name" : "Име на папката", + "Configuration" : "Настройки", + "Available for" : "Достъпно за", + "Add storage" : "Добави дисково пространство", + "Delete" : "Изтрий", + "Enable User External Storage" : "Разреши Потребителско Външно Дисково Пространство", + "Allow users to mount the following external storage" : "Разреши на потребителите да прикачват следното външно дисково пространство" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/bg_BG.php b/apps/files_external/l10n/bg_BG.php deleted file mode 100644 index cb9663147cdce8f9cd763f9fd2b1a720aa3dce79..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/bg_BG.php +++ /dev/null @@ -1,73 +0,0 @@ - "Неуспешно изтеглянето на токени за заявка. Провери дали Dropbox app key и secret са правилни.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Неуспешно изтеглянето на токени за заявка. Провери дали Dropbox app key и secret са правилни.", -"Please provide a valid Dropbox app key and secret." => "Моля, задай валидни Dropbox app key и secret.", -"Step 1 failed. Exception: %s" => "Стъпка 1 - неуспешна. Грешка: %s", -"Step 2 failed. Exception: %s" => "Стъпка 2 - неуспешна. Грешка: %s", -"External storage" => "Външно дисково пространство", -"Local" => "Локален", -"Location" => "Местоположение", -"Amazon S3" => "Amazon S3", -"Key" => "Key", -"Secret" => "Secret", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 и съвместими", -"Access Key" => "Access Key", -"Secret Key" => "Secret Key", -"Hostname" => "Сървър", -"Port" => "Порт", -"Region" => "Регион", -"Enable SSL" => "Включи SSL", -"Enable Path Style" => "Включи Path Style", -"App key" => "App key", -"App secret" => "App secret", -"Host" => "Сървър", -"Username" => "Потребителско Име", -"Password" => "Парола", -"Root" => "Root", -"Secure ftps://" => "Сигурен ftps://", -"Client ID" => "Client ID", -"Client secret" => "Client secret", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Регион (незадължително за OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API Key (задължително за Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (задължително за OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Парола (задължително за OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Service Name (задължително за OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL of identity endpoint (задължително за OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Timeout за HTTP заявки в секунди", -"Share" => "Споделяне", -"SMB / CIFS using OC login" => "SMB / CIFS използвайки OC профил", -"Username as share" => "Потребителско име като споделена папка", -"URL" => "Интернет Адрес", -"Secure https://" => "Подсигурен https://", -"Remote subfolder" => "Външна подпапка", -"Access granted" => "Достъпът разрешен", -"Error configuring Dropbox storage" => "Грешка при настройката на Dropbox дисковото пространство.", -"Grant access" => "Разреши достъп", -"Error configuring Google Drive storage" => "Грешка при настройката на Dropbox дисковото пространство.", -"Personal" => "Личен", -"System" => "Системен", -"All users. Type to select user or group." => "Всички потребители. Пиши, за да избереш потребител или група.", -"(group)" => "(група)", -"Saved" => "Запазено", -"Note: " => "Бележка: ", -" and " => "и", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: PHP подръжката на cURL не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: PHP подръжката на FTP не е включена или инсталирана. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: \"%s\" не е инсталиран. Прикачването на %s не е възможно. Моля, поискай системния администратор да я инсталира.", -"You don't have any external storages" => "Нямаш никакви външни дискови пространства", -"Name" => "Име", -"Storage type" => "Тип дисково пространство", -"Scope" => "Обхват", -"External Storage" => "Външно Дисково Пространство", -"Folder name" => "Име на папката", -"Configuration" => "Настройки", -"Available for" => "Достъпно за", -"Add storage" => "Добави дисково пространство", -"Delete" => "Изтрий", -"Enable User External Storage" => "Разреши Потребителско Външно Дисково Пространство", -"Allow users to mount the following external storage" => "Разреши на потребителите да прикачват следното външно дисково пространство" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/bn_BD.js b/apps/files_external/l10n/bn_BD.js new file mode 100644 index 0000000000000000000000000000000000000000..1afb8c66ee16a2bc5cac4afbb5457ce54f599716 --- /dev/null +++ b/apps/files_external/l10n/bn_BD.js @@ -0,0 +1,44 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "দয়া করে সঠিক এবং বৈধ Dropbox app key and secret প্রদান করুন।", + "Step 1 failed. Exception: %s" : "প্রথম ধাপ ব্যার্থ। ব্যতিক্রম: %s", + "External storage" : "বাহ্যিক সংরক্ষণাগার", + "Local" : "স্থানীয়", + "Location" : "অবস্থান", + "Amazon S3" : "আমাজন S3", + "Key" : "কী", + "Secret" : "গোপণীয়", + "Bucket" : "বালতি", + "Secret Key" : "গোপণ চাবি", + "Hostname" : "হোস্টনেম", + "Port" : "পোর্ট", + "Region" : "এলাকা", + "Enable SSL" : "SSL সক্রিয় কর", + "App key" : "অ্যাপ কি", + "App secret" : "অ্যাপ সিক্রেট", + "Host" : "হোস্ট", + "Username" : "ব্যবহারকারী", + "Password" : "কূটশব্দ", + "Root" : "শেকড়", + "Secure ftps://" : "ftps:// অর্জন কর", + "Client ID" : "ক্লায়েন্ট পরিচিতি", + "Share" : "ভাগাভাগি কর", + "URL" : "URL", + "Access granted" : "অধিগমনের অনুমতি প্রদান করা হলো", + "Error configuring Dropbox storage" : "Dropbox সংরক্ষণাগার নির্ধারণ করতে সমস্যা ", + "Grant access" : "অধিগমনের অনুমতি প্রদান কর", + "Error configuring Google Drive storage" : "Google Drive সংরক্ষণাগার নির্ধারণ করতে সমস্যা ", + "Personal" : "ব্যক্তিগত", + "(group)" : "(গোষ্ঠি)", + "Saved" : "সংরক্ষণ করা হলো", + "Note: " : "দ্রষ্টব্য: ", + " and " : "এবং", + "Name" : "রাম", + "External Storage" : "বাহ্যিক সংরক্ষণাগার", + "Folder name" : "ফোলডারের নাম", + "Configuration" : "কনফিগারেসন", + "Delete" : "মুছে", + "Enable User External Storage" : "ব্যবহারকারীর বাহ্যিক সংরক্ষণাগার সক্রিয় কর" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/bn_BD.json b/apps/files_external/l10n/bn_BD.json new file mode 100644 index 0000000000000000000000000000000000000000..975bf7cace7dde5e6f51b5522c7001e9e4c1e845 --- /dev/null +++ b/apps/files_external/l10n/bn_BD.json @@ -0,0 +1,42 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "দয়া করে সঠিক এবং বৈধ Dropbox app key and secret প্রদান করুন।", + "Step 1 failed. Exception: %s" : "প্রথম ধাপ ব্যার্থ। ব্যতিক্রম: %s", + "External storage" : "বাহ্যিক সংরক্ষণাগার", + "Local" : "স্থানীয়", + "Location" : "অবস্থান", + "Amazon S3" : "আমাজন S3", + "Key" : "কী", + "Secret" : "গোপণীয়", + "Bucket" : "বালতি", + "Secret Key" : "গোপণ চাবি", + "Hostname" : "হোস্টনেম", + "Port" : "পোর্ট", + "Region" : "এলাকা", + "Enable SSL" : "SSL সক্রিয় কর", + "App key" : "অ্যাপ কি", + "App secret" : "অ্যাপ সিক্রেট", + "Host" : "হোস্ট", + "Username" : "ব্যবহারকারী", + "Password" : "কূটশব্দ", + "Root" : "শেকড়", + "Secure ftps://" : "ftps:// অর্জন কর", + "Client ID" : "ক্লায়েন্ট পরিচিতি", + "Share" : "ভাগাভাগি কর", + "URL" : "URL", + "Access granted" : "অধিগমনের অনুমতি প্রদান করা হলো", + "Error configuring Dropbox storage" : "Dropbox সংরক্ষণাগার নির্ধারণ করতে সমস্যা ", + "Grant access" : "অধিগমনের অনুমতি প্রদান কর", + "Error configuring Google Drive storage" : "Google Drive সংরক্ষণাগার নির্ধারণ করতে সমস্যা ", + "Personal" : "ব্যক্তিগত", + "(group)" : "(গোষ্ঠি)", + "Saved" : "সংরক্ষণ করা হলো", + "Note: " : "দ্রষ্টব্য: ", + " and " : "এবং", + "Name" : "রাম", + "External Storage" : "বাহ্যিক সংরক্ষণাগার", + "Folder name" : "ফোলডারের নাম", + "Configuration" : "কনফিগারেসন", + "Delete" : "মুছে", + "Enable User External Storage" : "ব্যবহারকারীর বাহ্যিক সংরক্ষণাগার সক্রিয় কর" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/bn_BD.php b/apps/files_external/l10n/bn_BD.php deleted file mode 100644 index 7e9a431275a37e5a2dce45ac18577a5698a75292..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/bn_BD.php +++ /dev/null @@ -1,43 +0,0 @@ - "দয়া করে সঠিক এবং বৈধ Dropbox app key and secret প্রদান করুন।", -"Step 1 failed. Exception: %s" => "প্রথম ধাপ ব্যার্থ। ব্যতিক্রম: %s", -"External storage" => "বাহ্যিক সংরক্ষণাগার", -"Local" => "স্থানীয়", -"Location" => "অবস্থান", -"Amazon S3" => "আমাজন S3", -"Key" => "কী", -"Secret" => "গোপণীয়", -"Bucket" => "বালতি", -"Secret Key" => "গোপণ চাবি", -"Hostname" => "হোস্টনেম", -"Port" => "পোর্ট", -"Region" => "এলাকা", -"Enable SSL" => "SSL সক্রিয় কর", -"App key" => "অ্যাপ কি", -"App secret" => "অ্যাপ সিক্রেট", -"Host" => "হোস্ট", -"Username" => "ব্যবহারকারী", -"Password" => "কূটশব্দ", -"Root" => "শেকড়", -"Secure ftps://" => "ftps:// অর্জন কর", -"Client ID" => "ক্লায়েন্ট পরিচিতি", -"Share" => "ভাগাভাগি কর", -"URL" => "URL", -"Access granted" => "অধিগমনের অনুমতি প্রদান করা হলো", -"Error configuring Dropbox storage" => "Dropbox সংরক্ষণাগার নির্ধারণ করতে সমস্যা ", -"Grant access" => "অধিগমনের অনুমতি প্রদান কর", -"Error configuring Google Drive storage" => "Google Drive সংরক্ষণাগার নির্ধারণ করতে সমস্যা ", -"Personal" => "ব্যক্তিগত", -"(group)" => "(গোষ্ঠি)", -"Saved" => "সংরক্ষণ করা হলো", -"Note: " => "দ্রষ্টব্য: ", -" and " => "এবং", -"Name" => "রাম", -"External Storage" => "বাহ্যিক সংরক্ষণাগার", -"Folder name" => "ফোলডারের নাম", -"Configuration" => "কনফিগারেসন", -"Delete" => "মুছে", -"Enable User External Storage" => "ব্যবহারকারীর বাহ্যিক সংরক্ষণাগার সক্রিয় কর" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/bn_IN.js b/apps/files_external/l10n/bn_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..cd66c82ab84cfe13704f4ce6ef8d5d7820b5cf93 --- /dev/null +++ b/apps/files_external/l10n/bn_IN.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "files_external", + { + "Host" : "হোস্ট", + "Username" : "ইউজারনেম", + "Share" : "শেয়ার", + "URL" : "URL", + "Saved" : "সংরক্ষিত", + "Name" : "নাম", + "Folder name" : "ফোল্ডারের নাম", + "Delete" : "মুছে ফেলা" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/bn_IN.json b/apps/files_external/l10n/bn_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..ca30788dbc484684bb99df3ffeeab9789df1c5aa --- /dev/null +++ b/apps/files_external/l10n/bn_IN.json @@ -0,0 +1,11 @@ +{ "translations": { + "Host" : "হোস্ট", + "Username" : "ইউজারনেম", + "Share" : "শেয়ার", + "URL" : "URL", + "Saved" : "সংরক্ষিত", + "Name" : "নাম", + "Folder name" : "ফোল্ডারের নাম", + "Delete" : "মুছে ফেলা" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/bn_IN.php b/apps/files_external/l10n/bn_IN.php deleted file mode 100644 index 581496cc3f7bb97f24a4a68f8fa9e0100490297d..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/bn_IN.php +++ /dev/null @@ -1,12 +0,0 @@ - "হোস্ট", -"Username" => "ইউজারনেম", -"Share" => "শেয়ার", -"URL" => "URL", -"Saved" => "সংরক্ষিত", -"Name" => "নাম", -"Folder name" => "ফোল্ডারের নাম", -"Delete" => "মুছে ফেলা" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/bs.js b/apps/files_external/l10n/bs.js new file mode 100644 index 0000000000000000000000000000000000000000..349554cd2dda22d711e53580b77727c015c1eac7 --- /dev/null +++ b/apps/files_external/l10n/bs.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_external", + { + "Share" : "Podijeli", + "Name" : "Ime" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_external/l10n/bs.json b/apps/files_external/l10n/bs.json new file mode 100644 index 0000000000000000000000000000000000000000..123aaea647a0237de1839cecb74b35030a6b5a74 --- /dev/null +++ b/apps/files_external/l10n/bs.json @@ -0,0 +1,5 @@ +{ "translations": { + "Share" : "Podijeli", + "Name" : "Ime" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/bs.php b/apps/files_external/l10n/bs.php deleted file mode 100644 index 917ad1b49ef8dd6182c5d827ccef0c0157ade9f7..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/bs.php +++ /dev/null @@ -1,6 +0,0 @@ - "Podijeli", -"Name" => "Ime" -); -$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);"; diff --git a/apps/files_external/l10n/ca.js b/apps/files_external/l10n/ca.js new file mode 100644 index 0000000000000000000000000000000000000000..4663654f63cb0b59e41deb0892c0c5a6d9c436d2 --- /dev/null +++ b/apps/files_external/l10n/ca.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Ha fallat en obtenir els testimonis de la petició. Verifiqueu que la clau i la contrasenya de l'aplicació Dropbox són correctes.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ha fallat en obtenir els testimonis de la petició. Verifiqueu que la clau i la contrasenya de l'aplicació Dropbox són correctes.", + "Please provide a valid Dropbox app key and secret." : "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox", + "Step 1 failed. Exception: %s" : "El pas 1 ha fallat. Excepció: %s", + "Step 2 failed. Exception: %s" : "El pas 2 ha fallat. Excepció: %s", + "External storage" : "Emmagatzemament extern", + "Local" : "Local", + "Location" : "Ubicació", + "Amazon S3" : "Amazon S3", + "Key" : "Clau", + "Secret" : "Secret", + "Bucket" : "Cub", + "Amazon S3 and compliant" : "Amazon S3 i similars", + "Access Key" : "Clau d'accés", + "Secret Key" : "Clau secreta", + "Hostname" : "Nom del servidor", + "Port" : "Port", + "Region" : "Comarca", + "Enable SSL" : "Habilita SSL", + "Enable Path Style" : "Permet l'estil del camí", + "App key" : "Clau de l'aplicació", + "App secret" : "Secret de l'aplicació", + "Host" : "Equip remot", + "Username" : "Nom d'usuari", + "Password" : "Contrasenya", + "Root" : "Arrel", + "Secure ftps://" : "Protocol segur ftps://", + "Client ID" : "Client ID", + "Client secret" : "Secret del client", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regió (opcional per OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clau API (requerit per fitxers al núvol Rackspace)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (requerit per OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contrasenya (requerit per OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nom del servei (requerit per OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL del punt identificador final (requerit per OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Temps d'expera màxim de les peticions HTTP en segons", + "Share" : "Comparteix", + "SMB / CIFS using OC login" : "SMB / CIFS usant acreditació OC", + "Username as share" : "Nom d'usuari per compartir", + "URL" : "URL", + "Secure https://" : "Protocol segur https://", + "Remote subfolder" : "Subcarpeta remota", + "Access granted" : "S'ha concedit l'accés", + "Error configuring Dropbox storage" : "Error en configurar l'emmagatzemament Dropbox", + "Grant access" : "Concedeix accés", + "Error configuring Google Drive storage" : "Error en configurar l'emmagatzemament Google Drive", + "Personal" : "Personal", + "System" : "Sistema", + "All users. Type to select user or group." : "Tots els usuaris. Escriu per seleccionar un usuari o grup.", + "(group)" : "(grup)", + "Saved" : "Desat", + "Note: " : "Nota: ", + " and " : "i", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", + "You don't have any external storages" : "No teniu emmagatzaments externs", + "Name" : "Nom", + "Storage type" : "Tipus d'emmagatzemament", + "Scope" : "Abast", + "External Storage" : "Emmagatzemament extern", + "Folder name" : "Nom de la carpeta", + "Configuration" : "Configuració", + "Available for" : "Disponible per", + "Add storage" : "Afegeix emmagatzemament", + "Delete" : "Esborra", + "Enable User External Storage" : "Habilita l'emmagatzemament extern d'usuari", + "Allow users to mount the following external storage" : "Permet als usuaris muntar els dispositius externs següents" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/ca.json b/apps/files_external/l10n/ca.json new file mode 100644 index 0000000000000000000000000000000000000000..6bd1dcca39bb3dbf33dfea4c802feb0b5e2f4ef7 --- /dev/null +++ b/apps/files_external/l10n/ca.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Ha fallat en obtenir els testimonis de la petició. Verifiqueu que la clau i la contrasenya de l'aplicació Dropbox són correctes.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ha fallat en obtenir els testimonis de la petició. Verifiqueu que la clau i la contrasenya de l'aplicació Dropbox són correctes.", + "Please provide a valid Dropbox app key and secret." : "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox", + "Step 1 failed. Exception: %s" : "El pas 1 ha fallat. Excepció: %s", + "Step 2 failed. Exception: %s" : "El pas 2 ha fallat. Excepció: %s", + "External storage" : "Emmagatzemament extern", + "Local" : "Local", + "Location" : "Ubicació", + "Amazon S3" : "Amazon S3", + "Key" : "Clau", + "Secret" : "Secret", + "Bucket" : "Cub", + "Amazon S3 and compliant" : "Amazon S3 i similars", + "Access Key" : "Clau d'accés", + "Secret Key" : "Clau secreta", + "Hostname" : "Nom del servidor", + "Port" : "Port", + "Region" : "Comarca", + "Enable SSL" : "Habilita SSL", + "Enable Path Style" : "Permet l'estil del camí", + "App key" : "Clau de l'aplicació", + "App secret" : "Secret de l'aplicació", + "Host" : "Equip remot", + "Username" : "Nom d'usuari", + "Password" : "Contrasenya", + "Root" : "Arrel", + "Secure ftps://" : "Protocol segur ftps://", + "Client ID" : "Client ID", + "Client secret" : "Secret del client", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regió (opcional per OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clau API (requerit per fitxers al núvol Rackspace)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (requerit per OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contrasenya (requerit per OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nom del servei (requerit per OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL del punt identificador final (requerit per OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Temps d'expera màxim de les peticions HTTP en segons", + "Share" : "Comparteix", + "SMB / CIFS using OC login" : "SMB / CIFS usant acreditació OC", + "Username as share" : "Nom d'usuari per compartir", + "URL" : "URL", + "Secure https://" : "Protocol segur https://", + "Remote subfolder" : "Subcarpeta remota", + "Access granted" : "S'ha concedit l'accés", + "Error configuring Dropbox storage" : "Error en configurar l'emmagatzemament Dropbox", + "Grant access" : "Concedeix accés", + "Error configuring Google Drive storage" : "Error en configurar l'emmagatzemament Google Drive", + "Personal" : "Personal", + "System" : "Sistema", + "All users. Type to select user or group." : "Tots els usuaris. Escriu per seleccionar un usuari o grup.", + "(group)" : "(grup)", + "Saved" : "Desat", + "Note: " : "Nota: ", + " and " : "i", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", + "You don't have any external storages" : "No teniu emmagatzaments externs", + "Name" : "Nom", + "Storage type" : "Tipus d'emmagatzemament", + "Scope" : "Abast", + "External Storage" : "Emmagatzemament extern", + "Folder name" : "Nom de la carpeta", + "Configuration" : "Configuració", + "Available for" : "Disponible per", + "Add storage" : "Afegeix emmagatzemament", + "Delete" : "Esborra", + "Enable User External Storage" : "Habilita l'emmagatzemament extern d'usuari", + "Allow users to mount the following external storage" : "Permet als usuaris muntar els dispositius externs següents" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ca.php b/apps/files_external/l10n/ca.php deleted file mode 100644 index 13e6616d2c45118e599a7d8793fd4fcfed8196b3..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ca.php +++ /dev/null @@ -1,73 +0,0 @@ - "Ha fallat en obtenir els testimonis de la petició. Verifiqueu que la clau i la contrasenya de l'aplicació Dropbox són correctes.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Ha fallat en obtenir els testimonis de la petició. Verifiqueu que la clau i la contrasenya de l'aplicació Dropbox són correctes.", -"Please provide a valid Dropbox app key and secret." => "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox", -"Step 1 failed. Exception: %s" => "El pas 1 ha fallat. Excepció: %s", -"Step 2 failed. Exception: %s" => "El pas 2 ha fallat. Excepció: %s", -"External storage" => "Emmagatzemament extern", -"Local" => "Local", -"Location" => "Ubicació", -"Amazon S3" => "Amazon S3", -"Key" => "Clau", -"Secret" => "Secret", -"Bucket" => "Cub", -"Amazon S3 and compliant" => "Amazon S3 i similars", -"Access Key" => "Clau d'accés", -"Secret Key" => "Clau secreta", -"Hostname" => "Nom del servidor", -"Port" => "Port", -"Region" => "Comarca", -"Enable SSL" => "Habilita SSL", -"Enable Path Style" => "Permet l'estil del camí", -"App key" => "Clau de l'aplicació", -"App secret" => "Secret de l'aplicació", -"Host" => "Equip remot", -"Username" => "Nom d'usuari", -"Password" => "Contrasenya", -"Root" => "Arrel", -"Secure ftps://" => "Protocol segur ftps://", -"Client ID" => "Client ID", -"Client secret" => "Secret del client", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Regió (opcional per OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "Clau API (requerit per fitxers al núvol Rackspace)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (requerit per OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Contrasenya (requerit per OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nom del servei (requerit per OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL del punt identificador final (requerit per OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Temps d'expera màxim de les peticions HTTP en segons", -"Share" => "Comparteix", -"SMB / CIFS using OC login" => "SMB / CIFS usant acreditació OC", -"Username as share" => "Nom d'usuari per compartir", -"URL" => "URL", -"Secure https://" => "Protocol segur https://", -"Remote subfolder" => "Subcarpeta remota", -"Access granted" => "S'ha concedit l'accés", -"Error configuring Dropbox storage" => "Error en configurar l'emmagatzemament Dropbox", -"Grant access" => "Concedeix accés", -"Error configuring Google Drive storage" => "Error en configurar l'emmagatzemament Google Drive", -"Personal" => "Personal", -"System" => "Sistema", -"All users. Type to select user or group." => "Tots els usuaris. Escriu per seleccionar un usuari o grup.", -"(group)" => "(grup)", -"Saved" => "Desat", -"Note: " => "Nota: ", -" and " => "i", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.", -"You don't have any external storages" => "No teniu emmagatzaments externs", -"Name" => "Nom", -"Storage type" => "Tipus d'emmagatzemament", -"Scope" => "Abast", -"External Storage" => "Emmagatzemament extern", -"Folder name" => "Nom de la carpeta", -"Configuration" => "Configuració", -"Available for" => "Disponible per", -"Add storage" => "Afegeix emmagatzemament", -"Delete" => "Esborra", -"Enable User External Storage" => "Habilita l'emmagatzemament extern d'usuari", -"Allow users to mount the following external storage" => "Permet als usuaris muntar els dispositius externs següents" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..29af393cf07706c40fd517a28d4a0fbb75b2b029 --- /dev/null +++ b/apps/files_external/l10n/cs_CZ.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace Dropbox a tajné heslo jsou správné.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace Dropbox a tajné heslo jsou správné.", + "Please provide a valid Dropbox app key and secret." : "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbox.", + "Step 1 failed. Exception: %s" : "Selhal krok 1. Výjimka: %s", + "Step 2 failed. Exception: %s" : "Selhal krok 2. Výjimka: %s", + "External storage" : "Externí úložiště", + "Local" : "Místní", + "Location" : "Umístění", + "Amazon S3" : "Amazon S3", + "Key" : "Klíč", + "Secret" : "Tajemství", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 a kompatibilní", + "Access Key" : "Přístupový klíč", + "Secret Key" : "Tajný klíč", + "Hostname" : "Hostname", + "Port" : "Port", + "Region" : "Kraj", + "Enable SSL" : "Povolit SSL", + "Enable Path Style" : "Povolit Path Style", + "App key" : "Klíč aplikace", + "App secret" : "Tajemství aplikace", + "Host" : "Počítač", + "Username" : "Uživatelské jméno", + "Password" : "Heslo", + "Root" : "Kořen", + "Secure ftps://" : "Zabezpečené ftps://", + "Client ID" : "Klientské ID", + "Client secret" : "Klientské tajemství", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (nepovinný pro OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API klíč (vyžadován pro Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Jméno nájemce (vyžadováno pro OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Heslo (vyžadováno pro OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Název služby (vyžadováno pro OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL identity koncového bodu (vyžadováno pro OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Časový limit HTTP požadavků v sekundách", + "Share" : "Sdílet", + "SMB / CIFS using OC login" : "SMB / CIFS za použití přihlašovacího jména OC", + "Username as share" : "Uživatelské jméno jako sdílený adresář", + "URL" : "URL", + "Secure https://" : "Zabezpečené https://", + "Remote subfolder" : "Vzdálený podadresář", + "Access granted" : "Přístup povolen", + "Error configuring Dropbox storage" : "Chyba při nastavení úložiště Dropbox", + "Grant access" : "Povolit přístup", + "Error configuring Google Drive storage" : "Chyba při nastavení úložiště Google Drive", + "Personal" : "Osobní", + "System" : "Systém", + "All users. Type to select user or group." : "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.", + "(group)" : "(skupina)", + "Saved" : "Uloženo", + "Note: " : "Poznámka:", + " and " : "a", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.", + "You don't have any external storages" : "Nemáte žádná externí úložiště", + "Name" : "Název", + "Storage type" : "Typ úložiště", + "Scope" : "Rozsah", + "External Storage" : "Externí úložiště", + "Folder name" : "Název složky", + "Configuration" : "Nastavení", + "Available for" : "Dostupné pro", + "Add storage" : "Přidat úložiště", + "Delete" : "Smazat", + "Enable User External Storage" : "Zapnout externí uživatelské úložiště", + "Allow users to mount the following external storage" : "Povolit uživatelů připojit následující externí úložiště" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json new file mode 100644 index 0000000000000000000000000000000000000000..f8acc7d469d244f4fdabfdcffe75778b9675f9a9 --- /dev/null +++ b/apps/files_external/l10n/cs_CZ.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace Dropbox a tajné heslo jsou správné.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace Dropbox a tajné heslo jsou správné.", + "Please provide a valid Dropbox app key and secret." : "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbox.", + "Step 1 failed. Exception: %s" : "Selhal krok 1. Výjimka: %s", + "Step 2 failed. Exception: %s" : "Selhal krok 2. Výjimka: %s", + "External storage" : "Externí úložiště", + "Local" : "Místní", + "Location" : "Umístění", + "Amazon S3" : "Amazon S3", + "Key" : "Klíč", + "Secret" : "Tajemství", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 a kompatibilní", + "Access Key" : "Přístupový klíč", + "Secret Key" : "Tajný klíč", + "Hostname" : "Hostname", + "Port" : "Port", + "Region" : "Kraj", + "Enable SSL" : "Povolit SSL", + "Enable Path Style" : "Povolit Path Style", + "App key" : "Klíč aplikace", + "App secret" : "Tajemství aplikace", + "Host" : "Počítač", + "Username" : "Uživatelské jméno", + "Password" : "Heslo", + "Root" : "Kořen", + "Secure ftps://" : "Zabezpečené ftps://", + "Client ID" : "Klientské ID", + "Client secret" : "Klientské tajemství", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (nepovinný pro OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API klíč (vyžadován pro Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Jméno nájemce (vyžadováno pro OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Heslo (vyžadováno pro OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Název služby (vyžadováno pro OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL identity koncového bodu (vyžadováno pro OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Časový limit HTTP požadavků v sekundách", + "Share" : "Sdílet", + "SMB / CIFS using OC login" : "SMB / CIFS za použití přihlašovacího jména OC", + "Username as share" : "Uživatelské jméno jako sdílený adresář", + "URL" : "URL", + "Secure https://" : "Zabezpečené https://", + "Remote subfolder" : "Vzdálený podadresář", + "Access granted" : "Přístup povolen", + "Error configuring Dropbox storage" : "Chyba při nastavení úložiště Dropbox", + "Grant access" : "Povolit přístup", + "Error configuring Google Drive storage" : "Chyba při nastavení úložiště Google Drive", + "Personal" : "Osobní", + "System" : "Systém", + "All users. Type to select user or group." : "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.", + "(group)" : "(skupina)", + "Saved" : "Uloženo", + "Note: " : "Poznámka:", + " and " : "a", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.", + "You don't have any external storages" : "Nemáte žádná externí úložiště", + "Name" : "Název", + "Storage type" : "Typ úložiště", + "Scope" : "Rozsah", + "External Storage" : "Externí úložiště", + "Folder name" : "Název složky", + "Configuration" : "Nastavení", + "Available for" : "Dostupné pro", + "Add storage" : "Přidat úložiště", + "Delete" : "Smazat", + "Enable User External Storage" : "Zapnout externí uživatelské úložiště", + "Allow users to mount the following external storage" : "Povolit uživatelů připojit následující externí úložiště" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/cs_CZ.php b/apps/files_external/l10n/cs_CZ.php deleted file mode 100644 index 99a4e7319869624ef6d3a35a0105f2979a211019..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/cs_CZ.php +++ /dev/null @@ -1,73 +0,0 @@ - "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace Dropbox a tajné heslo jsou správné.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Získání přístupových tokenů selhalo. Ověřte že klíč aplikace Dropbox a tajné heslo jsou správné.", -"Please provide a valid Dropbox app key and secret." => "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbox.", -"Step 1 failed. Exception: %s" => "Selhal krok 1. Výjimka: %s", -"Step 2 failed. Exception: %s" => "Selhal krok 2. Výjimka: %s", -"External storage" => "Externí úložiště", -"Local" => "Místní", -"Location" => "Umístění", -"Amazon S3" => "Amazon S3", -"Key" => "Klíč", -"Secret" => "Tajemství", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 a kompatibilní", -"Access Key" => "Přístupový klíč", -"Secret Key" => "Tajný klíč", -"Hostname" => "Hostname", -"Port" => "Port", -"Region" => "Kraj", -"Enable SSL" => "Povolit SSL", -"Enable Path Style" => "Povolit Path Style", -"App key" => "Klíč aplikace", -"App secret" => "Tajemství aplikace", -"Host" => "Počítač", -"Username" => "Uživatelské jméno", -"Password" => "Heslo", -"Root" => "Kořen", -"Secure ftps://" => "Zabezpečené ftps://", -"Client ID" => "Klientské ID", -"Client secret" => "Klientské tajemství", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Region (nepovinný pro OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API klíč (vyžadován pro Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Jméno nájemce (vyžadováno pro OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Heslo (vyžadováno pro OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Název služby (vyžadováno pro OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL identity koncového bodu (vyžadováno pro OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Časový limit HTTP požadavků v sekundách", -"Share" => "Sdílet", -"SMB / CIFS using OC login" => "SMB / CIFS za použití přihlašovacího jména OC", -"Username as share" => "Uživatelské jméno jako sdílený adresář", -"URL" => "URL", -"Secure https://" => "Zabezpečené https://", -"Remote subfolder" => "Vzdálený podadresář", -"Access granted" => "Přístup povolen", -"Error configuring Dropbox storage" => "Chyba při nastavení úložiště Dropbox", -"Grant access" => "Povolit přístup", -"Error configuring Google Drive storage" => "Chyba při nastavení úložiště Google Drive", -"Personal" => "Osobní", -"System" => "Systém", -"All users. Type to select user or group." => "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.", -"(group)" => "(skupina)", -"Saved" => "Uloženo", -"Note: " => "Poznámka:", -" and " => "a", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Poznámka: cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Poznámka: FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Poznámka: \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.", -"You don't have any external storages" => "Nemáte žádná externí úložiště", -"Name" => "Název", -"Storage type" => "Typ úložiště", -"Scope" => "Rozsah", -"External Storage" => "Externí úložiště", -"Folder name" => "Název složky", -"Configuration" => "Nastavení", -"Available for" => "Dostupné pro", -"Add storage" => "Přidat úložiště", -"Delete" => "Smazat", -"Enable User External Storage" => "Zapnout externí uživatelské úložiště", -"Allow users to mount the following external storage" => "Povolit uživatelů připojit následující externí úložiště" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_external/l10n/cy_GB.js b/apps/files_external/l10n/cy_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..4cd0a336e90e357ca0c2b2bc4f726c59cd3e258d --- /dev/null +++ b/apps/files_external/l10n/cy_GB.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Lleoliad", + "Username" : "Enw defnyddiwr", + "Password" : "Cyfrinair", + "Share" : "Rhannu", + "URL" : "URL", + "Personal" : "Personol", + "Name" : "Enw", + "Delete" : "Dileu" +}, +"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/files_external/l10n/cy_GB.json b/apps/files_external/l10n/cy_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..257039de583857ee986e7e0d77f2b87aee8d697d --- /dev/null +++ b/apps/files_external/l10n/cy_GB.json @@ -0,0 +1,11 @@ +{ "translations": { + "Location" : "Lleoliad", + "Username" : "Enw defnyddiwr", + "Password" : "Cyfrinair", + "Share" : "Rhannu", + "URL" : "URL", + "Personal" : "Personol", + "Name" : "Enw", + "Delete" : "Dileu" +},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/cy_GB.php b/apps/files_external/l10n/cy_GB.php deleted file mode 100644 index 26420c555c4e9cc542d6ff997900bba49911cf82..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/cy_GB.php +++ /dev/null @@ -1,12 +0,0 @@ - "Lleoliad", -"Username" => "Enw defnyddiwr", -"Password" => "Cyfrinair", -"Share" => "Rhannu", -"URL" => "URL", -"Personal" => "Personol", -"Name" => "Enw", -"Delete" => "Dileu" -); -$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"; diff --git a/apps/files_external/l10n/da.js b/apps/files_external/l10n/da.js new file mode 100644 index 0000000000000000000000000000000000000000..5420917e2a965e516f804bc9c330de7f1aa27f01 --- /dev/null +++ b/apps/files_external/l10n/da.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Indhentning af symboludtryk for forespørgsler mislykkedes. Verificér at din Dropbox app-nøgle og -hemmelighed er korrekte.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Indhentning af symboludtryk for adgang mislykkedes. Verificér at din Dropbox app-nøgle og -hemmelighed er korrekte.", + "Please provide a valid Dropbox app key and secret." : "Angiv venligst en gyldig Dropbox app-nøgle og hemmelighed", + "Step 1 failed. Exception: %s" : "Trin 1 mislykkedes. Undtagelse: %s", + "Step 2 failed. Exception: %s" : "Trin 2 mislykkedes. Undtagelse: %s", + "External storage" : "Eksternt lager", + "Local" : "Lokal", + "Location" : "Placering", + "Amazon S3" : "Amazon S3", + "Key" : "Nøgle", + "Secret" : "Hemmelighed", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 og kompatible", + "Access Key" : "Adgangsnøgle", + "Secret Key" : "Hemmelig nøgle ", + "Hostname" : "Værtsnavn", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "Aktivér SSL", + "Enable Path Style" : "Aktivér stil for sti", + "App key" : "App-nøgle", + "App secret" : "App-hemmelighed", + "Host" : "Vært", + "Username" : "Brugernavn", + "Password" : "Kodeord", + "Root" : "Root", + "Secure ftps://" : "Sikker ftps://", + "Client ID" : "Klient-ID", + "Client secret" : "Klient hemmelighed", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (valgfri for OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API-nøgle (påkrævet for Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Lejers navn (påkrævet for OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Adgangskode (påkrævet for OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Navn (påkrævet for OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL på slutpunkt for identitet (påkrævet for OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tidsudløb for HTTP-forespørgsler i sekunder", + "Share" : "Del", + "SMB / CIFS using OC login" : "SMB / CIFS med OC-login", + "Username as share" : "Brugernavn som deling", + "URL" : "URL", + "Secure https://" : "Sikker https://", + "Remote subfolder" : "Fjernundermappe", + "Access granted" : "Adgang godkendt", + "Error configuring Dropbox storage" : "Fejl ved konfiguration af Dropbox plads", + "Grant access" : "Godkend adgang", + "Error configuring Google Drive storage" : "Fejl ved konfiguration af Google Drive-plads", + "Personal" : "Personligt", + "System" : "System", + "All users. Type to select user or group." : "Alle brugere. Indtast for at vælge bruger eller gruppe.", + "(group)" : "(gruppe)", + "Saved" : "Gemt", + "Note: " : "Note: ", + " and " : "og", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Bemærk: cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Bemærk: FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Bemærk: \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", + "You don't have any external storages" : "Du har ingen eksterne lagre", + "Name" : "Navn", + "Storage type" : "Lagertype", + "Scope" : "Anvendelsesområde", + "External Storage" : "Ekstern opbevaring", + "Folder name" : "Mappenavn", + "Configuration" : "Opsætning", + "Available for" : "Tilgængelig for", + "Add storage" : "Tilføj lager", + "Delete" : "Slet", + "Enable User External Storage" : "Aktivér ekstern opbevaring for brugere", + "Allow users to mount the following external storage" : "Tillad brugere at montere følgende som eksternt lager" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/da.json b/apps/files_external/l10n/da.json new file mode 100644 index 0000000000000000000000000000000000000000..d5c468a5d8ecdb451cfed11c8772114b6876dcfe --- /dev/null +++ b/apps/files_external/l10n/da.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Indhentning af symboludtryk for forespørgsler mislykkedes. Verificér at din Dropbox app-nøgle og -hemmelighed er korrekte.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Indhentning af symboludtryk for adgang mislykkedes. Verificér at din Dropbox app-nøgle og -hemmelighed er korrekte.", + "Please provide a valid Dropbox app key and secret." : "Angiv venligst en gyldig Dropbox app-nøgle og hemmelighed", + "Step 1 failed. Exception: %s" : "Trin 1 mislykkedes. Undtagelse: %s", + "Step 2 failed. Exception: %s" : "Trin 2 mislykkedes. Undtagelse: %s", + "External storage" : "Eksternt lager", + "Local" : "Lokal", + "Location" : "Placering", + "Amazon S3" : "Amazon S3", + "Key" : "Nøgle", + "Secret" : "Hemmelighed", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 og kompatible", + "Access Key" : "Adgangsnøgle", + "Secret Key" : "Hemmelig nøgle ", + "Hostname" : "Værtsnavn", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "Aktivér SSL", + "Enable Path Style" : "Aktivér stil for sti", + "App key" : "App-nøgle", + "App secret" : "App-hemmelighed", + "Host" : "Vært", + "Username" : "Brugernavn", + "Password" : "Kodeord", + "Root" : "Root", + "Secure ftps://" : "Sikker ftps://", + "Client ID" : "Klient-ID", + "Client secret" : "Klient hemmelighed", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (valgfri for OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API-nøgle (påkrævet for Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Lejers navn (påkrævet for OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Adgangskode (påkrævet for OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Navn (påkrævet for OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL på slutpunkt for identitet (påkrævet for OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tidsudløb for HTTP-forespørgsler i sekunder", + "Share" : "Del", + "SMB / CIFS using OC login" : "SMB / CIFS med OC-login", + "Username as share" : "Brugernavn som deling", + "URL" : "URL", + "Secure https://" : "Sikker https://", + "Remote subfolder" : "Fjernundermappe", + "Access granted" : "Adgang godkendt", + "Error configuring Dropbox storage" : "Fejl ved konfiguration af Dropbox plads", + "Grant access" : "Godkend adgang", + "Error configuring Google Drive storage" : "Fejl ved konfiguration af Google Drive-plads", + "Personal" : "Personligt", + "System" : "System", + "All users. Type to select user or group." : "Alle brugere. Indtast for at vælge bruger eller gruppe.", + "(group)" : "(gruppe)", + "Saved" : "Gemt", + "Note: " : "Note: ", + " and " : "og", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Bemærk: cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Bemærk: FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Bemærk: \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", + "You don't have any external storages" : "Du har ingen eksterne lagre", + "Name" : "Navn", + "Storage type" : "Lagertype", + "Scope" : "Anvendelsesområde", + "External Storage" : "Ekstern opbevaring", + "Folder name" : "Mappenavn", + "Configuration" : "Opsætning", + "Available for" : "Tilgængelig for", + "Add storage" : "Tilføj lager", + "Delete" : "Slet", + "Enable User External Storage" : "Aktivér ekstern opbevaring for brugere", + "Allow users to mount the following external storage" : "Tillad brugere at montere følgende som eksternt lager" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/da.php b/apps/files_external/l10n/da.php deleted file mode 100644 index 717f077b5e3804711a2cc6c631c31b38956d7a83..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/da.php +++ /dev/null @@ -1,73 +0,0 @@ - "Indhentning af symboludtryk for forespørgsler mislykkedes. Verificér at din Dropbox app-nøgle og -hemmelighed er korrekte.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Indhentning af symboludtryk for adgang mislykkedes. Verificér at din Dropbox app-nøgle og -hemmelighed er korrekte.", -"Please provide a valid Dropbox app key and secret." => "Angiv venligst en gyldig Dropbox app-nøgle og hemmelighed", -"Step 1 failed. Exception: %s" => "Trin 1 mislykkedes. Undtagelse: %s", -"Step 2 failed. Exception: %s" => "Trin 2 mislykkedes. Undtagelse: %s", -"External storage" => "Eksternt lager", -"Local" => "Lokal", -"Location" => "Placering", -"Amazon S3" => "Amazon S3", -"Key" => "Nøgle", -"Secret" => "Hemmelighed", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 og kompatible", -"Access Key" => "Adgangsnøgle", -"Secret Key" => "Hemmelig nøgle ", -"Hostname" => "Værtsnavn", -"Port" => "Port", -"Region" => "Region", -"Enable SSL" => "Aktivér SSL", -"Enable Path Style" => "Aktivér stil for sti", -"App key" => "App-nøgle", -"App secret" => "App-hemmelighed", -"Host" => "Vært", -"Username" => "Brugernavn", -"Password" => "Kodeord", -"Root" => "Root", -"Secure ftps://" => "Sikker ftps://", -"Client ID" => "Klient-ID", -"Client secret" => "Klient hemmelighed", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Region (valgfri for OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API-nøgle (påkrævet for Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Lejers navn (påkrævet for OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Adgangskode (påkrævet for OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Service Navn (påkrævet for OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL på slutpunkt for identitet (påkrævet for OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Tidsudløb for HTTP-forespørgsler i sekunder", -"Share" => "Del", -"SMB / CIFS using OC login" => "SMB / CIFS med OC-login", -"Username as share" => "Brugernavn som deling", -"URL" => "URL", -"Secure https://" => "Sikker https://", -"Remote subfolder" => "Fjernundermappe", -"Access granted" => "Adgang godkendt", -"Error configuring Dropbox storage" => "Fejl ved konfiguration af Dropbox plads", -"Grant access" => "Godkend adgang", -"Error configuring Google Drive storage" => "Fejl ved konfiguration af Google Drive-plads", -"Personal" => "Personligt", -"System" => "System", -"All users. Type to select user or group." => "Alle brugere. Indtast for at vælge bruger eller gruppe.", -"(group)" => "(gruppe)", -"Saved" => "Gemt", -"Note: " => "Note: ", -" and " => "og", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Bemærk: cURL-understøttelsen i PHP er enten ikke aktiveret eller installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Bemærk: FTP understøttelsen i PHP er enten ikke aktiveret eller installeret. Montering af %s er ikke muligt. Anmod din systemadministrator om at installere det.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Bemærk: \"%s\" er ikke installeret. Monteringen af %s er ikke mulig. Anmod din systemadministrator om at installere det.", -"You don't have any external storages" => "Du har ingen eksterne lagre", -"Name" => "Navn", -"Storage type" => "Lagertype", -"Scope" => "Anvendelsesområde", -"External Storage" => "Ekstern opbevaring", -"Folder name" => "Mappenavn", -"Configuration" => "Opsætning", -"Available for" => "Tilgængelig for", -"Add storage" => "Tilføj lager", -"Delete" => "Slet", -"Enable User External Storage" => "Aktivér ekstern opbevaring for brugere", -"Allow users to mount the following external storage" => "Tillad brugere at montere følgende som eksternt lager" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js new file mode 100644 index 0000000000000000000000000000000000000000..d67bda49b4de697f52533d8ef89d73bdb35e26bc --- /dev/null +++ b/apps/files_external/l10n/de.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Please provide a valid Dropbox app key and secret." : "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.", + "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", + "Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s", + "External storage" : "Externer Speicher", + "Local" : "Lokal", + "Location" : "Ort", + "Amazon S3" : "Amazon S3", + "Key" : "Schlüssel", + "Secret" : "Geheime Zeichenkette", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 und kompatible", + "Access Key" : "Zugriffsschlüssel", + "Secret Key" : "Sicherheitssschlüssel", + "Hostname" : "Host-Name", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "SSL aktivieren", + "Enable Path Style" : "Pfad-Stil aktivieren", + "App key" : "App-Schlüssel", + "App secret" : "Geheime Zeichenkette der App", + "Host" : "Host", + "Username" : "Benutzername", + "Password" : "Passwort", + "Root" : "Root", + "Secure ftps://" : "Sicherer FTPS://", + "Client ID" : "Client-ID", + "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack Object Storage" : "Openstack-Objektspeicher", + "Region (optional for OpenStack Object Storage)" : "Region (Optional für Openstack-Objektspeicher)", + "API Key (required for Rackspace Cloud Files)" : "API-Schlüssel (Erforderlich für Rackspace Cloud-Dateien)", + "Tenantname (required for OpenStack Object Storage)" : "Mietername (Erforderlich für Openstack-Objektspeicher)", + "Password (required for OpenStack Object Storage)" : "Passwort (Erforderlich für Openstack-Objektspeicher)", + "Service Name (required for OpenStack Object Storage)" : "Name der Dienstleistung (Erforderlich für Openstack-Objektspeicher)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL des Identitätsendpunktes (Erforderlich für Openstack-Objektspeicher)", + "Timeout of HTTP requests in seconds" : "Zeitüberschreitung von HTTP-Anfragen in Sekunden", + "Share" : "Teilen", + "SMB / CIFS using OC login" : "SMB / CIFS mit OC-Login", + "Username as share" : "Benutzername als Freigabe", + "URL" : "URL", + "Secure https://" : "Sicherer HTTPS://", + "Remote subfolder" : "Remote-Unterordner:", + "Access granted" : "Zugriff gestattet", + "Error configuring Dropbox storage" : "Fehler beim Einrichten von Dropbox", + "Grant access" : "Zugriff gestatten", + "Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive", + "Personal" : "Persönlich", + "System" : "System", + "All users. Type to select user or group." : "Alle Nutzer. Nutzer oder Gruppe zur Auswahl eingeben.", + "(group)" : "(group)", + "Saved" : "Gespeichert", + "Note: " : "Hinweis: ", + " and " : "und", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", + "You don't have any external storages" : "Du hast noch keinen externen Speicher", + "Name" : "Name", + "Storage type" : "Du hast noch keinen externen Speicher", + "Scope" : "Anwendungsbereich", + "External Storage" : "Externer Speicher", + "Folder name" : "Ordnername", + "Configuration" : "Konfiguration", + "Available for" : "Verfügbar für", + "Add storage" : "Speicher hinzufügen", + "Delete" : "Löschen", + "Enable User External Storage" : "Externen Speicher für Benutzer aktivieren", + "Allow users to mount the following external storage" : "Erlaube es Benutzern, den folgenden externen Speicher einzubinden" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..fb4467cc1f2b2b40359557f653be6a5b189dbb8d --- /dev/null +++ b/apps/files_external/l10n/de.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Please provide a valid Dropbox app key and secret." : "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.", + "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", + "Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s", + "External storage" : "Externer Speicher", + "Local" : "Lokal", + "Location" : "Ort", + "Amazon S3" : "Amazon S3", + "Key" : "Schlüssel", + "Secret" : "Geheime Zeichenkette", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 und kompatible", + "Access Key" : "Zugriffsschlüssel", + "Secret Key" : "Sicherheitssschlüssel", + "Hostname" : "Host-Name", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "SSL aktivieren", + "Enable Path Style" : "Pfad-Stil aktivieren", + "App key" : "App-Schlüssel", + "App secret" : "Geheime Zeichenkette der App", + "Host" : "Host", + "Username" : "Benutzername", + "Password" : "Passwort", + "Root" : "Root", + "Secure ftps://" : "Sicherer FTPS://", + "Client ID" : "Client-ID", + "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack Object Storage" : "Openstack-Objektspeicher", + "Region (optional for OpenStack Object Storage)" : "Region (Optional für Openstack-Objektspeicher)", + "API Key (required for Rackspace Cloud Files)" : "API-Schlüssel (Erforderlich für Rackspace Cloud-Dateien)", + "Tenantname (required for OpenStack Object Storage)" : "Mietername (Erforderlich für Openstack-Objektspeicher)", + "Password (required for OpenStack Object Storage)" : "Passwort (Erforderlich für Openstack-Objektspeicher)", + "Service Name (required for OpenStack Object Storage)" : "Name der Dienstleistung (Erforderlich für Openstack-Objektspeicher)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL des Identitätsendpunktes (Erforderlich für Openstack-Objektspeicher)", + "Timeout of HTTP requests in seconds" : "Zeitüberschreitung von HTTP-Anfragen in Sekunden", + "Share" : "Teilen", + "SMB / CIFS using OC login" : "SMB / CIFS mit OC-Login", + "Username as share" : "Benutzername als Freigabe", + "URL" : "URL", + "Secure https://" : "Sicherer HTTPS://", + "Remote subfolder" : "Remote-Unterordner:", + "Access granted" : "Zugriff gestattet", + "Error configuring Dropbox storage" : "Fehler beim Einrichten von Dropbox", + "Grant access" : "Zugriff gestatten", + "Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive", + "Personal" : "Persönlich", + "System" : "System", + "All users. Type to select user or group." : "Alle Nutzer. Nutzer oder Gruppe zur Auswahl eingeben.", + "(group)" : "(group)", + "Saved" : "Gespeichert", + "Note: " : "Hinweis: ", + " and " : "und", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", + "You don't have any external storages" : "Du hast noch keinen externen Speicher", + "Name" : "Name", + "Storage type" : "Du hast noch keinen externen Speicher", + "Scope" : "Anwendungsbereich", + "External Storage" : "Externer Speicher", + "Folder name" : "Ordnername", + "Configuration" : "Konfiguration", + "Available for" : "Verfügbar für", + "Add storage" : "Speicher hinzufügen", + "Delete" : "Löschen", + "Enable User External Storage" : "Externen Speicher für Benutzer aktivieren", + "Allow users to mount the following external storage" : "Erlaube es Benutzern, den folgenden externen Speicher einzubinden" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/de.php b/apps/files_external/l10n/de.php deleted file mode 100644 index 550ecb3f408d6641b14309cdc161c638d3479c1c..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/de.php +++ /dev/null @@ -1,73 +0,0 @@ - "Anfrage-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Zugriff-Token holen fehlgeschlagen. Stelle bitte sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", -"Please provide a valid Dropbox app key and secret." => "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.", -"Step 1 failed. Exception: %s" => "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", -"Step 2 failed. Exception: %s" => "Schritt 2 fehlgeschlagen. Fehlermeldung: %s", -"External storage" => "Externer Speicher", -"Local" => "Lokal", -"Location" => "Ort", -"Amazon S3" => "Amazon S3", -"Key" => "Schlüssel", -"Secret" => "Geheime Zeichenkette", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 und kompatible", -"Access Key" => "Zugriffsschlüssel", -"Secret Key" => "Sicherheitssschlüssel", -"Hostname" => "Host-Name", -"Port" => "Port", -"Region" => "Region", -"Enable SSL" => "SSL aktivieren", -"Enable Path Style" => "Pfad-Stil aktivieren", -"App key" => "App-Schlüssel", -"App secret" => "Geheime Zeichenkette der App", -"Host" => "Host", -"Username" => "Benutzername", -"Password" => "Passwort", -"Root" => "Root", -"Secure ftps://" => "Sicherer FTPS://", -"Client ID" => "Client-ID", -"Client secret" => "Geheime Zeichenkette des Client", -"OpenStack Object Storage" => "Openstack-Objektspeicher", -"Region (optional for OpenStack Object Storage)" => "Region (Optional für Openstack-Objektspeicher)", -"API Key (required for Rackspace Cloud Files)" => "API-Schlüssel (Erforderlich für Rackspace Cloud-Dateien)", -"Tenantname (required for OpenStack Object Storage)" => "Mietername (Erforderlich für Openstack-Objektspeicher)", -"Password (required for OpenStack Object Storage)" => "Passwort (Erforderlich für Openstack-Objektspeicher)", -"Service Name (required for OpenStack Object Storage)" => "Name der Dienstleistung (Erforderlich für Openstack-Objektspeicher)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL des Identitätsendpunktes (Erforderlich für Openstack-Objektspeicher)", -"Timeout of HTTP requests in seconds" => "Zeitüberschreitung von HTTP-Anfragen in Sekunden", -"Share" => "Teilen", -"SMB / CIFS using OC login" => "SMB / CIFS mit OC-Login", -"Username as share" => "Benutzername als Freigabe", -"URL" => "URL", -"Secure https://" => "Sicherer HTTPS://", -"Remote subfolder" => "Remote-Unterordner:", -"Access granted" => "Zugriff gestattet", -"Error configuring Dropbox storage" => "Fehler beim Einrichten von Dropbox", -"Grant access" => "Zugriff gestatten", -"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive", -"Personal" => "Persönlich", -"System" => "System", -"All users. Type to select user or group." => "Alle Nutzer. Nutzer oder Gruppe zur Auswahl eingeben.", -"(group)" => "(group)", -"Saved" => "Gespeichert", -"Note: " => "Hinweis: ", -" and " => "und", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Hinweis: Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Hinweis: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Hinweis: \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.", -"You don't have any external storages" => "Du hast noch keinen externen Speicher", -"Name" => "Name", -"Storage type" => "Du hast noch keinen externen Speicher", -"Scope" => "Anwendungsbereich", -"External Storage" => "Externer Speicher", -"Folder name" => "Ordnername", -"Configuration" => "Konfiguration", -"Available for" => "Verfügbar für", -"Add storage" => "Speicher hinzufügen", -"Delete" => "Löschen", -"Enable User External Storage" => "Externen Speicher für Benutzer aktivieren", -"Allow users to mount the following external storage" => "Erlaube es Benutzern, den folgenden externen Speicher einzubinden" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/de_AT.js b/apps/files_external/l10n/de_AT.js new file mode 100644 index 0000000000000000000000000000000000000000..c4a56bb7a5f412c2ede9836e6db1e5b3dfb93f70 --- /dev/null +++ b/apps/files_external/l10n/de_AT.js @@ -0,0 +1,12 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Ort", + "Port" : "Port", + "Host" : "Host", + "Password" : "Passwort", + "Share" : "Freigeben", + "Personal" : "Persönlich", + "Delete" : "Löschen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/de_AT.json b/apps/files_external/l10n/de_AT.json new file mode 100644 index 0000000000000000000000000000000000000000..3dea5f2cd58eef64a5a87b3e233b5ab426fd62ed --- /dev/null +++ b/apps/files_external/l10n/de_AT.json @@ -0,0 +1,10 @@ +{ "translations": { + "Location" : "Ort", + "Port" : "Port", + "Host" : "Host", + "Password" : "Passwort", + "Share" : "Freigeben", + "Personal" : "Persönlich", + "Delete" : "Löschen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/de_AT.php b/apps/files_external/l10n/de_AT.php deleted file mode 100644 index 0e7672f0a0b62c7153d612839ac8d4e5d1c25c71..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/de_AT.php +++ /dev/null @@ -1,11 +0,0 @@ - "Ort", -"Port" => "Port", -"Host" => "Host", -"Password" => "Passwort", -"Share" => "Freigeben", -"Personal" => "Persönlich", -"Delete" => "Löschen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/de_CH.js b/apps/files_external/l10n/de_CH.js new file mode 100644 index 0000000000000000000000000000000000000000..b003957309736830dd141c8ca52a91ab658a9775 --- /dev/null +++ b/apps/files_external/l10n/de_CH.js @@ -0,0 +1,28 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.", + "External storage" : "Externer Speicher", + "Local" : "Lokal", + "Location" : "Ort", + "Port" : "Port", + "Host" : "Host", + "Username" : "Benutzername", + "Password" : "Passwort", + "Share" : "Freigeben", + "URL" : "URL", + "Access granted" : "Zugriff gestattet", + "Error configuring Dropbox storage" : "Fehler beim Einrichten von Dropbox", + "Grant access" : "Zugriff gestatten", + "Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive", + "Personal" : "Persönlich", + "Saved" : "Gespeichert", + "Name" : "Name", + "External Storage" : "Externer Speicher", + "Folder name" : "Ordnername", + "Configuration" : "Konfiguration", + "Add storage" : "Speicher hinzufügen", + "Delete" : "Löschen", + "Enable User External Storage" : "Externen Speicher für Benutzer aktivieren" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/de_CH.json b/apps/files_external/l10n/de_CH.json new file mode 100644 index 0000000000000000000000000000000000000000..955fae07f5b786c954472314816b189058cf5c02 --- /dev/null +++ b/apps/files_external/l10n/de_CH.json @@ -0,0 +1,26 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.", + "External storage" : "Externer Speicher", + "Local" : "Lokal", + "Location" : "Ort", + "Port" : "Port", + "Host" : "Host", + "Username" : "Benutzername", + "Password" : "Passwort", + "Share" : "Freigeben", + "URL" : "URL", + "Access granted" : "Zugriff gestattet", + "Error configuring Dropbox storage" : "Fehler beim Einrichten von Dropbox", + "Grant access" : "Zugriff gestatten", + "Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive", + "Personal" : "Persönlich", + "Saved" : "Gespeichert", + "Name" : "Name", + "External Storage" : "Externer Speicher", + "Folder name" : "Ordnername", + "Configuration" : "Konfiguration", + "Add storage" : "Speicher hinzufügen", + "Delete" : "Löschen", + "Enable User External Storage" : "Externen Speicher für Benutzer aktivieren" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/de_CH.php b/apps/files_external/l10n/de_CH.php deleted file mode 100644 index af1cbd1561f0422cb015bc54503e43c76227629c..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/de_CH.php +++ /dev/null @@ -1,27 +0,0 @@ - "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.", -"External storage" => "Externer Speicher", -"Local" => "Lokal", -"Location" => "Ort", -"Port" => "Port", -"Host" => "Host", -"Username" => "Benutzername", -"Password" => "Passwort", -"Share" => "Freigeben", -"URL" => "URL", -"Access granted" => "Zugriff gestattet", -"Error configuring Dropbox storage" => "Fehler beim Einrichten von Dropbox", -"Grant access" => "Zugriff gestatten", -"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive", -"Personal" => "Persönlich", -"Saved" => "Gespeichert", -"Name" => "Name", -"External Storage" => "Externer Speicher", -"Folder name" => "Ordnername", -"Configuration" => "Konfiguration", -"Add storage" => "Speicher hinzufügen", -"Delete" => "Löschen", -"Enable User External Storage" => "Externen Speicher für Benutzer aktivieren" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js new file mode 100644 index 0000000000000000000000000000000000000000..d12b171f639ab8d25fa8cae907ccbfb7ea746fe6 --- /dev/null +++ b/apps/files_external/l10n/de_DE.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Please provide a valid Dropbox app key and secret." : "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.", + "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", + "Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s", + "External storage" : "Externer Speicher", + "Local" : "Lokal", + "Location" : "Ort", + "Amazon S3" : "Amazon S3", + "Key" : "Schlüssel", + "Secret" : "Geheime Zeichenkette", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 und Kompatible", + "Access Key" : "Zugriffsschlüssel", + "Secret Key" : "Sicherheitsschlüssel", + "Hostname" : "Host-Name", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "SSL aktivieren", + "Enable Path Style" : "Pfadstil aktivieren", + "App key" : "App-Schlüssel", + "App secret" : "Geheime Zeichenkette der App", + "Host" : "Host", + "Username" : "Benutzername", + "Password" : "Passwort", + "Root" : "Root", + "Secure ftps://" : "Sicherer FTPS://", + "Client ID" : "Client-ID", + "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack Object Storage" : "Openstack-Objektspeicher", + "Region (optional for OpenStack Object Storage)" : "Region (Optional für Openstack-Objektspeicher)", + "API Key (required for Rackspace Cloud Files)" : "API-Schlüssel (Erforderlich für Rackspace Cloud-Dateien)", + "Tenantname (required for OpenStack Object Storage)" : "Mietername (Erforderlich für Openstack-Objektspeicher)", + "Password (required for OpenStack Object Storage)" : "Passwort (Erforderlich für Openstack-Objektspeicher)", + "Service Name (required for OpenStack Object Storage)" : "Name der Dienstleistung (Erforderlich für Openstack-Objektspeicher)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL des Identitätsendpunktes (Erforderlich für Openstack-Objektspeicher)", + "Timeout of HTTP requests in seconds" : "Zeitüberschreitung von HTTP-Anfragen in Sekunden", + "Share" : "Teilen", + "SMB / CIFS using OC login" : "SMB / CIFS mit OC-Login", + "Username as share" : "Benutzername als Freigabe", + "URL" : "Adresse", + "Secure https://" : "Sicherer HTTPS://", + "Remote subfolder" : "Entfernter Unterordner:", + "Access granted" : "Zugriff gestattet", + "Error configuring Dropbox storage" : "Fehler beim Einrichten von Dropbox", + "Grant access" : "Zugriff gestatten", + "Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive", + "Personal" : "Persönlich", + "System" : "System", + "All users. Type to select user or group." : "Alle Nutzer. Nutzer oder Gruppe zur Auswahl eingeben.", + "(group)" : "(group)", + "Saved" : "Gespeichert", + "Note: " : "Hinweis: ", + " and " : "und", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", + "You don't have any external storages" : "Sie haben noch keinen externen Speicher", + "Name" : "Name", + "Storage type" : "Speichertyp", + "Scope" : "Anwendungsbereich", + "External Storage" : "Externer Speicher", + "Folder name" : "Ordnername", + "Configuration" : "Konfiguration", + "Available for" : "Verfügbar für", + "Add storage" : "Speicher hinzufügen", + "Delete" : "Löschen", + "Enable User External Storage" : "Externen Speicher für Benutzer aktivieren", + "Allow users to mount the following external storage" : "Erlauben Sie Benutzern, folgende externe Speicher einzubinden" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json new file mode 100644 index 0000000000000000000000000000000000000000..43c24e0c94a9040d27c7ea2af50eee8e0b07e1da --- /dev/null +++ b/apps/files_external/l10n/de_DE.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Anfrage-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Zugriff-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", + "Please provide a valid Dropbox app key and secret." : "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.", + "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", + "Step 2 failed. Exception: %s" : "Schritt 2 fehlgeschlagen. Fehlermeldung: %s", + "External storage" : "Externer Speicher", + "Local" : "Lokal", + "Location" : "Ort", + "Amazon S3" : "Amazon S3", + "Key" : "Schlüssel", + "Secret" : "Geheime Zeichenkette", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 und Kompatible", + "Access Key" : "Zugriffsschlüssel", + "Secret Key" : "Sicherheitsschlüssel", + "Hostname" : "Host-Name", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "SSL aktivieren", + "Enable Path Style" : "Pfadstil aktivieren", + "App key" : "App-Schlüssel", + "App secret" : "Geheime Zeichenkette der App", + "Host" : "Host", + "Username" : "Benutzername", + "Password" : "Passwort", + "Root" : "Root", + "Secure ftps://" : "Sicherer FTPS://", + "Client ID" : "Client-ID", + "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack Object Storage" : "Openstack-Objektspeicher", + "Region (optional for OpenStack Object Storage)" : "Region (Optional für Openstack-Objektspeicher)", + "API Key (required for Rackspace Cloud Files)" : "API-Schlüssel (Erforderlich für Rackspace Cloud-Dateien)", + "Tenantname (required for OpenStack Object Storage)" : "Mietername (Erforderlich für Openstack-Objektspeicher)", + "Password (required for OpenStack Object Storage)" : "Passwort (Erforderlich für Openstack-Objektspeicher)", + "Service Name (required for OpenStack Object Storage)" : "Name der Dienstleistung (Erforderlich für Openstack-Objektspeicher)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL des Identitätsendpunktes (Erforderlich für Openstack-Objektspeicher)", + "Timeout of HTTP requests in seconds" : "Zeitüberschreitung von HTTP-Anfragen in Sekunden", + "Share" : "Teilen", + "SMB / CIFS using OC login" : "SMB / CIFS mit OC-Login", + "Username as share" : "Benutzername als Freigabe", + "URL" : "Adresse", + "Secure https://" : "Sicherer HTTPS://", + "Remote subfolder" : "Entfernter Unterordner:", + "Access granted" : "Zugriff gestattet", + "Error configuring Dropbox storage" : "Fehler beim Einrichten von Dropbox", + "Grant access" : "Zugriff gestatten", + "Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive", + "Personal" : "Persönlich", + "System" : "System", + "All users. Type to select user or group." : "Alle Nutzer. Nutzer oder Gruppe zur Auswahl eingeben.", + "(group)" : "(group)", + "Saved" : "Gespeichert", + "Note: " : "Hinweis: ", + " and " : "und", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Hinweis: \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", + "You don't have any external storages" : "Sie haben noch keinen externen Speicher", + "Name" : "Name", + "Storage type" : "Speichertyp", + "Scope" : "Anwendungsbereich", + "External Storage" : "Externer Speicher", + "Folder name" : "Ordnername", + "Configuration" : "Konfiguration", + "Available for" : "Verfügbar für", + "Add storage" : "Speicher hinzufügen", + "Delete" : "Löschen", + "Enable User External Storage" : "Externen Speicher für Benutzer aktivieren", + "Allow users to mount the following external storage" : "Erlauben Sie Benutzern, folgende externe Speicher einzubinden" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/de_DE.php b/apps/files_external/l10n/de_DE.php deleted file mode 100644 index fbeacb43178e242cb0a5a8f8ee393364197286fd..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/de_DE.php +++ /dev/null @@ -1,73 +0,0 @@ - "Anfrage-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Zugriff-Token holen fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel für Dropbox korrekt sind.", -"Please provide a valid Dropbox app key and secret." => "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.", -"Step 1 failed. Exception: %s" => "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", -"Step 2 failed. Exception: %s" => "Schritt 2 fehlgeschlagen. Fehlermeldung: %s", -"External storage" => "Externer Speicher", -"Local" => "Lokal", -"Location" => "Ort", -"Amazon S3" => "Amazon S3", -"Key" => "Schlüssel", -"Secret" => "Geheime Zeichenkette", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 und Kompatible", -"Access Key" => "Zugriffsschlüssel", -"Secret Key" => "Sicherheitsschlüssel", -"Hostname" => "Host-Name", -"Port" => "Port", -"Region" => "Region", -"Enable SSL" => "SSL aktivieren", -"Enable Path Style" => "Pfadstil aktivieren", -"App key" => "App-Schlüssel", -"App secret" => "Geheime Zeichenkette der App", -"Host" => "Host", -"Username" => "Benutzername", -"Password" => "Passwort", -"Root" => "Root", -"Secure ftps://" => "Sicherer FTPS://", -"Client ID" => "Client-ID", -"Client secret" => "Geheime Zeichenkette des Client", -"OpenStack Object Storage" => "Openstack-Objektspeicher", -"Region (optional for OpenStack Object Storage)" => "Region (Optional für Openstack-Objektspeicher)", -"API Key (required for Rackspace Cloud Files)" => "API-Schlüssel (Erforderlich für Rackspace Cloud-Dateien)", -"Tenantname (required for OpenStack Object Storage)" => "Mietername (Erforderlich für Openstack-Objektspeicher)", -"Password (required for OpenStack Object Storage)" => "Passwort (Erforderlich für Openstack-Objektspeicher)", -"Service Name (required for OpenStack Object Storage)" => "Name der Dienstleistung (Erforderlich für Openstack-Objektspeicher)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL des Identitätsendpunktes (Erforderlich für Openstack-Objektspeicher)", -"Timeout of HTTP requests in seconds" => "Zeitüberschreitung von HTTP-Anfragen in Sekunden", -"Share" => "Teilen", -"SMB / CIFS using OC login" => "SMB / CIFS mit OC-Login", -"Username as share" => "Benutzername als Freigabe", -"URL" => "Adresse", -"Secure https://" => "Sicherer HTTPS://", -"Remote subfolder" => "Entfernter Unterordner:", -"Access granted" => "Zugriff gestattet", -"Error configuring Dropbox storage" => "Fehler beim Einrichten von Dropbox", -"Grant access" => "Zugriff gestatten", -"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive", -"Personal" => "Persönlich", -"System" => "System", -"All users. Type to select user or group." => "Alle Nutzer. Nutzer oder Gruppe zur Auswahl eingeben.", -"(group)" => "(group)", -"Saved" => "Gespeichert", -"Note: " => "Hinweis: ", -" and " => "und", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Hinweis: Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Hinweis: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Hinweis: \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.", -"You don't have any external storages" => "Sie haben noch keinen externen Speicher", -"Name" => "Name", -"Storage type" => "Speichertyp", -"Scope" => "Anwendungsbereich", -"External Storage" => "Externer Speicher", -"Folder name" => "Ordnername", -"Configuration" => "Konfiguration", -"Available for" => "Verfügbar für", -"Add storage" => "Speicher hinzufügen", -"Delete" => "Löschen", -"Enable User External Storage" => "Externen Speicher für Benutzer aktivieren", -"Allow users to mount the following external storage" => "Erlauben Sie Benutzern, folgende externe Speicher einzubinden" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/el.js b/apps/files_external/l10n/el.js new file mode 100644 index 0000000000000000000000000000000000000000..28105a01d6ba7965f2141e1c8d2f25c17eb3e9f9 --- /dev/null +++ b/apps/files_external/l10n/el.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Η λήψη των τεκμηρίων αιτήματος απέτυχε. Βεβαιώστε ότι το κλειδί εφαρμογής και το μυστικό του Dropbox είναι ορθά", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Η λήψη των τεκμηρίων πρόσβασης απέτυχε. Βεβαιώστε ότι το κλειδί εφαρμογής και το μυστικό του Dropbox είναι ορθά.", + "Please provide a valid Dropbox app key and secret." : "Παρακαλούμε δώστε έγκυρο κλειδί Dropbox και μυστικό.", + "Step 1 failed. Exception: %s" : "Το βήμα 1 απέτυχε. Εξαίρεση: %s", + "Step 2 failed. Exception: %s" : "Το βήμα 2 απέτυχε. Εξαίρεση: %s", + "External storage" : "Εξωτερική αποθήκευση", + "Local" : "Τοπικός", + "Location" : "Τοποθεσία", + "Amazon S3" : "Amazon S3", + "Key" : "Κλειδί", + "Secret" : "Μυστικό", + "Bucket" : "Κάδος", + "Amazon S3 and compliant" : "Amazon S3 και συμμορφούμενα", + "Access Key" : "Κλειδί πρόσβασης", + "Secret Key" : "Μυστικό κλειδί", + "Hostname" : "Όνομα Υπολογιστή", + "Port" : "Θύρα", + "Region" : "Περιοχή", + "Enable SSL" : "Ενεργοποίηση SSL", + "Enable Path Style" : "Ενεργοποίηση μορφής διαδρομής", + "App key" : "Κλειδί εφαρμογής", + "App secret" : "Μυστικό εφαρμογής", + "Host" : "Διακομιστής", + "Username" : "Όνομα χρήστη", + "Password" : "Κωδικός πρόσβασης", + "Root" : "Root", + "Secure ftps://" : "Ασφαλής ftps://", + "Client ID" : "ID πελάτη", + "Client secret" : "Μυστικό πελάτη", + "OpenStack Object Storage" : "Αποθήκη αντικειμένων OpenStack", + "Region (optional for OpenStack Object Storage)" : "Περιοχή (προαιρετικά για την αποθήκευση αντικειμένων OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Κλειδί API (απαιτείται για αρχεία Rackspace Cloud)", + "Tenantname (required for OpenStack Object Storage)" : "Όνομα ενοίκου (απαιτείται για την Αποθήκευση Αντικειμένων OpenStack)", + "Password (required for OpenStack Object Storage)" : "Μυστικός κωδικός (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Όνομα υπηρεσίας (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Διεύθυνση URL της ταυτότητας τελικού σημείου (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", + "Timeout of HTTP requests in seconds" : "Χρονικό όριο των αιτήσεων HTTP σε δευτερόλεπτα", + "Share" : "Διαμοιράστε", + "SMB / CIFS using OC login" : "SMB / CIFS χρησιμοποιώντας λογαριασμό OC", + "Username as share" : "Όνομα χρήστη ως διαμοιραζόμενος φάκελος", + "URL" : "URL", + "Secure https://" : "Ασφαλής σύνδεση https://", + "Remote subfolder" : "Απομακρυσμένος υποφάκελος", + "Access granted" : "Πρόσβαση παρασχέθηκε", + "Error configuring Dropbox storage" : "Σφάλμα ρυθμίζωντας αποθήκευση Dropbox ", + "Grant access" : "Παροχή πρόσβασης", + "Error configuring Google Drive storage" : "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ", + "Personal" : "Προσωπικά", + "System" : "Σύστημα", + "All users. Type to select user or group." : "Όλοι οι χρήστες. Πληκτρολογήστε για να επιλέξετε χρήστη ή ομάδα.", + "(group)" : "(ομάδα)", + "Saved" : "Αποθηκεύτηκαν", + "Note: " : "Σημείωση: ", + " and " : "και", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Σημείωση: Η υποστήριξη cURL στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Η προσάρτηση του %s δεν είναι δυνατή. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Σημείωση: Η υποστήριξη FTP στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση του %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Σημείωση: Η επέκταση \"%s\" δεν είναι εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", + "You don't have any external storages" : "Δεν έχετε κανέναν εξωτερικό αποθηκευτικό χώρο", + "Name" : "Όνομα", + "Storage type" : "Τύπος αποθηκευτικού χώρου", + "Scope" : "Εύρος", + "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", + "Folder name" : "Όνομα φακέλου", + "Configuration" : "Ρυθμίσεις", + "Available for" : "Διαθέσιμο για", + "Add storage" : "Προσθηκη αποθηκευσης", + "Delete" : "Διαγραφή", + "Enable User External Storage" : "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη", + "Allow users to mount the following external storage" : "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/el.json b/apps/files_external/l10n/el.json new file mode 100644 index 0000000000000000000000000000000000000000..4be10506a02b50c92e81ef94b0ca0882246fb228 --- /dev/null +++ b/apps/files_external/l10n/el.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Η λήψη των τεκμηρίων αιτήματος απέτυχε. Βεβαιώστε ότι το κλειδί εφαρμογής και το μυστικό του Dropbox είναι ορθά", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Η λήψη των τεκμηρίων πρόσβασης απέτυχε. Βεβαιώστε ότι το κλειδί εφαρμογής και το μυστικό του Dropbox είναι ορθά.", + "Please provide a valid Dropbox app key and secret." : "Παρακαλούμε δώστε έγκυρο κλειδί Dropbox και μυστικό.", + "Step 1 failed. Exception: %s" : "Το βήμα 1 απέτυχε. Εξαίρεση: %s", + "Step 2 failed. Exception: %s" : "Το βήμα 2 απέτυχε. Εξαίρεση: %s", + "External storage" : "Εξωτερική αποθήκευση", + "Local" : "Τοπικός", + "Location" : "Τοποθεσία", + "Amazon S3" : "Amazon S3", + "Key" : "Κλειδί", + "Secret" : "Μυστικό", + "Bucket" : "Κάδος", + "Amazon S3 and compliant" : "Amazon S3 και συμμορφούμενα", + "Access Key" : "Κλειδί πρόσβασης", + "Secret Key" : "Μυστικό κλειδί", + "Hostname" : "Όνομα Υπολογιστή", + "Port" : "Θύρα", + "Region" : "Περιοχή", + "Enable SSL" : "Ενεργοποίηση SSL", + "Enable Path Style" : "Ενεργοποίηση μορφής διαδρομής", + "App key" : "Κλειδί εφαρμογής", + "App secret" : "Μυστικό εφαρμογής", + "Host" : "Διακομιστής", + "Username" : "Όνομα χρήστη", + "Password" : "Κωδικός πρόσβασης", + "Root" : "Root", + "Secure ftps://" : "Ασφαλής ftps://", + "Client ID" : "ID πελάτη", + "Client secret" : "Μυστικό πελάτη", + "OpenStack Object Storage" : "Αποθήκη αντικειμένων OpenStack", + "Region (optional for OpenStack Object Storage)" : "Περιοχή (προαιρετικά για την αποθήκευση αντικειμένων OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Κλειδί API (απαιτείται για αρχεία Rackspace Cloud)", + "Tenantname (required for OpenStack Object Storage)" : "Όνομα ενοίκου (απαιτείται για την Αποθήκευση Αντικειμένων OpenStack)", + "Password (required for OpenStack Object Storage)" : "Μυστικός κωδικός (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Όνομα υπηρεσίας (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Διεύθυνση URL της ταυτότητας τελικού σημείου (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", + "Timeout of HTTP requests in seconds" : "Χρονικό όριο των αιτήσεων HTTP σε δευτερόλεπτα", + "Share" : "Διαμοιράστε", + "SMB / CIFS using OC login" : "SMB / CIFS χρησιμοποιώντας λογαριασμό OC", + "Username as share" : "Όνομα χρήστη ως διαμοιραζόμενος φάκελος", + "URL" : "URL", + "Secure https://" : "Ασφαλής σύνδεση https://", + "Remote subfolder" : "Απομακρυσμένος υποφάκελος", + "Access granted" : "Πρόσβαση παρασχέθηκε", + "Error configuring Dropbox storage" : "Σφάλμα ρυθμίζωντας αποθήκευση Dropbox ", + "Grant access" : "Παροχή πρόσβασης", + "Error configuring Google Drive storage" : "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ", + "Personal" : "Προσωπικά", + "System" : "Σύστημα", + "All users. Type to select user or group." : "Όλοι οι χρήστες. Πληκτρολογήστε για να επιλέξετε χρήστη ή ομάδα.", + "(group)" : "(ομάδα)", + "Saved" : "Αποθηκεύτηκαν", + "Note: " : "Σημείωση: ", + " and " : "και", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Σημείωση: Η υποστήριξη cURL στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Η προσάρτηση του %s δεν είναι δυνατή. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Σημείωση: Η υποστήριξη FTP στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση του %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Σημείωση: Η επέκταση \"%s\" δεν είναι εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", + "You don't have any external storages" : "Δεν έχετε κανέναν εξωτερικό αποθηκευτικό χώρο", + "Name" : "Όνομα", + "Storage type" : "Τύπος αποθηκευτικού χώρου", + "Scope" : "Εύρος", + "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", + "Folder name" : "Όνομα φακέλου", + "Configuration" : "Ρυθμίσεις", + "Available for" : "Διαθέσιμο για", + "Add storage" : "Προσθηκη αποθηκευσης", + "Delete" : "Διαγραφή", + "Enable User External Storage" : "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη", + "Allow users to mount the following external storage" : "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/el.php b/apps/files_external/l10n/el.php deleted file mode 100644 index a4ad04b34f8e5c983d21c082c4d69e91d512442f..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/el.php +++ /dev/null @@ -1,70 +0,0 @@ - "Η λήψη των τεκμηρίων αιτήματος απέτυχε. Βεβαιώστε ότι το κλειδί εφαρμογής και το μυστικό του Dropbox είναι ορθά", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Η λήψη των τεκμηρίων πρόσβασης απέτυχε. Βεβαιώστε ότι το κλειδί εφαρμογής και το μυστικό του Dropbox είναι ορθά.", -"Please provide a valid Dropbox app key and secret." => "Παρακαλούμε δώστε έγκυρο κλειδί Dropbox και μυστικό.", -"Step 1 failed. Exception: %s" => "Το βήμα 1 απέτυχε. Εξαίρεση: %s", -"Step 2 failed. Exception: %s" => "Το βήμα 2 απέτυχε. Εξαίρεση: %s", -"External storage" => "Εξωτερική αποθήκευση", -"Local" => "Τοπικός", -"Location" => "Τοποθεσία", -"Amazon S3" => "Amazon S3", -"Key" => "Κλειδί", -"Secret" => "Μυστικό", -"Bucket" => "Κάδος", -"Amazon S3 and compliant" => "Amazon S3 και συμμορφούμενα", -"Access Key" => "Κλειδί πρόσβασης", -"Secret Key" => "Μυστικό κλειδί", -"Port" => "Θύρα", -"Region" => "Περιοχή", -"Enable SSL" => "Ενεργοποίηση SSL", -"Enable Path Style" => "Ενεργοποίηση μορφής διαδρομής", -"App key" => "Κλειδί εφαρμογής", -"App secret" => "Μυστικό εφαρμογής", -"Host" => "Διακομιστής", -"Username" => "Όνομα χρήστη", -"Password" => "Κωδικός πρόσβασης", -"Root" => "Root", -"Secure ftps://" => "Ασφαλής ftps://", -"Client ID" => "ID πελάτη", -"Client secret" => "Μυστικό πελάτη", -"OpenStack Object Storage" => "Αποθήκη αντικειμένων OpenStack", -"Region (optional for OpenStack Object Storage)" => "Περιοχή (προαιρετικά για την αποθήκευση αντικειμένων OpenStack)", -"API Key (required for Rackspace Cloud Files)" => "Κλειδί API (απαιτείται για αρχεία Rackspace Cloud)", -"Tenantname (required for OpenStack Object Storage)" => "Όνομα ενοίκου (απαιτείται για την Αποθήκευση Αντικειμένων OpenStack)", -"Password (required for OpenStack Object Storage)" => "Μυστικός κωδικός (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", -"Service Name (required for OpenStack Object Storage)" => "Όνομα υπηρεσίας (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Διεύθυνση URL της ταυτότητας τελικού σημείου (απαιτείται για την αποθήκευση αντικειμένων OpenStack)", -"Share" => "Διαμοιράστε", -"SMB / CIFS using OC login" => "SMB / CIFS χρησιμοποιώντας λογαριασμό OC", -"Username as share" => "Όνομα χρήστη ως διαμοιραζόμενος φάκελος", -"URL" => "URL", -"Secure https://" => "Ασφαλής σύνδεση https://", -"Remote subfolder" => "Απομακρυσμένος υποφάκελος", -"Access granted" => "Προσβαση παρασχέθηκε", -"Error configuring Dropbox storage" => "Σφάλμα ρυθμίζωντας αποθήκευση Dropbox ", -"Grant access" => "Παροχή πρόσβασης", -"Error configuring Google Drive storage" => "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ", -"Personal" => "Προσωπικά", -"System" => "Σύστημα", -"(group)" => "(ομάδα)", -"Saved" => "Αποθηκεύτηκαν", -"Note: " => "Σημείωση: ", -" and " => "και", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Σημείωση: Η υποστήριξη cURL στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Η προσάρτηση του %s δεν είναι δυνατή. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Σημείωση: Η υποστήριξη FTP στην PHP δεν είναι ενεργοποιημένη ή εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση του %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Σημείωση: Η επέκταση \"%s\" δεν είναι εγκατεστημένη. Δεν είναι δυνατή η προσάρτηση %s. Παρακαλώ ζητήστε από τον διαχειριστή συστημάτων σας να την εγκαταστήσει.", -"You don't have any external storages" => "Δεν έχετε κανέναν εξωτερικό αποθηκευτικό χώρο", -"Name" => "Όνομα", -"Storage type" => "Τύπος αποθηκευτικού χώρου", -"Scope" => "Εύρος", -"External Storage" => "Εξωτερικό Αποθηκευτικό Μέσο", -"Folder name" => "Όνομα φακέλου", -"Configuration" => "Ρυθμίσεις", -"Available for" => "Διαθέσιμο για", -"Add storage" => "Προσθηκη αποθηκευσης", -"Delete" => "Διαγραφή", -"Enable User External Storage" => "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη", -"Allow users to mount the following external storage" => "Χορήγηση άδειας στους χρήστες να συνδέσουν τα παρακάτω εξωτερικά μέσα αποθήκευσης" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/en@pirate.js b/apps/files_external/l10n/en@pirate.js new file mode 100644 index 0000000000000000000000000000000000000000..7345429f750976e094298dc610d23245c79583a2 --- /dev/null +++ b/apps/files_external/l10n/en@pirate.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_external", + { + "Password" : "Secret Code" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/en@pirate.json b/apps/files_external/l10n/en@pirate.json new file mode 100644 index 0000000000000000000000000000000000000000..bde5153f30961a19c6904f2d4880a8f03f5d4649 --- /dev/null +++ b/apps/files_external/l10n/en@pirate.json @@ -0,0 +1,4 @@ +{ "translations": { + "Password" : "Secret Code" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/en@pirate.php b/apps/files_external/l10n/en@pirate.php deleted file mode 100644 index ab628e1717ea7db8f3603b601d313df628d22c87..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/en@pirate.php +++ /dev/null @@ -1,5 +0,0 @@ - "Secret Code" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..9f97d2c488c7c520a6af42ad4014cd0ea9e5b5c2 --- /dev/null +++ b/apps/files_external/l10n/en_GB.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct.", + "Please provide a valid Dropbox app key and secret." : "Please provide a valid Dropbox app key and secret.", + "Step 1 failed. Exception: %s" : "Step 1 failed. Exception: %s", + "Step 2 failed. Exception: %s" : "Step 2 failed. Exception: %s", + "External storage" : "External storage", + "Local" : "Local", + "Location" : "Location", + "Amazon S3" : "Amazon S3", + "Key" : "Key", + "Secret" : "Secret", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 and compliant", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Hostname", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "Enable SSL", + "Enable Path Style" : "Enable Path Style", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Host", + "Username" : "Username", + "Password" : "Password", + "Root" : "Root", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (optional for OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (required for Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (required for OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Password (required for OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Name (required for OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (required for OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Timeout of HTTP requests in seconds", + "Share" : "Share", + "SMB / CIFS using OC login" : "SMB / CIFS using OC login", + "Username as share" : "Username as share", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Remote subfolder", + "Access granted" : "Access granted", + "Error configuring Dropbox storage" : "Error configuring Dropbox storage", + "Grant access" : "Grant access", + "Error configuring Google Drive storage" : "Error configuring Google Drive storage", + "Personal" : "Personal", + "System" : "System", + "All users. Type to select user or group." : "All users. Type to select user or group.", + "(group)" : "(group)", + "Saved" : "Saved", + "Note: " : "Note: ", + " and " : " and ", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", + "You don't have any external storages" : "You don't have any external storage", + "Name" : "Name", + "Storage type" : "Storage type", + "Scope" : "Scope", + "External Storage" : "External Storage", + "Folder name" : "Folder name", + "Configuration" : "Configuration", + "Available for" : "Available for", + "Add storage" : "Add storage", + "Delete" : "Delete", + "Enable User External Storage" : "Enable User External Storage", + "Allow users to mount the following external storage" : "Allow users to mount the following external storage" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..d4e7ad11bbe2a13d08291b83e1e1701b5fa6c7f7 --- /dev/null +++ b/apps/files_external/l10n/en_GB.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct.", + "Please provide a valid Dropbox app key and secret." : "Please provide a valid Dropbox app key and secret.", + "Step 1 failed. Exception: %s" : "Step 1 failed. Exception: %s", + "Step 2 failed. Exception: %s" : "Step 2 failed. Exception: %s", + "External storage" : "External storage", + "Local" : "Local", + "Location" : "Location", + "Amazon S3" : "Amazon S3", + "Key" : "Key", + "Secret" : "Secret", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 and compliant", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Hostname", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "Enable SSL", + "Enable Path Style" : "Enable Path Style", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Host", + "Username" : "Username", + "Password" : "Password", + "Root" : "Root", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (optional for OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (required for Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (required for OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Password (required for OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Name (required for OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (required for OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Timeout of HTTP requests in seconds", + "Share" : "Share", + "SMB / CIFS using OC login" : "SMB / CIFS using OC login", + "Username as share" : "Username as share", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Remote subfolder", + "Access granted" : "Access granted", + "Error configuring Dropbox storage" : "Error configuring Dropbox storage", + "Grant access" : "Grant access", + "Error configuring Google Drive storage" : "Error configuring Google Drive storage", + "Personal" : "Personal", + "System" : "System", + "All users. Type to select user or group." : "All users. Type to select user or group.", + "(group)" : "(group)", + "Saved" : "Saved", + "Note: " : "Note: ", + " and " : " and ", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", + "You don't have any external storages" : "You don't have any external storage", + "Name" : "Name", + "Storage type" : "Storage type", + "Scope" : "Scope", + "External Storage" : "External Storage", + "Folder name" : "Folder name", + "Configuration" : "Configuration", + "Available for" : "Available for", + "Add storage" : "Add storage", + "Delete" : "Delete", + "Enable User External Storage" : "Enable User External Storage", + "Allow users to mount the following external storage" : "Allow users to mount the following external storage" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/en_GB.php b/apps/files_external/l10n/en_GB.php deleted file mode 100644 index 129f818153843aea43cf47def0cfcca1e2719754..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/en_GB.php +++ /dev/null @@ -1,73 +0,0 @@ - "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct.", -"Please provide a valid Dropbox app key and secret." => "Please provide a valid Dropbox app key and secret.", -"Step 1 failed. Exception: %s" => "Step 1 failed. Exception: %s", -"Step 2 failed. Exception: %s" => "Step 2 failed. Exception: %s", -"External storage" => "External storage", -"Local" => "Local", -"Location" => "Location", -"Amazon S3" => "Amazon S3", -"Key" => "Key", -"Secret" => "Secret", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 and compliant", -"Access Key" => "Access Key", -"Secret Key" => "Secret Key", -"Hostname" => "Hostname", -"Port" => "Port", -"Region" => "Region", -"Enable SSL" => "Enable SSL", -"Enable Path Style" => "Enable Path Style", -"App key" => "App key", -"App secret" => "App secret", -"Host" => "Host", -"Username" => "Username", -"Password" => "Password", -"Root" => "Root", -"Secure ftps://" => "Secure ftps://", -"Client ID" => "Client ID", -"Client secret" => "Client secret", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Region (optional for OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API Key (required for Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (required for OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Password (required for OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Service Name (required for OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL of identity endpoint (required for OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Timeout of HTTP requests in seconds", -"Share" => "Share", -"SMB / CIFS using OC login" => "SMB / CIFS using OC login", -"Username as share" => "Username as share", -"URL" => "URL", -"Secure https://" => "Secure https://", -"Remote subfolder" => "Remote subfolder", -"Access granted" => "Access granted", -"Error configuring Dropbox storage" => "Error configuring Dropbox storage", -"Grant access" => "Grant access", -"Error configuring Google Drive storage" => "Error configuring Google Drive storage", -"Personal" => "Personal", -"System" => "System", -"All users. Type to select user or group." => "All users. Type to select user or group.", -"(group)" => "(group)", -"Saved" => "Saved", -"Note: " => "Note: ", -" and " => " and ", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", -"You don't have any external storages" => "You don't have any external storage", -"Name" => "Name", -"Storage type" => "Storage type", -"Scope" => "Scope", -"External Storage" => "External Storage", -"Folder name" => "Folder name", -"Configuration" => "Configuration", -"Available for" => "Available for", -"Add storage" => "Add storage", -"Delete" => "Delete", -"Enable User External Storage" => "Enable User External Storage", -"Allow users to mount the following external storage" => "Allow users to mount the following external storage" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/eo.js b/apps/files_external/l10n/eo.js new file mode 100644 index 0000000000000000000000000000000000000000..1d5014cdf2332c192e2d7d42e29669848dedaf7f --- /dev/null +++ b/apps/files_external/l10n/eo.js @@ -0,0 +1,52 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Bonvolu provizi ŝlosilon de la aplikaĵo Dropbox validan kaj sekretan.", + "External storage" : "Malena memorilo", + "Local" : "Loka", + "Location" : "Loko", + "Amazon S3" : "Amazon S3", + "Key" : "Klavo", + "Secret" : "Sekreto", + "Access Key" : "Aliroklavo", + "Secret Key" : "Sekretoklavo", + "Port" : "Pordo", + "Region" : "Regiono", + "Enable SSL" : "Kapabligi SSL-on", + "App key" : "Aplikaĵoklavo", + "App secret" : "Aplikaĵosekreto", + "Host" : "Gastigo", + "Username" : "Uzantonomo", + "Password" : "Pasvorto", + "Root" : "Radiko", + "Secure ftps://" : "Sekura ftps://", + "Client ID" : "Klientidentigilo", + "Client secret" : "Klientosekreto", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regiono (malnepra por OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API-klavo (nepra por Rackspace Cloud Files)", + "Password (required for OpenStack Object Storage)" : "Pasvorto (nepra por OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Servonomo (nepra por OpenStack Object Storage)", + "Share" : "Kunhavigi", + "URL" : "URL", + "Secure https://" : "Sekura https://", + "Remote subfolder" : "Malloka subdosierujo", + "Access granted" : "Alirpermeso donita", + "Error configuring Dropbox storage" : "Eraro dum agordado de la memorservo Dropbox", + "Grant access" : "Doni alirpermeson", + "Error configuring Google Drive storage" : "Eraro dum agordado de la memorservo Google Drive", + "Personal" : "Persona", + "Saved" : "Konservita", + "Note: " : "Noto:", + " and " : "kaj", + "Name" : "Nomo", + "External Storage" : "Malena memorilo", + "Folder name" : "Dosierujnomo", + "Configuration" : "Agordo", + "Available for" : "Disponebla por", + "Add storage" : "Aldoni memorilon", + "Delete" : "Forigi", + "Enable User External Storage" : "Kapabligi malenan memorilon de uzanto", + "Allow users to mount the following external storage" : "Permesi uzantojn munti la jenajn malenajn memorilojn" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/eo.json b/apps/files_external/l10n/eo.json new file mode 100644 index 0000000000000000000000000000000000000000..cf63614fb88a68d209b4af10bbbb2ff05b608736 --- /dev/null +++ b/apps/files_external/l10n/eo.json @@ -0,0 +1,50 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Bonvolu provizi ŝlosilon de la aplikaĵo Dropbox validan kaj sekretan.", + "External storage" : "Malena memorilo", + "Local" : "Loka", + "Location" : "Loko", + "Amazon S3" : "Amazon S3", + "Key" : "Klavo", + "Secret" : "Sekreto", + "Access Key" : "Aliroklavo", + "Secret Key" : "Sekretoklavo", + "Port" : "Pordo", + "Region" : "Regiono", + "Enable SSL" : "Kapabligi SSL-on", + "App key" : "Aplikaĵoklavo", + "App secret" : "Aplikaĵosekreto", + "Host" : "Gastigo", + "Username" : "Uzantonomo", + "Password" : "Pasvorto", + "Root" : "Radiko", + "Secure ftps://" : "Sekura ftps://", + "Client ID" : "Klientidentigilo", + "Client secret" : "Klientosekreto", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regiono (malnepra por OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API-klavo (nepra por Rackspace Cloud Files)", + "Password (required for OpenStack Object Storage)" : "Pasvorto (nepra por OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Servonomo (nepra por OpenStack Object Storage)", + "Share" : "Kunhavigi", + "URL" : "URL", + "Secure https://" : "Sekura https://", + "Remote subfolder" : "Malloka subdosierujo", + "Access granted" : "Alirpermeso donita", + "Error configuring Dropbox storage" : "Eraro dum agordado de la memorservo Dropbox", + "Grant access" : "Doni alirpermeson", + "Error configuring Google Drive storage" : "Eraro dum agordado de la memorservo Google Drive", + "Personal" : "Persona", + "Saved" : "Konservita", + "Note: " : "Noto:", + " and " : "kaj", + "Name" : "Nomo", + "External Storage" : "Malena memorilo", + "Folder name" : "Dosierujnomo", + "Configuration" : "Agordo", + "Available for" : "Disponebla por", + "Add storage" : "Aldoni memorilon", + "Delete" : "Forigi", + "Enable User External Storage" : "Kapabligi malenan memorilon de uzanto", + "Allow users to mount the following external storage" : "Permesi uzantojn munti la jenajn malenajn memorilojn" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/eo.php b/apps/files_external/l10n/eo.php deleted file mode 100644 index bc2b1af0f19556f1adfece69570eca86e3207fd2..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/eo.php +++ /dev/null @@ -1,51 +0,0 @@ - "Bonvolu provizi ŝlosilon de la aplikaĵo Dropbox validan kaj sekretan.", -"External storage" => "Malena memorilo", -"Local" => "Loka", -"Location" => "Loko", -"Amazon S3" => "Amazon S3", -"Key" => "Klavo", -"Secret" => "Sekreto", -"Access Key" => "Aliroklavo", -"Secret Key" => "Sekretoklavo", -"Port" => "Pordo", -"Region" => "Regiono", -"Enable SSL" => "Kapabligi SSL-on", -"App key" => "Aplikaĵoklavo", -"App secret" => "Aplikaĵosekreto", -"Host" => "Gastigo", -"Username" => "Uzantonomo", -"Password" => "Pasvorto", -"Root" => "Radiko", -"Secure ftps://" => "Sekura ftps://", -"Client ID" => "Klientidentigilo", -"Client secret" => "Klientosekreto", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Regiono (malnepra por OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API-klavo (nepra por Rackspace Cloud Files)", -"Password (required for OpenStack Object Storage)" => "Pasvorto (nepra por OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Servonomo (nepra por OpenStack Object Storage)", -"Share" => "Kunhavigi", -"URL" => "URL", -"Secure https://" => "Sekura https://", -"Remote subfolder" => "Malloka subdosierujo", -"Access granted" => "Alirpermeso donita", -"Error configuring Dropbox storage" => "Eraro dum agordado de la memorservo Dropbox", -"Grant access" => "Doni alirpermeson", -"Error configuring Google Drive storage" => "Eraro dum agordado de la memorservo Google Drive", -"Personal" => "Persona", -"Saved" => "Konservita", -"Note: " => "Noto:", -" and " => "kaj", -"Name" => "Nomo", -"External Storage" => "Malena memorilo", -"Folder name" => "Dosierujnomo", -"Configuration" => "Agordo", -"Available for" => "Disponebla por", -"Add storage" => "Aldoni memorilon", -"Delete" => "Forigi", -"Enable User External Storage" => "Kapabligi malenan memorilon de uzanto", -"Allow users to mount the following external storage" => "Permesi uzantojn munti la jenajn malenajn memorilojn" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js new file mode 100644 index 0000000000000000000000000000000000000000..9306558b346dd50e707d25caae3e3ff5722598ca --- /dev/null +++ b/apps/files_external/l10n/es.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens solicitados ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens de acceso ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", + "Please provide a valid Dropbox app key and secret." : "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", + "Step 1 failed. Exception: %s" : "El paso 1 falló. Excepción: %s", + "Step 2 failed. Exception: %s" : "El paso 2 falló. Excepción: %s", + "External storage" : "Almacenamiento externo", + "Local" : "Local", + "Location" : "Ubicación", + "Amazon S3" : "Amazon S3", + "Key" : "Clave", + "Secret" : "Secreto", + "Bucket" : "Depósito", + "Amazon S3 and compliant" : "Amazon S3 y compatibilidad", + "Access Key" : "Clave de Acceso", + "Secret Key" : "Clave Secreta", + "Hostname" : "Nombre de equipo", + "Port" : "Puerto", + "Region" : "Región", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo de Ruta", + "App key" : "App principal", + "App secret" : "App secreta", + "Host" : "Servidor", + "Username" : "Nombre de usuario", + "Password" : "Contraseña", + "Root" : "Raíz", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "ID de Cliente", + "Client secret" : "Cliente secreto", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Región (opcional para OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clave API (requerida para Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nombre de Inquilino (requerido para OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contraseña (requerida para OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nombre de Servicio (requerido para OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL de identidad de punto final (requerido para OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tiempo de espera de solicitudes HTTP en segundos", + "Share" : "Compartir", + "SMB / CIFS using OC login" : "SMB / CIFS usando acceso OC", + "Username as share" : "Nombre de Usuario como compartir", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Subcarpeta remota", + "Access granted" : "Acceso concedido", + "Error configuring Dropbox storage" : "Error configurando el almacenamiento de Dropbox", + "Grant access" : "Conceder acceso", + "Error configuring Google Drive storage" : "Error configurando el almacenamiento de Google Drive", + "Personal" : "Personal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos los usuarios. Teclee para seleccionar un usuario o grupo.", + "(group)" : "(grupo)", + "Saved" : "Guardado", + "Note: " : "Nota: ", + " and " : "y", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", + "You don't have any external storages" : "Usted no tiene ningún almacenamiento externo", + "Name" : "Nombre", + "Storage type" : "Tipo de almacenamiento", + "Scope" : "Ámbito", + "External Storage" : "Almacenamiento externo", + "Folder name" : "Nombre de la carpeta", + "Configuration" : "Configuración", + "Available for" : "Disponible para", + "Add storage" : "Añadir almacenamiento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Habilitar almacenamiento externo de usuario", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json new file mode 100644 index 0000000000000000000000000000000000000000..1d9067106eb48d6de92a5f6e5966a49f2d507c54 --- /dev/null +++ b/apps/files_external/l10n/es.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens solicitados ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La descarga de los tokens de acceso ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", + "Please provide a valid Dropbox app key and secret." : "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", + "Step 1 failed. Exception: %s" : "El paso 1 falló. Excepción: %s", + "Step 2 failed. Exception: %s" : "El paso 2 falló. Excepción: %s", + "External storage" : "Almacenamiento externo", + "Local" : "Local", + "Location" : "Ubicación", + "Amazon S3" : "Amazon S3", + "Key" : "Clave", + "Secret" : "Secreto", + "Bucket" : "Depósito", + "Amazon S3 and compliant" : "Amazon S3 y compatibilidad", + "Access Key" : "Clave de Acceso", + "Secret Key" : "Clave Secreta", + "Hostname" : "Nombre de equipo", + "Port" : "Puerto", + "Region" : "Región", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo de Ruta", + "App key" : "App principal", + "App secret" : "App secreta", + "Host" : "Servidor", + "Username" : "Nombre de usuario", + "Password" : "Contraseña", + "Root" : "Raíz", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "ID de Cliente", + "Client secret" : "Cliente secreto", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Región (opcional para OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clave API (requerida para Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nombre de Inquilino (requerido para OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contraseña (requerida para OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nombre de Servicio (requerido para OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL de identidad de punto final (requerido para OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tiempo de espera de solicitudes HTTP en segundos", + "Share" : "Compartir", + "SMB / CIFS using OC login" : "SMB / CIFS usando acceso OC", + "Username as share" : "Nombre de Usuario como compartir", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Subcarpeta remota", + "Access granted" : "Acceso concedido", + "Error configuring Dropbox storage" : "Error configurando el almacenamiento de Dropbox", + "Grant access" : "Conceder acceso", + "Error configuring Google Drive storage" : "Error configurando el almacenamiento de Google Drive", + "Personal" : "Personal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos los usuarios. Teclee para seleccionar un usuario o grupo.", + "(group)" : "(grupo)", + "Saved" : "Guardado", + "Note: " : "Nota: ", + " and " : "y", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", + "You don't have any external storages" : "Usted no tiene ningún almacenamiento externo", + "Name" : "Nombre", + "Storage type" : "Tipo de almacenamiento", + "Scope" : "Ámbito", + "External Storage" : "Almacenamiento externo", + "Folder name" : "Nombre de la carpeta", + "Configuration" : "Configuración", + "Available for" : "Disponible para", + "Add storage" : "Añadir almacenamiento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Habilitar almacenamiento externo de usuario", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/es.php b/apps/files_external/l10n/es.php deleted file mode 100644 index 07cbd4a2d3cce09f116d886a8a12d88b4d38f164..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/es.php +++ /dev/null @@ -1,73 +0,0 @@ - "La descarga de los tokens solicitados ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "La descarga de los tokens de acceso ha fallado. Verifique que la llave y el secreto de su app Dropbox es correcta.", -"Please provide a valid Dropbox app key and secret." => "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", -"Step 1 failed. Exception: %s" => "El paso 1 falló. Excepción: %s", -"Step 2 failed. Exception: %s" => "El paso 2 falló. Excepción: %s", -"External storage" => "Almacenamiento externo", -"Local" => "Local", -"Location" => "Ubicación", -"Amazon S3" => "Amazon S3", -"Key" => "Clave", -"Secret" => "Secreto", -"Bucket" => "Depósito", -"Amazon S3 and compliant" => "Amazon S3 y compatibilidad", -"Access Key" => "Clave de Acceso", -"Secret Key" => "Clave Secreta", -"Hostname" => "Nombre de equipo", -"Port" => "Puerto", -"Region" => "Región", -"Enable SSL" => "Habilitar SSL", -"Enable Path Style" => "Habilitar Estilo de Ruta", -"App key" => "App principal", -"App secret" => "App secreta", -"Host" => "Servidor", -"Username" => "Nombre de usuario", -"Password" => "Contraseña", -"Root" => "Raíz", -"Secure ftps://" => "Secure ftps://", -"Client ID" => "ID de Cliente", -"Client secret" => "Cliente secreto", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Región (opcional para OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "Clave API (requerida para Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Nombre de Inquilino (requerido para OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Contraseña (requerida para OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nombre de Servicio (requerido para OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL de identidad de punto final (requerido para OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Tiempo de espera de solicitudes HTTP en segundos", -"Share" => "Compartir", -"SMB / CIFS using OC login" => "SMB / CIFS usando acceso OC", -"Username as share" => "Nombre de Usuario como compartir", -"URL" => "URL", -"Secure https://" => "Secure https://", -"Remote subfolder" => "Subcarpeta remota", -"Access granted" => "Acceso concedido", -"Error configuring Dropbox storage" => "Error configurando el almacenamiento de Dropbox", -"Grant access" => "Conceder acceso", -"Error configuring Google Drive storage" => "Error configurando el almacenamiento de Google Drive", -"Personal" => "Personal", -"System" => "Sistema", -"All users. Type to select user or group." => "Todos los usuarios. Teclee para seleccionar un usuario o grupo.", -"(group)" => "(grupo)", -"Saved" => "Guardado", -"Note: " => "Nota: ", -" and " => "y", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.", -"You don't have any external storages" => "Usted no tiene ningún almacenamiento externo", -"Name" => "Nombre", -"Storage type" => "Tipo de almacenamiento", -"Scope" => "Ámbito", -"External Storage" => "Almacenamiento externo", -"Folder name" => "Nombre de la carpeta", -"Configuration" => "Configuración", -"Available for" => "Disponible para", -"Add storage" => "Añadir almacenamiento", -"Delete" => "Eliminar", -"Enable User External Storage" => "Habilitar almacenamiento externo de usuario", -"Allow users to mount the following external storage" => "Permitir a los usuarios montar el siguiente almacenamiento externo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/es_AR.js b/apps/files_external/l10n/es_AR.js new file mode 100644 index 0000000000000000000000000000000000000000..0936079fbc26c614e77007015d7ebbaecb1dbfba --- /dev/null +++ b/apps/files_external/l10n/es_AR.js @@ -0,0 +1,28 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Por favor, proporcioná un secreto y una contraseña válida para la aplicación Dropbox.", + "External storage" : "Almacenamiento externo", + "Location" : "Ubicación", + "Port" : "Puerto", + "Region" : "Provincia", + "Host" : "Servidor", + "Username" : "Nombre de usuario", + "Password" : "Contraseña", + "Share" : "Compartir", + "URL" : "URL", + "Access granted" : "Acceso permitido", + "Error configuring Dropbox storage" : "Error al configurar el almacenamiento de Dropbox", + "Grant access" : "Permitir acceso", + "Error configuring Google Drive storage" : "Error al configurar el almacenamiento de Google Drive", + "Personal" : "Personal", + "Saved" : "Guardado", + "Name" : "Nombre", + "External Storage" : "Almacenamiento externo", + "Folder name" : "Nombre de la carpeta", + "Configuration" : "Configuración", + "Add storage" : "Añadir almacenamiento", + "Delete" : "Borrar", + "Enable User External Storage" : "Habilitar almacenamiento de usuario externo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es_AR.json b/apps/files_external/l10n/es_AR.json new file mode 100644 index 0000000000000000000000000000000000000000..3b971a1883ccc201531cb0fa78c551f06bed5011 --- /dev/null +++ b/apps/files_external/l10n/es_AR.json @@ -0,0 +1,26 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Por favor, proporcioná un secreto y una contraseña válida para la aplicación Dropbox.", + "External storage" : "Almacenamiento externo", + "Location" : "Ubicación", + "Port" : "Puerto", + "Region" : "Provincia", + "Host" : "Servidor", + "Username" : "Nombre de usuario", + "Password" : "Contraseña", + "Share" : "Compartir", + "URL" : "URL", + "Access granted" : "Acceso permitido", + "Error configuring Dropbox storage" : "Error al configurar el almacenamiento de Dropbox", + "Grant access" : "Permitir acceso", + "Error configuring Google Drive storage" : "Error al configurar el almacenamiento de Google Drive", + "Personal" : "Personal", + "Saved" : "Guardado", + "Name" : "Nombre", + "External Storage" : "Almacenamiento externo", + "Folder name" : "Nombre de la carpeta", + "Configuration" : "Configuración", + "Add storage" : "Añadir almacenamiento", + "Delete" : "Borrar", + "Enable User External Storage" : "Habilitar almacenamiento de usuario externo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/es_AR.php b/apps/files_external/l10n/es_AR.php deleted file mode 100644 index d262f2afb87e13cbecb22893ec0b81ae6258b9bd..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/es_AR.php +++ /dev/null @@ -1,27 +0,0 @@ - "Por favor, proporcioná un secreto y una contraseña válida para la aplicación Dropbox.", -"External storage" => "Almacenamiento externo", -"Location" => "Ubicación", -"Port" => "Puerto", -"Region" => "Provincia", -"Host" => "Servidor", -"Username" => "Nombre de usuario", -"Password" => "Contraseña", -"Share" => "Compartir", -"URL" => "URL", -"Access granted" => "Acceso permitido", -"Error configuring Dropbox storage" => "Error al configurar el almacenamiento de Dropbox", -"Grant access" => "Permitir acceso", -"Error configuring Google Drive storage" => "Error al configurar el almacenamiento de Google Drive", -"Personal" => "Personal", -"Saved" => "Guardado", -"Name" => "Nombre", -"External Storage" => "Almacenamiento externo", -"Folder name" => "Nombre de la carpeta", -"Configuration" => "Configuración", -"Add storage" => "Añadir almacenamiento", -"Delete" => "Borrar", -"Enable User External Storage" => "Habilitar almacenamiento de usuario externo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/es_CL.js b/apps/files_external/l10n/es_CL.js new file mode 100644 index 0000000000000000000000000000000000000000..e2936ebb415e4095f376fa0df6e8a39440f8dfdd --- /dev/null +++ b/apps/files_external/l10n/es_CL.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_external", + { + "Username" : "Usuario", + "Password" : "Clave", + "Share" : "Compartir", + "Personal" : "Personal", + "Folder name" : "Nombre del directorio" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es_CL.json b/apps/files_external/l10n/es_CL.json new file mode 100644 index 0000000000000000000000000000000000000000..3c16c6b512431b3d477d7ae2f9ca71e8767d12c8 --- /dev/null +++ b/apps/files_external/l10n/es_CL.json @@ -0,0 +1,8 @@ +{ "translations": { + "Username" : "Usuario", + "Password" : "Clave", + "Share" : "Compartir", + "Personal" : "Personal", + "Folder name" : "Nombre del directorio" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/es_CL.php b/apps/files_external/l10n/es_CL.php deleted file mode 100644 index cd9a32fdd10e492d5367a5d7a77e9b2c852a6a8d..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/es_CL.php +++ /dev/null @@ -1,9 +0,0 @@ - "Usuario", -"Password" => "Clave", -"Share" => "Compartir", -"Personal" => "Personal", -"Folder name" => "Nombre del directorio" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js new file mode 100644 index 0000000000000000000000000000000000000000..a51d157cd89c47cbd16d47733ca9f28477452247 --- /dev/null +++ b/apps/files_external/l10n/es_MX.js @@ -0,0 +1,26 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", + "External storage" : "Almacenamiento externo", + "Location" : "Ubicación", + "Port" : "Puerto", + "Host" : "Servidor", + "Username" : "Nombre de usuario", + "Password" : "Contraseña", + "Share" : "Compartir", + "URL" : "URL", + "Access granted" : "Acceso concedido", + "Error configuring Dropbox storage" : "Error configurando el almacenamiento de Dropbox", + "Grant access" : "Conceder acceso", + "Error configuring Google Drive storage" : "Error configurando el almacenamiento de Google Drive", + "Personal" : "Personal", + "Name" : "Nombre", + "External Storage" : "Almacenamiento externo", + "Folder name" : "Nombre de la carpeta", + "Configuration" : "Configuración", + "Add storage" : "Añadir almacenamiento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Habilitar almacenamiento externo de usuario" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json new file mode 100644 index 0000000000000000000000000000000000000000..4a4bccdefe43279be43a2335d020cc69c6618628 --- /dev/null +++ b/apps/files_external/l10n/es_MX.json @@ -0,0 +1,24 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", + "External storage" : "Almacenamiento externo", + "Location" : "Ubicación", + "Port" : "Puerto", + "Host" : "Servidor", + "Username" : "Nombre de usuario", + "Password" : "Contraseña", + "Share" : "Compartir", + "URL" : "URL", + "Access granted" : "Acceso concedido", + "Error configuring Dropbox storage" : "Error configurando el almacenamiento de Dropbox", + "Grant access" : "Conceder acceso", + "Error configuring Google Drive storage" : "Error configurando el almacenamiento de Google Drive", + "Personal" : "Personal", + "Name" : "Nombre", + "External Storage" : "Almacenamiento externo", + "Folder name" : "Nombre de la carpeta", + "Configuration" : "Configuración", + "Add storage" : "Añadir almacenamiento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Habilitar almacenamiento externo de usuario" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/es_MX.php b/apps/files_external/l10n/es_MX.php deleted file mode 100644 index 2fbdbc5b4d5d9da27ef27f692f629d7ba50ff5ef..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/es_MX.php +++ /dev/null @@ -1,25 +0,0 @@ - "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.", -"External storage" => "Almacenamiento externo", -"Location" => "Ubicación", -"Port" => "Puerto", -"Host" => "Servidor", -"Username" => "Nombre de usuario", -"Password" => "Contraseña", -"Share" => "Compartir", -"URL" => "URL", -"Access granted" => "Acceso concedido", -"Error configuring Dropbox storage" => "Error configurando el almacenamiento de Dropbox", -"Grant access" => "Conceder acceso", -"Error configuring Google Drive storage" => "Error configurando el almacenamiento de Google Drive", -"Personal" => "Personal", -"Name" => "Nombre", -"External Storage" => "Almacenamiento externo", -"Folder name" => "Nombre de la carpeta", -"Configuration" => "Configuración", -"Add storage" => "Añadir almacenamiento", -"Delete" => "Eliminar", -"Enable User External Storage" => "Habilitar almacenamiento externo de usuario" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/et_EE.js b/apps/files_external/l10n/et_EE.js new file mode 100644 index 0000000000000000000000000000000000000000..226190cb5f869106a999576af6dd61d1b6cfbaf6 --- /dev/null +++ b/apps/files_external/l10n/et_EE.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Tellimustõendi hankimine ebaõnnestus. Veendu, et Su Dropboxi rakendi võti (key) ja saladus (secret) on korrektsed.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ligipääsutõendi hankimine ebaõnnestus. Veendu, et Su Dropboxi rakendi võti (key) ja saladus (secret) on korrektsed.", + "Please provide a valid Dropbox app key and secret." : "Palun sisesta korrektne Dropboxi rakenduse võti ja salasõna.", + "Step 1 failed. Exception: %s" : "Samm 1 ebaõnnestus. Erind: %s", + "Step 2 failed. Exception: %s" : "Samm 2 ebaõnnestus. Erind: %s", + "External storage" : "Väline andmehoidla", + "Local" : "Kohalik", + "Location" : "Asukoht", + "Amazon S3" : "Amazon S3", + "Key" : "Võti", + "Secret" : "Salasõna", + "Bucket" : "Korv", + "Amazon S3 and compliant" : "Amazon S3 ja ühilduv", + "Access Key" : "Ligipääsu võti", + "Secret Key" : "Salavõti", + "Hostname" : "Hostinimi", + "Port" : "Port", + "Region" : "Piirkond", + "Enable SSL" : "SSL-i kasutamine", + "Enable Path Style" : "Luba otsingtee stiilis", + "App key" : "Rakenduse võti", + "App secret" : "Rakenduse salasõna", + "Host" : "Host", + "Username" : "Kasutajanimi", + "Password" : "Parool", + "Root" : "Juur", + "Secure ftps://" : "Turvaline ftps://", + "Client ID" : "Kliendi ID", + "Client secret" : "Kliendi salasõna", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regioon (valikuline OpenStack Object Storage puhul)", + "API Key (required for Rackspace Cloud Files)" : "API võti (vajalik Rackspace Cloud Files puhul)", + "Tenantname (required for OpenStack Object Storage)" : "Rendinimi (tenantname , vajalik OpenStack Object Storage puhul)", + "Password (required for OpenStack Object Storage)" : "Parool (vajalik OpenStack Object Storage puhul)", + "Service Name (required for OpenStack Object Storage)" : "Teenuse nimi (vajalik OpenStack Object Storage puhul)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Tuvastuse URL lõpp-punkt (vajalik OpenStack Object Storage puhul)", + "Timeout of HTTP requests in seconds" : "HTTP päringute aegumine sekundites", + "Share" : "Jaga", + "SMB / CIFS using OC login" : "SMB / CIFS kasutades OC logimist", + "Username as share" : "Kasutajanimi kui jagamine", + "URL" : "URL", + "Secure https://" : "Turvaline https://", + "Remote subfolder" : "Mujahl olev alamkaust", + "Access granted" : "Ligipääs on antud", + "Error configuring Dropbox storage" : "Viga Dropboxi salvestusruumi seadistamisel", + "Grant access" : "Anna ligipääs", + "Error configuring Google Drive storage" : "Viga Google Drive'i salvestusruumi seadistamisel", + "Personal" : "Isiklik", + "System" : "Süsteem", + "All users. Type to select user or group." : "Kõik kasutajad. Kirjuta, et valida kasutaja või grupp.", + "(group)" : "(grupp)", + "Saved" : "Salvestatud", + "Note: " : "Märkus:", + " and " : "ja", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Märkus: cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Märkus: FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Märkus: \"%s\" pole paigaldatud. Hoidla %s ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata vajalik tugi.", + "You don't have any external storages" : "Sul pole ühtegi välist andmehoidlat", + "Name" : "Nimi", + "Storage type" : "Andmehoidla tüüp", + "Scope" : "Skoop", + "External Storage" : "Väline salvestuskoht", + "Folder name" : "Kausta nimi", + "Configuration" : "Seadistamine", + "Available for" : "Saadaval", + "Add storage" : "Lisa andmehoidla", + "Delete" : "Kustuta", + "Enable User External Storage" : "Luba kasutajatele väline salvestamine", + "Allow users to mount the following external storage" : "Võimalda kasutajatel ühendada järgmist välist andmehoidlat" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/et_EE.json b/apps/files_external/l10n/et_EE.json new file mode 100644 index 0000000000000000000000000000000000000000..a32eca9e8c25d447b17fc03d24c325fefbe931bc --- /dev/null +++ b/apps/files_external/l10n/et_EE.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Tellimustõendi hankimine ebaõnnestus. Veendu, et Su Dropboxi rakendi võti (key) ja saladus (secret) on korrektsed.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ligipääsutõendi hankimine ebaõnnestus. Veendu, et Su Dropboxi rakendi võti (key) ja saladus (secret) on korrektsed.", + "Please provide a valid Dropbox app key and secret." : "Palun sisesta korrektne Dropboxi rakenduse võti ja salasõna.", + "Step 1 failed. Exception: %s" : "Samm 1 ebaõnnestus. Erind: %s", + "Step 2 failed. Exception: %s" : "Samm 2 ebaõnnestus. Erind: %s", + "External storage" : "Väline andmehoidla", + "Local" : "Kohalik", + "Location" : "Asukoht", + "Amazon S3" : "Amazon S3", + "Key" : "Võti", + "Secret" : "Salasõna", + "Bucket" : "Korv", + "Amazon S3 and compliant" : "Amazon S3 ja ühilduv", + "Access Key" : "Ligipääsu võti", + "Secret Key" : "Salavõti", + "Hostname" : "Hostinimi", + "Port" : "Port", + "Region" : "Piirkond", + "Enable SSL" : "SSL-i kasutamine", + "Enable Path Style" : "Luba otsingtee stiilis", + "App key" : "Rakenduse võti", + "App secret" : "Rakenduse salasõna", + "Host" : "Host", + "Username" : "Kasutajanimi", + "Password" : "Parool", + "Root" : "Juur", + "Secure ftps://" : "Turvaline ftps://", + "Client ID" : "Kliendi ID", + "Client secret" : "Kliendi salasõna", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regioon (valikuline OpenStack Object Storage puhul)", + "API Key (required for Rackspace Cloud Files)" : "API võti (vajalik Rackspace Cloud Files puhul)", + "Tenantname (required for OpenStack Object Storage)" : "Rendinimi (tenantname , vajalik OpenStack Object Storage puhul)", + "Password (required for OpenStack Object Storage)" : "Parool (vajalik OpenStack Object Storage puhul)", + "Service Name (required for OpenStack Object Storage)" : "Teenuse nimi (vajalik OpenStack Object Storage puhul)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Tuvastuse URL lõpp-punkt (vajalik OpenStack Object Storage puhul)", + "Timeout of HTTP requests in seconds" : "HTTP päringute aegumine sekundites", + "Share" : "Jaga", + "SMB / CIFS using OC login" : "SMB / CIFS kasutades OC logimist", + "Username as share" : "Kasutajanimi kui jagamine", + "URL" : "URL", + "Secure https://" : "Turvaline https://", + "Remote subfolder" : "Mujahl olev alamkaust", + "Access granted" : "Ligipääs on antud", + "Error configuring Dropbox storage" : "Viga Dropboxi salvestusruumi seadistamisel", + "Grant access" : "Anna ligipääs", + "Error configuring Google Drive storage" : "Viga Google Drive'i salvestusruumi seadistamisel", + "Personal" : "Isiklik", + "System" : "Süsteem", + "All users. Type to select user or group." : "Kõik kasutajad. Kirjuta, et valida kasutaja või grupp.", + "(group)" : "(grupp)", + "Saved" : "Salvestatud", + "Note: " : "Märkus:", + " and " : "ja", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Märkus: cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Märkus: FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Märkus: \"%s\" pole paigaldatud. Hoidla %s ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata vajalik tugi.", + "You don't have any external storages" : "Sul pole ühtegi välist andmehoidlat", + "Name" : "Nimi", + "Storage type" : "Andmehoidla tüüp", + "Scope" : "Skoop", + "External Storage" : "Väline salvestuskoht", + "Folder name" : "Kausta nimi", + "Configuration" : "Seadistamine", + "Available for" : "Saadaval", + "Add storage" : "Lisa andmehoidla", + "Delete" : "Kustuta", + "Enable User External Storage" : "Luba kasutajatele väline salvestamine", + "Allow users to mount the following external storage" : "Võimalda kasutajatel ühendada järgmist välist andmehoidlat" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/et_EE.php b/apps/files_external/l10n/et_EE.php deleted file mode 100644 index 55992a44e6de2606ee8417ab230689661bd402a9..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/et_EE.php +++ /dev/null @@ -1,73 +0,0 @@ - "Tellimustõendi hankimine ebaõnnestus. Veendu, et Su Dropboxi rakendi võti (key) ja saladus (secret) on korrektsed.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Ligipääsutõendi hankimine ebaõnnestus. Veendu, et Su Dropboxi rakendi võti (key) ja saladus (secret) on korrektsed.", -"Please provide a valid Dropbox app key and secret." => "Palun sisesta korrektne Dropboxi rakenduse võti ja salasõna.", -"Step 1 failed. Exception: %s" => "Samm 1 ebaõnnestus. Erind: %s", -"Step 2 failed. Exception: %s" => "Samm 2 ebaõnnestus. Erind: %s", -"External storage" => "Väline andmehoidla", -"Local" => "Kohalik", -"Location" => "Asukoht", -"Amazon S3" => "Amazon S3", -"Key" => "Võti", -"Secret" => "Salasõna", -"Bucket" => "Korv", -"Amazon S3 and compliant" => "Amazon S3 ja ühilduv", -"Access Key" => "Ligipääsu võti", -"Secret Key" => "Salavõti", -"Hostname" => "Hostinimi", -"Port" => "Port", -"Region" => "Piirkond", -"Enable SSL" => "SSL-i kasutamine", -"Enable Path Style" => "Luba otsingtee stiilis", -"App key" => "Rakenduse võti", -"App secret" => "Rakenduse salasõna", -"Host" => "Host", -"Username" => "Kasutajanimi", -"Password" => "Parool", -"Root" => "Juur", -"Secure ftps://" => "Turvaline ftps://", -"Client ID" => "Kliendi ID", -"Client secret" => "Kliendi salasõna", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Regioon (valikuline OpenStack Object Storage puhul)", -"API Key (required for Rackspace Cloud Files)" => "API võti (vajalik Rackspace Cloud Files puhul)", -"Tenantname (required for OpenStack Object Storage)" => "Rendinimi (tenantname , vajalik OpenStack Object Storage puhul)", -"Password (required for OpenStack Object Storage)" => "Parool (vajalik OpenStack Object Storage puhul)", -"Service Name (required for OpenStack Object Storage)" => "Teenuse nimi (vajalik OpenStack Object Storage puhul)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Tuvastuse URL lõpp-punkt (vajalik OpenStack Object Storage puhul)", -"Timeout of HTTP requests in seconds" => "HTTP päringute aegumine sekundites", -"Share" => "Jaga", -"SMB / CIFS using OC login" => "SMB / CIFS kasutades OC logimist", -"Username as share" => "Kasutajanimi kui jagamine", -"URL" => "URL", -"Secure https://" => "Turvaline https://", -"Remote subfolder" => "Mujahl olev alamkaust", -"Access granted" => "Ligipääs on antud", -"Error configuring Dropbox storage" => "Viga Dropboxi salvestusruumi seadistamisel", -"Grant access" => "Anna ligipääs", -"Error configuring Google Drive storage" => "Viga Google Drive'i salvestusruumi seadistamisel", -"Personal" => "Isiklik", -"System" => "Süsteem", -"All users. Type to select user or group." => "Kõik kasutajad. Kirjuta, et valida kasutaja või grupp.", -"(group)" => "(grupp)", -"Saved" => "Salvestatud", -"Note: " => "Märkus:", -" and " => "ja", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Märkus: cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Märkus: FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Märkus: \"%s\" pole paigaldatud. Hoidla %s ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata vajalik tugi.", -"You don't have any external storages" => "Sul pole ühtegi välist andmehoidlat", -"Name" => "Nimi", -"Storage type" => "Andmehoidla tüüp", -"Scope" => "Skoop", -"External Storage" => "Väline salvestuskoht", -"Folder name" => "Kausta nimi", -"Configuration" => "Seadistamine", -"Available for" => "Saadaval", -"Add storage" => "Lisa andmehoidla", -"Delete" => "Kustuta", -"Enable User External Storage" => "Luba kasutajatele väline salvestamine", -"Allow users to mount the following external storage" => "Võimalda kasutajatel ühendada järgmist välist andmehoidlat" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/eu.js b/apps/files_external/l10n/eu.js new file mode 100644 index 0000000000000000000000000000000000000000..db535359491fad0aefe307298fed8e3bf1dae46b --- /dev/null +++ b/apps/files_external/l10n/eu.js @@ -0,0 +1,72 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Eskaera tokenen eskuratzeak huts egin du. Egiaztatu zure Dropbox app giltza eta sekretua zuzenak direla.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Sarrera tokenen eskuratzeak huts egin du. Egiaztatu zure Dropbox app giltza eta sekretua zuzenak direla.", + "Please provide a valid Dropbox app key and secret." : "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua", + "Step 1 failed. Exception: %s" : "1 Urratsak huts egin du. Salbuespena: %s", + "Step 2 failed. Exception: %s" : "2 Urratsak huts egin du. Salbuespena: %s", + "External storage" : "Kanpoko biltegiratzea", + "Local" : "Bertakoa", + "Location" : "Kokapena", + "Amazon S3" : "Amazon S3", + "Key" : "Gakoa", + "Secret" : "Sekretua", + "Amazon S3 and compliant" : "Amazon S3 eta baliokideak", + "Access Key" : "Sarbide gakoa", + "Secret Key" : "Giltza Sekretua", + "Hostname" : "Ostalari izena", + "Port" : "Portua", + "Region" : "Eskualdea", + "Enable SSL" : "Gaitu SSL", + "Enable Path Style" : "Gaitu Bide Estiloa", + "App key" : "Aplikazio gakoa", + "App secret" : "App sekretua", + "Host" : "Ostalaria", + "Username" : "Erabiltzaile izena", + "Password" : "Pasahitza", + "Root" : "Erroa", + "Secure ftps://" : "ftps:// segurua", + "Client ID" : "Bezero ID", + "Client secret" : "Bezeroaren Sekretua", + "OpenStack Object Storage" : "OpenStack Objektu Biltegiratzea", + "Region (optional for OpenStack Object Storage)" : "Eskualdea (hautazkoa OpenStack Objektu Biltegiratzerako)", + "API Key (required for Rackspace Cloud Files)" : "API Giltza (beharrezkoa Rackspace Cloud Filesentzako)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (beharrezkoa OpenStack Objektu Biltegiratzerko)", + "Password (required for OpenStack Object Storage)" : "Pasahitza (beharrezkoa OpenStack Objektu Biltegiratzerako)", + "Service Name (required for OpenStack Object Storage)" : "Zerbitzuaren Izena (beharrezkoa OpenStack Objektu Biltegiratzerako)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Nortasun amaierako puntuaren URLa (beharrezkoa OpenStack Objektu Biltegiratzerako)", + "Timeout of HTTP requests in seconds" : "HTTP eskarien gehienezko denbora segundutan", + "Share" : "Partekatu", + "SMB / CIFS using OC login" : "SMB / CIFS saioa hasteko OC erabiliz", + "Username as share" : "Erabiltzaile izena elkarbanaketa bezala", + "URL" : "URL", + "Secure https://" : "https:// segurua", + "Remote subfolder" : "Urruneko azpikarpeta", + "Access granted" : "Sarrera baimendua", + "Error configuring Dropbox storage" : "Errore bat egon da Dropbox biltegiratzea konfiguratzean", + "Grant access" : "Baimendu sarrera", + "Error configuring Google Drive storage" : "Errore bat egon da Google Drive konfiguratzean", + "Personal" : "Pertsonala", + "System" : "Sistema", + "All users. Type to select user or group." : "Erabiltzaile guztiak. Idatzi erabiltzaile edo taldea hautatzeko.", + "(group)" : "(taldea)", + "Saved" : "Gordeta", + "Note: " : "Oharra:", + " and " : "eta", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Oharra: :PHPko cURL euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Oharra: :PHPko FTP euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Oharra:\"%s\" euskarria ez dago instalatuta Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", + "You don't have any external storages" : "Ez duzu kanpoko biltegiratzerik", + "Name" : "Izena", + "Storage type" : "Biltegiratze mota", + "External Storage" : "Kanpoko biltegiratzea", + "Folder name" : "Karpetaren izena", + "Configuration" : "Konfigurazioa", + "Available for" : "Hauentzat eskuragarri", + "Add storage" : "Gehitu biltegiratzea", + "Delete" : "Ezabatu", + "Enable User External Storage" : "Gaitu erabiltzaileentzako kanpo biltegiratzea", + "Allow users to mount the following external storage" : "Baimendu erabiltzaileak hurrengo kanpo biltegiratzeak muntatzen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/eu.json b/apps/files_external/l10n/eu.json new file mode 100644 index 0000000000000000000000000000000000000000..a5c642bd77232448eb6247a852dbf0334e8d4cf1 --- /dev/null +++ b/apps/files_external/l10n/eu.json @@ -0,0 +1,70 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Eskaera tokenen eskuratzeak huts egin du. Egiaztatu zure Dropbox app giltza eta sekretua zuzenak direla.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Sarrera tokenen eskuratzeak huts egin du. Egiaztatu zure Dropbox app giltza eta sekretua zuzenak direla.", + "Please provide a valid Dropbox app key and secret." : "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua", + "Step 1 failed. Exception: %s" : "1 Urratsak huts egin du. Salbuespena: %s", + "Step 2 failed. Exception: %s" : "2 Urratsak huts egin du. Salbuespena: %s", + "External storage" : "Kanpoko biltegiratzea", + "Local" : "Bertakoa", + "Location" : "Kokapena", + "Amazon S3" : "Amazon S3", + "Key" : "Gakoa", + "Secret" : "Sekretua", + "Amazon S3 and compliant" : "Amazon S3 eta baliokideak", + "Access Key" : "Sarbide gakoa", + "Secret Key" : "Giltza Sekretua", + "Hostname" : "Ostalari izena", + "Port" : "Portua", + "Region" : "Eskualdea", + "Enable SSL" : "Gaitu SSL", + "Enable Path Style" : "Gaitu Bide Estiloa", + "App key" : "Aplikazio gakoa", + "App secret" : "App sekretua", + "Host" : "Ostalaria", + "Username" : "Erabiltzaile izena", + "Password" : "Pasahitza", + "Root" : "Erroa", + "Secure ftps://" : "ftps:// segurua", + "Client ID" : "Bezero ID", + "Client secret" : "Bezeroaren Sekretua", + "OpenStack Object Storage" : "OpenStack Objektu Biltegiratzea", + "Region (optional for OpenStack Object Storage)" : "Eskualdea (hautazkoa OpenStack Objektu Biltegiratzerako)", + "API Key (required for Rackspace Cloud Files)" : "API Giltza (beharrezkoa Rackspace Cloud Filesentzako)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (beharrezkoa OpenStack Objektu Biltegiratzerko)", + "Password (required for OpenStack Object Storage)" : "Pasahitza (beharrezkoa OpenStack Objektu Biltegiratzerako)", + "Service Name (required for OpenStack Object Storage)" : "Zerbitzuaren Izena (beharrezkoa OpenStack Objektu Biltegiratzerako)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Nortasun amaierako puntuaren URLa (beharrezkoa OpenStack Objektu Biltegiratzerako)", + "Timeout of HTTP requests in seconds" : "HTTP eskarien gehienezko denbora segundutan", + "Share" : "Partekatu", + "SMB / CIFS using OC login" : "SMB / CIFS saioa hasteko OC erabiliz", + "Username as share" : "Erabiltzaile izena elkarbanaketa bezala", + "URL" : "URL", + "Secure https://" : "https:// segurua", + "Remote subfolder" : "Urruneko azpikarpeta", + "Access granted" : "Sarrera baimendua", + "Error configuring Dropbox storage" : "Errore bat egon da Dropbox biltegiratzea konfiguratzean", + "Grant access" : "Baimendu sarrera", + "Error configuring Google Drive storage" : "Errore bat egon da Google Drive konfiguratzean", + "Personal" : "Pertsonala", + "System" : "Sistema", + "All users. Type to select user or group." : "Erabiltzaile guztiak. Idatzi erabiltzaile edo taldea hautatzeko.", + "(group)" : "(taldea)", + "Saved" : "Gordeta", + "Note: " : "Oharra:", + " and " : "eta", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Oharra: :PHPko cURL euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Oharra: :PHPko FTP euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Oharra:\"%s\" euskarria ez dago instalatuta Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", + "You don't have any external storages" : "Ez duzu kanpoko biltegiratzerik", + "Name" : "Izena", + "Storage type" : "Biltegiratze mota", + "External Storage" : "Kanpoko biltegiratzea", + "Folder name" : "Karpetaren izena", + "Configuration" : "Konfigurazioa", + "Available for" : "Hauentzat eskuragarri", + "Add storage" : "Gehitu biltegiratzea", + "Delete" : "Ezabatu", + "Enable User External Storage" : "Gaitu erabiltzaileentzako kanpo biltegiratzea", + "Allow users to mount the following external storage" : "Baimendu erabiltzaileak hurrengo kanpo biltegiratzeak muntatzen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/eu.php b/apps/files_external/l10n/eu.php deleted file mode 100644 index 63ae83daaaa0dd1d337a3ece4778aadae4fb95f6..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/eu.php +++ /dev/null @@ -1,67 +0,0 @@ - "Eskaera tokenen eskuratzeak huts egin du. Egiaztatu zure Dropbox app giltza eta sekretua zuzenak direla.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Sarrera tokenen eskuratzeak huts egin du. Egiaztatu zure Dropbox app giltza eta sekretua zuzenak direla.", -"Please provide a valid Dropbox app key and secret." => "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua", -"Step 1 failed. Exception: %s" => "1 Urratsak huts egin du. Salbuespena: %s", -"Step 2 failed. Exception: %s" => "2 Urratsak huts egin du. Salbuespena: %s", -"External storage" => "Kanpoko biltegiratzea", -"Local" => "Bertakoa", -"Location" => "Kokapena", -"Amazon S3" => "Amazon S3", -"Key" => "Gakoa", -"Secret" => "Sekretua", -"Amazon S3 and compliant" => "Amazon S3 eta baliokideak", -"Access Key" => "Sarbide gakoa", -"Secret Key" => "Giltza Sekretua", -"Port" => "Portua", -"Region" => "Eskualdea", -"Enable SSL" => "Gaitu SSL", -"Enable Path Style" => "Gaitu Bide Estiloa", -"App key" => "Aplikazio gakoa", -"App secret" => "App sekretua", -"Host" => "Ostalaria", -"Username" => "Erabiltzaile izena", -"Password" => "Pasahitza", -"Root" => "Erroa", -"Secure ftps://" => "ftps:// segurua", -"Client ID" => "Bezero ID", -"Client secret" => "Bezeroaren Sekretua", -"OpenStack Object Storage" => "OpenStack Objektu Biltegiratzea", -"Region (optional for OpenStack Object Storage)" => "Eskualdea (hautazkoa OpenStack Objektu Biltegiratzerako)", -"API Key (required for Rackspace Cloud Files)" => "API Giltza (beharrezkoa Rackspace Cloud Filesentzako)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (beharrezkoa OpenStack Objektu Biltegiratzerko)", -"Password (required for OpenStack Object Storage)" => "Pasahitza (beharrezkoa OpenStack Objektu Biltegiratzerako)", -"Service Name (required for OpenStack Object Storage)" => "Zerbitzuaren Izena (beharrezkoa OpenStack Objektu Biltegiratzerako)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Nortasun amaierako puntuaren URLa (beharrezkoa OpenStack Objektu Biltegiratzerako)", -"Share" => "Partekatu", -"SMB / CIFS using OC login" => "SMB / CIFS saioa hasteko OC erabiliz", -"Username as share" => "Erabiltzaile izena elkarbanaketa bezala", -"URL" => "URL", -"Secure https://" => "https:// segurua", -"Remote subfolder" => "Urruneko azpikarpeta", -"Access granted" => "Sarrera baimendua", -"Error configuring Dropbox storage" => "Errore bat egon da Dropbox biltegiratzea konfiguratzean", -"Grant access" => "Baimendu sarrera", -"Error configuring Google Drive storage" => "Errore bat egon da Google Drive konfiguratzean", -"Personal" => "Pertsonala", -"System" => "Sistema", -"Saved" => "Gordeta", -"Note: " => "Oharra:", -" and " => "eta", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Oharra: :PHPko cURL euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Oharra: :PHPko FTP euskarria ez dago instalatuta edo gaitua. Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Oharra:\"%s\" euskarria ez dago instalatuta Ezinezko da %s muntatzea. Mesedez eskatu sistema administratzaleari instala dezan. ", -"You don't have any external storages" => "Ez duzu kanpoko biltegiratzerik", -"Name" => "Izena", -"Storage type" => "Biltegiratze mota", -"External Storage" => "Kanpoko biltegiratzea", -"Folder name" => "Karpetaren izena", -"Configuration" => "Konfigurazioa", -"Available for" => "Hauentzat eskuragarri", -"Add storage" => "Gehitu biltegiratzea", -"Delete" => "Ezabatu", -"Enable User External Storage" => "Gaitu erabiltzaileentzako kanpo biltegiratzea", -"Allow users to mount the following external storage" => "Baimendu erabiltzaileak hurrengo kanpo biltegiratzeak muntatzen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/eu_ES.js b/apps/files_external/l10n/eu_ES.js new file mode 100644 index 0000000000000000000000000000000000000000..513edcb534e921b538140ef75350a7b563eadad2 --- /dev/null +++ b/apps/files_external/l10n/eu_ES.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_external", + { + "Location" : "kokapena", + "Personal" : "Pertsonala", + "Delete" : "Ezabatu" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/eu_ES.json b/apps/files_external/l10n/eu_ES.json new file mode 100644 index 0000000000000000000000000000000000000000..149a30d1a7e1f9f072a38288afe961f26079f7be --- /dev/null +++ b/apps/files_external/l10n/eu_ES.json @@ -0,0 +1,6 @@ +{ "translations": { + "Location" : "kokapena", + "Personal" : "Pertsonala", + "Delete" : "Ezabatu" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/eu_ES.php b/apps/files_external/l10n/eu_ES.php deleted file mode 100644 index c1a7b6889ba165f478a39dd2844238f39683b7d1..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/eu_ES.php +++ /dev/null @@ -1,7 +0,0 @@ - "kokapena", -"Personal" => "Pertsonala", -"Delete" => "Ezabatu" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/fa.js b/apps/files_external/l10n/fa.js new file mode 100644 index 0000000000000000000000000000000000000000..066684383e828e38c9b4cdd2efeb3aac13a64be1 --- /dev/null +++ b/apps/files_external/l10n/fa.js @@ -0,0 +1,28 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "لطفا یک کلید و کد امنیتی صحیح دراپ باکس وارد کنید.", + "External storage" : "حافظه خارجی", + "Location" : "محل", + "Port" : "درگاه", + "Region" : "ناحیه", + "Host" : "میزبانی", + "Username" : "نام کاربری", + "Password" : "گذرواژه", + "Share" : "اشتراک‌گذاری", + "URL" : "آدرس", + "Access granted" : "مجوز دسترسی صادر شد", + "Error configuring Dropbox storage" : "خطا به هنگام تنظیم فضای دراپ باکس", + "Grant access" : " مجوز اعطا دسترسی", + "Error configuring Google Drive storage" : "خطا به هنگام تنظیم فضای Google Drive", + "Personal" : "شخصی", + "Saved" : "ذخیره شد", + "Name" : "نام", + "External Storage" : "حافظه خارجی", + "Folder name" : "نام پوشه", + "Configuration" : "پیکربندی", + "Add storage" : "اضافه کردن حافظه", + "Delete" : "حذف", + "Enable User External Storage" : "فعال سازی حافظه خارجی کاربر" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/fa.json b/apps/files_external/l10n/fa.json new file mode 100644 index 0000000000000000000000000000000000000000..21bd2c63b59211200dc4dbaa6937336cec23e5aa --- /dev/null +++ b/apps/files_external/l10n/fa.json @@ -0,0 +1,26 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "لطفا یک کلید و کد امنیتی صحیح دراپ باکس وارد کنید.", + "External storage" : "حافظه خارجی", + "Location" : "محل", + "Port" : "درگاه", + "Region" : "ناحیه", + "Host" : "میزبانی", + "Username" : "نام کاربری", + "Password" : "گذرواژه", + "Share" : "اشتراک‌گذاری", + "URL" : "آدرس", + "Access granted" : "مجوز دسترسی صادر شد", + "Error configuring Dropbox storage" : "خطا به هنگام تنظیم فضای دراپ باکس", + "Grant access" : " مجوز اعطا دسترسی", + "Error configuring Google Drive storage" : "خطا به هنگام تنظیم فضای Google Drive", + "Personal" : "شخصی", + "Saved" : "ذخیره شد", + "Name" : "نام", + "External Storage" : "حافظه خارجی", + "Folder name" : "نام پوشه", + "Configuration" : "پیکربندی", + "Add storage" : "اضافه کردن حافظه", + "Delete" : "حذف", + "Enable User External Storage" : "فعال سازی حافظه خارجی کاربر" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/fa.php b/apps/files_external/l10n/fa.php deleted file mode 100644 index 820f4f8d73ba8fb2188117f63c7bf58173cae570..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/fa.php +++ /dev/null @@ -1,27 +0,0 @@ - "لطفا یک کلید و کد امنیتی صحیح دراپ باکس وارد کنید.", -"External storage" => "حافظه خارجی", -"Location" => "محل", -"Port" => "درگاه", -"Region" => "ناحیه", -"Host" => "میزبانی", -"Username" => "نام کاربری", -"Password" => "گذرواژه", -"Share" => "اشتراک‌گذاری", -"URL" => "آدرس", -"Access granted" => "مجوز دسترسی صادر شد", -"Error configuring Dropbox storage" => "خطا به هنگام تنظیم فضای دراپ باکس", -"Grant access" => " مجوز اعطا دسترسی", -"Error configuring Google Drive storage" => "خطا به هنگام تنظیم فضای Google Drive", -"Personal" => "شخصی", -"Saved" => "ذخیره شد", -"Name" => "نام", -"External Storage" => "حافظه خارجی", -"Folder name" => "نام پوشه", -"Configuration" => "پیکربندی", -"Add storage" => "اضافه کردن حافظه", -"Delete" => "حذف", -"Enable User External Storage" => "فعال سازی حافظه خارجی کاربر" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/fi_FI.js b/apps/files_external/l10n/fi_FI.js new file mode 100644 index 0000000000000000000000000000000000000000..f7895f842c3b282eecdb5c8e61b35610531e00ba --- /dev/null +++ b/apps/files_external/l10n/fi_FI.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Anna kelvollinen Dropbox-sovellusavain ja salainen vastaus.", + "Step 1 failed. Exception: %s" : "Vaihe 1 epäonnistui. Poikkeus: %s", + "Step 2 failed. Exception: %s" : "Vaihe 2 epäonnistui. Poikkeus: %s", + "External storage" : "Ulkoinen tallennustila", + "Local" : "Paikallinen", + "Location" : "Sijainti", + "Amazon S3" : "Amazon S3", + "Key" : "Avain", + "Amazon S3 and compliant" : "Amazon S3 ja yhteensopivat", + "Port" : "Portti", + "Region" : "Alue", + "Enable SSL" : "Käytä SSL:ää", + "Host" : "Isäntä", + "Username" : "Käyttäjätunnus", + "Password" : "Salasana", + "Secure ftps://" : "Salattu ftps://", + "Timeout of HTTP requests in seconds" : "HTTP-pyyntöjen aikakatkaisu sekunneissa", + "Share" : "Jaa", + "URL" : "Verkko-osoite", + "Secure https://" : "Salattu https://", + "Access granted" : "Pääsy sallittu", + "Error configuring Dropbox storage" : "Virhe Dropbox levyn asetuksia tehtäessä", + "Grant access" : "Salli pääsy", + "Error configuring Google Drive storage" : "Virhe Google Drive levyn asetuksia tehtäessä", + "Personal" : "Henkilökohtainen", + "System" : "Järjestelmä", + "All users. Type to select user or group." : "Kaikki käyttäjät. Kirjoita valitaksesi käyttäjän tai ryhmän.", + "(group)" : "(ryhmä)", + "Saved" : "Tallennettu", + "Note: " : "Huomio: ", + " and " : "ja", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Huomio: PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Huomio: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Huomio: \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.", + "You don't have any external storages" : "Käytössäsi ei ole erillisiä tallennustiloja", + "Name" : "Nimi", + "Storage type" : "Tallennustilan tyyppi", + "External Storage" : "Erillinen tallennusväline", + "Folder name" : "Kansion nimi", + "Configuration" : "Asetukset", + "Available for" : "Saatavuus", + "Add storage" : "Lisää tallennustila", + "Delete" : "Poista", + "Enable User External Storage" : "Ota käyttöön ulkopuoliset tallennuspaikat", + "Allow users to mount the following external storage" : "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/fi_FI.json b/apps/files_external/l10n/fi_FI.json new file mode 100644 index 0000000000000000000000000000000000000000..dad235128fbe9c1a9f7ea55706763053d815c8af --- /dev/null +++ b/apps/files_external/l10n/fi_FI.json @@ -0,0 +1,48 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Anna kelvollinen Dropbox-sovellusavain ja salainen vastaus.", + "Step 1 failed. Exception: %s" : "Vaihe 1 epäonnistui. Poikkeus: %s", + "Step 2 failed. Exception: %s" : "Vaihe 2 epäonnistui. Poikkeus: %s", + "External storage" : "Ulkoinen tallennustila", + "Local" : "Paikallinen", + "Location" : "Sijainti", + "Amazon S3" : "Amazon S3", + "Key" : "Avain", + "Amazon S3 and compliant" : "Amazon S3 ja yhteensopivat", + "Port" : "Portti", + "Region" : "Alue", + "Enable SSL" : "Käytä SSL:ää", + "Host" : "Isäntä", + "Username" : "Käyttäjätunnus", + "Password" : "Salasana", + "Secure ftps://" : "Salattu ftps://", + "Timeout of HTTP requests in seconds" : "HTTP-pyyntöjen aikakatkaisu sekunneissa", + "Share" : "Jaa", + "URL" : "Verkko-osoite", + "Secure https://" : "Salattu https://", + "Access granted" : "Pääsy sallittu", + "Error configuring Dropbox storage" : "Virhe Dropbox levyn asetuksia tehtäessä", + "Grant access" : "Salli pääsy", + "Error configuring Google Drive storage" : "Virhe Google Drive levyn asetuksia tehtäessä", + "Personal" : "Henkilökohtainen", + "System" : "Järjestelmä", + "All users. Type to select user or group." : "Kaikki käyttäjät. Kirjoita valitaksesi käyttäjän tai ryhmän.", + "(group)" : "(ryhmä)", + "Saved" : "Tallennettu", + "Note: " : "Huomio: ", + " and " : "ja", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Huomio: PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Huomio: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Huomio: \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.", + "You don't have any external storages" : "Käytössäsi ei ole erillisiä tallennustiloja", + "Name" : "Nimi", + "Storage type" : "Tallennustilan tyyppi", + "External Storage" : "Erillinen tallennusväline", + "Folder name" : "Kansion nimi", + "Configuration" : "Asetukset", + "Available for" : "Saatavuus", + "Add storage" : "Lisää tallennustila", + "Delete" : "Poista", + "Enable User External Storage" : "Ota käyttöön ulkopuoliset tallennuspaikat", + "Allow users to mount the following external storage" : "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php deleted file mode 100644 index a2d5420c975e01ed5c7c5d56951f4bb24b2bbfec..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/fi_FI.php +++ /dev/null @@ -1,49 +0,0 @@ - "Anna kelvollinen Dropbox-sovellusavain ja salainen vastaus.", -"Step 1 failed. Exception: %s" => "Vaihe 1 epäonnistui. Poikkeus: %s", -"Step 2 failed. Exception: %s" => "Vaihe 2 epäonnistui. Poikkeus: %s", -"External storage" => "Ulkoinen tallennustila", -"Local" => "Paikallinen", -"Location" => "Sijainti", -"Amazon S3" => "Amazon S3", -"Key" => "Avain", -"Amazon S3 and compliant" => "Amazon S3 ja yhteensopivat", -"Port" => "Portti", -"Region" => "Alue", -"Enable SSL" => "Käytä SSL:ää", -"Host" => "Isäntä", -"Username" => "Käyttäjätunnus", -"Password" => "Salasana", -"Secure ftps://" => "Salattu ftps://", -"Timeout of HTTP requests in seconds" => "HTTP-pyyntöjen aikakatkaisu sekunneissa", -"Share" => "Jaa", -"URL" => "Verkko-osoite", -"Secure https://" => "Salattu https://", -"Access granted" => "Pääsy sallittu", -"Error configuring Dropbox storage" => "Virhe Dropbox levyn asetuksia tehtäessä", -"Grant access" => "Salli pääsy", -"Error configuring Google Drive storage" => "Virhe Google Drive levyn asetuksia tehtäessä", -"Personal" => "Henkilökohtainen", -"System" => "Järjestelmä", -"All users. Type to select user or group." => "Kaikki käyttäjät. Kirjoita valitaksesi käyttäjän tai ryhmän.", -"(group)" => "(ryhmä)", -"Saved" => "Tallennettu", -"Note: " => "Huomio: ", -" and " => "ja", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Huomio: PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Huomio: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Huomio: \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.", -"You don't have any external storages" => "Käytössäsi ei ole erillisiä tallennustiloja", -"Name" => "Nimi", -"Storage type" => "Tallennustilan tyyppi", -"External Storage" => "Erillinen tallennusväline", -"Folder name" => "Kansion nimi", -"Configuration" => "Asetukset", -"Available for" => "Saatavuus", -"Add storage" => "Lisää tallennustila", -"Delete" => "Poista", -"Enable User External Storage" => "Ota käyttöön ulkopuoliset tallennuspaikat", -"Allow users to mount the following external storage" => "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js new file mode 100644 index 0000000000000000000000000000000000000000..5885af24199d96d54888cbe215b02af6237eb728 --- /dev/null +++ b/apps/files_external/l10n/fr.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La récupération des jetons d’authentification a échoué. Veuillez vérifier votre clé d'application Dropbox ainsi que le mot de passe.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La requête d’accès aux jetons d’authentification a échoué. Veuillez vérifier votre App-Key Dropbox ainsi que le mot de passe.", + "Please provide a valid Dropbox app key and secret." : "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides.", + "Step 1 failed. Exception: %s" : "L’étape 1 a échoué. Erreur : %s", + "Step 2 failed. Exception: %s" : "L’étape 2 a échoué. Erreur : %s", + "External storage" : "Stockage externe", + "Local" : "Local", + "Location" : "Emplacement", + "Amazon S3" : "Amazon S3", + "Key" : "Clé", + "Secret" : "Secret", + "Bucket" : "Seau", + "Amazon S3 and compliant" : "Compatible avec Amazon S3", + "Access Key" : "Clé d'accès", + "Secret Key" : "Clé secrète", + "Hostname" : "Nom de l'hôte", + "Port" : "Port", + "Region" : "Région", + "Enable SSL" : "Activer SSL", + "Enable Path Style" : "Activer le style de chemin", + "App key" : "Clé App", + "App secret" : "Secret de l'application", + "Host" : "Hôte", + "Username" : "Nom d'utilisateur", + "Password" : "Mot de passe", + "Root" : "Root", + "Secure ftps://" : "Sécurisation ftps://", + "Client ID" : "ID Client", + "Client secret" : "Secret client", + "OpenStack Object Storage" : "Object de Stockage OpenStack", + "Region (optional for OpenStack Object Storage)" : "Region (optionnel pour Object de Stockage OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Clé API (requis pour Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nom du locataire (requis pour le stockage OpenStack)", + "Password (required for OpenStack Object Storage)" : "Mot de passe (requis pour OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nom du service (requit pour le stockage OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL du point d'accès d'identité (requis pour le stockage OpenStack)", + "Timeout of HTTP requests in seconds" : "Temps maximal de requête HTTP en seconde", + "Share" : "Partager", + "SMB / CIFS using OC login" : "SMB / CIFS en utilisant les identifiants OC", + "Username as share" : "Nom d'utilisateur du partage", + "URL" : "URL", + "Secure https://" : "Sécurisation https://", + "Remote subfolder" : "Sous-dossier distant", + "Access granted" : "Accès autorisé", + "Error configuring Dropbox storage" : "Erreur lors de la configuration du support de stockage Dropbox", + "Grant access" : "Autoriser l'accès", + "Error configuring Google Drive storage" : "Erreur lors de la configuration du support de stockage Google Drive", + "Personal" : "Personnel", + "System" : "Système", + "All users. Type to select user or group." : "Tous les utilisateurs. Cliquez ici pour restreindre.", + "(group)" : "(groupe)", + "Saved" : "Sauvegarder", + "Note: " : "Attention :", + " and " : "et", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Attention : La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Attention : La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Attention : \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", + "You don't have any external storages" : "Vous n'avez pas de support de stockage externe", + "Name" : "Nom", + "Storage type" : "Type de support de stockage", + "Scope" : "Portée", + "External Storage" : "Stockage externe", + "Folder name" : "Nom du dossier", + "Configuration" : "Configuration", + "Available for" : "Disponible pour", + "Add storage" : "Ajouter un support de stockage", + "Delete" : "Supprimer", + "Enable User External Storage" : "Autoriser les utilisateurs à ajouter des stockages externes", + "Allow users to mount the following external storage" : "Autorise les utilisateurs à monter les stockage externes suivants" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..e1e2b2eccc4088fbb3a12960eca9ed21429c7138 --- /dev/null +++ b/apps/files_external/l10n/fr.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La récupération des jetons d’authentification a échoué. Veuillez vérifier votre clé d'application Dropbox ainsi que le mot de passe.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La requête d’accès aux jetons d’authentification a échoué. Veuillez vérifier votre App-Key Dropbox ainsi que le mot de passe.", + "Please provide a valid Dropbox app key and secret." : "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides.", + "Step 1 failed. Exception: %s" : "L’étape 1 a échoué. Erreur : %s", + "Step 2 failed. Exception: %s" : "L’étape 2 a échoué. Erreur : %s", + "External storage" : "Stockage externe", + "Local" : "Local", + "Location" : "Emplacement", + "Amazon S3" : "Amazon S3", + "Key" : "Clé", + "Secret" : "Secret", + "Bucket" : "Seau", + "Amazon S3 and compliant" : "Compatible avec Amazon S3", + "Access Key" : "Clé d'accès", + "Secret Key" : "Clé secrète", + "Hostname" : "Nom de l'hôte", + "Port" : "Port", + "Region" : "Région", + "Enable SSL" : "Activer SSL", + "Enable Path Style" : "Activer le style de chemin", + "App key" : "Clé App", + "App secret" : "Secret de l'application", + "Host" : "Hôte", + "Username" : "Nom d'utilisateur", + "Password" : "Mot de passe", + "Root" : "Root", + "Secure ftps://" : "Sécurisation ftps://", + "Client ID" : "ID Client", + "Client secret" : "Secret client", + "OpenStack Object Storage" : "Object de Stockage OpenStack", + "Region (optional for OpenStack Object Storage)" : "Region (optionnel pour Object de Stockage OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Clé API (requis pour Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nom du locataire (requis pour le stockage OpenStack)", + "Password (required for OpenStack Object Storage)" : "Mot de passe (requis pour OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nom du service (requit pour le stockage OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL du point d'accès d'identité (requis pour le stockage OpenStack)", + "Timeout of HTTP requests in seconds" : "Temps maximal de requête HTTP en seconde", + "Share" : "Partager", + "SMB / CIFS using OC login" : "SMB / CIFS en utilisant les identifiants OC", + "Username as share" : "Nom d'utilisateur du partage", + "URL" : "URL", + "Secure https://" : "Sécurisation https://", + "Remote subfolder" : "Sous-dossier distant", + "Access granted" : "Accès autorisé", + "Error configuring Dropbox storage" : "Erreur lors de la configuration du support de stockage Dropbox", + "Grant access" : "Autoriser l'accès", + "Error configuring Google Drive storage" : "Erreur lors de la configuration du support de stockage Google Drive", + "Personal" : "Personnel", + "System" : "Système", + "All users. Type to select user or group." : "Tous les utilisateurs. Cliquez ici pour restreindre.", + "(group)" : "(groupe)", + "Saved" : "Sauvegarder", + "Note: " : "Attention :", + " and " : "et", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Attention : La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Attention : La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Attention : \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", + "You don't have any external storages" : "Vous n'avez pas de support de stockage externe", + "Name" : "Nom", + "Storage type" : "Type de support de stockage", + "Scope" : "Portée", + "External Storage" : "Stockage externe", + "Folder name" : "Nom du dossier", + "Configuration" : "Configuration", + "Available for" : "Disponible pour", + "Add storage" : "Ajouter un support de stockage", + "Delete" : "Supprimer", + "Enable User External Storage" : "Autoriser les utilisateurs à ajouter des stockages externes", + "Allow users to mount the following external storage" : "Autorise les utilisateurs à monter les stockage externes suivants" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php deleted file mode 100644 index 405bc4f680cd74a0739cdc017e004a9e3dfa8593..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/fr.php +++ /dev/null @@ -1,73 +0,0 @@ - "La récupération des jetons d’authentification a échoué. Veuillez vérifier votre clef Dropbox ainsi que le mot de passe.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "La requête d’accès aux jetons d’authentification a échoué. Veuillez vérifier votre App-Key Dropbox ainsi que le mot de passe.", -"Please provide a valid Dropbox app key and secret." => "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides.", -"Step 1 failed. Exception: %s" => "L’étape 1 a échoué. Erreur: %s", -"Step 2 failed. Exception: %s" => "L’étape 2 a échoué. Erreur: %s", -"External storage" => "Stockage externe", -"Local" => "Local", -"Location" => "Emplacement", -"Amazon S3" => "Amazon S3", -"Key" => "Clé", -"Secret" => "Secret", -"Bucket" => "Seau", -"Amazon S3 and compliant" => "Compatible avec Amazon S3", -"Access Key" => "Clé d'accès", -"Secret Key" => "Clé secrète", -"Hostname" => "Nom de l'hôte", -"Port" => "Port", -"Region" => "Région", -"Enable SSL" => "Activer SSL", -"Enable Path Style" => "Activer le style de chemin", -"App key" => "Clé App", -"App secret" => "Secret de l'application", -"Host" => "Hôte", -"Username" => "Nom d'utilisateur", -"Password" => "Mot de passe", -"Root" => "Root", -"Secure ftps://" => "Sécuriser via ftps://", -"Client ID" => "ID Client", -"Client secret" => "Secret client", -"OpenStack Object Storage" => "Object de Stockage OpenStack", -"Region (optional for OpenStack Object Storage)" => "Region (optionnel pour Object de Stockage OpenStack)", -"API Key (required for Rackspace Cloud Files)" => "Clé API (requis pour Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Nom du locataire (requis pour le stockage OpenStack)", -"Password (required for OpenStack Object Storage)" => "Mot de passe (requis pour OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nom du service (requit pour le stockage OpenStack)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL du point d'accès d'identité (requis pour le stockage OpenStack)", -"Timeout of HTTP requests in seconds" => "Temps maximal de requête HTTP en seconde", -"Share" => "Partager", -"SMB / CIFS using OC login" => "SMB / CIFS utilise le nom d'utilisateur OC", -"Username as share" => "Nom d'utilisateur du partage", -"URL" => "URL", -"Secure https://" => "Sécurisation https://", -"Remote subfolder" => "Sous-dossier distant", -"Access granted" => "Accès autorisé", -"Error configuring Dropbox storage" => "Erreur lors de la configuration du support de stockage Dropbox", -"Grant access" => "Autoriser l'accès", -"Error configuring Google Drive storage" => "Erreur lors de la configuration du support de stockage Google Drive", -"Personal" => "Personnel", -"System" => "Système", -"All users. Type to select user or group." => "Tous les utilisateurs. Commencez à saisir pour sélectionner un utilisateur ou un groupe.", -"(group)" => "(groupe)", -"Saved" => "Sauvegarder", -"Note: " => "Attention :", -" and " => "et", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Attention : Le support de cURL de PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Attention : Le support FTP de PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Attention : \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.", -"You don't have any external storages" => "Vous n'avez pas de support de stockage externe", -"Name" => "Nom", -"Storage type" => "Type de support de stockage", -"Scope" => "Portée", -"External Storage" => "Stockage externe", -"Folder name" => "Nom du dossier", -"Configuration" => "Configuration", -"Available for" => "Disponible pour", -"Add storage" => "Ajouter un support de stockage", -"Delete" => "Supprimer", -"Enable User External Storage" => "Activer le stockage externe pour les utilisateurs", -"Allow users to mount the following external storage" => "Autorise les utilisateurs à monter les stockage externes suivants" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_external/l10n/gl.js b/apps/files_external/l10n/gl.js new file mode 100644 index 0000000000000000000000000000000000000000..0ff342e958d3b2152d61fe0dcd97803a6ea00ebd --- /dev/null +++ b/apps/files_external/l10n/gl.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Fallou a obtención de marcas de petición. Comprobe que a chave e o código secreto da súa aplicación Dropbox son correctas.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Fallou a obtención de marcas de acceso. Comprobe que a chave e o código secreto da súa aplicación Dropbox son correctas.", + "Please provide a valid Dropbox app key and secret." : "Forneza unha chave correcta e segreda do Dropbox.", + "Step 1 failed. Exception: %s" : "Fallou o paso 1. Excepción: %s", + "Step 2 failed. Exception: %s" : "Fallou o paso 2. Excepción: %s", + "External storage" : "Almacenamento externo", + "Local" : "Local", + "Location" : "Localización", + "Amazon S3" : "Amazon S3", + "Key" : "Clave", + "Secret" : "Secreto", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 e compatíbeis", + "Access Key" : "Clave de acceso", + "Secret Key" : "Clave secreta", + "Hostname" : "Nome de máquina", + "Port" : "Porto", + "Region" : "Autonomía", + "Enable SSL" : "Activar SSL", + "Enable Path Style" : "Activar o estilo de ruta", + "App key" : "Clave da API", + "App secret" : "Secreto da aplicación", + "Host" : "Servidor", + "Username" : "Nome de usuario", + "Password" : "Contrasinal", + "Root" : "Root (raíz)", + "Secure ftps://" : "ftps:// seguro", + "Client ID" : "ID do cliente", + "Client secret" : "Secreto do cliente", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Rexión (opcional para OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clave da API (obrigatoria para Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nome do inquilino (obrigatorio para OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contrasinal (obrigatorio para OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome do servizo (obrigatorio para OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL do punto final da identidade (obrigatorio para OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Caducidade, en segundos, das peticións HTTP", + "Share" : "Compartir", + "SMB / CIFS using OC login" : "SMB / CIFS usando acceso OC", + "Username as share" : "Nome de usuario como compartición", + "URL" : "URL", + "Secure https://" : "https:// seguro", + "Remote subfolder" : "Subcartafol remoto", + "Access granted" : "Concedeuse acceso", + "Error configuring Dropbox storage" : "Produciuse un erro ao configurar o almacenamento en Dropbox", + "Grant access" : "Permitir o acceso", + "Error configuring Google Drive storage" : "Produciuse un erro ao configurar o almacenamento en Google Drive", + "Personal" : "Persoal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos os usuarios. Escriba para selecionar usuario ou grupo.", + "(group)" : "(grupo)", + "Saved" : "Gardado", + "Note: " : "Nota: ", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", + "You don't have any external storages" : "Non ten ningún almacenamento externo", + "Name" : "Nome", + "Storage type" : "Tipo de almacenamento", + "Scope" : "Ámbito", + "External Storage" : "Almacenamento externo", + "Folder name" : "Nome do cartafol", + "Configuration" : "Configuración", + "Available for" : "Dispoñíbel para", + "Add storage" : "Engadir almacenamento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Activar o almacenamento externo do usuario", + "Allow users to mount the following external storage" : "Permitirlle aos usuarios montar o seguinte almacenamento externo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/gl.json b/apps/files_external/l10n/gl.json new file mode 100644 index 0000000000000000000000000000000000000000..549de28f9287de53ae06c7c43651c89c81d25735 --- /dev/null +++ b/apps/files_external/l10n/gl.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Fallou a obtención de marcas de petición. Comprobe que a chave e o código secreto da súa aplicación Dropbox son correctas.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Fallou a obtención de marcas de acceso. Comprobe que a chave e o código secreto da súa aplicación Dropbox son correctas.", + "Please provide a valid Dropbox app key and secret." : "Forneza unha chave correcta e segreda do Dropbox.", + "Step 1 failed. Exception: %s" : "Fallou o paso 1. Excepción: %s", + "Step 2 failed. Exception: %s" : "Fallou o paso 2. Excepción: %s", + "External storage" : "Almacenamento externo", + "Local" : "Local", + "Location" : "Localización", + "Amazon S3" : "Amazon S3", + "Key" : "Clave", + "Secret" : "Secreto", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 e compatíbeis", + "Access Key" : "Clave de acceso", + "Secret Key" : "Clave secreta", + "Hostname" : "Nome de máquina", + "Port" : "Porto", + "Region" : "Autonomía", + "Enable SSL" : "Activar SSL", + "Enable Path Style" : "Activar o estilo de ruta", + "App key" : "Clave da API", + "App secret" : "Secreto da aplicación", + "Host" : "Servidor", + "Username" : "Nome de usuario", + "Password" : "Contrasinal", + "Root" : "Root (raíz)", + "Secure ftps://" : "ftps:// seguro", + "Client ID" : "ID do cliente", + "Client secret" : "Secreto do cliente", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Rexión (opcional para OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Clave da API (obrigatoria para Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nome do inquilino (obrigatorio para OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Contrasinal (obrigatorio para OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome do servizo (obrigatorio para OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL do punto final da identidade (obrigatorio para OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Caducidade, en segundos, das peticións HTTP", + "Share" : "Compartir", + "SMB / CIFS using OC login" : "SMB / CIFS usando acceso OC", + "Username as share" : "Nome de usuario como compartición", + "URL" : "URL", + "Secure https://" : "https:// seguro", + "Remote subfolder" : "Subcartafol remoto", + "Access granted" : "Concedeuse acceso", + "Error configuring Dropbox storage" : "Produciuse un erro ao configurar o almacenamento en Dropbox", + "Grant access" : "Permitir o acceso", + "Error configuring Google Drive storage" : "Produciuse un erro ao configurar o almacenamento en Google Drive", + "Personal" : "Persoal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos os usuarios. Escriba para selecionar usuario ou grupo.", + "(group)" : "(grupo)", + "Saved" : "Gardado", + "Note: " : "Nota: ", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", + "You don't have any external storages" : "Non ten ningún almacenamento externo", + "Name" : "Nome", + "Storage type" : "Tipo de almacenamento", + "Scope" : "Ámbito", + "External Storage" : "Almacenamento externo", + "Folder name" : "Nome do cartafol", + "Configuration" : "Configuración", + "Available for" : "Dispoñíbel para", + "Add storage" : "Engadir almacenamento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Activar o almacenamento externo do usuario", + "Allow users to mount the following external storage" : "Permitirlle aos usuarios montar o seguinte almacenamento externo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/gl.php b/apps/files_external/l10n/gl.php deleted file mode 100644 index b5b6521796f24bec1d031a026ba2de6ff5efd0ce..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/gl.php +++ /dev/null @@ -1,69 +0,0 @@ - "Fallou a obtención de marcas de petición. Comprobe que a chave e o código secreto da súa aplicación Dropbox son correctas.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Fallou a obtención de marcas de acceso. Comprobe que a chave e o código secreto da súa aplicación Dropbox son correctas.", -"Please provide a valid Dropbox app key and secret." => "Forneza unha chave correcta e segreda do Dropbox.", -"Step 1 failed. Exception: %s" => "Fallou o paso 1. Excepción: %s", -"Step 2 failed. Exception: %s" => "Fallou o paso 2. Excepción: %s", -"External storage" => "Almacenamento externo", -"Local" => "Local", -"Location" => "Localización", -"Amazon S3" => "Amazon S3", -"Key" => "Clave", -"Secret" => "Secreto", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 e compatíbeis", -"Access Key" => "Clave de acceso", -"Secret Key" => "Clave secreta", -"Port" => "Porto", -"Region" => "Autonomía", -"Enable SSL" => "Activar SSL", -"Enable Path Style" => "Activar o estilo de ruta", -"App key" => "Clave da API", -"App secret" => "Secreto da aplicación", -"Host" => "Servidor", -"Username" => "Nome de usuario", -"Password" => "Contrasinal", -"Root" => "Root (raíz)", -"Secure ftps://" => "ftps:// seguro", -"Client ID" => "ID do cliente", -"Client secret" => "Secreto do cliente", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Rexión (opcional para OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "Clave da API (obrigatoria para Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Nome do inquilino (obrigatorio para OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Contrasinal (obrigatorio para OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nome do servizo (obrigatorio para OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL do punto final da identidade (obrigatorio para OpenStack Object Storage)", -"Share" => "Compartir", -"SMB / CIFS using OC login" => "SMB / CIFS usando acceso OC", -"Username as share" => "Nome de usuario como compartición", -"URL" => "URL", -"Secure https://" => "https:// seguro", -"Remote subfolder" => "Subcartafol remoto", -"Access granted" => "Concedeuse acceso", -"Error configuring Dropbox storage" => "Produciuse un erro ao configurar o almacenamento en Dropbox", -"Grant access" => "Permitir o acceso", -"Error configuring Google Drive storage" => "Produciuse un erro ao configurar o almacenamento en Google Drive", -"Personal" => "Persoal", -"System" => "Sistema", -"Saved" => "Gardado", -"Note: " => "Nota: ", -" and " => "e", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.", -"You don't have any external storages" => "Non ten ningún almacenamento externo", -"Name" => "Nome", -"Storage type" => "Tipo de almacenamento", -"Scope" => "Ámbito", -"External Storage" => "Almacenamento externo", -"Folder name" => "Nome do cartafol", -"Configuration" => "Configuración", -"Available for" => "Dispoñíbel para", -"Add storage" => "Engadir almacenamento", -"Delete" => "Eliminar", -"Enable User External Storage" => "Activar o almacenamento externo do usuario", -"Allow users to mount the following external storage" => "Permitirlle aos usuarios montar o seguinte almacenamento externo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/he.js b/apps/files_external/l10n/he.js new file mode 100644 index 0000000000000000000000000000000000000000..d9e903ff3edab73521b8c91a1fa9136f7aba8b63 --- /dev/null +++ b/apps/files_external/l10n/he.js @@ -0,0 +1,27 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "נא לספק קוד יישום וסוד תקניים של Dropbox.", + "Local" : "מקומי", + "Location" : "מיקום", + "Port" : "פורט", + "Region" : "אזור", + "Host" : "מארח", + "Username" : "שם משתמש", + "Password" : "סיסמא", + "Share" : "שיתוף", + "URL" : "כתובת", + "Access granted" : "הוענקה גישה", + "Error configuring Dropbox storage" : "אירעה שגיאה בעת הגדרת אחסון ב־Dropbox", + "Grant access" : "הענקת גישה", + "Error configuring Google Drive storage" : "אירעה שגיאה בעת הגדרת אחסון ב־Google Drive", + "Personal" : "אישי", + "Saved" : "נשמר", + "Name" : "שם", + "External Storage" : "אחסון חיצוני", + "Folder name" : "שם התיקייה", + "Configuration" : "הגדרות", + "Delete" : "מחיקה", + "Enable User External Storage" : "הפעלת אחסון חיצוני למשתמשים" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/he.json b/apps/files_external/l10n/he.json new file mode 100644 index 0000000000000000000000000000000000000000..fb8129383456006e05342584842cb92a7b0b495e --- /dev/null +++ b/apps/files_external/l10n/he.json @@ -0,0 +1,25 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "נא לספק קוד יישום וסוד תקניים של Dropbox.", + "Local" : "מקומי", + "Location" : "מיקום", + "Port" : "פורט", + "Region" : "אזור", + "Host" : "מארח", + "Username" : "שם משתמש", + "Password" : "סיסמא", + "Share" : "שיתוף", + "URL" : "כתובת", + "Access granted" : "הוענקה גישה", + "Error configuring Dropbox storage" : "אירעה שגיאה בעת הגדרת אחסון ב־Dropbox", + "Grant access" : "הענקת גישה", + "Error configuring Google Drive storage" : "אירעה שגיאה בעת הגדרת אחסון ב־Google Drive", + "Personal" : "אישי", + "Saved" : "נשמר", + "Name" : "שם", + "External Storage" : "אחסון חיצוני", + "Folder name" : "שם התיקייה", + "Configuration" : "הגדרות", + "Delete" : "מחיקה", + "Enable User External Storage" : "הפעלת אחסון חיצוני למשתמשים" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/he.php b/apps/files_external/l10n/he.php deleted file mode 100644 index 72365bffd73acd66ac878e311014636db858dfe6..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/he.php +++ /dev/null @@ -1,26 +0,0 @@ - "נא לספק קוד יישום וסוד תקניים של Dropbox.", -"Local" => "מקומי", -"Location" => "מיקום", -"Port" => "פורט", -"Region" => "אזור", -"Host" => "מארח", -"Username" => "שם משתמש", -"Password" => "סיסמא", -"Share" => "שיתוף", -"URL" => "כתובת", -"Access granted" => "הוענקה גישה", -"Error configuring Dropbox storage" => "אירעה שגיאה בעת הגדרת אחסון ב־Dropbox", -"Grant access" => "הענקת גישה", -"Error configuring Google Drive storage" => "אירעה שגיאה בעת הגדרת אחסון ב־Google Drive", -"Personal" => "אישי", -"Saved" => "נשמר", -"Name" => "שם", -"External Storage" => "אחסון חיצוני", -"Folder name" => "שם התיקייה", -"Configuration" => "הגדרות", -"Delete" => "מחיקה", -"Enable User External Storage" => "הפעלת אחסון חיצוני למשתמשים" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/hi.js b/apps/files_external/l10n/hi.js new file mode 100644 index 0000000000000000000000000000000000000000..97fcc0d1350520cd1e4e102288c237069843be48 --- /dev/null +++ b/apps/files_external/l10n/hi.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_external", + { + "Username" : "प्रयोक्ता का नाम", + "Password" : "पासवर्ड", + "Share" : "साझा करें", + "Personal" : "यक्तिगत" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/hi.json b/apps/files_external/l10n/hi.json new file mode 100644 index 0000000000000000000000000000000000000000..cee1bf9c5cce4ba41dacd510b0dea1d11225335e --- /dev/null +++ b/apps/files_external/l10n/hi.json @@ -0,0 +1,7 @@ +{ "translations": { + "Username" : "प्रयोक्ता का नाम", + "Password" : "पासवर्ड", + "Share" : "साझा करें", + "Personal" : "यक्तिगत" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/hi.php b/apps/files_external/l10n/hi.php deleted file mode 100644 index ca41287841efc46d2c05d5e38ff177690fb0f5b5..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/hi.php +++ /dev/null @@ -1,8 +0,0 @@ - "प्रयोक्ता का नाम", -"Password" => "पासवर्ड", -"Share" => "साझा करें", -"Personal" => "यक्तिगत" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/hr.js b/apps/files_external/l10n/hr.js new file mode 100644 index 0000000000000000000000000000000000000000..c166841d9c6cc162ec76f9dc963796b46bd9f24c --- /dev/null +++ b/apps/files_external/l10n/hr.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Dohvaćanje tokena zahtjeva nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Dohvaćanje pristupnog tokena nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", + "Please provide a valid Dropbox app key and secret." : "Molimo navedite ispravan ključ za aplikacije iz zajedničke mrežne mape i tajni kluč.", + "Step 1 failed. Exception: %s" : "Korak 1 nije uspio. Izuzetak: %s", + "Step 2 failed. Exception: %s" : "Korak 2 nije uspio. Izuzetak: %s", + "External storage" : "Vanjsko spremište za pohranu", + "Local" : "Lokalno", + "Location" : "Lokacija", + "Amazon S3" : "Amazon S3", + "Key" : "Ključ", + "Secret" : "Tajna", + "Bucket" : "Kantica", + "Amazon S3 and compliant" : "Amazon S3 i kompatibilno", + "Access Key" : "Pristupni ključ", + "Secret Key" : "Ključ za tajnu", + "Hostname" : "Naziv poslužitelja", + "Port" : "Port", + "Region" : "Regija", + "Enable SSL" : "Omogućite SSL", + "Enable Path Style" : "Omogućite Path Style", + "App key" : "Ključ za aplikacije", + "App secret" : "Tajna aplikacije", + "Host" : "Glavno računalo", + "Username" : "Korisničko ime", + "Password" : "Lozinka", + "Root" : "Korijen", + "Secure ftps://" : "Sigurni ftps://", + "Client ID" : "ID klijenta", + "Client secret" : "Klijentski tajni ključ", + "OpenStack Object Storage" : "Prostor za pohranu.....", + "Region (optional for OpenStack Object Storage)" : "Regija (neobavezno za OpenStack object storage", + "API Key (required for Rackspace Cloud Files)" : "API ključ (obavezno za Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Naziv korisnika (obavezno za OpenStack Object storage)", + "Password (required for OpenStack Object Storage)" : "Lozinka (obavezno za OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Naziv usluge (Obavezno za OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL krajnje točke identiteta (obavezno za OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Vrijeme isteka HTTP zahtjeva u sekundama", + "Share" : "Dijeljenje zhajedničkih resursa", + "SMB / CIFS using OC login" : "SMB / CIFS uz prijavu putem programa OC", + "Username as share" : "Korisničko ime kao dijeljeni resurs", + "URL" : "URL", + "Secure https://" : "Siguran https://", + "Remote subfolder" : "Udaljena podmapa", + "Access granted" : "Pristup odobren", + "Error configuring Dropbox storage" : "Pogreška pri konfiguriranju spremišta u zajedničkoj mrežnoj mapi", + "Grant access" : "Dodijeli pristup", + "Error configuring Google Drive storage" : "Pogreška pri konfiguriranju spremišta u Google Drive-u", + "Personal" : "Osobno", + "System" : "Sustav", + "All users. Type to select user or group." : "Svi korisnici. Započnite unos za izbor korisnika ili grupe.", + "(group)" : "(grupa)", + "Saved" : "Spremljeno", + "Note: " : "Bilješka:", + " and " : " i ", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: Podrška cURL u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svog administratora sustava da je instalira.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: Podrška FTP u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svotg administratora sustava da je instalira.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: \"%s\" nije instaliran. Postavljanje %s nije moguće. Molimo zamolitesvog administratora sustava da ga instalira.", + "You don't have any external storages" : "Vi nemate nikakvo vanjsko spremište", + "Name" : "Naziv", + "Storage type" : "Vrsta spremišta", + "Scope" : "Opseg", + "External Storage" : "Vanjsko spremište", + "Folder name" : "Naziv mape", + "Configuration" : "Konfiguracija", + "Available for" : "Dostupno za", + "Add storage" : "Dodajte spremište", + "Delete" : "Izbrišite", + "Enable User External Storage" : "Omogućite korisničko vanjsko spremište", + "Allow users to mount the following external storage" : "Dopustite korisnicima postavljanje sljedećeg vanjskog spremišta" +}, +"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/files_external/l10n/hr.json b/apps/files_external/l10n/hr.json new file mode 100644 index 0000000000000000000000000000000000000000..069af3fa6c8e05895723c7e24a03788b3549a10b --- /dev/null +++ b/apps/files_external/l10n/hr.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Dohvaćanje tokena zahtjeva nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Dohvaćanje pristupnog tokena nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", + "Please provide a valid Dropbox app key and secret." : "Molimo navedite ispravan ključ za aplikacije iz zajedničke mrežne mape i tajni kluč.", + "Step 1 failed. Exception: %s" : "Korak 1 nije uspio. Izuzetak: %s", + "Step 2 failed. Exception: %s" : "Korak 2 nije uspio. Izuzetak: %s", + "External storage" : "Vanjsko spremište za pohranu", + "Local" : "Lokalno", + "Location" : "Lokacija", + "Amazon S3" : "Amazon S3", + "Key" : "Ključ", + "Secret" : "Tajna", + "Bucket" : "Kantica", + "Amazon S3 and compliant" : "Amazon S3 i kompatibilno", + "Access Key" : "Pristupni ključ", + "Secret Key" : "Ključ za tajnu", + "Hostname" : "Naziv poslužitelja", + "Port" : "Port", + "Region" : "Regija", + "Enable SSL" : "Omogućite SSL", + "Enable Path Style" : "Omogućite Path Style", + "App key" : "Ključ za aplikacije", + "App secret" : "Tajna aplikacije", + "Host" : "Glavno računalo", + "Username" : "Korisničko ime", + "Password" : "Lozinka", + "Root" : "Korijen", + "Secure ftps://" : "Sigurni ftps://", + "Client ID" : "ID klijenta", + "Client secret" : "Klijentski tajni ključ", + "OpenStack Object Storage" : "Prostor za pohranu.....", + "Region (optional for OpenStack Object Storage)" : "Regija (neobavezno za OpenStack object storage", + "API Key (required for Rackspace Cloud Files)" : "API ključ (obavezno za Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Naziv korisnika (obavezno za OpenStack Object storage)", + "Password (required for OpenStack Object Storage)" : "Lozinka (obavezno za OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Naziv usluge (Obavezno za OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL krajnje točke identiteta (obavezno za OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Vrijeme isteka HTTP zahtjeva u sekundama", + "Share" : "Dijeljenje zhajedničkih resursa", + "SMB / CIFS using OC login" : "SMB / CIFS uz prijavu putem programa OC", + "Username as share" : "Korisničko ime kao dijeljeni resurs", + "URL" : "URL", + "Secure https://" : "Siguran https://", + "Remote subfolder" : "Udaljena podmapa", + "Access granted" : "Pristup odobren", + "Error configuring Dropbox storage" : "Pogreška pri konfiguriranju spremišta u zajedničkoj mrežnoj mapi", + "Grant access" : "Dodijeli pristup", + "Error configuring Google Drive storage" : "Pogreška pri konfiguriranju spremišta u Google Drive-u", + "Personal" : "Osobno", + "System" : "Sustav", + "All users. Type to select user or group." : "Svi korisnici. Započnite unos za izbor korisnika ili grupe.", + "(group)" : "(grupa)", + "Saved" : "Spremljeno", + "Note: " : "Bilješka:", + " and " : " i ", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: Podrška cURL u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svog administratora sustava da je instalira.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: Podrška FTP u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svotg administratora sustava da je instalira.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Note: \"%s\" nije instaliran. Postavljanje %s nije moguće. Molimo zamolitesvog administratora sustava da ga instalira.", + "You don't have any external storages" : "Vi nemate nikakvo vanjsko spremište", + "Name" : "Naziv", + "Storage type" : "Vrsta spremišta", + "Scope" : "Opseg", + "External Storage" : "Vanjsko spremište", + "Folder name" : "Naziv mape", + "Configuration" : "Konfiguracija", + "Available for" : "Dostupno za", + "Add storage" : "Dodajte spremište", + "Delete" : "Izbrišite", + "Enable User External Storage" : "Omogućite korisničko vanjsko spremište", + "Allow users to mount the following external storage" : "Dopustite korisnicima postavljanje sljedećeg vanjskog spremišta" +},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/hr.php b/apps/files_external/l10n/hr.php deleted file mode 100644 index 3e2f38675e0f3779dda7b119a619666bd6f957c9..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/hr.php +++ /dev/null @@ -1,73 +0,0 @@ - "Dohvaćanje tokena zahtjeva nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Dohvaćanje pristupnog tokena nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", -"Please provide a valid Dropbox app key and secret." => "Molimo navedite ispravan ključ za aplikacije iz zajedničke mrežne mape i tajni kluč.", -"Step 1 failed. Exception: %s" => "Korak 1 nije uspio. Izuzetak: %s", -"Step 2 failed. Exception: %s" => "Korak 2 nije uspio. Izuzetak: %s", -"External storage" => "Vanjsko spremište za pohranu", -"Local" => "Lokalno", -"Location" => "Lokacija", -"Amazon S3" => "Amazon S3", -"Key" => "Ključ", -"Secret" => "Tajna", -"Bucket" => "Kantica", -"Amazon S3 and compliant" => "Amazon S3 i kompatibilno", -"Access Key" => "Pristupni ključ", -"Secret Key" => "Ključ za tajnu", -"Hostname" => "Naziv poslužitelja", -"Port" => "Port", -"Region" => "Regija", -"Enable SSL" => "Omogućite SSL", -"Enable Path Style" => "Omogućite Path Style", -"App key" => "Ključ za aplikacije", -"App secret" => "Tajna aplikacije", -"Host" => "Glavno računalo", -"Username" => "Korisničko ime", -"Password" => "Lozinka", -"Root" => "Korijen", -"Secure ftps://" => "Sigurni ftps://", -"Client ID" => "ID klijenta", -"Client secret" => "Klijentski tajni ključ", -"OpenStack Object Storage" => "Prostor za pohranu.....", -"Region (optional for OpenStack Object Storage)" => "Regija (neobavezno za OpenStack object storage", -"API Key (required for Rackspace Cloud Files)" => "API ključ (obavezno za Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Naziv korisnika (obavezno za OpenStack Object storage)", -"Password (required for OpenStack Object Storage)" => "Lozinka (obavezno za OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Naziv usluge (Obavezno za OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL krajnje točke identiteta (obavezno za OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Vrijeme isteka HTTP zahtjeva u sekundama", -"Share" => "Dijeljenje zhajedničkih resursa", -"SMB / CIFS using OC login" => "SMB / CIFS uz prijavu putem programa OC", -"Username as share" => "Korisničko ime kao dijeljeni resurs", -"URL" => "URL", -"Secure https://" => "Siguran https://", -"Remote subfolder" => "Udaljena podmapa", -"Access granted" => "Pristup odobren", -"Error configuring Dropbox storage" => "Pogreška pri konfiguriranju spremišta u zajedničkoj mrežnoj mapi", -"Grant access" => "Dodijeli pristup", -"Error configuring Google Drive storage" => "Pogreška pri konfiguriranju spremišta u Google Drive-u", -"Personal" => "Osobno", -"System" => "Sustav", -"All users. Type to select user or group." => "Svi korisnici. Započnite unos za izbor korisnika ili grupe.", -"(group)" => "(grupa)", -"Saved" => "Spremljeno", -"Note: " => "Bilješka:", -" and " => " i ", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: Podrška cURL u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svog administratora sustava da je instalira.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: Podrška FTP u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svotg administratora sustava da je instalira.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Note: \"%s\" nije instaliran. Postavljanje %s nije moguće. Molimo zamolitesvog administratora sustava da ga instalira.", -"You don't have any external storages" => "Vi nemate nikakvo vanjsko spremište", -"Name" => "Naziv", -"Storage type" => "Vrsta spremišta", -"Scope" => "Opseg", -"External Storage" => "Vanjsko spremište", -"Folder name" => "Naziv mape", -"Configuration" => "Konfiguracija", -"Available for" => "Dostupno za", -"Add storage" => "Dodajte spremište", -"Delete" => "Izbrišite", -"Enable User External Storage" => "Omogućite korisničko vanjsko spremište", -"Allow users to mount the following external storage" => "Dopustite korisnicima postavljanje sljedećeg vanjskog spremišta" -); -$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;"; diff --git a/apps/files_external/l10n/hu_HU.js b/apps/files_external/l10n/hu_HU.js new file mode 100644 index 0000000000000000000000000000000000000000..bf2e0badb203fb25ca2d5c9b39050dab8411933e --- /dev/null +++ b/apps/files_external/l10n/hu_HU.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Adjon meg egy érvényes Dropbox app key-t és secretet!", + "External storage" : "Külső tárolók", + "Local" : "Helyi", + "Location" : "Hely", + "Port" : "Port", + "Region" : "Megye", + "Host" : "Kiszolgáló", + "Username" : "Felhasználónév", + "Password" : "Jelszó", + "Share" : "Megosztás", + "URL" : "URL", + "Access granted" : "Érvényes hozzáférés", + "Error configuring Dropbox storage" : "A Dropbox tárolót nem sikerült beállítani", + "Grant access" : "Megadom a hozzáférést", + "Error configuring Google Drive storage" : "A Google Drive tárolót nem sikerült beállítani", + "Personal" : "Személyes", + "Saved" : "Elmentve", + "Name" : "Név", + "External Storage" : "Külső tárolási szolgáltatások becsatolása", + "Folder name" : "Mappanév", + "Configuration" : "Beállítások", + "Add storage" : "Tároló becsatolása", + "Delete" : "Törlés", + "Enable User External Storage" : "Külső tárolók engedélyezése a felhasználók részére" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/hu_HU.json b/apps/files_external/l10n/hu_HU.json new file mode 100644 index 0000000000000000000000000000000000000000..430188e2144259ae811ed304a0bcd6c4dbb68f9a --- /dev/null +++ b/apps/files_external/l10n/hu_HU.json @@ -0,0 +1,27 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Adjon meg egy érvényes Dropbox app key-t és secretet!", + "External storage" : "Külső tárolók", + "Local" : "Helyi", + "Location" : "Hely", + "Port" : "Port", + "Region" : "Megye", + "Host" : "Kiszolgáló", + "Username" : "Felhasználónév", + "Password" : "Jelszó", + "Share" : "Megosztás", + "URL" : "URL", + "Access granted" : "Érvényes hozzáférés", + "Error configuring Dropbox storage" : "A Dropbox tárolót nem sikerült beállítani", + "Grant access" : "Megadom a hozzáférést", + "Error configuring Google Drive storage" : "A Google Drive tárolót nem sikerült beállítani", + "Personal" : "Személyes", + "Saved" : "Elmentve", + "Name" : "Név", + "External Storage" : "Külső tárolási szolgáltatások becsatolása", + "Folder name" : "Mappanév", + "Configuration" : "Beállítások", + "Add storage" : "Tároló becsatolása", + "Delete" : "Törlés", + "Enable User External Storage" : "Külső tárolók engedélyezése a felhasználók részére" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/hu_HU.php b/apps/files_external/l10n/hu_HU.php deleted file mode 100644 index 4e462b94df92fcb7e932b5f020fc8915608be449..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/hu_HU.php +++ /dev/null @@ -1,28 +0,0 @@ - "Adjon meg egy érvényes Dropbox app key-t és secretet!", -"External storage" => "Külső tárolók", -"Local" => "Helyi", -"Location" => "Hely", -"Port" => "Port", -"Region" => "Megye", -"Host" => "Kiszolgáló", -"Username" => "Felhasználónév", -"Password" => "Jelszó", -"Share" => "Megosztás", -"URL" => "URL", -"Access granted" => "Érvényes hozzáférés", -"Error configuring Dropbox storage" => "A Dropbox tárolót nem sikerült beállítani", -"Grant access" => "Megadom a hozzáférést", -"Error configuring Google Drive storage" => "A Google Drive tárolót nem sikerült beállítani", -"Personal" => "Személyes", -"Saved" => "Elmentve", -"Name" => "Név", -"External Storage" => "Külső tárolási szolgáltatások becsatolása", -"Folder name" => "Mappanév", -"Configuration" => "Beállítások", -"Add storage" => "Tároló becsatolása", -"Delete" => "Törlés", -"Enable User External Storage" => "Külső tárolók engedélyezése a felhasználók részére" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/hy.js b/apps/files_external/l10n/hy.js new file mode 100644 index 0000000000000000000000000000000000000000..00c24e3f92a9d6d19cde1b2474ec57f19ef3b1f0 --- /dev/null +++ b/apps/files_external/l10n/hy.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_external", + { + "Delete" : "Ջնջել" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/hy.json b/apps/files_external/l10n/hy.json new file mode 100644 index 0000000000000000000000000000000000000000..081a2c5f49e6996c9ba91b7c7363f4e027fb2c58 --- /dev/null +++ b/apps/files_external/l10n/hy.json @@ -0,0 +1,4 @@ +{ "translations": { + "Delete" : "Ջնջել" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/hy.php b/apps/files_external/l10n/hy.php deleted file mode 100644 index f933bec8feb91959b1303f8d028dda1c815ccf3e..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/hy.php +++ /dev/null @@ -1,5 +0,0 @@ - "Ջնջել" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/ia.js b/apps/files_external/l10n/ia.js new file mode 100644 index 0000000000000000000000000000000000000000..f6dfe61009c4e77e9a2ab2afdfb39bbb7a64d5ae --- /dev/null +++ b/apps/files_external/l10n/ia.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Loco", + "Region" : "Region", + "Username" : "Nomine de usator", + "Password" : "Contrasigno", + "Share" : "Compartir", + "URL" : "URL", + "Personal" : "Personal", + "Saved" : "Salveguardate", + "Name" : "Nomine", + "Folder name" : "Nomine de dossier", + "Delete" : "Deler" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/ia.json b/apps/files_external/l10n/ia.json new file mode 100644 index 0000000000000000000000000000000000000000..64eefa5dff3e9e161f3b1ba653d773d8192047d5 --- /dev/null +++ b/apps/files_external/l10n/ia.json @@ -0,0 +1,14 @@ +{ "translations": { + "Location" : "Loco", + "Region" : "Region", + "Username" : "Nomine de usator", + "Password" : "Contrasigno", + "Share" : "Compartir", + "URL" : "URL", + "Personal" : "Personal", + "Saved" : "Salveguardate", + "Name" : "Nomine", + "Folder name" : "Nomine de dossier", + "Delete" : "Deler" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ia.php b/apps/files_external/l10n/ia.php deleted file mode 100644 index a3ebcf5183bdf42d3f8144bd0804b1e5066fbfce..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ia.php +++ /dev/null @@ -1,15 +0,0 @@ - "Loco", -"Region" => "Region", -"Username" => "Nomine de usator", -"Password" => "Contrasigno", -"Share" => "Compartir", -"URL" => "URL", -"Personal" => "Personal", -"Saved" => "Salveguardate", -"Name" => "Nomine", -"Folder name" => "Nomine de dossier", -"Delete" => "Deler" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js new file mode 100644 index 0000000000000000000000000000000000000000..8b0f4f28fbcf72d57740ae2257b85581c85df7e0 --- /dev/null +++ b/apps/files_external/l10n/id.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Permintaan untuk mengambil token gagal. Pastikan kunci dan rahasia apl Dropbox Anda sudah benar.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Akses untuk mengambil token gagal. Pastikan kunci dan rahasia apl Dropbox Anda sudah benar.", + "Please provide a valid Dropbox app key and secret." : "Masukkan kunci dan rahasia aplikasi Dropbox yang benar.", + "Step 1 failed. Exception: %s" : "Langkah 1 gagal. Kecuali: %s", + "Step 2 failed. Exception: %s" : "Langkah 2 gagal. Kecuali: %s", + "External storage" : "Penyimpanan eksternal", + "Local" : "Lokal", + "Location" : "lokasi", + "Amazon S3" : "Amazon S3", + "Key" : "Kunci", + "Secret" : "Rahasia", + "Bucket" : "Keranjang", + "Amazon S3 and compliant" : "Amazon S3 dan yang sesuai", + "Access Key" : "Kunci Akses", + "Secret Key" : "Kunci Rahasia", + "Hostname" : "Nama Host", + "Port" : "Port", + "Region" : "Daerah", + "Enable SSL" : "Aktifkan SSL", + "Enable Path Style" : "Aktifkan Gaya Path", + "App key" : "Kunci Apl", + "App secret" : "Rahasia Apl", + "Host" : "Host", + "Username" : "Nama Pengguna", + "Password" : "Sandi", + "Root" : "Root", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "ID Klien", + "Client secret" : "Rahasia klien", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Daerah (tambahan untuk OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Kunci API (diperlukan untuk Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (diperlukan untuk OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Sandi (diperlukan untuk OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nama Layanan (diperlukan untuk OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (diperlukan untuk OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Batas waktu permintaan HTTP dalam detik", + "Share" : "Bagikan", + "SMB / CIFS using OC login" : "SMB / CIFS menggunakan OC login", + "Username as share" : "Nama pengguna berbagi", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Subfolder remote", + "Access granted" : "Akses diberikan", + "Error configuring Dropbox storage" : "Kesalahan dalam mengonfigurasi penyimpanan Dropbox", + "Grant access" : "Berikan hak akses", + "Error configuring Google Drive storage" : "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive", + "Personal" : "Pribadi", + "System" : "Sistem", + "All users. Type to select user or group." : "Semua pengguna. Ketik untuk memilih pengguna atau grup.", + "(group)" : "(grup)", + "Saved" : "Disimpan", + "Note: " : "Catatan: ", + " and " : "dan", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Catatan: Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Catatan: Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Catatan: \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.", + "You don't have any external storages" : "Anda tidak memiliki penyimpanan eksternal", + "Name" : "Nama", + "Storage type" : "Tipe penyimpanan", + "Scope" : "Skop", + "External Storage" : "Penyimpanan Eksternal", + "Folder name" : "Nama folder", + "Configuration" : "Konfigurasi", + "Available for" : "Tersedia untuk", + "Add storage" : "Tambahkan penyimpanan", + "Delete" : "Hapus", + "Enable User External Storage" : "Aktifkan Penyimpanan Eksternal Pengguna", + "Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json new file mode 100644 index 0000000000000000000000000000000000000000..8f8179d7627df5faaf5a9884c9d8e1fb25eff373 --- /dev/null +++ b/apps/files_external/l10n/id.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Permintaan untuk mengambil token gagal. Pastikan kunci dan rahasia apl Dropbox Anda sudah benar.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Akses untuk mengambil token gagal. Pastikan kunci dan rahasia apl Dropbox Anda sudah benar.", + "Please provide a valid Dropbox app key and secret." : "Masukkan kunci dan rahasia aplikasi Dropbox yang benar.", + "Step 1 failed. Exception: %s" : "Langkah 1 gagal. Kecuali: %s", + "Step 2 failed. Exception: %s" : "Langkah 2 gagal. Kecuali: %s", + "External storage" : "Penyimpanan eksternal", + "Local" : "Lokal", + "Location" : "lokasi", + "Amazon S3" : "Amazon S3", + "Key" : "Kunci", + "Secret" : "Rahasia", + "Bucket" : "Keranjang", + "Amazon S3 and compliant" : "Amazon S3 dan yang sesuai", + "Access Key" : "Kunci Akses", + "Secret Key" : "Kunci Rahasia", + "Hostname" : "Nama Host", + "Port" : "Port", + "Region" : "Daerah", + "Enable SSL" : "Aktifkan SSL", + "Enable Path Style" : "Aktifkan Gaya Path", + "App key" : "Kunci Apl", + "App secret" : "Rahasia Apl", + "Host" : "Host", + "Username" : "Nama Pengguna", + "Password" : "Sandi", + "Root" : "Root", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "ID Klien", + "Client secret" : "Rahasia klien", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Daerah (tambahan untuk OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Kunci API (diperlukan untuk Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (diperlukan untuk OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Sandi (diperlukan untuk OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nama Layanan (diperlukan untuk OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (diperlukan untuk OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Batas waktu permintaan HTTP dalam detik", + "Share" : "Bagikan", + "SMB / CIFS using OC login" : "SMB / CIFS menggunakan OC login", + "Username as share" : "Nama pengguna berbagi", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Subfolder remote", + "Access granted" : "Akses diberikan", + "Error configuring Dropbox storage" : "Kesalahan dalam mengonfigurasi penyimpanan Dropbox", + "Grant access" : "Berikan hak akses", + "Error configuring Google Drive storage" : "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive", + "Personal" : "Pribadi", + "System" : "Sistem", + "All users. Type to select user or group." : "Semua pengguna. Ketik untuk memilih pengguna atau grup.", + "(group)" : "(grup)", + "Saved" : "Disimpan", + "Note: " : "Catatan: ", + " and " : "dan", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Catatan: Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Catatan: Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Catatan: \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.", + "You don't have any external storages" : "Anda tidak memiliki penyimpanan eksternal", + "Name" : "Nama", + "Storage type" : "Tipe penyimpanan", + "Scope" : "Skop", + "External Storage" : "Penyimpanan Eksternal", + "Folder name" : "Nama folder", + "Configuration" : "Konfigurasi", + "Available for" : "Tersedia untuk", + "Add storage" : "Tambahkan penyimpanan", + "Delete" : "Hapus", + "Enable User External Storage" : "Aktifkan Penyimpanan Eksternal Pengguna", + "Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/id.php b/apps/files_external/l10n/id.php deleted file mode 100644 index 51c9236caf00d177b346a8d28f53563731a7fa75..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/id.php +++ /dev/null @@ -1,38 +0,0 @@ - "Masukkan kunci dan sandi aplikasi Dropbox yang benar.", -"External storage" => "Penyimpanan eksternal", -"Local" => "Lokal", -"Location" => "lokasi", -"Amazon S3" => "Amazon S3", -"Port" => "port", -"Region" => "daerah", -"Enable SSL" => "Aktifkan SSL", -"Host" => "Host", -"Username" => "Nama Pengguna", -"Password" => "Sandi", -"Root" => "Root", -"Share" => "Bagikan", -"URL" => "tautan", -"Access granted" => "Akses diberikan", -"Error configuring Dropbox storage" => "Kesalahan dalam mengonfigurasi penyimpanan Dropbox", -"Grant access" => "Berikan hak akses", -"Error configuring Google Drive storage" => "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive", -"Personal" => "Pribadi", -"Saved" => "Disimpan", -"Note: " => "Catatan: ", -" and " => "dan", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Catatan: Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan tanyakan ke administrator sistem Anda untuk menginstalnya.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Catatan: Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan tanyakan ke administrator sistem Anda untuk menginstalnya.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Catatan: \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan tanyakan ke administrator sistem Anda untuk menginstalnya.", -"Name" => "Nama", -"External Storage" => "Penyimpanan Eksternal", -"Folder name" => "Nama folder", -"Configuration" => "Konfigurasi", -"Available for" => "Tersedia untuk", -"Add storage" => "Tambahkan penyimpanan", -"Delete" => "Hapus", -"Enable User External Storage" => "Aktifkan Penyimpanan Eksternal Pengguna", -"Allow users to mount the following external storage" => "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/is.js b/apps/files_external/l10n/is.js new file mode 100644 index 0000000000000000000000000000000000000000..0ef3945c353b41019977b2b723eb94fd9176b64d --- /dev/null +++ b/apps/files_external/l10n/is.js @@ -0,0 +1,23 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Gefðu upp virkan Dropbox lykil og leynikóða", + "Location" : "Staðsetning", + "Host" : "Netþjónn", + "Username" : "Notendanafn", + "Password" : "Lykilorð", + "Share" : "Deila", + "URL" : "URL", + "Access granted" : "Aðgengi veitt", + "Error configuring Dropbox storage" : "Villa við að setja upp Dropbox gagnasvæði", + "Grant access" : "Veita aðgengi", + "Error configuring Google Drive storage" : "Villa kom upp við að setja upp Google Drive gagnasvæði", + "Personal" : "Um mig", + "Name" : "Nafn", + "External Storage" : "Ytri gagnageymsla", + "Folder name" : "Nafn möppu", + "Configuration" : "Uppsetning", + "Delete" : "Eyða", + "Enable User External Storage" : "Virkja ytra gagnasvæði notenda" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/is.json b/apps/files_external/l10n/is.json new file mode 100644 index 0000000000000000000000000000000000000000..c5d55bea9cef294d69ba4395eaf74b48e8be92ef --- /dev/null +++ b/apps/files_external/l10n/is.json @@ -0,0 +1,21 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Gefðu upp virkan Dropbox lykil og leynikóða", + "Location" : "Staðsetning", + "Host" : "Netþjónn", + "Username" : "Notendanafn", + "Password" : "Lykilorð", + "Share" : "Deila", + "URL" : "URL", + "Access granted" : "Aðgengi veitt", + "Error configuring Dropbox storage" : "Villa við að setja upp Dropbox gagnasvæði", + "Grant access" : "Veita aðgengi", + "Error configuring Google Drive storage" : "Villa kom upp við að setja upp Google Drive gagnasvæði", + "Personal" : "Um mig", + "Name" : "Nafn", + "External Storage" : "Ytri gagnageymsla", + "Folder name" : "Nafn möppu", + "Configuration" : "Uppsetning", + "Delete" : "Eyða", + "Enable User External Storage" : "Virkja ytra gagnasvæði notenda" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/is.php b/apps/files_external/l10n/is.php deleted file mode 100644 index 98cee7d8fb310280aa4eb81e9dc463bbd4365142..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/is.php +++ /dev/null @@ -1,22 +0,0 @@ - "Gefðu upp virkan Dropbox lykil og leynikóða", -"Location" => "Staðsetning", -"Host" => "Netþjónn", -"Username" => "Notendanafn", -"Password" => "Lykilorð", -"Share" => "Deila", -"URL" => "URL", -"Access granted" => "Aðgengi veitt", -"Error configuring Dropbox storage" => "Villa við að setja upp Dropbox gagnasvæði", -"Grant access" => "Veita aðgengi", -"Error configuring Google Drive storage" => "Villa kom upp við að setja upp Google Drive gagnasvæði", -"Personal" => "Um mig", -"Name" => "Nafn", -"External Storage" => "Ytri gagnageymsla", -"Folder name" => "Nafn möppu", -"Configuration" => "Uppsetning", -"Delete" => "Eyða", -"Enable User External Storage" => "Virkja ytra gagnasvæði notenda" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js new file mode 100644 index 0000000000000000000000000000000000000000..5834ff25f0b0df1ed77dd279d9627ce88c685022 --- /dev/null +++ b/apps/files_external/l10n/it.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Il recupero dei token di richiesta non è riuscito. Verifica che la chiave e il segreto dell'applicazione Dropbox siano corretti.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Il recupero dei token di accesso non è riuscito. Verifica che la chiave e il segreto dell'applicazione Dropbox siano corretti.", + "Please provide a valid Dropbox app key and secret." : "Fornisci chiave di applicazione e segreto di Dropbox validi.", + "Step 1 failed. Exception: %s" : "Fase 1 non riuscita. Eccezione: %s", + "Step 2 failed. Exception: %s" : "Fase 2 non riuscita. Eccezione: %s", + "External storage" : "Archiviazione esterna", + "Local" : "Locale", + "Location" : "Posizione", + "Amazon S3" : "Amazon S3", + "Key" : "Chiave", + "Secret" : "Segreto", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 e conformi", + "Access Key" : "Chiave di accesso", + "Secret Key" : "Chiave segreta", + "Hostname" : "Nome host", + "Port" : "Porta", + "Region" : "Regione", + "Enable SSL" : "Abilita SSL", + "Enable Path Style" : "Abilita stile percorsi", + "App key" : "Chiave applicazione", + "App secret" : "Segreto applicazione", + "Host" : "Host", + "Username" : "Nome utente", + "Password" : "Password", + "Root" : "Radice", + "Secure ftps://" : "Sicuro ftps://", + "Client ID" : "ID client", + "Client secret" : "Segreto del client", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regione (facoltativa per OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Chiave API (richiesta per Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nome tenant (richiesto per OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Password (richiesta per OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome servizio (richiesta per OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL del servizio di identità (richiesto per OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tempo massimo in secondi delle richieste HTTP", + "Share" : "Condividi", + "SMB / CIFS using OC login" : "SMB / CIFS utilizzando le credenziali di OC", + "Username as share" : "Nome utente come condivisione", + "URL" : "URL", + "Secure https://" : "Sicuro https://", + "Remote subfolder" : "Sottocartella remota", + "Access granted" : "Accesso consentito", + "Error configuring Dropbox storage" : "Errore durante la configurazione dell'archivio Dropbox", + "Grant access" : "Concedi l'accesso", + "Error configuring Google Drive storage" : "Errore durante la configurazione dell'archivio Google Drive", + "Personal" : "Personale", + "System" : "Sistema", + "All users. Type to select user or group." : "Tutti gli utenti. Digita per selezionare utente o gruppo.", + "(group)" : "(gruppo)", + "Saved" : "Salvato", + "Note: " : "Nota:", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", + "You don't have any external storages" : "Non è disponibile alcuna archiviazione esterna", + "Name" : "Nome", + "Storage type" : "Tipo di archiviazione", + "Scope" : "Ambito", + "External Storage" : "Archiviazione esterna", + "Folder name" : "Nome della cartella", + "Configuration" : "Configurazione", + "Available for" : "Disponibile per", + "Add storage" : "Aggiungi archiviazione", + "Delete" : "Elimina", + "Enable User External Storage" : "Abilita la memoria esterna dell'utente", + "Allow users to mount the following external storage" : "Consenti agli utenti di montare la seguente memoria esterna" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json new file mode 100644 index 0000000000000000000000000000000000000000..b780cae57a6346da1888c1e15aab16509f3ac4ad --- /dev/null +++ b/apps/files_external/l10n/it.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Il recupero dei token di richiesta non è riuscito. Verifica che la chiave e il segreto dell'applicazione Dropbox siano corretti.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Il recupero dei token di accesso non è riuscito. Verifica che la chiave e il segreto dell'applicazione Dropbox siano corretti.", + "Please provide a valid Dropbox app key and secret." : "Fornisci chiave di applicazione e segreto di Dropbox validi.", + "Step 1 failed. Exception: %s" : "Fase 1 non riuscita. Eccezione: %s", + "Step 2 failed. Exception: %s" : "Fase 2 non riuscita. Eccezione: %s", + "External storage" : "Archiviazione esterna", + "Local" : "Locale", + "Location" : "Posizione", + "Amazon S3" : "Amazon S3", + "Key" : "Chiave", + "Secret" : "Segreto", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 e conformi", + "Access Key" : "Chiave di accesso", + "Secret Key" : "Chiave segreta", + "Hostname" : "Nome host", + "Port" : "Porta", + "Region" : "Regione", + "Enable SSL" : "Abilita SSL", + "Enable Path Style" : "Abilita stile percorsi", + "App key" : "Chiave applicazione", + "App secret" : "Segreto applicazione", + "Host" : "Host", + "Username" : "Nome utente", + "Password" : "Password", + "Root" : "Radice", + "Secure ftps://" : "Sicuro ftps://", + "Client ID" : "ID client", + "Client secret" : "Segreto del client", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regione (facoltativa per OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Chiave API (richiesta per Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Nome tenant (richiesto per OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Password (richiesta per OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome servizio (richiesta per OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL del servizio di identità (richiesto per OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tempo massimo in secondi delle richieste HTTP", + "Share" : "Condividi", + "SMB / CIFS using OC login" : "SMB / CIFS utilizzando le credenziali di OC", + "Username as share" : "Nome utente come condivisione", + "URL" : "URL", + "Secure https://" : "Sicuro https://", + "Remote subfolder" : "Sottocartella remota", + "Access granted" : "Accesso consentito", + "Error configuring Dropbox storage" : "Errore durante la configurazione dell'archivio Dropbox", + "Grant access" : "Concedi l'accesso", + "Error configuring Google Drive storage" : "Errore durante la configurazione dell'archivio Google Drive", + "Personal" : "Personale", + "System" : "Sistema", + "All users. Type to select user or group." : "Tutti gli utenti. Digita per selezionare utente o gruppo.", + "(group)" : "(gruppo)", + "Saved" : "Salvato", + "Note: " : "Nota:", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", + "You don't have any external storages" : "Non è disponibile alcuna archiviazione esterna", + "Name" : "Nome", + "Storage type" : "Tipo di archiviazione", + "Scope" : "Ambito", + "External Storage" : "Archiviazione esterna", + "Folder name" : "Nome della cartella", + "Configuration" : "Configurazione", + "Available for" : "Disponibile per", + "Add storage" : "Aggiungi archiviazione", + "Delete" : "Elimina", + "Enable User External Storage" : "Abilita la memoria esterna dell'utente", + "Allow users to mount the following external storage" : "Consenti agli utenti di montare la seguente memoria esterna" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/it.php b/apps/files_external/l10n/it.php deleted file mode 100644 index 5170def1f86536c00ad18d743f4a3560379f5cb1..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/it.php +++ /dev/null @@ -1,73 +0,0 @@ - "Il recupero dei token di richiesta non è riuscito. Verifica che la chiave e il segreto dell'applicazione Dropbox siano corretti.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Il recupero dei token di accesso non è riuscito. Verifica che la chiave e il segreto dell'applicazione Dropbox siano corretti.", -"Please provide a valid Dropbox app key and secret." => "Fornisci chiave di applicazione e segreto di Dropbox validi.", -"Step 1 failed. Exception: %s" => "Fase 1 non riuscita. Eccezione: %s", -"Step 2 failed. Exception: %s" => "Fase 2 non riuscita. Eccezione: %s", -"External storage" => "Archiviazione esterna", -"Local" => "Locale", -"Location" => "Posizione", -"Amazon S3" => "Amazon S3", -"Key" => "Chiave", -"Secret" => "Segreto", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 e conformi", -"Access Key" => "Chiave di accesso", -"Secret Key" => "Chiave segreta", -"Hostname" => "Nome host", -"Port" => "Porta", -"Region" => "Regione", -"Enable SSL" => "Abilita SSL", -"Enable Path Style" => "Abilita stile percorsi", -"App key" => "Chiave applicazione", -"App secret" => "Segreto applicazione", -"Host" => "Host", -"Username" => "Nome utente", -"Password" => "Password", -"Root" => "Radice", -"Secure ftps://" => "Sicuro ftps://", -"Client ID" => "ID client", -"Client secret" => "Segreto del client", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Regione (facoltativa per OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "Chiave API (richiesta per Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Nome tenant (richiesto per OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Password (richiesta per OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nome servizio (richiesta per OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL del servizio di identità (richiesto per OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Tempo massimo in secondi delle richieste HTTP", -"Share" => "Condividi", -"SMB / CIFS using OC login" => "SMB / CIFS utilizzando le credenziali di OC", -"Username as share" => "Nome utente come condivisione", -"URL" => "URL", -"Secure https://" => "Sicuro https://", -"Remote subfolder" => "Sottocartella remota", -"Access granted" => "Accesso consentito", -"Error configuring Dropbox storage" => "Errore durante la configurazione dell'archivio Dropbox", -"Grant access" => "Concedi l'accesso", -"Error configuring Google Drive storage" => "Errore durante la configurazione dell'archivio Google Drive", -"Personal" => "Personale", -"System" => "Sistema", -"All users. Type to select user or group." => "Tutti gli utenti. Digita per selezionare utente o gruppo.", -"(group)" => "(gruppo)", -"Saved" => "Salvato", -"Note: " => "Nota:", -" and " => "e", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", -"You don't have any external storages" => "Non è disponibile alcuna archiviazione esterna", -"Name" => "Nome", -"Storage type" => "Tipo di archiviazione", -"Scope" => "Ambito", -"External Storage" => "Archiviazione esterna", -"Folder name" => "Nome della cartella", -"Configuration" => "Configurazione", -"Available for" => "Disponibile per", -"Add storage" => "Aggiungi archiviazione", -"Delete" => "Elimina", -"Enable User External Storage" => "Abilita la memoria esterna dell'utente", -"Allow users to mount the following external storage" => "Consenti agli utenti di montare la seguente memoria esterna" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js new file mode 100644 index 0000000000000000000000000000000000000000..d4ef6347664576f817d6551154fb8a48e57d5d44 --- /dev/null +++ b/apps/files_external/l10n/ja.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "リクエストトークンの取得に失敗しました。Dropboxアプリのキーとパスワードが正しいことを確認してください。", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "アクセストークンの取得に失敗しました。Dropboxアプリのキーとパスワードが正しいことを確認してください。", + "Please provide a valid Dropbox app key and secret." : "有効なDropboxアプリのキーとパスワードを入力してください。", + "Step 1 failed. Exception: %s" : "ステップ 1 の実行に失敗しました。例外: %s", + "Step 2 failed. Exception: %s" : "ステップ 2 の実行に失敗しました。例外: %s", + "External storage" : "外部ストレージ", + "Local" : "ローカル", + "Location" : "位置", + "Amazon S3" : "Amazon S3", + "Key" : "キー", + "Secret" : "シークレットキー", + "Bucket" : "バケット名", + "Amazon S3 and compliant" : "Amazon S3 と互換ストレージ", + "Access Key" : "アクセスキー", + "Secret Key" : "シークレットキー", + "Hostname" : "ホスト名", + "Port" : "ポート", + "Region" : "都道府県", + "Enable SSL" : "SSLを有効", + "Enable Path Style" : "パス形式を有効", + "App key" : "アプリキー", + "App secret" : "アプリシークレット", + "Host" : "ホスト", + "Username" : "ユーザー名", + "Password" : "パスワード", + "Root" : "ルート", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "クライアントID", + "Client secret" : "クライアント秘密キー", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "リージョン (OpenStack Object Storage用のオプション)", + "API Key (required for Rackspace Cloud Files)" : "APIキー (Rackspace Cloud Filesに必須)", + "Tenantname (required for OpenStack Object Storage)" : "テナント名 (OpenStack Object Storage用に必要)", + "Password (required for OpenStack Object Storage)" : "パスワード (OpenStack Object Storage用に必要)", + "Service Name (required for OpenStack Object Storage)" : "サービス名 (OpenStack Object Storage用に必要)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "識別用エンドポイントURL (OpenStack Object Storage用に必要)", + "Timeout of HTTP requests in seconds" : "HTTP接続タイムアウト秒数", + "Share" : "共有", + "SMB / CIFS using OC login" : "ownCloudログインで SMB/CIFSを使用", + "Username as share" : "共有名", + "URL" : "URL", + "Secure https://" : "セキュア https://", + "Remote subfolder" : "リモートサブフォルダー", + "Access granted" : "アクセスは許可されました", + "Error configuring Dropbox storage" : "Dropboxストレージの設定エラー", + "Grant access" : "アクセスを許可", + "Error configuring Google Drive storage" : "Googleドライブストレージの設定エラー", + "Personal" : "個人", + "System" : "システム", + "All users. Type to select user or group." : "すべてのユーザー.ユーザー、グループを追加", + "(group)" : "(グループ)", + "Saved" : "保存されました", + "Note: " : "注意: ", + " and " : "と", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "注意: PHPにcURLのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "注意: PHPにFTPのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "注意: \"%s\" がインストールされていません。%sをマウントできません。このシステムの管理者にインストールをお願いしてください。", + "You don't have any external storages" : "外部ストレージはありません。", + "Name" : "名前", + "Storage type" : "ストレージ種別", + "Scope" : "スコープ", + "External Storage" : "外部ストレージ", + "Folder name" : "フォルダー名", + "Configuration" : "設定", + "Available for" : "以下が利用可能", + "Add storage" : "ストレージを追加", + "Delete" : "削除", + "Enable User External Storage" : "ユーザーの外部ストレージを有効にする", + "Allow users to mount the following external storage" : "ユーザーに以下の外部ストレージのマウントを許可する" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..d630e19904dadf4db25b0de4359119770b24fab9 --- /dev/null +++ b/apps/files_external/l10n/ja.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "リクエストトークンの取得に失敗しました。Dropboxアプリのキーとパスワードが正しいことを確認してください。", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "アクセストークンの取得に失敗しました。Dropboxアプリのキーとパスワードが正しいことを確認してください。", + "Please provide a valid Dropbox app key and secret." : "有効なDropboxアプリのキーとパスワードを入力してください。", + "Step 1 failed. Exception: %s" : "ステップ 1 の実行に失敗しました。例外: %s", + "Step 2 failed. Exception: %s" : "ステップ 2 の実行に失敗しました。例外: %s", + "External storage" : "外部ストレージ", + "Local" : "ローカル", + "Location" : "位置", + "Amazon S3" : "Amazon S3", + "Key" : "キー", + "Secret" : "シークレットキー", + "Bucket" : "バケット名", + "Amazon S3 and compliant" : "Amazon S3 と互換ストレージ", + "Access Key" : "アクセスキー", + "Secret Key" : "シークレットキー", + "Hostname" : "ホスト名", + "Port" : "ポート", + "Region" : "都道府県", + "Enable SSL" : "SSLを有効", + "Enable Path Style" : "パス形式を有効", + "App key" : "アプリキー", + "App secret" : "アプリシークレット", + "Host" : "ホスト", + "Username" : "ユーザー名", + "Password" : "パスワード", + "Root" : "ルート", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "クライアントID", + "Client secret" : "クライアント秘密キー", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "リージョン (OpenStack Object Storage用のオプション)", + "API Key (required for Rackspace Cloud Files)" : "APIキー (Rackspace Cloud Filesに必須)", + "Tenantname (required for OpenStack Object Storage)" : "テナント名 (OpenStack Object Storage用に必要)", + "Password (required for OpenStack Object Storage)" : "パスワード (OpenStack Object Storage用に必要)", + "Service Name (required for OpenStack Object Storage)" : "サービス名 (OpenStack Object Storage用に必要)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "識別用エンドポイントURL (OpenStack Object Storage用に必要)", + "Timeout of HTTP requests in seconds" : "HTTP接続タイムアウト秒数", + "Share" : "共有", + "SMB / CIFS using OC login" : "ownCloudログインで SMB/CIFSを使用", + "Username as share" : "共有名", + "URL" : "URL", + "Secure https://" : "セキュア https://", + "Remote subfolder" : "リモートサブフォルダー", + "Access granted" : "アクセスは許可されました", + "Error configuring Dropbox storage" : "Dropboxストレージの設定エラー", + "Grant access" : "アクセスを許可", + "Error configuring Google Drive storage" : "Googleドライブストレージの設定エラー", + "Personal" : "個人", + "System" : "システム", + "All users. Type to select user or group." : "すべてのユーザー.ユーザー、グループを追加", + "(group)" : "(グループ)", + "Saved" : "保存されました", + "Note: " : "注意: ", + " and " : "と", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "注意: PHPにcURLのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "注意: PHPにFTPのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "注意: \"%s\" がインストールされていません。%sをマウントできません。このシステムの管理者にインストールをお願いしてください。", + "You don't have any external storages" : "外部ストレージはありません。", + "Name" : "名前", + "Storage type" : "ストレージ種別", + "Scope" : "スコープ", + "External Storage" : "外部ストレージ", + "Folder name" : "フォルダー名", + "Configuration" : "設定", + "Available for" : "以下が利用可能", + "Add storage" : "ストレージを追加", + "Delete" : "削除", + "Enable User External Storage" : "ユーザーの外部ストレージを有効にする", + "Allow users to mount the following external storage" : "ユーザーに以下の外部ストレージのマウントを許可する" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ja.php b/apps/files_external/l10n/ja.php deleted file mode 100644 index 494708e63dde6c92fcc5655797bc88c48dbef880..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ja.php +++ /dev/null @@ -1,73 +0,0 @@ - "リクエストトークンの取得に失敗しました。Dropboxアプリのキーとパスワードが正しいことを確認してください。", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "アクセストークンの取得に失敗しました。Dropboxアプリのキーとパスワードが正しいことを確認してください。", -"Please provide a valid Dropbox app key and secret." => "有効なDropboxアプリのキーとパスワードを入力してください。", -"Step 1 failed. Exception: %s" => "ステップ 1 の実行に失敗しました。例外: %s", -"Step 2 failed. Exception: %s" => "ステップ 2 の実行に失敗しました。例外: %s", -"External storage" => "外部ストレージ", -"Local" => "ローカル", -"Location" => "位置", -"Amazon S3" => "Amazon S3", -"Key" => "キー", -"Secret" => "シークレットキー", -"Bucket" => "バケット名", -"Amazon S3 and compliant" => "Amazon S3 と互換ストレージ", -"Access Key" => "アクセスキー", -"Secret Key" => "シークレットキー", -"Hostname" => "ホスト名", -"Port" => "ポート", -"Region" => "都道府県", -"Enable SSL" => "SSLを有効", -"Enable Path Style" => "パス形式を有効", -"App key" => "アプリキー", -"App secret" => "アプリシークレット", -"Host" => "ホスト", -"Username" => "ユーザー名", -"Password" => "パスワード", -"Root" => "ルート", -"Secure ftps://" => "Secure ftps://", -"Client ID" => "クライアントID", -"Client secret" => "クライアント秘密キー", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "リージョン (OpenStack Object Storage用のオプション)", -"API Key (required for Rackspace Cloud Files)" => "APIキー (Rackspace Cloud Filesに必須)", -"Tenantname (required for OpenStack Object Storage)" => "テナント名 (OpenStack Object Storage用に必要)", -"Password (required for OpenStack Object Storage)" => "パスワード (OpenStack Object Storage用に必要)", -"Service Name (required for OpenStack Object Storage)" => "サービス名 (OpenStack Object Storage用に必要)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "識別用エンドポイントURL (OpenStack Object Storage用に必要)", -"Timeout of HTTP requests in seconds" => "HTTP接続タイムアウト秒数", -"Share" => "共有", -"SMB / CIFS using OC login" => "ownCloudログインで SMB/CIFSを使用", -"Username as share" => "共有名", -"URL" => "URL", -"Secure https://" => "セキュア https://", -"Remote subfolder" => "リモートサブフォルダー", -"Access granted" => "アクセスは許可されました", -"Error configuring Dropbox storage" => "Dropboxストレージの設定エラー", -"Grant access" => "アクセスを許可", -"Error configuring Google Drive storage" => "Googleドライブストレージの設定エラー", -"Personal" => "個人", -"System" => "システム", -"All users. Type to select user or group." => "全てのユーザー.ユーザー、グループを追加", -"(group)" => "(グループ)", -"Saved" => "保存されました", -"Note: " => "注意: ", -" and " => "と", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "注意: PHPにcURLのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "注意: PHPにFTPのエクステンションが入っていないか、有効ではありません。%s をマウントすることができません。このシステムの管理者にインストールをお願いしてください。", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "注意: \"%s\" がインストールされていません。%sをマウントできません。このシステムの管理者にインストールをお願いしてください。", -"You don't have any external storages" => "外部ストレージはありません。", -"Name" => "名前", -"Storage type" => "ストレージ種別", -"Scope" => "スコープ", -"External Storage" => "外部ストレージ", -"Folder name" => "フォルダー名", -"Configuration" => "設定", -"Available for" => "以下が利用可能", -"Add storage" => "ストレージを追加", -"Delete" => "削除", -"Enable User External Storage" => "ユーザーの外部ストレージを有効にする", -"Allow users to mount the following external storage" => "ユーザーに以下の外部ストレージのマウントを許可する" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/jv.js b/apps/files_external/l10n/jv.js new file mode 100644 index 0000000000000000000000000000000000000000..daa8658d54399b3e7ecd87b8f50dc0d5aa9b4c2d --- /dev/null +++ b/apps/files_external/l10n/jv.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Papan panggonan" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/jv.json b/apps/files_external/l10n/jv.json new file mode 100644 index 0000000000000000000000000000000000000000..53d963e56be4e148be22ed413952f9d538e4cdf7 --- /dev/null +++ b/apps/files_external/l10n/jv.json @@ -0,0 +1,4 @@ +{ "translations": { + "Location" : "Papan panggonan" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/jv.php b/apps/files_external/l10n/jv.php deleted file mode 100644 index acff46664ccbefbd6988207e831b9195ea2d34c2..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/jv.php +++ /dev/null @@ -1,5 +0,0 @@ - "Papan panggonan" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/ka_GE.js b/apps/files_external/l10n/ka_GE.js new file mode 100644 index 0000000000000000000000000000000000000000..b152dbc7a853db617a9aa42dcb6bdba99f245068 --- /dev/null +++ b/apps/files_external/l10n/ka_GE.js @@ -0,0 +1,27 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "გთხოვთ მიუთითოთ Dropbox აპლიკაციის გასაღები და კოდი.", + "External storage" : "ექსტერნალ საცავი", + "Location" : "ადგილმდებარეობა", + "Port" : "პორტი", + "Region" : "რეგიონი", + "Host" : "ჰოსტი", + "Username" : "მომხმარებლის სახელი", + "Password" : "პაროლი", + "Share" : "გაზიარება", + "URL" : "URL", + "Access granted" : "დაშვება მინიჭებულია", + "Error configuring Dropbox storage" : "შეცდომა Dropbox საცავის კონფიგურირების დროს", + "Grant access" : "დაშვების მინიჭება", + "Error configuring Google Drive storage" : "შეცდომა Google Drive საცავის კონფიგურირების დროს", + "Personal" : "პირადი", + "Name" : "სახელი", + "External Storage" : "ექსტერნალ საცავი", + "Folder name" : "ფოლდერის სახელი", + "Configuration" : "კონფიგურაცია", + "Add storage" : "საცავის დამატება", + "Delete" : "წაშლა", + "Enable User External Storage" : "მომხმარებლის ექსტერნალ საცავის აქტივირება" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ka_GE.json b/apps/files_external/l10n/ka_GE.json new file mode 100644 index 0000000000000000000000000000000000000000..9e5e8e8db80e5d7ce0379fb2561feafe1af1650f --- /dev/null +++ b/apps/files_external/l10n/ka_GE.json @@ -0,0 +1,25 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "გთხოვთ მიუთითოთ Dropbox აპლიკაციის გასაღები და კოდი.", + "External storage" : "ექსტერნალ საცავი", + "Location" : "ადგილმდებარეობა", + "Port" : "პორტი", + "Region" : "რეგიონი", + "Host" : "ჰოსტი", + "Username" : "მომხმარებლის სახელი", + "Password" : "პაროლი", + "Share" : "გაზიარება", + "URL" : "URL", + "Access granted" : "დაშვება მინიჭებულია", + "Error configuring Dropbox storage" : "შეცდომა Dropbox საცავის კონფიგურირების დროს", + "Grant access" : "დაშვების მინიჭება", + "Error configuring Google Drive storage" : "შეცდომა Google Drive საცავის კონფიგურირების დროს", + "Personal" : "პირადი", + "Name" : "სახელი", + "External Storage" : "ექსტერნალ საცავი", + "Folder name" : "ფოლდერის სახელი", + "Configuration" : "კონფიგურაცია", + "Add storage" : "საცავის დამატება", + "Delete" : "წაშლა", + "Enable User External Storage" : "მომხმარებლის ექსტერნალ საცავის აქტივირება" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ka_GE.php b/apps/files_external/l10n/ka_GE.php deleted file mode 100644 index 3cf45b050b054f6caaa52306d3b60f6a98d4ded2..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ka_GE.php +++ /dev/null @@ -1,26 +0,0 @@ - "გთხოვთ მიუთითოთ Dropbox აპლიკაციის გასაღები და კოდი.", -"External storage" => "ექსტერნალ საცავი", -"Location" => "ადგილმდებარეობა", -"Port" => "პორტი", -"Region" => "რეგიონი", -"Host" => "ჰოსტი", -"Username" => "მომხმარებლის სახელი", -"Password" => "პაროლი", -"Share" => "გაზიარება", -"URL" => "URL", -"Access granted" => "დაშვება მინიჭებულია", -"Error configuring Dropbox storage" => "შეცდომა Dropbox საცავის კონფიგურირების დროს", -"Grant access" => "დაშვების მინიჭება", -"Error configuring Google Drive storage" => "შეცდომა Google Drive საცავის კონფიგურირების დროს", -"Personal" => "პირადი", -"Name" => "სახელი", -"External Storage" => "ექსტერნალ საცავი", -"Folder name" => "ფოლდერის სახელი", -"Configuration" => "კონფიგურაცია", -"Add storage" => "საცავის დამატება", -"Delete" => "წაშლა", -"Enable User External Storage" => "მომხმარებლის ექსტერნალ საცავის აქტივირება" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/km.js b/apps/files_external/l10n/km.js new file mode 100644 index 0000000000000000000000000000000000000000..0706c6d8b28e310434c86bd3da5ca72ed41d273e --- /dev/null +++ b/apps/files_external/l10n/km.js @@ -0,0 +1,24 @@ +OC.L10N.register( + "files_external", + { + "External storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ", + "Location" : "ទីតាំង", + "Port" : "ច្រក", + "Host" : "ម៉ាស៊ីន​ផ្ទុក", + "Username" : "ឈ្មោះ​អ្នកប្រើ", + "Password" : "ពាក្យសម្ងាត់", + "Share" : "ចែក​រំលែក", + "URL" : "URL", + "Access granted" : "បាន​ទទួល​សិទ្ធិ​ចូល", + "Error configuring Dropbox storage" : "កំហុស​ការ​កំណត់​សណ្ឋាន​នៃ​ឃ្លាំងផ្ទុក Dropbox", + "Grant access" : "ទទួល​សិទ្ធិ​ចូល", + "Personal" : "ផ្ទាល់​ខ្លួន", + "Saved" : "បាន​រក្សាទុក", + "Name" : "ឈ្មោះ", + "External Storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ", + "Folder name" : "ឈ្មោះ​ថត", + "Configuration" : "ការ​កំណត់​សណ្ឋាន", + "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក", + "Delete" : "លុប" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/km.json b/apps/files_external/l10n/km.json new file mode 100644 index 0000000000000000000000000000000000000000..3696e721b8a4e60b5388c51e8dd883fb8a338950 --- /dev/null +++ b/apps/files_external/l10n/km.json @@ -0,0 +1,22 @@ +{ "translations": { + "External storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ", + "Location" : "ទីតាំង", + "Port" : "ច្រក", + "Host" : "ម៉ាស៊ីន​ផ្ទុក", + "Username" : "ឈ្មោះ​អ្នកប្រើ", + "Password" : "ពាក្យសម្ងាត់", + "Share" : "ចែក​រំលែក", + "URL" : "URL", + "Access granted" : "បាន​ទទួល​សិទ្ធិ​ចូល", + "Error configuring Dropbox storage" : "កំហុស​ការ​កំណត់​សណ្ឋាន​នៃ​ឃ្លាំងផ្ទុក Dropbox", + "Grant access" : "ទទួល​សិទ្ធិ​ចូល", + "Personal" : "ផ្ទាល់​ខ្លួន", + "Saved" : "បាន​រក្សាទុក", + "Name" : "ឈ្មោះ", + "External Storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ", + "Folder name" : "ឈ្មោះ​ថត", + "Configuration" : "ការ​កំណត់​សណ្ឋាន", + "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក", + "Delete" : "លុប" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/km.php b/apps/files_external/l10n/km.php deleted file mode 100644 index 3a96906fdb704b66f6a7e6afb4527ef0b5d66415..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/km.php +++ /dev/null @@ -1,23 +0,0 @@ - "ឃ្លាំងផ្ទុក​ខាងក្រៅ", -"Location" => "ទីតាំង", -"Port" => "ច្រក", -"Host" => "ម៉ាស៊ីន​ផ្ទុក", -"Username" => "ឈ្មោះ​អ្នកប្រើ", -"Password" => "ពាក្យសម្ងាត់", -"Share" => "ចែក​រំលែក", -"URL" => "URL", -"Access granted" => "បាន​ទទួល​សិទ្ធិ​ចូល", -"Error configuring Dropbox storage" => "កំហុស​ការ​កំណត់​សណ្ឋាន​នៃ​ឃ្លាំងផ្ទុក Dropbox", -"Grant access" => "ទទួល​សិទ្ធិ​ចូល", -"Personal" => "ផ្ទាល់​ខ្លួន", -"Saved" => "បាន​រក្សាទុក", -"Name" => "ឈ្មោះ", -"External Storage" => "ឃ្លាំងផ្ទុក​ខាងក្រៅ", -"Folder name" => "ឈ្មោះ​ថត", -"Configuration" => "ការ​កំណត់​សណ្ឋាន", -"Add storage" => "បន្ថែម​ឃ្លាំងផ្ទុក", -"Delete" => "លុប" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js new file mode 100644 index 0000000000000000000000000000000000000000..6f77ff4071a83a0a4ac755761883d5c2472c88fa --- /dev/null +++ b/apps/files_external/l10n/ko.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "올바른 Dropbox 앱 키와 암호를 입력하십시오.", + "External storage" : "외부 저장소", + "Location" : "장소", + "Amazon S3" : "Amazon S3", + "Port" : "포트", + "Region" : "지역", + "Host" : "호스트", + "Username" : "사용자 이름", + "Password" : "암호", + "Share" : "공유", + "URL" : "URL", + "Access granted" : "접근 허가됨", + "Error configuring Dropbox storage" : "Dropbox 저장소 설정 오류", + "Grant access" : "접근 권한 부여", + "Error configuring Google Drive storage" : "Google 드라이브 저장소 설정 오류", + "Personal" : "개인", + "Saved" : "저장됨", + "Name" : "이름", + "External Storage" : "외부 저장소", + "Folder name" : "폴더 이름", + "Configuration" : "설정", + "Add storage" : "저장소 추가", + "Delete" : "삭제", + "Enable User External Storage" : "사용자 외부 저장소 사용" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..73112120559b8e54422689a04ffff056d69010fe --- /dev/null +++ b/apps/files_external/l10n/ko.json @@ -0,0 +1,27 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "올바른 Dropbox 앱 키와 암호를 입력하십시오.", + "External storage" : "외부 저장소", + "Location" : "장소", + "Amazon S3" : "Amazon S3", + "Port" : "포트", + "Region" : "지역", + "Host" : "호스트", + "Username" : "사용자 이름", + "Password" : "암호", + "Share" : "공유", + "URL" : "URL", + "Access granted" : "접근 허가됨", + "Error configuring Dropbox storage" : "Dropbox 저장소 설정 오류", + "Grant access" : "접근 권한 부여", + "Error configuring Google Drive storage" : "Google 드라이브 저장소 설정 오류", + "Personal" : "개인", + "Saved" : "저장됨", + "Name" : "이름", + "External Storage" : "외부 저장소", + "Folder name" : "폴더 이름", + "Configuration" : "설정", + "Add storage" : "저장소 추가", + "Delete" : "삭제", + "Enable User External Storage" : "사용자 외부 저장소 사용" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ko.php b/apps/files_external/l10n/ko.php deleted file mode 100644 index b1c8eea1f17f68cd43ad03917f05ff47c24cab60..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ko.php +++ /dev/null @@ -1,28 +0,0 @@ - "올바른 Dropbox 앱 키와 암호를 입력하십시오.", -"External storage" => "외부 저장소", -"Location" => "장소", -"Amazon S3" => "Amazon S3", -"Port" => "포트", -"Region" => "지역", -"Host" => "호스트", -"Username" => "사용자 이름", -"Password" => "암호", -"Share" => "공유", -"URL" => "URL", -"Access granted" => "접근 허가됨", -"Error configuring Dropbox storage" => "Dropbox 저장소 설정 오류", -"Grant access" => "접근 권한 부여", -"Error configuring Google Drive storage" => "Google 드라이브 저장소 설정 오류", -"Personal" => "개인", -"Saved" => "저장됨", -"Name" => "이름", -"External Storage" => "외부 저장소", -"Folder name" => "폴더 이름", -"Configuration" => "설정", -"Add storage" => "저장소 추가", -"Delete" => "삭제", -"Enable User External Storage" => "사용자 외부 저장소 사용" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/ku_IQ.js b/apps/files_external/l10n/ku_IQ.js new file mode 100644 index 0000000000000000000000000000000000000000..60110b5a0a78bc1a18ef7671d07bdd309d74c744 --- /dev/null +++ b/apps/files_external/l10n/ku_IQ.js @@ -0,0 +1,12 @@ +OC.L10N.register( + "files_external", + { + "Location" : "شوێن", + "Username" : "ناوی به‌کارهێنه‌ر", + "Password" : "وشەی تێپەربو", + "Share" : "هاوبەشی کردن", + "URL" : "ناونیشانی به‌سته‌ر", + "Name" : "ناو", + "Folder name" : "ناوی بوخچه" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/ku_IQ.json b/apps/files_external/l10n/ku_IQ.json new file mode 100644 index 0000000000000000000000000000000000000000..5116096025f4dd7981a63903201cc09061586e68 --- /dev/null +++ b/apps/files_external/l10n/ku_IQ.json @@ -0,0 +1,10 @@ +{ "translations": { + "Location" : "شوێن", + "Username" : "ناوی به‌کارهێنه‌ر", + "Password" : "وشەی تێپەربو", + "Share" : "هاوبەشی کردن", + "URL" : "ناونیشانی به‌سته‌ر", + "Name" : "ناو", + "Folder name" : "ناوی بوخچه" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ku_IQ.php b/apps/files_external/l10n/ku_IQ.php deleted file mode 100644 index 097f8d3199c4e0329a3592548a3687f4cd337db5..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ku_IQ.php +++ /dev/null @@ -1,11 +0,0 @@ - "شوێن", -"Username" => "ناوی به‌کارهێنه‌ر", -"Password" => "وشەی تێپەربو", -"Share" => "هاوبەشی کردن", -"URL" => "ناونیشانی به‌سته‌ر", -"Name" => "ناو", -"Folder name" => "ناوی بوخچه" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/lb.js b/apps/files_external/l10n/lb.js new file mode 100644 index 0000000000000000000000000000000000000000..6bd258b4234f846bc896a9bdecb32a7333422d4d --- /dev/null +++ b/apps/files_external/l10n/lb.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Uert", + "Region" : "Regioun", + "Host" : "Host", + "Username" : "Benotzernumm", + "Password" : "Passwuert", + "Share" : "Deelen", + "URL" : "URL", + "Personal" : "Perséinlech", + "Name" : "Numm", + "Folder name" : "Dossiers Numm:", + "Delete" : "Läschen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/lb.json b/apps/files_external/l10n/lb.json new file mode 100644 index 0000000000000000000000000000000000000000..0c5143c4f0d894bd538714f77ced696a4b521e28 --- /dev/null +++ b/apps/files_external/l10n/lb.json @@ -0,0 +1,14 @@ +{ "translations": { + "Location" : "Uert", + "Region" : "Regioun", + "Host" : "Host", + "Username" : "Benotzernumm", + "Password" : "Passwuert", + "Share" : "Deelen", + "URL" : "URL", + "Personal" : "Perséinlech", + "Name" : "Numm", + "Folder name" : "Dossiers Numm:", + "Delete" : "Läschen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/lb.php b/apps/files_external/l10n/lb.php deleted file mode 100644 index 01b940f25d0d10f0a0fb057d50dfbee64be4d338..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/lb.php +++ /dev/null @@ -1,15 +0,0 @@ - "Uert", -"Region" => "Regioun", -"Host" => "Host", -"Username" => "Benotzernumm", -"Password" => "Passwuert", -"Share" => "Deelen", -"URL" => "URL", -"Personal" => "Perséinlech", -"Name" => "Numm", -"Folder name" => "Dossiers Numm:", -"Delete" => "Läschen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/lt_LT.js b/apps/files_external/l10n/lt_LT.js new file mode 100644 index 0000000000000000000000000000000000000000..fa8dcec68e0522a54f34c5545164f1c371b72dc8 --- /dev/null +++ b/apps/files_external/l10n/lt_LT.js @@ -0,0 +1,27 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Prašome įvesti teisingus Dropbox \"app key\" ir \"secret\".", + "External storage" : "Išorinė saugykla", + "Location" : "Vieta", + "Port" : "Prievadas", + "Region" : "Regionas", + "Host" : "Mazgas", + "Username" : "Prisijungimo vardas", + "Password" : "Slaptažodis", + "Share" : "Dalintis", + "URL" : "URL", + "Access granted" : "Priėjimas suteiktas", + "Error configuring Dropbox storage" : "Klaida nustatinėjant Dropbox talpyklą", + "Grant access" : "Suteikti priėjimą", + "Error configuring Google Drive storage" : "Klaida nustatinėjant Google Drive talpyklą", + "Personal" : "Asmeniniai", + "Name" : "Pavadinimas", + "External Storage" : "Išorinės saugyklos", + "Folder name" : "Katalogo pavadinimas", + "Configuration" : "Konfigūracija", + "Add storage" : "Pridėti saugyklą", + "Delete" : "Ištrinti", + "Enable User External Storage" : "Įjungti vartotojų išorines saugyklas" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_external/l10n/lt_LT.json b/apps/files_external/l10n/lt_LT.json new file mode 100644 index 0000000000000000000000000000000000000000..a6d6e9bfc72a7d79b278e1b325560e989b183e12 --- /dev/null +++ b/apps/files_external/l10n/lt_LT.json @@ -0,0 +1,25 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Prašome įvesti teisingus Dropbox \"app key\" ir \"secret\".", + "External storage" : "Išorinė saugykla", + "Location" : "Vieta", + "Port" : "Prievadas", + "Region" : "Regionas", + "Host" : "Mazgas", + "Username" : "Prisijungimo vardas", + "Password" : "Slaptažodis", + "Share" : "Dalintis", + "URL" : "URL", + "Access granted" : "Priėjimas suteiktas", + "Error configuring Dropbox storage" : "Klaida nustatinėjant Dropbox talpyklą", + "Grant access" : "Suteikti priėjimą", + "Error configuring Google Drive storage" : "Klaida nustatinėjant Google Drive talpyklą", + "Personal" : "Asmeniniai", + "Name" : "Pavadinimas", + "External Storage" : "Išorinės saugyklos", + "Folder name" : "Katalogo pavadinimas", + "Configuration" : "Konfigūracija", + "Add storage" : "Pridėti saugyklą", + "Delete" : "Ištrinti", + "Enable User External Storage" : "Įjungti vartotojų išorines saugyklas" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/lt_LT.php b/apps/files_external/l10n/lt_LT.php deleted file mode 100644 index f5e83fc60bc1bd7f1648b1f7b7a3a5857296f576..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/lt_LT.php +++ /dev/null @@ -1,26 +0,0 @@ - "Prašome įvesti teisingus Dropbox \"app key\" ir \"secret\".", -"External storage" => "Išorinė saugykla", -"Location" => "Vieta", -"Port" => "Prievadas", -"Region" => "Regionas", -"Host" => "Mazgas", -"Username" => "Prisijungimo vardas", -"Password" => "Slaptažodis", -"Share" => "Dalintis", -"URL" => "URL", -"Access granted" => "Priėjimas suteiktas", -"Error configuring Dropbox storage" => "Klaida nustatinėjant Dropbox talpyklą", -"Grant access" => "Suteikti priėjimą", -"Error configuring Google Drive storage" => "Klaida nustatinėjant Google Drive talpyklą", -"Personal" => "Asmeniniai", -"Name" => "Pavadinimas", -"External Storage" => "Išorinės saugyklos", -"Folder name" => "Katalogo pavadinimas", -"Configuration" => "Konfigūracija", -"Add storage" => "Pridėti saugyklą", -"Delete" => "Ištrinti", -"Enable User External Storage" => "Įjungti vartotojų išorines saugyklas" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files_external/l10n/lv.js b/apps/files_external/l10n/lv.js new file mode 100644 index 0000000000000000000000000000000000000000..8f22ff9fd1bb696dff7992bc484db14e5ecf5bae --- /dev/null +++ b/apps/files_external/l10n/lv.js @@ -0,0 +1,26 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu.", + "External storage" : "Ārējā krātuve", + "Location" : "Vieta", + "Port" : "Ports", + "Host" : "Resursdators", + "Username" : "Lietotājvārds", + "Password" : "Parole", + "Share" : "Dalīties", + "URL" : "URL", + "Access granted" : "Piešķirta pieeja", + "Error configuring Dropbox storage" : "Kļūda, konfigurējot Dropbox krātuvi", + "Grant access" : "Piešķirt pieeju", + "Error configuring Google Drive storage" : "Kļūda, konfigurējot Google Drive krātuvi", + "Personal" : "Personīgi", + "Name" : "Nosaukums", + "External Storage" : "Ārējā krātuve", + "Folder name" : "Mapes nosaukums", + "Configuration" : "Konfigurācija", + "Add storage" : "Pievienot krātuvi", + "Delete" : "Dzēst", + "Enable User External Storage" : "Aktivēt lietotāja ārējo krātuvi" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/files_external/l10n/lv.json b/apps/files_external/l10n/lv.json new file mode 100644 index 0000000000000000000000000000000000000000..f5637ac9b55a6bf3786910f25bb2bcd5a2b78a15 --- /dev/null +++ b/apps/files_external/l10n/lv.json @@ -0,0 +1,24 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu.", + "External storage" : "Ārējā krātuve", + "Location" : "Vieta", + "Port" : "Ports", + "Host" : "Resursdators", + "Username" : "Lietotājvārds", + "Password" : "Parole", + "Share" : "Dalīties", + "URL" : "URL", + "Access granted" : "Piešķirta pieeja", + "Error configuring Dropbox storage" : "Kļūda, konfigurējot Dropbox krātuvi", + "Grant access" : "Piešķirt pieeju", + "Error configuring Google Drive storage" : "Kļūda, konfigurējot Google Drive krātuvi", + "Personal" : "Personīgi", + "Name" : "Nosaukums", + "External Storage" : "Ārējā krātuve", + "Folder name" : "Mapes nosaukums", + "Configuration" : "Konfigurācija", + "Add storage" : "Pievienot krātuvi", + "Delete" : "Dzēst", + "Enable User External Storage" : "Aktivēt lietotāja ārējo krātuvi" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/lv.php b/apps/files_external/l10n/lv.php deleted file mode 100644 index 3bd5589a5f569a29e234f57eed26c0c7e7dd7768..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/lv.php +++ /dev/null @@ -1,25 +0,0 @@ - "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu.", -"External storage" => "Ārējā krātuve", -"Location" => "Vieta", -"Port" => "Ports", -"Host" => "Resursdators", -"Username" => "Lietotājvārds", -"Password" => "Parole", -"Share" => "Dalīties", -"URL" => "URL", -"Access granted" => "Piešķirta pieeja", -"Error configuring Dropbox storage" => "Kļūda, konfigurējot Dropbox krātuvi", -"Grant access" => "Piešķirt pieeju", -"Error configuring Google Drive storage" => "Kļūda, konfigurējot Google Drive krātuvi", -"Personal" => "Personīgi", -"Name" => "Nosaukums", -"External Storage" => "Ārējā krātuve", -"Folder name" => "Mapes nosaukums", -"Configuration" => "Konfigurācija", -"Add storage" => "Pievienot krātuvi", -"Delete" => "Dzēst", -"Enable User External Storage" => "Aktivēt lietotāja ārējo krātuvi" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"; diff --git a/apps/files_external/l10n/mk.js b/apps/files_external/l10n/mk.js new file mode 100644 index 0000000000000000000000000000000000000000..4250db79d3628e7b1452f9b613dab7a533400870 --- /dev/null +++ b/apps/files_external/l10n/mk.js @@ -0,0 +1,27 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Ве молам доставите валиден Dropbox клуч и тајна лозинка.", + "Local" : "Локален", + "Location" : "Локација", + "Port" : "Порта", + "Region" : "Регион", + "Host" : "Домаќин", + "Username" : "Корисничко име", + "Password" : "Лозинка", + "Share" : "Сподели", + "URL" : "Адреса", + "Access granted" : "Пристапот е дозволен", + "Error configuring Dropbox storage" : "Грешка при конфигурација на Dropbox", + "Grant access" : "Дозволи пристап", + "Error configuring Google Drive storage" : "Грешка при конфигурација на Google Drive", + "Personal" : "Лично", + "Saved" : "Снимено", + "Name" : "Име", + "External Storage" : "Надворешно складиште", + "Folder name" : "Име на папка", + "Configuration" : "Конфигурација", + "Delete" : "Избриши", + "Enable User External Storage" : "Овозможи надворешни за корисници" +}, +"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files_external/l10n/mk.json b/apps/files_external/l10n/mk.json new file mode 100644 index 0000000000000000000000000000000000000000..d216a075b31d7a2b1536dbe8381a6c517fcf07ad --- /dev/null +++ b/apps/files_external/l10n/mk.json @@ -0,0 +1,25 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Ве молам доставите валиден Dropbox клуч и тајна лозинка.", + "Local" : "Локален", + "Location" : "Локација", + "Port" : "Порта", + "Region" : "Регион", + "Host" : "Домаќин", + "Username" : "Корисничко име", + "Password" : "Лозинка", + "Share" : "Сподели", + "URL" : "Адреса", + "Access granted" : "Пристапот е дозволен", + "Error configuring Dropbox storage" : "Грешка при конфигурација на Dropbox", + "Grant access" : "Дозволи пристап", + "Error configuring Google Drive storage" : "Грешка при конфигурација на Google Drive", + "Personal" : "Лично", + "Saved" : "Снимено", + "Name" : "Име", + "External Storage" : "Надворешно складиште", + "Folder name" : "Име на папка", + "Configuration" : "Конфигурација", + "Delete" : "Избриши", + "Enable User External Storage" : "Овозможи надворешни за корисници" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/mk.php b/apps/files_external/l10n/mk.php deleted file mode 100644 index 8c9ab8fff1406ab4c77e8594eb60e444ba20ac91..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/mk.php +++ /dev/null @@ -1,26 +0,0 @@ - "Ве молам доставите валиден Dropbox клуч и тајна лозинка.", -"Local" => "Локален", -"Location" => "Локација", -"Port" => "Порта", -"Region" => "Регион", -"Host" => "Домаќин", -"Username" => "Корисничко име", -"Password" => "Лозинка", -"Share" => "Сподели", -"URL" => "Адреса", -"Access granted" => "Пристапот е дозволен", -"Error configuring Dropbox storage" => "Грешка при конфигурација на Dropbox", -"Grant access" => "Дозволи пристап", -"Error configuring Google Drive storage" => "Грешка при конфигурација на Google Drive", -"Personal" => "Лично", -"Saved" => "Снимено", -"Name" => "Име", -"External Storage" => "Надворешно складиште", -"Folder name" => "Име на папка", -"Configuration" => "Конфигурација", -"Delete" => "Избриши", -"Enable User External Storage" => "Овозможи надворешни за корисници" -); -$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/apps/files_external/l10n/ms_MY.js b/apps/files_external/l10n/ms_MY.js new file mode 100644 index 0000000000000000000000000000000000000000..e73074f39fda143f8c8b639a8abce6838f774341 --- /dev/null +++ b/apps/files_external/l10n/ms_MY.js @@ -0,0 +1,14 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Lokasi", + "Region" : "Wilayah", + "Username" : "Nama pengguna", + "Password" : "Kata laluan", + "Share" : "Kongsi", + "URL" : "URL", + "Personal" : "Peribadi", + "Name" : "Nama", + "Delete" : "Padam" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ms_MY.json b/apps/files_external/l10n/ms_MY.json new file mode 100644 index 0000000000000000000000000000000000000000..3dbcfc92a7550d2df43f97a8645c9e7fad868c8e --- /dev/null +++ b/apps/files_external/l10n/ms_MY.json @@ -0,0 +1,12 @@ +{ "translations": { + "Location" : "Lokasi", + "Region" : "Wilayah", + "Username" : "Nama pengguna", + "Password" : "Kata laluan", + "Share" : "Kongsi", + "URL" : "URL", + "Personal" : "Peribadi", + "Name" : "Nama", + "Delete" : "Padam" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ms_MY.php b/apps/files_external/l10n/ms_MY.php deleted file mode 100644 index 06d66083f9b16cc361bdee9673205f0a9c6f7e40..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ms_MY.php +++ /dev/null @@ -1,13 +0,0 @@ - "Lokasi", -"Region" => "Wilayah", -"Username" => "Nama pengguna", -"Password" => "Kata laluan", -"Share" => "Kongsi", -"URL" => "URL", -"Personal" => "Peribadi", -"Name" => "Nama", -"Delete" => "Padam" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/my_MM.js b/apps/files_external/l10n/my_MM.js new file mode 100644 index 0000000000000000000000000000000000000000..d858639143df1a42cda712b28d20fbece0a9b843 --- /dev/null +++ b/apps/files_external/l10n/my_MM.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_external", + { + "Location" : "တည်နေရာ", + "Username" : "သုံးစွဲသူအမည်", + "Password" : "စကားဝှက်" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/my_MM.json b/apps/files_external/l10n/my_MM.json new file mode 100644 index 0000000000000000000000000000000000000000..ee8c8165a503725d64634e5dff8da1356c08c15d --- /dev/null +++ b/apps/files_external/l10n/my_MM.json @@ -0,0 +1,6 @@ +{ "translations": { + "Location" : "တည်နေရာ", + "Username" : "သုံးစွဲသူအမည်", + "Password" : "စကားဝှက်" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/my_MM.php b/apps/files_external/l10n/my_MM.php deleted file mode 100644 index bf50d1b1b6de0b43e10c4d65c801b9f6bdd8e05a..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/my_MM.php +++ /dev/null @@ -1,7 +0,0 @@ - "တည်နေရာ", -"Username" => "သုံးစွဲသူအမည်", -"Password" => "စကားဝှက်" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/nb_NO.js b/apps/files_external/l10n/nb_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..ebf113068a20e0b766e05d5b93d405ab3b1dcf70 --- /dev/null +++ b/apps/files_external/l10n/nb_NO.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Henting av henvendelsessymboler feilet. Sjekk at app-nøkkelen og hemmeligheten din for Dropbox stemmer.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Henting adgangssymboler feilet. Sjekk at app-nøkkelen og hemmeligheten din for Dropbox stemmer.", + "Please provide a valid Dropbox app key and secret." : "Vær vennlig å oppgi gyldig Dropbox appnøkkel og hemmelighet.", + "Step 1 failed. Exception: %s" : "Steg 1 feilet. Unntak: %s", + "Step 2 failed. Exception: %s" : "Steg 2 feilet. Unntak: %s", + "External storage" : "Ekstern lagringsplass", + "Local" : "Lokal", + "Location" : "Sted", + "Amazon S3" : "Amazon S3", + "Key" : "Key", + "Secret" : "Secret", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 og tilsvarende", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Servernavn", + "Port" : "Port", + "Region" : "Området", + "Enable SSL" : "Aktiver SSL", + "Enable Path Style" : "Aktiver Path Style", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Tjener", + "Username" : "Brukernavn", + "Password" : "Passord", + "Root" : "Rot", + "Secure ftps://" : "Sikker ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (ikke påkrevet for OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (påkrevet for Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (påkrevet for OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Passord (påkrevet for OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Tjenestenavn (påkrevet for OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL for identity endpoint (påkrevet for OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tidsavbrudd for HTTP-forespørsler i sekunder", + "Share" : "Del", + "SMB / CIFS using OC login" : "SMB / CIFS med OC-pålogging", + "Username as share" : "Brukernavn som share", + "URL" : "URL", + "Secure https://" : "Sikker https://", + "Remote subfolder" : "Ekstern undermappe", + "Access granted" : "Tilgang innvilget", + "Error configuring Dropbox storage" : "Feil ved konfigurering av Dropbox-lagring", + "Grant access" : "Gi tilgang", + "Error configuring Google Drive storage" : "Feil med konfigurering av Google Drive", + "Personal" : "Personlig", + "System" : "System", + "All users. Type to select user or group." : "Alle brukere. Tast for å velge bruker eller gruppe.", + "(group)" : "(gruppe)", + "Saved" : "Lagret", + "Note: " : "Merk: ", + " and " : " og ", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Merk: Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Merk: FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Merk: \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.", + "You don't have any external storages" : "Du har ingen eksterne lagre", + "Name" : "Navn", + "Storage type" : "Lagringstype", + "Scope" : "Omfang", + "External Storage" : "Ekstern lagring", + "Folder name" : "Mappenavn", + "Configuration" : "Konfigurasjon", + "Available for" : "Tilgjengelig for", + "Add storage" : "Legg til lagringsplass", + "Delete" : "Slett", + "Enable User External Storage" : "Aktiver ekstern lagring for bruker", + "Allow users to mount the following external storage" : "Tillat brukere å koble opp følgende eksterne lagring" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/nb_NO.json b/apps/files_external/l10n/nb_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..b9b736fb13a3a1b57b76568539adc3a3635a0532 --- /dev/null +++ b/apps/files_external/l10n/nb_NO.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Henting av henvendelsessymboler feilet. Sjekk at app-nøkkelen og hemmeligheten din for Dropbox stemmer.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Henting adgangssymboler feilet. Sjekk at app-nøkkelen og hemmeligheten din for Dropbox stemmer.", + "Please provide a valid Dropbox app key and secret." : "Vær vennlig å oppgi gyldig Dropbox appnøkkel og hemmelighet.", + "Step 1 failed. Exception: %s" : "Steg 1 feilet. Unntak: %s", + "Step 2 failed. Exception: %s" : "Steg 2 feilet. Unntak: %s", + "External storage" : "Ekstern lagringsplass", + "Local" : "Lokal", + "Location" : "Sted", + "Amazon S3" : "Amazon S3", + "Key" : "Key", + "Secret" : "Secret", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 og tilsvarende", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Servernavn", + "Port" : "Port", + "Region" : "Området", + "Enable SSL" : "Aktiver SSL", + "Enable Path Style" : "Aktiver Path Style", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Tjener", + "Username" : "Brukernavn", + "Password" : "Passord", + "Root" : "Rot", + "Secure ftps://" : "Sikker ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (ikke påkrevet for OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (påkrevet for Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (påkrevet for OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Passord (påkrevet for OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Tjenestenavn (påkrevet for OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL for identity endpoint (påkrevet for OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Tidsavbrudd for HTTP-forespørsler i sekunder", + "Share" : "Del", + "SMB / CIFS using OC login" : "SMB / CIFS med OC-pålogging", + "Username as share" : "Brukernavn som share", + "URL" : "URL", + "Secure https://" : "Sikker https://", + "Remote subfolder" : "Ekstern undermappe", + "Access granted" : "Tilgang innvilget", + "Error configuring Dropbox storage" : "Feil ved konfigurering av Dropbox-lagring", + "Grant access" : "Gi tilgang", + "Error configuring Google Drive storage" : "Feil med konfigurering av Google Drive", + "Personal" : "Personlig", + "System" : "System", + "All users. Type to select user or group." : "Alle brukere. Tast for å velge bruker eller gruppe.", + "(group)" : "(gruppe)", + "Saved" : "Lagret", + "Note: " : "Merk: ", + " and " : " og ", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Merk: Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Merk: FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Merk: \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.", + "You don't have any external storages" : "Du har ingen eksterne lagre", + "Name" : "Navn", + "Storage type" : "Lagringstype", + "Scope" : "Omfang", + "External Storage" : "Ekstern lagring", + "Folder name" : "Mappenavn", + "Configuration" : "Konfigurasjon", + "Available for" : "Tilgjengelig for", + "Add storage" : "Legg til lagringsplass", + "Delete" : "Slett", + "Enable User External Storage" : "Aktiver ekstern lagring for bruker", + "Allow users to mount the following external storage" : "Tillat brukere å koble opp følgende eksterne lagring" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/nb_NO.php b/apps/files_external/l10n/nb_NO.php deleted file mode 100644 index e27def2ea7ff3943762c08713db8c34cd58c0936..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/nb_NO.php +++ /dev/null @@ -1,73 +0,0 @@ - "Henting av henvendelsessymboler feilet. Sjekk at app-nøkkelen og hemmeligheten din for Dropbox stemmer.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Henting adgangssymboler feilet. Sjekk at app-nøkkelen og hemmeligheten din for Dropbox stemmer.", -"Please provide a valid Dropbox app key and secret." => "Vær vennlig å oppgi gyldig Dropbox appnøkkel og hemmelighet.", -"Step 1 failed. Exception: %s" => "Steg 1 feilet. Unntak: %s", -"Step 2 failed. Exception: %s" => "Steg 2 feilet. Unntak: %s", -"External storage" => "Ekstern lagringsplass", -"Local" => "Lokal", -"Location" => "Sted", -"Amazon S3" => "Amazon S3", -"Key" => "Key", -"Secret" => "Secret", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 og tilsvarende", -"Access Key" => "Access Key", -"Secret Key" => "Secret Key", -"Hostname" => "Servernavn", -"Port" => "Port", -"Region" => "Området", -"Enable SSL" => "Aktiver SSL", -"Enable Path Style" => "Aktiver Path Style", -"App key" => "App key", -"App secret" => "App secret", -"Host" => "Tjener", -"Username" => "Brukernavn", -"Password" => "Passord", -"Root" => "Rot", -"Secure ftps://" => "Sikker ftps://", -"Client ID" => "Client ID", -"Client secret" => "Client secret", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Region (ikke påkrevet for OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API Key (påkrevet for Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (påkrevet for OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Passord (påkrevet for OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Tjenestenavn (påkrevet for OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL for identity endpoint (påkrevet for OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Tidsavbrudd for HTTP-forespørsler i sekunder", -"Share" => "Del", -"SMB / CIFS using OC login" => "SMB / CIFS med OC-pålogging", -"Username as share" => "Brukernavn som share", -"URL" => "URL", -"Secure https://" => "Sikker https://", -"Remote subfolder" => "Ekstern undermappe", -"Access granted" => "Tilgang innvilget", -"Error configuring Dropbox storage" => "Feil ved konfigurering av Dropbox-lagring", -"Grant access" => "Gi tilgang", -"Error configuring Google Drive storage" => "Feil med konfigurering av Google Drive", -"Personal" => "Personlig", -"System" => "System", -"All users. Type to select user or group." => "Alle brukere. Tast for å velge bruker eller gruppe.", -"(group)" => "(gruppe)", -"Saved" => "Lagret", -"Note: " => "Merk: ", -" and " => " og ", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Merk: Støtte for cURL i PHP er ikke aktivert eller installert. Oppkobling av %s er ikke mulig. Be systemadministratoren om å installere det.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Merk: FTP-støtte i PHP er ikke slått på eller installert. Kan ikke koble opp %s. Ta kontakt med systemadministratoren for å installere det.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Merk: \"%s\" er ikke installert. Oppkobling av %s er ikke mulig. Spør systemadministratoren om å installere det.", -"You don't have any external storages" => "Du har ingen eksterne lagre", -"Name" => "Navn", -"Storage type" => "Lagringstype", -"Scope" => "Omfang", -"External Storage" => "Ekstern lagring", -"Folder name" => "Mappenavn", -"Configuration" => "Konfigurasjon", -"Available for" => "Tilgjengelig for", -"Add storage" => "Legg til lagringsplass", -"Delete" => "Slett", -"Enable User External Storage" => "Aktiver ekstern lagring for bruker", -"Allow users to mount the following external storage" => "Tillat brukere å koble opp følgende eksterne lagring" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js new file mode 100644 index 0000000000000000000000000000000000000000..0dcbe8556a38ab4a7b6a1fcc2b2c12ed8649f561 --- /dev/null +++ b/apps/files_external/l10n/nl.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Ophalen aanvraag tokens mislukt. Verifieer dat uw Dropbox app key en secret juist zijn.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ophalen aanvraag tokens mislukt. Verifieer dat uw Dropbox app key en secret juist zijn.", + "Please provide a valid Dropbox app key and secret." : "Geef een geldige Dropbox key en secret.", + "Step 1 failed. Exception: %s" : "Stap 1 is mislukt. Uitzondering: %s", + "Step 2 failed. Exception: %s" : "Stap 2 is mislukt. Uitzondering: %s", + "External storage" : "Externe opslag", + "Local" : "Lokaal", + "Location" : "Locatie", + "Amazon S3" : "Amazon S3", + "Key" : "Sleutel", + "Secret" : "Geheim", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 en overeenkomstig", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Hostnaam", + "Port" : "Poort", + "Region" : "Regio", + "Enable SSL" : "Activeren SSL", + "Enable Path Style" : "Activeren pad stijl", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Host", + "Username" : "Gebruikersnaam", + "Password" : "Wachtwoord", + "Root" : "Root", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regio (optioneel voor OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (verplicht voor Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (Verplicht voor OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Wachtwoord (verplicht voor OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Name (verplicht voor OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL van identity endpoint (verplicht voor OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Time-out van HTTP-verzoeken in seconden", + "Share" : "Share", + "SMB / CIFS using OC login" : "SMB / CIFS via OC inlog", + "Username as share" : "Gebruikersnaam als share", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Externe submap", + "Access granted" : "Toegang toegestaan", + "Error configuring Dropbox storage" : "Fout tijdens het configureren van Dropbox opslag", + "Grant access" : "Sta toegang toe", + "Error configuring Google Drive storage" : "Fout tijdens het configureren van Google Drive opslag", + "Personal" : "Persoonlijk", + "System" : "Systeem", + "All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.", + "(group)" : "(groep)", + "Saved" : "Bewaard", + "Note: " : "Let op: ", + " and " : "en", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Let op: Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Let op: FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Let op: \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.", + "You don't have any external storages" : "U hebt geen externe opslag", + "Name" : "Naam", + "Storage type" : "Opslagtype", + "Scope" : "Scope", + "External Storage" : "Externe opslag", + "Folder name" : "Mapnaam", + "Configuration" : "Configuratie", + "Available for" : "Beschikbaar voor", + "Add storage" : "Toevoegen opslag", + "Delete" : "Verwijder", + "Enable User External Storage" : "Externe opslag voor gebruikers activeren", + "Allow users to mount the following external storage" : "Sta gebruikers toe de volgende externe opslag aan te koppelen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..135aea8966414fb71eafe019e229d243f06cb344 --- /dev/null +++ b/apps/files_external/l10n/nl.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Ophalen aanvraag tokens mislukt. Verifieer dat uw Dropbox app key en secret juist zijn.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ophalen aanvraag tokens mislukt. Verifieer dat uw Dropbox app key en secret juist zijn.", + "Please provide a valid Dropbox app key and secret." : "Geef een geldige Dropbox key en secret.", + "Step 1 failed. Exception: %s" : "Stap 1 is mislukt. Uitzondering: %s", + "Step 2 failed. Exception: %s" : "Stap 2 is mislukt. Uitzondering: %s", + "External storage" : "Externe opslag", + "Local" : "Lokaal", + "Location" : "Locatie", + "Amazon S3" : "Amazon S3", + "Key" : "Sleutel", + "Secret" : "Geheim", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 en overeenkomstig", + "Access Key" : "Access Key", + "Secret Key" : "Secret Key", + "Hostname" : "Hostnaam", + "Port" : "Poort", + "Region" : "Regio", + "Enable SSL" : "Activeren SSL", + "Enable Path Style" : "Activeren pad stijl", + "App key" : "App key", + "App secret" : "App secret", + "Host" : "Host", + "Username" : "Gebruikersnaam", + "Password" : "Wachtwoord", + "Root" : "Root", + "Secure ftps://" : "Secure ftps://", + "Client ID" : "Client ID", + "Client secret" : "Client secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Regio (optioneel voor OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (verplicht voor Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (Verplicht voor OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Wachtwoord (verplicht voor OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Service Name (verplicht voor OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL van identity endpoint (verplicht voor OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Time-out van HTTP-verzoeken in seconden", + "Share" : "Share", + "SMB / CIFS using OC login" : "SMB / CIFS via OC inlog", + "Username as share" : "Gebruikersnaam als share", + "URL" : "URL", + "Secure https://" : "Secure https://", + "Remote subfolder" : "Externe submap", + "Access granted" : "Toegang toegestaan", + "Error configuring Dropbox storage" : "Fout tijdens het configureren van Dropbox opslag", + "Grant access" : "Sta toegang toe", + "Error configuring Google Drive storage" : "Fout tijdens het configureren van Google Drive opslag", + "Personal" : "Persoonlijk", + "System" : "Systeem", + "All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.", + "(group)" : "(groep)", + "Saved" : "Bewaard", + "Note: " : "Let op: ", + " and " : "en", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Let op: Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Let op: FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Let op: \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.", + "You don't have any external storages" : "U hebt geen externe opslag", + "Name" : "Naam", + "Storage type" : "Opslagtype", + "Scope" : "Scope", + "External Storage" : "Externe opslag", + "Folder name" : "Mapnaam", + "Configuration" : "Configuratie", + "Available for" : "Beschikbaar voor", + "Add storage" : "Toevoegen opslag", + "Delete" : "Verwijder", + "Enable User External Storage" : "Externe opslag voor gebruikers activeren", + "Allow users to mount the following external storage" : "Sta gebruikers toe de volgende externe opslag aan te koppelen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php deleted file mode 100644 index 37c17204ebc4358c4564612f7292f33c2de432d4..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/nl.php +++ /dev/null @@ -1,73 +0,0 @@ - "Ophalen aanvraag tokens mislukt. Verifieer dat uw Dropbox app key en secret juist zijn.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Ophalen aanvraag tokens mislukt. Verifieer dat uw Dropbox app key en secret juist zijn.", -"Please provide a valid Dropbox app key and secret." => "Geef een geldige Dropbox key en secret.", -"Step 1 failed. Exception: %s" => "Stap 1 is mislukt. Uitzondering: %s", -"Step 2 failed. Exception: %s" => "Stap 2 is mislukt. Uitzondering: %s", -"External storage" => "Externe opslag", -"Local" => "Lokaal", -"Location" => "Locatie", -"Amazon S3" => "Amazon S3", -"Key" => "Sleutel", -"Secret" => "Geheim", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 en overeenkomstig", -"Access Key" => "Access Key", -"Secret Key" => "Secret Key", -"Hostname" => "Hostnaam", -"Port" => "Poort", -"Region" => "Regio", -"Enable SSL" => "Activeren SSL", -"Enable Path Style" => "Activeren pad stijl", -"App key" => "App key", -"App secret" => "App secret", -"Host" => "Host", -"Username" => "Gebruikersnaam", -"Password" => "Wachtwoord", -"Root" => "Root", -"Secure ftps://" => "Secure ftps://", -"Client ID" => "Client ID", -"Client secret" => "Client secret", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Regio (optioneel voor OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API Key (verplicht voor Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (Verplicht voor OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Wachtwoord (verplicht voor OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Service Name (verplicht voor OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL van identity endpoint (verplicht voor OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Time-out van HTTP-verzoeken in seconden", -"Share" => "Share", -"SMB / CIFS using OC login" => "SMB / CIFS via OC inlog", -"Username as share" => "Gebruikersnaam als share", -"URL" => "URL", -"Secure https://" => "Secure https://", -"Remote subfolder" => "Externe submap", -"Access granted" => "Toegang toegestaan", -"Error configuring Dropbox storage" => "Fout tijdens het configureren van Dropbox opslag", -"Grant access" => "Sta toegang toe", -"Error configuring Google Drive storage" => "Fout tijdens het configureren van Google Drive opslag", -"Personal" => "Persoonlijk", -"System" => "Systeem", -"All users. Type to select user or group." => "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.", -"(group)" => "(groep)", -"Saved" => "Bewaard", -"Note: " => "Let op: ", -" and " => "en", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Let op: Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Let op: FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Let op: \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.", -"You don't have any external storages" => "U hebt geen externe opslag", -"Name" => "Naam", -"Storage type" => "Opslagtype", -"Scope" => "Scope", -"External Storage" => "Externe opslag", -"Folder name" => "Mapnaam", -"Configuration" => "Configuratie", -"Available for" => "Beschikbaar voor", -"Add storage" => "Toevoegen opslag", -"Delete" => "Verwijder", -"Enable User External Storage" => "Externe opslag voor gebruikers activeren", -"Allow users to mount the following external storage" => "Sta gebruikers toe de volgende externe opslag aan te koppelen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/nn_NO.js b/apps/files_external/l10n/nn_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..080f510546aa7635eefc43e29a30e5a679fe6088 --- /dev/null +++ b/apps/files_external/l10n/nn_NO.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Stad", + "Region" : "Region/fylke", + "Host" : "Tenar", + "Username" : "Brukarnamn", + "Password" : "Passord", + "Share" : "Del", + "URL" : "Nettstad", + "Personal" : "Personleg", + "Name" : "Namn", + "Folder name" : "Mappenamn", + "Configuration" : "Innstillingar", + "Delete" : "Slett" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/nn_NO.json b/apps/files_external/l10n/nn_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..1451532c2224f2dd610e52fb2bd645fa1feb82f1 --- /dev/null +++ b/apps/files_external/l10n/nn_NO.json @@ -0,0 +1,15 @@ +{ "translations": { + "Location" : "Stad", + "Region" : "Region/fylke", + "Host" : "Tenar", + "Username" : "Brukarnamn", + "Password" : "Passord", + "Share" : "Del", + "URL" : "Nettstad", + "Personal" : "Personleg", + "Name" : "Namn", + "Folder name" : "Mappenamn", + "Configuration" : "Innstillingar", + "Delete" : "Slett" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/nn_NO.php b/apps/files_external/l10n/nn_NO.php deleted file mode 100644 index 8f2a351aab314b90e54d56b4962cbe3ba76be581..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/nn_NO.php +++ /dev/null @@ -1,16 +0,0 @@ - "Stad", -"Region" => "Region/fylke", -"Host" => "Tenar", -"Username" => "Brukarnamn", -"Password" => "Passord", -"Share" => "Del", -"URL" => "Nettstad", -"Personal" => "Personleg", -"Name" => "Namn", -"Folder name" => "Mappenamn", -"Configuration" => "Innstillingar", -"Delete" => "Slett" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/oc.js b/apps/files_external/l10n/oc.js new file mode 100644 index 0000000000000000000000000000000000000000..68d56926612f4b02c893be296fdddfca80531a0c --- /dev/null +++ b/apps/files_external/l10n/oc.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Plaça", + "Username" : "Non d'usancièr", + "Password" : "Senhal", + "Share" : "Parteja", + "URL" : "URL", + "Personal" : "Personal", + "Name" : "Nom", + "Delete" : "Escafa" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/oc.json b/apps/files_external/l10n/oc.json new file mode 100644 index 0000000000000000000000000000000000000000..2a3c1bf456116d09c359ad0c983555dbe25f8ece --- /dev/null +++ b/apps/files_external/l10n/oc.json @@ -0,0 +1,11 @@ +{ "translations": { + "Location" : "Plaça", + "Username" : "Non d'usancièr", + "Password" : "Senhal", + "Share" : "Parteja", + "URL" : "URL", + "Personal" : "Personal", + "Name" : "Nom", + "Delete" : "Escafa" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/oc.php b/apps/files_external/l10n/oc.php deleted file mode 100644 index af4b03e3c15080f39359f4013a28df94b7fe35fa..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/oc.php +++ /dev/null @@ -1,12 +0,0 @@ - "Plaça", -"Username" => "Non d'usancièr", -"Password" => "Senhal", -"Share" => "Parteja", -"URL" => "URL", -"Personal" => "Personal", -"Name" => "Nom", -"Delete" => "Escafa" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_external/l10n/pa.js b/apps/files_external/l10n/pa.js new file mode 100644 index 0000000000000000000000000000000000000000..47acbde23d830d7f967471ca65472402fd997f25 --- /dev/null +++ b/apps/files_external/l10n/pa.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_external", + { + "Username" : "ਯੂਜ਼ਰ-ਨਾਂ", + "Password" : "ਪਾਸਵਰ", + "Share" : "ਸਾਂਝਾ ਕਰੋ", + "Delete" : "ਹਟਾਓ" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/pa.json b/apps/files_external/l10n/pa.json new file mode 100644 index 0000000000000000000000000000000000000000..2bdafd7a25e4482d1d8142fa733f2c36af51a9ca --- /dev/null +++ b/apps/files_external/l10n/pa.json @@ -0,0 +1,7 @@ +{ "translations": { + "Username" : "ਯੂਜ਼ਰ-ਨਾਂ", + "Password" : "ਪਾਸਵਰ", + "Share" : "ਸਾਂਝਾ ਕਰੋ", + "Delete" : "ਹਟਾਓ" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/pa.php b/apps/files_external/l10n/pa.php deleted file mode 100644 index 14e0fe78ae0428c9f8559960122c263636746911..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/pa.php +++ /dev/null @@ -1,8 +0,0 @@ - "ਯੂਜ਼ਰ-ਨਾਂ", -"Password" => "ਪਾਸਵਰ", -"Share" => "ਸਾਂਝਾ ਕਰੋ", -"Delete" => "ਹਟਾਓ" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/pl.js b/apps/files_external/l10n/pl.js new file mode 100644 index 0000000000000000000000000000000000000000..a20f61c4677ba56063ed5c1ed8fd54ce9872ad0d --- /dev/null +++ b/apps/files_external/l10n/pl.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Otrzymano błędne żądanie tokenów. Sprawdź, czy klucz aplikacji oraz klucz poufny Dropbox'a są poprawne.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Otrzymano błędne żądanie tokenów. Sprawdź, czy klucz aplikacji oraz klucz poufny Dropbox'a są poprawne.", + "Please provide a valid Dropbox app key and secret." : "Proszę podać prawidłowy klucz aplikacji Dropbox i klucz sekretny.", + "Step 1 failed. Exception: %s" : "Krok 1 błędny. Błąd: %s", + "Step 2 failed. Exception: %s" : "Krok 2 błędny. Błąd: %s", + "External storage" : "Zewnętrzne zasoby dyskowe", + "Local" : "Lokalny", + "Location" : "Lokalizacja", + "Amazon S3" : "Amazon S3", + "Key" : "Klucz", + "Secret" : "Hasło", + "Bucket" : "Kosz", + "Amazon S3 and compliant" : "Amazon S3 i zgodne", + "Access Key" : "Klucz dostępu", + "Secret Key" : "Klucz hasła", + "Hostname" : "Nazwa serwera", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "Włącz SSL", + "Enable Path Style" : "Włącz styl ścieżki", + "App key" : "Klucz aplikacji", + "App secret" : "Hasło aplikacji", + "Host" : "Host", + "Username" : "Nazwa użytkownika", + "Password" : "Hasło", + "Root" : "Root", + "Secure ftps://" : "Bezpieczny ftps://", + "Client ID" : "ID klienta", + "Client secret" : "Hasło klienta", + "OpenStack Object Storage" : "Magazyn obiektów OpenStack", + "Region (optional for OpenStack Object Storage)" : "Region (opcjonalny dla magazynu obiektów OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Klucz API (wymagany dla plików Rackspace Cloud)", + "Tenantname (required for OpenStack Object Storage)" : "Nazwa najemcy (wymagana dla magazynu obiektów OpenStack)", + "Password (required for OpenStack Object Storage)" : "Hasło (wymagane dla magazynu obiektów OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Nazwa usługi (wymagana dla magazynu obiektów OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL lub zakończenie jednostki (wymagane dla magazynu obiektów OpenStack)", + "Timeout of HTTP requests in seconds" : "Czas nieaktywności żądania HTTP w sekundach", + "Share" : "Udostępnij", + "SMB / CIFS using OC login" : "SMB / CIFS przy użyciu loginu OC", + "Username as share" : "Użytkownik jako zasób", + "URL" : "URL", + "Secure https://" : "Bezpieczny https://", + "Remote subfolder" : "Zdalny podfolder", + "Access granted" : "Dostęp do", + "Error configuring Dropbox storage" : "Wystąpił błąd podczas konfigurowania zasobu Dropbox", + "Grant access" : "Udziel dostępu", + "Error configuring Google Drive storage" : "Wystąpił błąd podczas konfigurowania zasobu Google Drive", + "Personal" : "Osobiste", + "System" : "System", + "All users. Type to select user or group." : "Wszyscy użytkownicy. Zacznij pisać, aby wybrać użytkownika lub grupę.", + "(group)" : "(grupa)", + "Saved" : "Zapisano", + "Note: " : "Uwaga: ", + " and " : "oraz", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Uwaga: Wsparcie dla cURL w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Uwaga: Wsparcie dla FTP w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Uwaga: \"%s\" nie jest zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", + "You don't have any external storages" : "Nie masz żadnych zewnętrznych magazynów", + "Name" : "Nazwa", + "Storage type" : "Typ magazynu", + "Scope" : "Zakres", + "External Storage" : "Zewnętrzna zasoby dyskowe", + "Folder name" : "Nazwa folderu", + "Configuration" : "Konfiguracja", + "Available for" : "Dostępne przez", + "Add storage" : "Dodaj zasoby dyskowe", + "Delete" : "Usuń", + "Enable User External Storage" : "Włącz zewnętrzne zasoby dyskowe użytkownika", + "Allow users to mount the following external storage" : "Pozwól użytkownikom montować następujące zewnętrzne zasoby dyskowe" +}, +"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_external/l10n/pl.json b/apps/files_external/l10n/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..c838595674d6645e5504cedf9e93f4bffef8ea75 --- /dev/null +++ b/apps/files_external/l10n/pl.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Otrzymano błędne żądanie tokenów. Sprawdź, czy klucz aplikacji oraz klucz poufny Dropbox'a są poprawne.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Otrzymano błędne żądanie tokenów. Sprawdź, czy klucz aplikacji oraz klucz poufny Dropbox'a są poprawne.", + "Please provide a valid Dropbox app key and secret." : "Proszę podać prawidłowy klucz aplikacji Dropbox i klucz sekretny.", + "Step 1 failed. Exception: %s" : "Krok 1 błędny. Błąd: %s", + "Step 2 failed. Exception: %s" : "Krok 2 błędny. Błąd: %s", + "External storage" : "Zewnętrzne zasoby dyskowe", + "Local" : "Lokalny", + "Location" : "Lokalizacja", + "Amazon S3" : "Amazon S3", + "Key" : "Klucz", + "Secret" : "Hasło", + "Bucket" : "Kosz", + "Amazon S3 and compliant" : "Amazon S3 i zgodne", + "Access Key" : "Klucz dostępu", + "Secret Key" : "Klucz hasła", + "Hostname" : "Nazwa serwera", + "Port" : "Port", + "Region" : "Region", + "Enable SSL" : "Włącz SSL", + "Enable Path Style" : "Włącz styl ścieżki", + "App key" : "Klucz aplikacji", + "App secret" : "Hasło aplikacji", + "Host" : "Host", + "Username" : "Nazwa użytkownika", + "Password" : "Hasło", + "Root" : "Root", + "Secure ftps://" : "Bezpieczny ftps://", + "Client ID" : "ID klienta", + "Client secret" : "Hasło klienta", + "OpenStack Object Storage" : "Magazyn obiektów OpenStack", + "Region (optional for OpenStack Object Storage)" : "Region (opcjonalny dla magazynu obiektów OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Klucz API (wymagany dla plików Rackspace Cloud)", + "Tenantname (required for OpenStack Object Storage)" : "Nazwa najemcy (wymagana dla magazynu obiektów OpenStack)", + "Password (required for OpenStack Object Storage)" : "Hasło (wymagane dla magazynu obiektów OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Nazwa usługi (wymagana dla magazynu obiektów OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL lub zakończenie jednostki (wymagane dla magazynu obiektów OpenStack)", + "Timeout of HTTP requests in seconds" : "Czas nieaktywności żądania HTTP w sekundach", + "Share" : "Udostępnij", + "SMB / CIFS using OC login" : "SMB / CIFS przy użyciu loginu OC", + "Username as share" : "Użytkownik jako zasób", + "URL" : "URL", + "Secure https://" : "Bezpieczny https://", + "Remote subfolder" : "Zdalny podfolder", + "Access granted" : "Dostęp do", + "Error configuring Dropbox storage" : "Wystąpił błąd podczas konfigurowania zasobu Dropbox", + "Grant access" : "Udziel dostępu", + "Error configuring Google Drive storage" : "Wystąpił błąd podczas konfigurowania zasobu Google Drive", + "Personal" : "Osobiste", + "System" : "System", + "All users. Type to select user or group." : "Wszyscy użytkownicy. Zacznij pisać, aby wybrać użytkownika lub grupę.", + "(group)" : "(grupa)", + "Saved" : "Zapisano", + "Note: " : "Uwaga: ", + " and " : "oraz", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Uwaga: Wsparcie dla cURL w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Uwaga: Wsparcie dla FTP w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Uwaga: \"%s\" nie jest zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", + "You don't have any external storages" : "Nie masz żadnych zewnętrznych magazynów", + "Name" : "Nazwa", + "Storage type" : "Typ magazynu", + "Scope" : "Zakres", + "External Storage" : "Zewnętrzna zasoby dyskowe", + "Folder name" : "Nazwa folderu", + "Configuration" : "Konfiguracja", + "Available for" : "Dostępne przez", + "Add storage" : "Dodaj zasoby dyskowe", + "Delete" : "Usuń", + "Enable User External Storage" : "Włącz zewnętrzne zasoby dyskowe użytkownika", + "Allow users to mount the following external storage" : "Pozwól użytkownikom montować następujące zewnętrzne zasoby dyskowe" +},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/pl.php b/apps/files_external/l10n/pl.php deleted file mode 100644 index cbbdc9b9ebd9c49eefeb10c3e31c6bd6f507485b..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/pl.php +++ /dev/null @@ -1,73 +0,0 @@ - "Otrzymano błędne żądanie tokenów. Sprawdź, czy klucz aplikacji oraz klucz poufny Dropbox'a są poprawne.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Otrzymano błędne żądanie tokenów. Sprawdź, czy klucz aplikacji oraz klucz poufny Dropbox'a są poprawne.", -"Please provide a valid Dropbox app key and secret." => "Proszę podać prawidłowy klucz aplikacji Dropbox i klucz sekretny.", -"Step 1 failed. Exception: %s" => "Krok 1 błędny. Błąd: %s", -"Step 2 failed. Exception: %s" => "Krok 2 błędny. Błąd: %s", -"External storage" => "Zewnętrzne zasoby dyskowe", -"Local" => "Lokalny", -"Location" => "Lokalizacja", -"Amazon S3" => "Amazon S3", -"Key" => "Klucz", -"Secret" => "Hasło", -"Bucket" => "Kosz", -"Amazon S3 and compliant" => "Amazon S3 i zgodne", -"Access Key" => "Klucz dostępu", -"Secret Key" => "Klucz hasła", -"Hostname" => "Nazwa serwera", -"Port" => "Port", -"Region" => "Region", -"Enable SSL" => "Włącz SSL", -"Enable Path Style" => "Włącz styl ścieżki", -"App key" => "Klucz aplikacji", -"App secret" => "Hasło aplikacji", -"Host" => "Host", -"Username" => "Nazwa użytkownika", -"Password" => "Hasło", -"Root" => "Root", -"Secure ftps://" => "Bezpieczny ftps://", -"Client ID" => "ID klienta", -"Client secret" => "Hasło klienta", -"OpenStack Object Storage" => "Magazyn obiektów OpenStack", -"Region (optional for OpenStack Object Storage)" => "Region (opcjonalny dla magazynu obiektów OpenStack)", -"API Key (required for Rackspace Cloud Files)" => "Klucz API (wymagany dla plików Rackspace Cloud)", -"Tenantname (required for OpenStack Object Storage)" => "Nazwa najemcy (wymagana dla magazynu obiektów OpenStack)", -"Password (required for OpenStack Object Storage)" => "Hasło (wymagane dla magazynu obiektów OpenStack)", -"Service Name (required for OpenStack Object Storage)" => "Nazwa usługi (wymagana dla magazynu obiektów OpenStack)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL lub zakończenie jednostki (wymagane dla magazynu obiektów OpenStack)", -"Timeout of HTTP requests in seconds" => "Czas nieaktywności żądania HTTP w sekundach", -"Share" => "Udostępnij", -"SMB / CIFS using OC login" => "SMB / CIFS przy użyciu loginu OC", -"Username as share" => "Użytkownik jako zasób", -"URL" => "URL", -"Secure https://" => "Bezpieczny https://", -"Remote subfolder" => "Zdalny podfolder", -"Access granted" => "Dostęp do", -"Error configuring Dropbox storage" => "Wystąpił błąd podczas konfigurowania zasobu Dropbox", -"Grant access" => "Udziel dostępu", -"Error configuring Google Drive storage" => "Wystąpił błąd podczas konfigurowania zasobu Google Drive", -"Personal" => "Osobiste", -"System" => "System", -"All users. Type to select user or group." => "Wszyscy użytkownicy. Zacznij pisać, aby wybrać użytkownika lub grupę.", -"(group)" => "(grupa)", -"Saved" => "Zapisano", -"Note: " => "Uwaga: ", -" and " => "oraz", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Uwaga: Wsparcie dla cURL w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Uwaga: Wsparcie dla FTP w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Uwaga: \"%s\" nie jest zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.", -"You don't have any external storages" => "Nie masz żadnych zewnętrznych magazynów", -"Name" => "Nazwa", -"Storage type" => "Typ magazynu", -"Scope" => "Zakres", -"External Storage" => "Zewnętrzna zasoby dyskowe", -"Folder name" => "Nazwa folderu", -"Configuration" => "Konfiguracja", -"Available for" => "Dostępne przez", -"Add storage" => "Dodaj zasoby dyskowe", -"Delete" => "Usuń", -"Enable User External Storage" => "Włącz zewnętrzne zasoby dyskowe użytkownika", -"Allow users to mount the following external storage" => "Pozwól użytkownikom montować następujące zewnętrzne zasoby dyskowe" -); -$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_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js new file mode 100644 index 0000000000000000000000000000000000000000..e9ec582e182c5a09950a3953d3ed35f278521921 --- /dev/null +++ b/apps/files_external/l10n/pt_BR.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "A busca de fichas de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "A busca de tokens de acesso falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Please provide a valid Dropbox app key and secret." : "Por favor forneça uma chave de aplicativo e segurança válidos para o Dropbox", + "Step 1 failed. Exception: %s" : "Passo 1 falhou. Exceção: %s", + "Step 2 failed. Exception: %s" : "Passo 2 falhou. Exceção: %s", + "External storage" : "Armazenamento Externo", + "Local" : "Local", + "Location" : "Localização", + "Amazon S3" : "Amazon S3", + "Key" : "Chave", + "Secret" : "Segredo", + "Bucket" : "Cesta", + "Amazon S3 and compliant" : "Amazon S3 e compatível", + "Access Key" : "Chave de Acesso", + "Secret Key" : "Chave Secreta", + "Hostname" : "Nome do Host", + "Port" : "Porta", + "Region" : "Região", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo do Caminho", + "App key" : "Chave do Aplicativo", + "App secret" : "Segredo da Aplicação", + "Host" : "Host", + "Username" : "Nome de Usuário", + "Password" : "Senha", + "Root" : "Raiz", + "Secure ftps://" : "Seguro ftps://", + "Client ID" : "ID do Cliente", + "Client secret" : "Segredo do cliente", + "OpenStack Object Storage" : "Armazenamento de Objetos OpenStack", + "Region (optional for OpenStack Object Storage)" : "Região (opcional para armazenamento de objetos OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Chave API (necessário para Rackspace Cloud File)", + "Tenantname (required for OpenStack Object Storage)" : "Nome Tenant (necessário para armazenamento de objetos OpenStack)", + "Password (required for OpenStack Object Storage)" : "Senha (necessário para armazenamento de objetos OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para armazenamento de objetos OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Ponto final de identidade da URL (obrigatório para armazenamento de objetos OpenStack)", + "Timeout of HTTP requests in seconds" : "Tempo de vencimento do pedido HTTP em segundos", + "Share" : "Compartilhar", + "SMB / CIFS using OC login" : "SMB / CIFS usando OC login", + "Username as share" : "Nome de usuário como compartilhado", + "URL" : "URL", + "Secure https://" : "https:// segura", + "Remote subfolder" : "Subpasta remota", + "Access granted" : "Acesso concedido", + "Error configuring Dropbox storage" : "Erro ao configurar armazenamento do Dropbox", + "Grant access" : "Permitir acesso", + "Error configuring Google Drive storage" : "Erro ao configurar armazenamento do Google Drive", + "Personal" : "Pessoal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos os usuários. Digite para selecionar usuário ou grupo.", + "(group)" : "(grupo)", + "Saved" : "Salvo", + "Note: " : "Nota:", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", + "You don't have any external storages" : "Você não tem nenhuma armazenamento externa", + "Name" : "Nome", + "Storage type" : "Tipo de armazenamento", + "Scope" : "Escopo", + "External Storage" : "Armazenamento Externo", + "Folder name" : "Nome da pasta", + "Configuration" : "Configuração", + "Available for" : "Disponível para", + "Add storage" : "Adicionar Armazenamento", + "Delete" : "Excluir", + "Enable User External Storage" : "Habilitar Armazenamento Externo do Usuário", + "Allow users to mount the following external storage" : "Permitir que usuários montem o seguinte armazenamento externo" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json new file mode 100644 index 0000000000000000000000000000000000000000..9f0907b9d20dcbcfa898367c694f31dcffaf8eea --- /dev/null +++ b/apps/files_external/l10n/pt_BR.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "A busca de fichas de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "A busca de tokens de acesso falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Please provide a valid Dropbox app key and secret." : "Por favor forneça uma chave de aplicativo e segurança válidos para o Dropbox", + "Step 1 failed. Exception: %s" : "Passo 1 falhou. Exceção: %s", + "Step 2 failed. Exception: %s" : "Passo 2 falhou. Exceção: %s", + "External storage" : "Armazenamento Externo", + "Local" : "Local", + "Location" : "Localização", + "Amazon S3" : "Amazon S3", + "Key" : "Chave", + "Secret" : "Segredo", + "Bucket" : "Cesta", + "Amazon S3 and compliant" : "Amazon S3 e compatível", + "Access Key" : "Chave de Acesso", + "Secret Key" : "Chave Secreta", + "Hostname" : "Nome do Host", + "Port" : "Porta", + "Region" : "Região", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo do Caminho", + "App key" : "Chave do Aplicativo", + "App secret" : "Segredo da Aplicação", + "Host" : "Host", + "Username" : "Nome de Usuário", + "Password" : "Senha", + "Root" : "Raiz", + "Secure ftps://" : "Seguro ftps://", + "Client ID" : "ID do Cliente", + "Client secret" : "Segredo do cliente", + "OpenStack Object Storage" : "Armazenamento de Objetos OpenStack", + "Region (optional for OpenStack Object Storage)" : "Região (opcional para armazenamento de objetos OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Chave API (necessário para Rackspace Cloud File)", + "Tenantname (required for OpenStack Object Storage)" : "Nome Tenant (necessário para armazenamento de objetos OpenStack)", + "Password (required for OpenStack Object Storage)" : "Senha (necessário para armazenamento de objetos OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para armazenamento de objetos OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Ponto final de identidade da URL (obrigatório para armazenamento de objetos OpenStack)", + "Timeout of HTTP requests in seconds" : "Tempo de vencimento do pedido HTTP em segundos", + "Share" : "Compartilhar", + "SMB / CIFS using OC login" : "SMB / CIFS usando OC login", + "Username as share" : "Nome de usuário como compartilhado", + "URL" : "URL", + "Secure https://" : "https:// segura", + "Remote subfolder" : "Subpasta remota", + "Access granted" : "Acesso concedido", + "Error configuring Dropbox storage" : "Erro ao configurar armazenamento do Dropbox", + "Grant access" : "Permitir acesso", + "Error configuring Google Drive storage" : "Erro ao configurar armazenamento do Google Drive", + "Personal" : "Pessoal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos os usuários. Digite para selecionar usuário ou grupo.", + "(group)" : "(grupo)", + "Saved" : "Salvo", + "Note: " : "Nota:", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nota: \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", + "You don't have any external storages" : "Você não tem nenhuma armazenamento externa", + "Name" : "Nome", + "Storage type" : "Tipo de armazenamento", + "Scope" : "Escopo", + "External Storage" : "Armazenamento Externo", + "Folder name" : "Nome da pasta", + "Configuration" : "Configuração", + "Available for" : "Disponível para", + "Add storage" : "Adicionar Armazenamento", + "Delete" : "Excluir", + "Enable User External Storage" : "Habilitar Armazenamento Externo do Usuário", + "Allow users to mount the following external storage" : "Permitir que usuários montem o seguinte armazenamento externo" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/pt_BR.php b/apps/files_external/l10n/pt_BR.php deleted file mode 100644 index ef0c2642396fee8d9ac68d1a325cb7effc513e97..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/pt_BR.php +++ /dev/null @@ -1,73 +0,0 @@ - "A busca de fichas de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "A busca de tokens de acesso falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", -"Please provide a valid Dropbox app key and secret." => "Por favor forneça uma chave de aplicativo e segurança válidos para o Dropbox", -"Step 1 failed. Exception: %s" => "Passo 1 falhou. Exceção: %s", -"Step 2 failed. Exception: %s" => "Passo 2 falhou. Exceção: %s", -"External storage" => "Armazenamento Externo", -"Local" => "Local", -"Location" => "Localização", -"Amazon S3" => "Amazon S3", -"Key" => "Chave", -"Secret" => "Segredo", -"Bucket" => "Cesta", -"Amazon S3 and compliant" => "Amazon S3 e compatível", -"Access Key" => "Chave de Acesso", -"Secret Key" => "Chave Secreta", -"Hostname" => "Nome do Host", -"Port" => "Porta", -"Region" => "Região", -"Enable SSL" => "Habilitar SSL", -"Enable Path Style" => "Habilitar Estilo do Caminho", -"App key" => "Chave do Aplicativo", -"App secret" => "Segredo da Aplicação", -"Host" => "Host", -"Username" => "Nome de Usuário", -"Password" => "Senha", -"Root" => "Raiz", -"Secure ftps://" => "Seguro ftps://", -"Client ID" => "ID do Cliente", -"Client secret" => "Segredo do cliente", -"OpenStack Object Storage" => "Armazenamento de Objetos OpenStack", -"Region (optional for OpenStack Object Storage)" => "Região (opcional para armazenamento de objetos OpenStack)", -"API Key (required for Rackspace Cloud Files)" => "Chave API (necessário para Rackspace Cloud File)", -"Tenantname (required for OpenStack Object Storage)" => "Nome Tenant (necessário para armazenamento de objetos OpenStack)", -"Password (required for OpenStack Object Storage)" => "Senha (necessário para armazenamento de objetos OpenStack)", -"Service Name (required for OpenStack Object Storage)" => "Nome do Serviço (necessário para armazenamento de objetos OpenStack)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Ponto final de identidade da URL (obrigatório para armazenamento de objetos OpenStack)", -"Timeout of HTTP requests in seconds" => "Tempo de vencimento do pedido HTTP em segundos", -"Share" => "Compartilhar", -"SMB / CIFS using OC login" => "SMB / CIFS usando OC login", -"Username as share" => "Nome de usuário como compartilhado", -"URL" => "URL", -"Secure https://" => "https:// segura", -"Remote subfolder" => "Subpasta remota", -"Access granted" => "Acesso concedido", -"Error configuring Dropbox storage" => "Erro ao configurar armazenamento do Dropbox", -"Grant access" => "Permitir acesso", -"Error configuring Google Drive storage" => "Erro ao configurar armazenamento do Google Drive", -"Personal" => "Pessoal", -"System" => "Sistema", -"All users. Type to select user or group." => "Todos os usuários. Digite para selecionar usuário ou grupo.", -"(group)" => "(grupo)", -"Saved" => "Salvo", -"Note: " => "Nota:", -" and " => "e", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Nota: \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.", -"You don't have any external storages" => "Você não tem nenhuma armazenamento externa", -"Name" => "Nome", -"Storage type" => "Tipo de armazenamento", -"Scope" => "Escopo", -"External Storage" => "Armazenamento Externo", -"Folder name" => "Nome da pasta", -"Configuration" => "Configuração", -"Available for" => "Disponível para", -"Add storage" => "Adicionar Armazenamento", -"Delete" => "Excluir", -"Enable User External Storage" => "Habilitar Armazenamento Externo do Usuário", -"Allow users to mount the following external storage" => "Permitir que usuários montem o seguinte armazenamento externo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js new file mode 100644 index 0000000000000000000000000000000000000000..2d3f342e9e99843323fb8240eaff733a0a75d0ec --- /dev/null +++ b/apps/files_external/l10n/pt_PT.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "O pedido de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "O pedido de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Please provide a valid Dropbox app key and secret." : "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas.", + "Step 1 failed. Exception: %s" : "Passo 1 falhou. Excepção: %s", + "Step 2 failed. Exception: %s" : "Passo 2 falhou. Excepção: %s", + "External storage" : "Armazenamento Externo", + "Local" : "Local", + "Location" : "Local", + "Amazon S3" : "Amazon S3", + "Key" : "Chave", + "Secret" : "Secreto", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 e compatível", + "Access Key" : "Chave de acesso", + "Secret Key" : "Chave Secreta", + "Hostname" : "Hostname", + "Port" : "Porta", + "Region" : "Região", + "Enable SSL" : "Activar SSL", + "Enable Path Style" : "Ativar Estilo do Caminho", + "App key" : "Chave da aplicação", + "App secret" : "Chave secreta da aplicação", + "Host" : "Endereço", + "Username" : "Nome de utilizador", + "Password" : "Palavra-passe", + "Root" : "Raiz", + "Secure ftps://" : "ftps:// Seguro", + "Client ID" : "ID Cliente", + "Client secret" : "Segredo do cliente", + "OpenStack Object Storage" : "Armazenamento de objetos OpenStack", + "Region (optional for OpenStack Object Storage)" : "Região (opcional para OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Chave API (necessário para Rackspace Cloud File)", + "Tenantname (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Senha (necessária para OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Timeout de pedidos HTTP em segundos", + "Share" : "Partilhar", + "SMB / CIFS using OC login" : "SMB / CIFS utilizando o início de sessão OC", + "Username as share" : "Utilizar nome de utilizador como partilha", + "URL" : "URL", + "Secure https://" : "https:// Seguro", + "Remote subfolder" : "Sub-pasta remota ", + "Access granted" : "Acesso autorizado", + "Error configuring Dropbox storage" : "Erro ao configurar o armazenamento do Dropbox", + "Grant access" : "Conceder acesso", + "Error configuring Google Drive storage" : "Erro ao configurar o armazenamento do Google Drive", + "Personal" : "Pessoal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos os utilizadores. Digite para seleccionar utilizador ou grupo.", + "(group)" : "(grupo)", + "Saved" : "Guardado", + "Note: " : "Aviso: ", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Aviso: O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Aviso: O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Aviso: O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.", + "You don't have any external storages" : "Não possui quaisquer armazenamentos externos", + "Name" : "Nome", + "Storage type" : "Tipo de Armazenamento", + "Scope" : "Âmbito", + "External Storage" : "Armazenamento Externo", + "Folder name" : "Nome da pasta", + "Configuration" : "Configuração", + "Available for" : "Disponível para ", + "Add storage" : "Adicionar armazenamento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Activar Armazenamento Externo para o Utilizador", + "Allow users to mount the following external storage" : "Permitir que os utilizadores montem o seguinte armazenamento externo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json new file mode 100644 index 0000000000000000000000000000000000000000..cee9e1b7f1a263eaf24cac70836cbfba3fd31260 --- /dev/null +++ b/apps/files_external/l10n/pt_PT.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "O pedido de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "O pedido de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", + "Please provide a valid Dropbox app key and secret." : "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas.", + "Step 1 failed. Exception: %s" : "Passo 1 falhou. Excepção: %s", + "Step 2 failed. Exception: %s" : "Passo 2 falhou. Excepção: %s", + "External storage" : "Armazenamento Externo", + "Local" : "Local", + "Location" : "Local", + "Amazon S3" : "Amazon S3", + "Key" : "Chave", + "Secret" : "Secreto", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 e compatível", + "Access Key" : "Chave de acesso", + "Secret Key" : "Chave Secreta", + "Hostname" : "Hostname", + "Port" : "Porta", + "Region" : "Região", + "Enable SSL" : "Activar SSL", + "Enable Path Style" : "Ativar Estilo do Caminho", + "App key" : "Chave da aplicação", + "App secret" : "Chave secreta da aplicação", + "Host" : "Endereço", + "Username" : "Nome de utilizador", + "Password" : "Palavra-passe", + "Root" : "Raiz", + "Secure ftps://" : "ftps:// Seguro", + "Client ID" : "ID Cliente", + "Client secret" : "Segredo do cliente", + "OpenStack Object Storage" : "Armazenamento de objetos OpenStack", + "Region (optional for OpenStack Object Storage)" : "Região (opcional para OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Chave API (necessário para Rackspace Cloud File)", + "Tenantname (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Senha (necessária para OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Nome do Serviço (necessário para OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Timeout de pedidos HTTP em segundos", + "Share" : "Partilhar", + "SMB / CIFS using OC login" : "SMB / CIFS utilizando o início de sessão OC", + "Username as share" : "Utilizar nome de utilizador como partilha", + "URL" : "URL", + "Secure https://" : "https:// Seguro", + "Remote subfolder" : "Sub-pasta remota ", + "Access granted" : "Acesso autorizado", + "Error configuring Dropbox storage" : "Erro ao configurar o armazenamento do Dropbox", + "Grant access" : "Conceder acesso", + "Error configuring Google Drive storage" : "Erro ao configurar o armazenamento do Google Drive", + "Personal" : "Pessoal", + "System" : "Sistema", + "All users. Type to select user or group." : "Todos os utilizadores. Digite para seleccionar utilizador ou grupo.", + "(group)" : "(grupo)", + "Saved" : "Guardado", + "Note: " : "Aviso: ", + " and " : "e", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Aviso: O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Aviso: O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Aviso: O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.", + "You don't have any external storages" : "Não possui quaisquer armazenamentos externos", + "Name" : "Nome", + "Storage type" : "Tipo de Armazenamento", + "Scope" : "Âmbito", + "External Storage" : "Armazenamento Externo", + "Folder name" : "Nome da pasta", + "Configuration" : "Configuração", + "Available for" : "Disponível para ", + "Add storage" : "Adicionar armazenamento", + "Delete" : "Eliminar", + "Enable User External Storage" : "Activar Armazenamento Externo para o Utilizador", + "Allow users to mount the following external storage" : "Permitir que os utilizadores montem o seguinte armazenamento externo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/pt_PT.php b/apps/files_external/l10n/pt_PT.php deleted file mode 100644 index 9a12aebae45a21cf5460163054f055849b86afc8..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/pt_PT.php +++ /dev/null @@ -1,70 +0,0 @@ - "O pedido de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "O pedido de solicitação falhou. Verifique se a sua chave de aplicativo Dropbox e o segredo estão corretos.", -"Please provide a valid Dropbox app key and secret." => "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas.", -"Step 1 failed. Exception: %s" => "Passo 1 falhou. Excepção: %s", -"Step 2 failed. Exception: %s" => "Passo 2 falhou. Excepção: %s", -"External storage" => "Armazenamento Externo", -"Local" => "Local", -"Location" => "Local", -"Amazon S3" => "Amazon S3", -"Key" => "Chave", -"Secret" => "Secreto", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 e compatível", -"Access Key" => "Chave de acesso", -"Secret Key" => "Chave Secreta", -"Port" => "Porta", -"Region" => "Região", -"Enable SSL" => "Activar SSL", -"Enable Path Style" => "Ativar Estilo do Caminho", -"App key" => "Chave da aplicação", -"App secret" => "Chave secreta da aplicação", -"Host" => "Endereço", -"Username" => "Nome de utilizador", -"Password" => "Palavra-passe", -"Root" => "Raiz", -"Secure ftps://" => "ftps:// Seguro", -"Client ID" => "ID Cliente", -"Client secret" => "Segredo do cliente", -"OpenStack Object Storage" => "Armazenamento de objetos OpenStack", -"Region (optional for OpenStack Object Storage)" => "Região (opcional para OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "Chave API (necessário para Rackspace Cloud File)", -"Tenantname (required for OpenStack Object Storage)" => "Nome do Serviço (necessário para OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Senha (necessária para OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Nome do Serviço (necessário para OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Nome do Serviço (necessário para OpenStack Object Storage)", -"Share" => "Partilhar", -"SMB / CIFS using OC login" => "SMB / CIFS utilizando o início de sessão OC", -"Username as share" => "Utilizar nome de utilizador como partilha", -"URL" => "URL", -"Secure https://" => "https:// Seguro", -"Remote subfolder" => "Sub-pasta remota ", -"Access granted" => "Acesso autorizado", -"Error configuring Dropbox storage" => "Erro ao configurar o armazenamento do Dropbox", -"Grant access" => "Conceder acesso", -"Error configuring Google Drive storage" => "Erro ao configurar o armazenamento do Google Drive", -"Personal" => "Pessoal", -"System" => "Sistema", -"(group)" => "(grupo)", -"Saved" => "Guardado", -"Note: " => "Aviso: ", -" and " => "e", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Aviso: O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Aviso: O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Aviso: O cliente\"%s\" não está instalado. Não é possível montar \"%s\" . Peça ao seu administrador para instalar.", -"You don't have any external storages" => "Não possui quaisquer armazenamentos externos", -"Name" => "Nome", -"Storage type" => "Tipo de Armazenamento", -"Scope" => "Âmbito", -"External Storage" => "Armazenamento Externo", -"Folder name" => "Nome da pasta", -"Configuration" => "Configuração", -"Available for" => "Disponível para ", -"Add storage" => "Adicionar armazenamento", -"Delete" => "Eliminar", -"Enable User External Storage" => "Activar Armazenamento Externo para o Utilizador", -"Allow users to mount the following external storage" => "Permitir que os utilizadores montem o seguinte armazenamento externo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/ro.js b/apps/files_external/l10n/ro.js new file mode 100644 index 0000000000000000000000000000000000000000..b98fd2557b6b1c0ee72f08a30625b87abad2abf6 --- /dev/null +++ b/apps/files_external/l10n/ro.js @@ -0,0 +1,32 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Prezintă te rog o cheie de Dropbox validă și parola", + "External storage" : "Stocare externă", + "Location" : "Locație", + "Amazon S3" : "Amazon S3", + "Port" : "Portul", + "Region" : "Regiune", + "Host" : "Gazdă", + "Username" : "Nume utilizator", + "Password" : "Parolă", + "Root" : "Root", + "Share" : "Partajează", + "URL" : "URL", + "Access granted" : "Acces permis", + "Error configuring Dropbox storage" : "Eroare la configurarea mediului de stocare Dropbox", + "Grant access" : "Permite accesul", + "Error configuring Google Drive storage" : "Eroare la configurarea mediului de stocare Google Drive", + "Personal" : "Personal", + "Saved" : "Salvat", + "Name" : "Nume", + "Storage type" : "Tip stocare", + "External Storage" : "Stocare externă", + "Folder name" : "Denumire director", + "Configuration" : "Configurație", + "Add storage" : "Adauga stocare", + "Delete" : "Șterge", + "Enable User External Storage" : "Permite stocare externă pentru utilizatori", + "Allow users to mount the following external storage" : "Permite utilizatorilor să monteze următoarea unitate de stocare" +}, +"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files_external/l10n/ro.json b/apps/files_external/l10n/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..a0e03679958c2be901104fc5a216e7554ec99d6c --- /dev/null +++ b/apps/files_external/l10n/ro.json @@ -0,0 +1,30 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Prezintă te rog o cheie de Dropbox validă și parola", + "External storage" : "Stocare externă", + "Location" : "Locație", + "Amazon S3" : "Amazon S3", + "Port" : "Portul", + "Region" : "Regiune", + "Host" : "Gazdă", + "Username" : "Nume utilizator", + "Password" : "Parolă", + "Root" : "Root", + "Share" : "Partajează", + "URL" : "URL", + "Access granted" : "Acces permis", + "Error configuring Dropbox storage" : "Eroare la configurarea mediului de stocare Dropbox", + "Grant access" : "Permite accesul", + "Error configuring Google Drive storage" : "Eroare la configurarea mediului de stocare Google Drive", + "Personal" : "Personal", + "Saved" : "Salvat", + "Name" : "Nume", + "Storage type" : "Tip stocare", + "External Storage" : "Stocare externă", + "Folder name" : "Denumire director", + "Configuration" : "Configurație", + "Add storage" : "Adauga stocare", + "Delete" : "Șterge", + "Enable User External Storage" : "Permite stocare externă pentru utilizatori", + "Allow users to mount the following external storage" : "Permite utilizatorilor să monteze următoarea unitate de stocare" +},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ro.php b/apps/files_external/l10n/ro.php deleted file mode 100644 index 1aa9ecdef55535df70e28d4600693ef9820db6ae..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ro.php +++ /dev/null @@ -1,31 +0,0 @@ - "Prezintă te rog o cheie de Dropbox validă și parola", -"External storage" => "Stocare externă", -"Location" => "Locație", -"Amazon S3" => "Amazon S3", -"Port" => "Portul", -"Region" => "Regiune", -"Host" => "Gazdă", -"Username" => "Nume utilizator", -"Password" => "Parolă", -"Root" => "Root", -"Share" => "Partajează", -"URL" => "URL", -"Access granted" => "Acces permis", -"Error configuring Dropbox storage" => "Eroare la configurarea mediului de stocare Dropbox", -"Grant access" => "Permite accesul", -"Error configuring Google Drive storage" => "Eroare la configurarea mediului de stocare Google Drive", -"Personal" => "Personal", -"Saved" => "Salvat", -"Name" => "Nume", -"Storage type" => "Tip stocare", -"External Storage" => "Stocare externă", -"Folder name" => "Denumire director", -"Configuration" => "Configurație", -"Add storage" => "Adauga stocare", -"Delete" => "Șterge", -"Enable User External Storage" => "Permite stocare externă pentru utilizatori", -"Allow users to mount the following external storage" => "Permite utilizatorilor să monteze următoarea unitate de stocare" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"; diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js new file mode 100644 index 0000000000000000000000000000000000000000..35eec150d0101c7bd6cc293ecc642566faf845e4 --- /dev/null +++ b/apps/files_external/l10n/ru.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Ошибка при получении токенов. Проверьте правильность вашего ключа приложения и секретного ключа.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ошибка при получении токена доступа. Проверьте правильность вашего ключа приложения и секретного ключа.", + "Please provide a valid Dropbox app key and secret." : "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.", + "Step 1 failed. Exception: %s" : "Шаг 1 неудачен. Исключение: %s", + "Step 2 failed. Exception: %s" : "Шаг 2 неудачен. Исключение: %s", + "External storage" : "Внешнее хранилище", + "Local" : "Локально", + "Location" : "Местоположение", + "Amazon S3" : "Amazon S3", + "Key" : "Ключ", + "Secret" : "Секрет", + "Bucket" : "Корзина", + "Amazon S3 and compliant" : "Amazon S3 и совместимый", + "Access Key" : "Ключ доступа", + "Secret Key" : "Секретный ключ", + "Hostname" : "Имя хоста", + "Port" : "Порт", + "Region" : "Область", + "Enable SSL" : "Включить SSL", + "Enable Path Style" : "Включить стиль пути", + "App key" : "Ключ приложения", + "App secret" : "Секретный ключ ", + "Host" : "Сервер", + "Username" : "Имя пользователя", + "Password" : "Пароль", + "Root" : "Корневой каталог", + "Secure ftps://" : "Защищённый ftps://", + "Client ID" : "Идентификатор клиента", + "Client secret" : "Клиентский ключ ", + "OpenStack Object Storage" : "Хранилище объектов OpenStack", + "Region (optional for OpenStack Object Storage)" : "Регион (необяз. для Хранилища объектов OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Ключ API (обяз. для Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Имя арендатора (обяз. для Хранилища объектов OpenStack)", + "Password (required for OpenStack Object Storage)" : "Пароль (обяз. для Хранилища объектов OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Имя Службы (обяз. для Хранилища объектов OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL для удостоверения конечной точки (обяз. для Хранилища объектов OpenStack)", + "Timeout of HTTP requests in seconds" : "Тайм-аут HTTP-запросов в секундах", + "Share" : "Открыть доступ", + "SMB / CIFS using OC login" : "SMB / CIFS с ипользованием логина OC", + "Username as share" : "Имя для открытого доступа", + "URL" : "Ссылка", + "Secure https://" : "Безопасный https://", + "Remote subfolder" : "Удаленный подкаталог", + "Access granted" : "Доступ предоставлен", + "Error configuring Dropbox storage" : "Ошибка при настройке хранилища Dropbox", + "Grant access" : "Предоставить доступ", + "Error configuring Google Drive storage" : "Ошибка при настройке хранилища Google Drive", + "Personal" : "Личное", + "System" : "Система", + "All users. Type to select user or group." : "Все пользователи. Введите имя пользователя или группы.", + "(group)" : "(группа)", + "Saved" : "Сохранено", + "Note: " : "Примечание: ", + " and " : "и", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примечание: Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примечание: Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примечание: \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", + "You don't have any external storages" : "У вас нет внешних хранилищ", + "Name" : "Имя", + "Storage type" : "Тип хранилища", + "Scope" : "Область", + "External Storage" : "Внешнее хранилище", + "Folder name" : "Имя папки", + "Configuration" : "Конфигурация", + "Available for" : "Доступно для", + "Add storage" : "Добавить хранилище", + "Delete" : "Удалить", + "Enable User External Storage" : "Включить пользовательские внешние носители", + "Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующее внешнее хранилище данных" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..85b9bf38e4cc842901588f0df4aeaac30c7b2e08 --- /dev/null +++ b/apps/files_external/l10n/ru.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Ошибка при получении токенов. Проверьте правильность вашего ключа приложения и секретного ключа.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Ошибка при получении токена доступа. Проверьте правильность вашего ключа приложения и секретного ключа.", + "Please provide a valid Dropbox app key and secret." : "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.", + "Step 1 failed. Exception: %s" : "Шаг 1 неудачен. Исключение: %s", + "Step 2 failed. Exception: %s" : "Шаг 2 неудачен. Исключение: %s", + "External storage" : "Внешнее хранилище", + "Local" : "Локально", + "Location" : "Местоположение", + "Amazon S3" : "Amazon S3", + "Key" : "Ключ", + "Secret" : "Секрет", + "Bucket" : "Корзина", + "Amazon S3 and compliant" : "Amazon S3 и совместимый", + "Access Key" : "Ключ доступа", + "Secret Key" : "Секретный ключ", + "Hostname" : "Имя хоста", + "Port" : "Порт", + "Region" : "Область", + "Enable SSL" : "Включить SSL", + "Enable Path Style" : "Включить стиль пути", + "App key" : "Ключ приложения", + "App secret" : "Секретный ключ ", + "Host" : "Сервер", + "Username" : "Имя пользователя", + "Password" : "Пароль", + "Root" : "Корневой каталог", + "Secure ftps://" : "Защищённый ftps://", + "Client ID" : "Идентификатор клиента", + "Client secret" : "Клиентский ключ ", + "OpenStack Object Storage" : "Хранилище объектов OpenStack", + "Region (optional for OpenStack Object Storage)" : "Регион (необяз. для Хранилища объектов OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Ключ API (обяз. для Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Имя арендатора (обяз. для Хранилища объектов OpenStack)", + "Password (required for OpenStack Object Storage)" : "Пароль (обяз. для Хранилища объектов OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Имя Службы (обяз. для Хранилища объектов OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL для удостоверения конечной точки (обяз. для Хранилища объектов OpenStack)", + "Timeout of HTTP requests in seconds" : "Тайм-аут HTTP-запросов в секундах", + "Share" : "Открыть доступ", + "SMB / CIFS using OC login" : "SMB / CIFS с ипользованием логина OC", + "Username as share" : "Имя для открытого доступа", + "URL" : "Ссылка", + "Secure https://" : "Безопасный https://", + "Remote subfolder" : "Удаленный подкаталог", + "Access granted" : "Доступ предоставлен", + "Error configuring Dropbox storage" : "Ошибка при настройке хранилища Dropbox", + "Grant access" : "Предоставить доступ", + "Error configuring Google Drive storage" : "Ошибка при настройке хранилища Google Drive", + "Personal" : "Личное", + "System" : "Система", + "All users. Type to select user or group." : "Все пользователи. Введите имя пользователя или группы.", + "(group)" : "(группа)", + "Saved" : "Сохранено", + "Note: " : "Примечание: ", + " and " : "и", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примечание: Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примечание: Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примечание: \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", + "You don't have any external storages" : "У вас нет внешних хранилищ", + "Name" : "Имя", + "Storage type" : "Тип хранилища", + "Scope" : "Область", + "External Storage" : "Внешнее хранилище", + "Folder name" : "Имя папки", + "Configuration" : "Конфигурация", + "Available for" : "Доступно для", + "Add storage" : "Добавить хранилище", + "Delete" : "Удалить", + "Enable User External Storage" : "Включить пользовательские внешние носители", + "Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующее внешнее хранилище данных" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ru.php b/apps/files_external/l10n/ru.php deleted file mode 100644 index a1be3a7a7cf33e741c873386818d5b2e769bdec9..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ru.php +++ /dev/null @@ -1,73 +0,0 @@ - "Ошибка при получении токенов. Проверьте правильность вашего ключа приложения и секретного ключа.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Ошибка при получении токена доступа. Проверьте правильность вашего ключа приложения и секретного ключа.", -"Please provide a valid Dropbox app key and secret." => "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.", -"Step 1 failed. Exception: %s" => "Шаг 1 неудачен. Исключение: %s", -"Step 2 failed. Exception: %s" => "Шаг 2 неудачен. Исключение: %s", -"External storage" => "Внешнее хранилище", -"Local" => "Локально", -"Location" => "Местоположение", -"Amazon S3" => "Amazon S3", -"Key" => "Ключ", -"Secret" => "Секрет", -"Bucket" => "Корзина", -"Amazon S3 and compliant" => "Amazon S3 и совместимый", -"Access Key" => "Ключ доступа", -"Secret Key" => "Секретный ключ", -"Hostname" => "Имя хоста", -"Port" => "Порт", -"Region" => "Область", -"Enable SSL" => "Включить SSL", -"Enable Path Style" => "Включить стиль пути", -"App key" => "Ключ приложения", -"App secret" => "Секретный ключ ", -"Host" => "Сервер", -"Username" => "Имя пользователя", -"Password" => "Пароль", -"Root" => "Корневой каталог", -"Secure ftps://" => "Защищённый ftps://", -"Client ID" => "Идентификатор клиента", -"Client secret" => "Клиентский ключ ", -"OpenStack Object Storage" => "Хранилище объектов OpenStack", -"Region (optional for OpenStack Object Storage)" => "Регион (необяз. для Хранилища объектов OpenStack)", -"API Key (required for Rackspace Cloud Files)" => "Ключ API (обяз. для Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Имя арендатора (обяз. для Хранилища объектов OpenStack)", -"Password (required for OpenStack Object Storage)" => "Пароль (обяз. для Хранилища объектов OpenStack)", -"Service Name (required for OpenStack Object Storage)" => "Имя Службы (обяз. для Хранилища объектов OpenStack)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL для удостоверения конечной точки (обяз. для Хранилища объектов OpenStack)", -"Timeout of HTTP requests in seconds" => "Тайм-аут HTTP-запросов в секундах", -"Share" => "Открыть доступ", -"SMB / CIFS using OC login" => "SMB / CIFS с ипользованием логина OC", -"Username as share" => "Имя для открытого доступа", -"URL" => "Ссылка", -"Secure https://" => "Безопасный https://", -"Remote subfolder" => "Удаленный подкаталог", -"Access granted" => "Доступ предоставлен", -"Error configuring Dropbox storage" => "Ошибка при настройке хранилища Dropbox", -"Grant access" => "Предоставить доступ", -"Error configuring Google Drive storage" => "Ошибка при настройке хранилища Google Drive", -"Personal" => "Личное", -"System" => "Система", -"All users. Type to select user or group." => "Все пользователи. Введите имя пользователя или группы.", -"(group)" => "(группа)", -"Saved" => "Сохранено", -"Note: " => "Примечание: ", -" and " => "и", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Примечание: Поддержка cURL в PHP не включена или не установлена. Монтирование %s невозможно. Обратитесь к вашему системному администратору.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Примечание: Поддержка FTP в PHP не включена или не установлена. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Примечание: \"%s\" не установлен. Монтирование %s невозможно. Пожалуйста, обратитесь к системному администратору.", -"You don't have any external storages" => "У вас нет внешних хранилищ", -"Name" => "Имя", -"Storage type" => "Тип хранилища", -"Scope" => "Область", -"External Storage" => "Внешнее хранилище", -"Folder name" => "Имя папки", -"Configuration" => "Конфигурация", -"Available for" => "Доступно для", -"Add storage" => "Добавить хранилище", -"Delete" => "Удалить", -"Enable User External Storage" => "Включить пользовательские внешние носители", -"Allow users to mount the following external storage" => "Разрешить пользователям монтировать следующее внешнее хранилище данных" -); -$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);"; diff --git a/apps/files_external/l10n/si_LK.js b/apps/files_external/l10n/si_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..61ce19641bd290364d644b862a301b036f09cd0f --- /dev/null +++ b/apps/files_external/l10n/si_LK.js @@ -0,0 +1,25 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "කරුණාකර වලංගු Dropbox යෙදුම් යතුරක් හා රහසක් ලබාදෙන්න.", + "Location" : "ස්ථානය", + "Port" : "තොට", + "Region" : "කළාපය", + "Host" : "සත්කාරකය", + "Username" : "පරිශීලක නම", + "Password" : "මුර පදය", + "Share" : "බෙදා හදා ගන්න", + "URL" : "URL", + "Access granted" : "පිවිසීමට හැක", + "Error configuring Dropbox storage" : "Dropbox ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත", + "Grant access" : "පිවිසුම ලබාදෙන්න", + "Error configuring Google Drive storage" : "Google Drive ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත", + "Personal" : "පෞද්ගලික", + "Name" : "නම", + "External Storage" : "භාහිර ගබඩාව", + "Folder name" : "ෆොල්ඩරයේ නම", + "Configuration" : "වින්‍යාසය", + "Delete" : "මකා දමන්න", + "Enable User External Storage" : "පරිශීලක භාහිර ගබඩාවන් සක්‍රිය කරන්න" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/si_LK.json b/apps/files_external/l10n/si_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..d9554fdb97097f0625e1243358e7f6d900183b03 --- /dev/null +++ b/apps/files_external/l10n/si_LK.json @@ -0,0 +1,23 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "කරුණාකර වලංගු Dropbox යෙදුම් යතුරක් හා රහසක් ලබාදෙන්න.", + "Location" : "ස්ථානය", + "Port" : "තොට", + "Region" : "කළාපය", + "Host" : "සත්කාරකය", + "Username" : "පරිශීලක නම", + "Password" : "මුර පදය", + "Share" : "බෙදා හදා ගන්න", + "URL" : "URL", + "Access granted" : "පිවිසීමට හැක", + "Error configuring Dropbox storage" : "Dropbox ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත", + "Grant access" : "පිවිසුම ලබාදෙන්න", + "Error configuring Google Drive storage" : "Google Drive ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත", + "Personal" : "පෞද්ගලික", + "Name" : "නම", + "External Storage" : "භාහිර ගබඩාව", + "Folder name" : "ෆොල්ඩරයේ නම", + "Configuration" : "වින්‍යාසය", + "Delete" : "මකා දමන්න", + "Enable User External Storage" : "පරිශීලක භාහිර ගබඩාවන් සක්‍රිය කරන්න" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/si_LK.php b/apps/files_external/l10n/si_LK.php deleted file mode 100644 index b8dfc559b3ba96bb1f52c32bbe47ef0e354d4834..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/si_LK.php +++ /dev/null @@ -1,24 +0,0 @@ - "කරුණාකර වලංගු Dropbox යෙදුම් යතුරක් හා රහසක් ලබාදෙන්න.", -"Location" => "ස්ථානය", -"Port" => "තොට", -"Region" => "කළාපය", -"Host" => "සත්කාරකය", -"Username" => "පරිශීලක නම", -"Password" => "මුර පදය", -"Share" => "බෙදා හදා ගන්න", -"URL" => "URL", -"Access granted" => "පිවිසීමට හැක", -"Error configuring Dropbox storage" => "Dropbox ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත", -"Grant access" => "පිවිසුම ලබාදෙන්න", -"Error configuring Google Drive storage" => "Google Drive ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත", -"Personal" => "පෞද්ගලික", -"Name" => "නම", -"External Storage" => "භාහිර ගබඩාව", -"Folder name" => "ෆොල්ඩරයේ නම", -"Configuration" => "වින්‍යාසය", -"Delete" => "මකා දමන්න", -"Enable User External Storage" => "පරිශීලක භාහිර ගබඩාවන් සක්‍රිය කරන්න" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/sk.js b/apps/files_external/l10n/sk.js new file mode 100644 index 0000000000000000000000000000000000000000..edae863703de25b4344767783f5a94cb04fc4eb3 --- /dev/null +++ b/apps/files_external/l10n/sk.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Poloha", + "Share" : "Zdieľať", + "Personal" : "Osobné", + "Delete" : "Odstrániť" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_external/l10n/sk.json b/apps/files_external/l10n/sk.json new file mode 100644 index 0000000000000000000000000000000000000000..4d6a95caf3c28fe52771e2f09ffd9a46252519c8 --- /dev/null +++ b/apps/files_external/l10n/sk.json @@ -0,0 +1,7 @@ +{ "translations": { + "Location" : "Poloha", + "Share" : "Zdieľať", + "Personal" : "Osobné", + "Delete" : "Odstrániť" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sk.php b/apps/files_external/l10n/sk.php deleted file mode 100644 index 9418c94922831c0cee28fd5fb6e4052c915f8333..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sk.php +++ /dev/null @@ -1,8 +0,0 @@ - "Poloha", -"Share" => "Zdieľať", -"Personal" => "Osobné", -"Delete" => "Odstrániť" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_external/l10n/sk_SK.js b/apps/files_external/l10n/sk_SK.js new file mode 100644 index 0000000000000000000000000000000000000000..636953c42eaf23596251b56a27c677fe1d08d1a8 --- /dev/null +++ b/apps/files_external/l10n/sk_SK.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Získanie tokenov požiadavky zlyhalo. Overte správnosť svojho kľúča a hesla aplikácie Dropbox.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Získanie prístupových tokenov zlyhalo. Overte správnosť svojho kľúča a hesla aplikácie Dropbox.", + "Please provide a valid Dropbox app key and secret." : "Zadajte platný kľúč aplikácie a heslo Dropbox", + "Step 1 failed. Exception: %s" : "Krok 1 zlyhal. Výnimka: %s", + "Step 2 failed. Exception: %s" : "Krok 2 zlyhal. Výnimka: %s", + "External storage" : "Externé úložisko", + "Local" : "Lokálny", + "Location" : "Umiestnenie", + "Amazon S3" : "Amazon S3", + "Key" : "Kľúč", + "Secret" : "Tajné", + "Bucket" : "Sektor", + "Amazon S3 and compliant" : "Amazon S3 a kompatibilné", + "Access Key" : "Prístupový kľúč", + "Secret Key" : "Tajný kľúč", + "Hostname" : "Hostname", + "Port" : "Port", + "Region" : "Región", + "Enable SSL" : "Povoliť SSL", + "Enable Path Style" : "Povoliť štýl cesty", + "App key" : "Kľúč aplikácie", + "App secret" : "Heslo aplikácie", + "Host" : "Hostiteľ", + "Username" : "Používateľské meno", + "Password" : "Heslo", + "Root" : "Root", + "Secure ftps://" : "Zabezpečené ftps://", + "Client ID" : "Client ID", + "Client secret" : "Heslo klienta", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Región (voliteľné pre OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (požadované pre Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (požadované pre OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Heslo (požadované pre OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Meno služby (požadované pre OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (požadované pre OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Časový limit HTTP požadaviek v sekundách", + "Share" : "Zdieľať", + "SMB / CIFS using OC login" : "SMB / CIFS s použitím OC prihlásenia", + "Username as share" : "Používateľské meno ako zdieľaný priečinok", + "URL" : "URL", + "Secure https://" : "Zabezpečené https://", + "Remote subfolder" : "Vzdialený podpriečinok", + "Access granted" : "Prístup povolený", + "Error configuring Dropbox storage" : "Chyba pri konfigurácii úložiska Dropbox", + "Grant access" : "Povoliť prístup", + "Error configuring Google Drive storage" : "Chyba pri konfigurácii úložiska Google drive", + "Personal" : "Osobné", + "System" : "Systém", + "All users. Type to select user or group." : "Všetci používatelia. Začnite písať pre výber používateľa alebo skupinu.", + "(group)" : "(skupina)", + "Saved" : "Uložené", + "Note: " : "Poznámka: ", + " and " : "a", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: cURL podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: FTP podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: \"%s\" nie je nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", + "You don't have any external storages" : "Nemáte žiadne externé úložisko", + "Name" : "Názov", + "Storage type" : "Typ úložiska", + "Scope" : "Rozsah", + "External Storage" : "Externé úložisko", + "Folder name" : "Názov priečinka", + "Configuration" : "Nastavenia", + "Available for" : "K dispozícii pre", + "Add storage" : "Pridať úložisko", + "Delete" : "Zmazať", + "Enable User External Storage" : "Povoliť externé úložisko", + "Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_external/l10n/sk_SK.json b/apps/files_external/l10n/sk_SK.json new file mode 100644 index 0000000000000000000000000000000000000000..5d2ca0a95a04e53e79745e4e76112e0715591c00 --- /dev/null +++ b/apps/files_external/l10n/sk_SK.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Získanie tokenov požiadavky zlyhalo. Overte správnosť svojho kľúča a hesla aplikácie Dropbox.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Získanie prístupových tokenov zlyhalo. Overte správnosť svojho kľúča a hesla aplikácie Dropbox.", + "Please provide a valid Dropbox app key and secret." : "Zadajte platný kľúč aplikácie a heslo Dropbox", + "Step 1 failed. Exception: %s" : "Krok 1 zlyhal. Výnimka: %s", + "Step 2 failed. Exception: %s" : "Krok 2 zlyhal. Výnimka: %s", + "External storage" : "Externé úložisko", + "Local" : "Lokálny", + "Location" : "Umiestnenie", + "Amazon S3" : "Amazon S3", + "Key" : "Kľúč", + "Secret" : "Tajné", + "Bucket" : "Sektor", + "Amazon S3 and compliant" : "Amazon S3 a kompatibilné", + "Access Key" : "Prístupový kľúč", + "Secret Key" : "Tajný kľúč", + "Hostname" : "Hostname", + "Port" : "Port", + "Region" : "Región", + "Enable SSL" : "Povoliť SSL", + "Enable Path Style" : "Povoliť štýl cesty", + "App key" : "Kľúč aplikácie", + "App secret" : "Heslo aplikácie", + "Host" : "Hostiteľ", + "Username" : "Používateľské meno", + "Password" : "Heslo", + "Root" : "Root", + "Secure ftps://" : "Zabezpečené ftps://", + "Client ID" : "Client ID", + "Client secret" : "Heslo klienta", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Región (voliteľné pre OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API Key (požadované pre Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (požadované pre OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Heslo (požadované pre OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Meno služby (požadované pre OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL of identity endpoint (požadované pre OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Časový limit HTTP požadaviek v sekundách", + "Share" : "Zdieľať", + "SMB / CIFS using OC login" : "SMB / CIFS s použitím OC prihlásenia", + "Username as share" : "Používateľské meno ako zdieľaný priečinok", + "URL" : "URL", + "Secure https://" : "Zabezpečené https://", + "Remote subfolder" : "Vzdialený podpriečinok", + "Access granted" : "Prístup povolený", + "Error configuring Dropbox storage" : "Chyba pri konfigurácii úložiska Dropbox", + "Grant access" : "Povoliť prístup", + "Error configuring Google Drive storage" : "Chyba pri konfigurácii úložiska Google drive", + "Personal" : "Osobné", + "System" : "Systém", + "All users. Type to select user or group." : "Všetci používatelia. Začnite písať pre výber používateľa alebo skupinu.", + "(group)" : "(skupina)", + "Saved" : "Uložené", + "Note: " : "Poznámka: ", + " and " : "a", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: cURL podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: FTP podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Poznámka: \"%s\" nie je nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", + "You don't have any external storages" : "Nemáte žiadne externé úložisko", + "Name" : "Názov", + "Storage type" : "Typ úložiska", + "Scope" : "Rozsah", + "External Storage" : "Externé úložisko", + "Folder name" : "Názov priečinka", + "Configuration" : "Nastavenia", + "Available for" : "K dispozícii pre", + "Add storage" : "Pridať úložisko", + "Delete" : "Zmazať", + "Enable User External Storage" : "Povoliť externé úložisko", + "Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php deleted file mode 100644 index 0662e207da81560203001009421e6cc2de3c8425..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sk_SK.php +++ /dev/null @@ -1,73 +0,0 @@ - "Získanie tokenov požiadavky zlyhalo. Overte správnosť svojho kľúča a hesla aplikácie Dropbox.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Získanie prístupových tokenov zlyhalo. Overte správnosť svojho kľúča a hesla aplikácie Dropbox.", -"Please provide a valid Dropbox app key and secret." => "Zadajte platný kľúč aplikácie a heslo Dropbox", -"Step 1 failed. Exception: %s" => "Krok 1 zlyhal. Výnimka: %s", -"Step 2 failed. Exception: %s" => "Krok 2 zlyhal. Výnimka: %s", -"External storage" => "Externé úložisko", -"Local" => "Lokálny", -"Location" => "Umiestnenie", -"Amazon S3" => "Amazon S3", -"Key" => "Kľúč", -"Secret" => "Tajné", -"Bucket" => "Sektor", -"Amazon S3 and compliant" => "Amazon S3 a kompatibilné", -"Access Key" => "Prístupový kľúč", -"Secret Key" => "Tajný kľúč", -"Hostname" => "Hostname", -"Port" => "Port", -"Region" => "Región", -"Enable SSL" => "Povoliť SSL", -"Enable Path Style" => "Povoliť štýl cesty", -"App key" => "Kľúč aplikácie", -"App secret" => "Heslo aplikácie", -"Host" => "Hostiteľ", -"Username" => "Používateľské meno", -"Password" => "Heslo", -"Root" => "Root", -"Secure ftps://" => "Zabezpečené ftps://", -"Client ID" => "Client ID", -"Client secret" => "Heslo klienta", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Región (voliteľné pre OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API Key (požadované pre Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (požadované pre OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Heslo (požadované pre OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Meno služby (požadované pre OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL of identity endpoint (požadované pre OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Časový limit HTTP požadaviek v sekundách", -"Share" => "Zdieľať", -"SMB / CIFS using OC login" => "SMB / CIFS s použitím OC prihlásenia", -"Username as share" => "Používateľské meno ako zdieľaný priečinok", -"URL" => "URL", -"Secure https://" => "Zabezpečené https://", -"Remote subfolder" => "Vzdialený podpriečinok", -"Access granted" => "Prístup povolený", -"Error configuring Dropbox storage" => "Chyba pri konfigurácii úložiska Dropbox", -"Grant access" => "Povoliť prístup", -"Error configuring Google Drive storage" => "Chyba pri konfigurácii úložiska Google drive", -"Personal" => "Osobné", -"System" => "Systém", -"All users. Type to select user or group." => "Všetci používatelia. Začnite písať pre výber používateľa alebo skupinu.", -"(group)" => "(skupina)", -"Saved" => "Uložené", -"Note: " => "Poznámka: ", -" and " => "a", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Poznámka: cURL podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Poznámka: FTP podpora v PHP nie je zapnutá alebo nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Poznámka: \"%s\" nie je nainštalovaná. Pripojenie %s nie je možné. Požiadajte správcu systému, aby ju nainštaloval.", -"You don't have any external storages" => "Nemáte žiadne externé úložisko", -"Name" => "Názov", -"Storage type" => "Typ úložiska", -"Scope" => "Rozsah", -"External Storage" => "Externé úložisko", -"Folder name" => "Názov priečinka", -"Configuration" => "Nastavenia", -"Available for" => "K dispozícii pre", -"Add storage" => "Pridať úložisko", -"Delete" => "Zmazať", -"Enable User External Storage" => "Povoliť externé úložisko", -"Allow users to mount the following external storage" => "Povoliť používateľom pripojiť tieto externé úložiská" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_external/l10n/sl.js b/apps/files_external/l10n/sl.js new file mode 100644 index 0000000000000000000000000000000000000000..690fd9ae32281e6b58da63cb5d0f4899c1ecfa35 --- /dev/null +++ b/apps/files_external/l10n/sl.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Pridobivanje žetonov za zahteve je spodletelo. Preverite, da sta ključ in skrivno geslo programa Dropbox navedena pravilno.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Pridobivanje žetonov za dostop je spodletelo. Preverite, da sta ključ in skrivno geslo programa Dropbox navedena pravilno.", + "Please provide a valid Dropbox app key and secret." : "Vpisati je treba veljaven ključ programa in kodo za Dropbox", + "Step 1 failed. Exception: %s" : "1. korak je spodletel. Izjemna napaka: %s", + "Step 2 failed. Exception: %s" : "2. korak je spodletel. Izjemna napaka: %s", + "External storage" : "Zunanja shramba", + "Local" : "Krajevno", + "Location" : "Mesto", + "Amazon S3" : "Amazon S3", + "Key" : "Ključ", + "Secret" : "Skrivni ključ", + "Bucket" : "Pomnilniško vedro", + "Amazon S3 and compliant" : "Amazon S3 in podobno", + "Access Key" : "Ključ za dostop", + "Secret Key" : "Skrivni ključ", + "Hostname" : "Ime gostitelja", + "Port" : "Vrata", + "Region" : "Območje", + "Enable SSL" : "Omogoči SSL", + "Enable Path Style" : "Omogoči slog poti", + "App key" : "Programski ključ", + "App secret" : "Skrivni programski ključ", + "Host" : "Gostitelj", + "Username" : "Uporabniško ime", + "Password" : "Geslo", + "Root" : "Koren", + "Secure ftps://" : "Varni način ftps://", + "Client ID" : "ID odjemalca", + "Client secret" : "Skrivni ključ odjemalca", + "OpenStack Object Storage" : "Shramba predmeta OpenStack", + "Region (optional for OpenStack Object Storage)" : "Območje (zahtevano za shrambo predmeta OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Ključ programskega vmesnika (API) (zahtevan je za datoteke v oblaku Rackspace)", + "Tenantname (required for OpenStack Object Storage)" : "Ime uporabnika (zahtevano za shrambo predmeta OpenStack)", + "Password (required for OpenStack Object Storage)" : "Geslo (zahtevano za shrambo predmeta OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Ime storitve (zahtevano za shrambo predmeta OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Naslov URL končne točke uporabnika (zahtevano za shrambo predmeta OpenStack)", + "Timeout of HTTP requests in seconds" : "Časovni zamik zahtev HTTP v sekundah", + "Share" : "Souporaba", + "SMB / CIFS using OC login" : "SMB / CIFS z uporabo prijave OC", + "Username as share" : "Uporabniško ime za souporabo", + "URL" : "Naslov URL", + "Secure https://" : "Varni način https://", + "Remote subfolder" : "Oddaljena podrejena mapa", + "Access granted" : "Dostop je odobren", + "Error configuring Dropbox storage" : "Napaka nastavljanja shrambe Dropbox", + "Grant access" : "Odobri dostop", + "Error configuring Google Drive storage" : "Napaka nastavljanja shrambe Google Drive", + "Personal" : "Osebno", + "System" : "Sistem", + "All users. Type to select user or group." : "Vsi uporabniki. Skupino ali uporabnika je mogoče tudi izbrati.", + "(group)" : "(skupina)", + "Saved" : "Shranjeno", + "Note: " : "Opomba: ", + " and " : "in", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Opomba: Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Opomba: Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Opomba: Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", + "You don't have any external storages" : "Ni navedenih zunanjih shramb", + "Name" : "Ime", + "Storage type" : "Vrsta shrambe", + "Scope" : "Obseg", + "External Storage" : "Zunanja podatkovna shramba", + "Folder name" : "Ime mape", + "Configuration" : "Nastavitve", + "Available for" : "Na voljo za", + "Add storage" : "Dodaj shrambo", + "Delete" : "Izbriši", + "Enable User External Storage" : "Omogoči zunanjo uporabniško podatkovno shrambo", + "Allow users to mount the following external storage" : "Dovoli uporabnikom priklapljanje navedenih zunanjih shramb." +}, +"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/files_external/l10n/sl.json b/apps/files_external/l10n/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..c92e9a310d822cab644b5604e465b80ebe1f718d --- /dev/null +++ b/apps/files_external/l10n/sl.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Pridobivanje žetonov za zahteve je spodletelo. Preverite, da sta ključ in skrivno geslo programa Dropbox navedena pravilno.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Pridobivanje žetonov za dostop je spodletelo. Preverite, da sta ključ in skrivno geslo programa Dropbox navedena pravilno.", + "Please provide a valid Dropbox app key and secret." : "Vpisati je treba veljaven ključ programa in kodo za Dropbox", + "Step 1 failed. Exception: %s" : "1. korak je spodletel. Izjemna napaka: %s", + "Step 2 failed. Exception: %s" : "2. korak je spodletel. Izjemna napaka: %s", + "External storage" : "Zunanja shramba", + "Local" : "Krajevno", + "Location" : "Mesto", + "Amazon S3" : "Amazon S3", + "Key" : "Ključ", + "Secret" : "Skrivni ključ", + "Bucket" : "Pomnilniško vedro", + "Amazon S3 and compliant" : "Amazon S3 in podobno", + "Access Key" : "Ključ za dostop", + "Secret Key" : "Skrivni ključ", + "Hostname" : "Ime gostitelja", + "Port" : "Vrata", + "Region" : "Območje", + "Enable SSL" : "Omogoči SSL", + "Enable Path Style" : "Omogoči slog poti", + "App key" : "Programski ključ", + "App secret" : "Skrivni programski ključ", + "Host" : "Gostitelj", + "Username" : "Uporabniško ime", + "Password" : "Geslo", + "Root" : "Koren", + "Secure ftps://" : "Varni način ftps://", + "Client ID" : "ID odjemalca", + "Client secret" : "Skrivni ključ odjemalca", + "OpenStack Object Storage" : "Shramba predmeta OpenStack", + "Region (optional for OpenStack Object Storage)" : "Območje (zahtevano za shrambo predmeta OpenStack)", + "API Key (required for Rackspace Cloud Files)" : "Ključ programskega vmesnika (API) (zahtevan je za datoteke v oblaku Rackspace)", + "Tenantname (required for OpenStack Object Storage)" : "Ime uporabnika (zahtevano za shrambo predmeta OpenStack)", + "Password (required for OpenStack Object Storage)" : "Geslo (zahtevano za shrambo predmeta OpenStack)", + "Service Name (required for OpenStack Object Storage)" : "Ime storitve (zahtevano za shrambo predmeta OpenStack)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Naslov URL končne točke uporabnika (zahtevano za shrambo predmeta OpenStack)", + "Timeout of HTTP requests in seconds" : "Časovni zamik zahtev HTTP v sekundah", + "Share" : "Souporaba", + "SMB / CIFS using OC login" : "SMB / CIFS z uporabo prijave OC", + "Username as share" : "Uporabniško ime za souporabo", + "URL" : "Naslov URL", + "Secure https://" : "Varni način https://", + "Remote subfolder" : "Oddaljena podrejena mapa", + "Access granted" : "Dostop je odobren", + "Error configuring Dropbox storage" : "Napaka nastavljanja shrambe Dropbox", + "Grant access" : "Odobri dostop", + "Error configuring Google Drive storage" : "Napaka nastavljanja shrambe Google Drive", + "Personal" : "Osebno", + "System" : "Sistem", + "All users. Type to select user or group." : "Vsi uporabniki. Skupino ali uporabnika je mogoče tudi izbrati.", + "(group)" : "(skupina)", + "Saved" : "Shranjeno", + "Note: " : "Opomba: ", + " and " : "in", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Opomba: Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Opomba: Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Opomba: Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", + "You don't have any external storages" : "Ni navedenih zunanjih shramb", + "Name" : "Ime", + "Storage type" : "Vrsta shrambe", + "Scope" : "Obseg", + "External Storage" : "Zunanja podatkovna shramba", + "Folder name" : "Ime mape", + "Configuration" : "Nastavitve", + "Available for" : "Na voljo za", + "Add storage" : "Dodaj shrambo", + "Delete" : "Izbriši", + "Enable User External Storage" : "Omogoči zunanjo uporabniško podatkovno shrambo", + "Allow users to mount the following external storage" : "Dovoli uporabnikom priklapljanje navedenih zunanjih shramb." +},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sl.php b/apps/files_external/l10n/sl.php deleted file mode 100644 index 90d9c234f2b779a728efbe799437a3a4ac7ca119..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sl.php +++ /dev/null @@ -1,73 +0,0 @@ - "Pridobivanje žetonov za zahteve je spodletelo. Preverite, da sta ključ in skrivno geslo programa Dropbox navedena pravilno.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Pridobivanje žetonov za dostop je spodletelo. Preverite, da sta ključ in skrivno geslo programa Dropbox navedena pravilno.", -"Please provide a valid Dropbox app key and secret." => "Vpisati je treba veljaven ključ programa in kodo za Dropbox", -"Step 1 failed. Exception: %s" => "1. korak je spodletel. Izjemna napaka: %s", -"Step 2 failed. Exception: %s" => "2. korak je spodletel. Izjemna napaka: %s", -"External storage" => "Zunanja shramba", -"Local" => "Krajevno", -"Location" => "Mesto", -"Amazon S3" => "Amazon S3", -"Key" => "Ključ", -"Secret" => "Skrivni ključ", -"Bucket" => "Pomnilniško vedro", -"Amazon S3 and compliant" => "Amazon S3 in podobno", -"Access Key" => "Ključ za dostop", -"Secret Key" => "Skrivni ključ", -"Hostname" => "Ime gostitelja", -"Port" => "Vrata", -"Region" => "Območje", -"Enable SSL" => "Omogoči SSL", -"Enable Path Style" => "Omogoči slog poti", -"App key" => "Programski ključ", -"App secret" => "Skrivni programski ključ", -"Host" => "Gostitelj", -"Username" => "Uporabniško ime", -"Password" => "Geslo", -"Root" => "Koren", -"Secure ftps://" => "Varni način ftps://", -"Client ID" => "ID odjemalca", -"Client secret" => "Skrivni ključ odjemalca", -"OpenStack Object Storage" => "Shramba predmeta OpenStack", -"Region (optional for OpenStack Object Storage)" => "Območje (zahtevano za shrambo predmeta OpenStack)", -"API Key (required for Rackspace Cloud Files)" => "Ključ programskega vmesnika (API) (zahtevan je za datoteke v oblaku Rackspace)", -"Tenantname (required for OpenStack Object Storage)" => "Ime uporabnika (zahtevano za shrambo predmeta OpenStack)", -"Password (required for OpenStack Object Storage)" => "Geslo (zahtevano za shrambo predmeta OpenStack)", -"Service Name (required for OpenStack Object Storage)" => "Ime storitve (zahtevano za shrambo predmeta OpenStack)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Naslov URL končne točke uporabnika (zahtevano za shrambo predmeta OpenStack)", -"Timeout of HTTP requests in seconds" => "Časovni zamik zahtev HTTP v sekundah", -"Share" => "Souporaba", -"SMB / CIFS using OC login" => "SMB / CIFS z uporabo prijave OC", -"Username as share" => "Uporabniško ime za souporabo", -"URL" => "Naslov URL", -"Secure https://" => "Varni način https://", -"Remote subfolder" => "Oddaljena podrejena mapa", -"Access granted" => "Dostop je odobren", -"Error configuring Dropbox storage" => "Napaka nastavljanja shrambe Dropbox", -"Grant access" => "Odobri dostop", -"Error configuring Google Drive storage" => "Napaka nastavljanja shrambe Google Drive", -"Personal" => "Osebno", -"System" => "Sistem", -"All users. Type to select user or group." => "Vsi uporabniki. Skupino ali uporabnika je mogoče tudi izbrati.", -"(group)" => "(skupina)", -"Saved" => "Shranjeno", -"Note: " => "Opomba: ", -" and " => "in", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Opomba: Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Opomba: Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Opomba: Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.", -"You don't have any external storages" => "Ni navedenih zunanjih shramb", -"Name" => "Ime", -"Storage type" => "Vrsta shrambe", -"Scope" => "Obseg", -"External Storage" => "Zunanja podatkovna shramba", -"Folder name" => "Ime mape", -"Configuration" => "Nastavitve", -"Available for" => "Na voljo za", -"Add storage" => "Dodaj shrambo", -"Delete" => "Izbriši", -"Enable User External Storage" => "Omogoči zunanjo uporabniško podatkovno shrambo", -"Allow users to mount the following external storage" => "Dovoli uporabnikom priklapljanje navedenih zunanjih shramb." -); -$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/apps/files_external/l10n/sq.js b/apps/files_external/l10n/sq.js new file mode 100644 index 0000000000000000000000000000000000000000..5a8c70406de8327f54b30d6087a1d15dac3d1dc4 --- /dev/null +++ b/apps/files_external/l10n/sq.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Vendndodhja", + "Port" : "Porta", + "Host" : "Pritësi", + "Username" : "Përdoruesi", + "Password" : "fjalëkalim", + "Share" : "Ndaj", + "URL" : "URL-i", + "Personal" : "Personale", + "Saved" : "U ruajt", + "Name" : "Emri", + "Folder name" : "Emri i Skedarit", + "Delete" : "Elimino" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/sq.json b/apps/files_external/l10n/sq.json new file mode 100644 index 0000000000000000000000000000000000000000..d2abfb55bf511837b0af51b88df2cc4040d48a16 --- /dev/null +++ b/apps/files_external/l10n/sq.json @@ -0,0 +1,15 @@ +{ "translations": { + "Location" : "Vendndodhja", + "Port" : "Porta", + "Host" : "Pritësi", + "Username" : "Përdoruesi", + "Password" : "fjalëkalim", + "Share" : "Ndaj", + "URL" : "URL-i", + "Personal" : "Personale", + "Saved" : "U ruajt", + "Name" : "Emri", + "Folder name" : "Emri i Skedarit", + "Delete" : "Elimino" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sq.php b/apps/files_external/l10n/sq.php deleted file mode 100644 index 7beb726fc9e5d9fbc3fde34185d121a3fea299bd..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sq.php +++ /dev/null @@ -1,16 +0,0 @@ - "Vendndodhja", -"Port" => "Porta", -"Host" => "Pritësi", -"Username" => "Përdoruesi", -"Password" => "fjalëkalim", -"Share" => "Ndaj", -"URL" => "URL-i", -"Personal" => "Personale", -"Saved" => "U ruajt", -"Name" => "Emri", -"Folder name" => "Emri i Skedarit", -"Delete" => "Elimino" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/sr.js b/apps/files_external/l10n/sr.js new file mode 100644 index 0000000000000000000000000000000000000000..790bd598d098d869944241698684d0b499bfe3a1 --- /dev/null +++ b/apps/files_external/l10n/sr.js @@ -0,0 +1,15 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Локација", + "Port" : "Порт", + "Region" : "Регија", + "Host" : "Домаћин", + "Username" : "Корисничко име", + "Password" : "Лозинка", + "Share" : "Дели", + "Personal" : "Лично", + "Name" : "Име", + "Delete" : "Обриши" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_external/l10n/sr.json b/apps/files_external/l10n/sr.json new file mode 100644 index 0000000000000000000000000000000000000000..fac0889c3dcb034e34c0d1b5ba799ce1f5ba08f5 --- /dev/null +++ b/apps/files_external/l10n/sr.json @@ -0,0 +1,13 @@ +{ "translations": { + "Location" : "Локација", + "Port" : "Порт", + "Region" : "Регија", + "Host" : "Домаћин", + "Username" : "Корисничко име", + "Password" : "Лозинка", + "Share" : "Дели", + "Personal" : "Лично", + "Name" : "Име", + "Delete" : "Обриши" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sr.php b/apps/files_external/l10n/sr.php deleted file mode 100644 index 79650019c794db3939c3260491e6f9d8907c92a7..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sr.php +++ /dev/null @@ -1,14 +0,0 @@ - "Локација", -"Port" => "Порт", -"Region" => "Регија", -"Host" => "Домаћин", -"Username" => "Корисничко име", -"Password" => "Лозинка", -"Share" => "Дели", -"Personal" => "Лично", -"Name" => "Име", -"Delete" => "Обриши" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files_external/l10n/sr@latin.js b/apps/files_external/l10n/sr@latin.js new file mode 100644 index 0000000000000000000000000000000000000000..518d9e3957d2de20bf21fd45c7278ecbab1d72f7 --- /dev/null +++ b/apps/files_external/l10n/sr@latin.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "files_external", + { + "Location" : "Lokacija", + "Region" : "Regija", + "Username" : "Korisničko ime", + "Password" : "Lozinka", + "Share" : "Podeli", + "Personal" : "Lično", + "Name" : "Ime", + "Delete" : "Obriši" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_external/l10n/sr@latin.json b/apps/files_external/l10n/sr@latin.json new file mode 100644 index 0000000000000000000000000000000000000000..9dbfe640d85e1ea0d6ba07eedcf35de165498edb --- /dev/null +++ b/apps/files_external/l10n/sr@latin.json @@ -0,0 +1,11 @@ +{ "translations": { + "Location" : "Lokacija", + "Region" : "Regija", + "Username" : "Korisničko ime", + "Password" : "Lozinka", + "Share" : "Podeli", + "Personal" : "Lično", + "Name" : "Ime", + "Delete" : "Obriši" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sr@latin.php b/apps/files_external/l10n/sr@latin.php deleted file mode 100644 index 3a42d5c34bb11bb62f7b7b70eac772e25b06f69d..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sr@latin.php +++ /dev/null @@ -1,12 +0,0 @@ - "Lokacija", -"Region" => "Regija", -"Username" => "Korisničko ime", -"Password" => "Lozinka", -"Share" => "Podeli", -"Personal" => "Lično", -"Name" => "Ime", -"Delete" => "Obriši" -); -$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);"; diff --git a/apps/files_external/l10n/sv.js b/apps/files_external/l10n/sv.js new file mode 100644 index 0000000000000000000000000000000000000000..cb12208c49a874c9f1964f7422775072b727066d --- /dev/null +++ b/apps/files_external/l10n/sv.js @@ -0,0 +1,68 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Misslyckades att hämta access tokens. Verifiera att din Dropbox app-nyckel och app-hemlighet är korrekt", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Misslyckades att hämta request tokens. Verifiera att din Dropbox app-nyckel och app-hemlighet är korrekt", + "Please provide a valid Dropbox app key and secret." : "Ange en giltig Dropbox nyckel och hemlighet.", + "External storage" : "Extern lagring", + "Local" : "Lokal", + "Location" : "Plats", + "Amazon S3" : "Amazon S3", + "Key" : "Nyckel", + "Secret" : "Hemlig", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 och compliant", + "Access Key" : "Accessnyckel", + "Secret Key" : "Hemlig nyckel", + "Port" : "Port", + "Region" : "Län", + "Enable SSL" : "Aktivera SSL", + "Enable Path Style" : "Aktivera Path Style", + "App key" : "App-nyckel", + "App secret" : "App-hemlighet", + "Host" : "Server", + "Username" : "Användarnamn", + "Password" : "Lösenord", + "Root" : "Root", + "Secure ftps://" : "Säker ftps://", + "Client ID" : "Klient ID", + "Client secret" : "klient secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (valfritt för OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API-nyckel (krävs för Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (krävs för OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Lösenord (krävs för OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Tjänstens namn (krävs för OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL för identitetens slutpunkt (krävs för OpenStack Object Storage)", + "Share" : "Dela", + "SMB / CIFS using OC login" : "SMB / CIFS använder OC inloggning", + "Username as share" : "Användarnamn till utdelning", + "URL" : "URL", + "Secure https://" : "Säker https://", + "Remote subfolder" : "Fjärrmapp", + "Access granted" : "Åtkomst beviljad", + "Error configuring Dropbox storage" : "Fel vid konfigurering av Dropbox", + "Grant access" : "Bevilja åtkomst", + "Error configuring Google Drive storage" : "Fel vid konfigurering av Google Drive", + "Personal" : "Personligt", + "System" : "System", + "Saved" : "Sparad", + "Note: " : " OBS: ", + " and " : "och", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : " OBS: cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : " OBS: Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : " OBS: \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "You don't have any external storages" : "Du har ingen extern extern lagring", + "Name" : "Namn", + "Storage type" : "Lagringstyp", + "Scope" : "Scope", + "External Storage" : "Extern lagring", + "Folder name" : "Mappnamn", + "Configuration" : "Konfiguration", + "Available for" : "Tillgänglig för", + "Add storage" : "Lägg till lagring", + "Delete" : "Radera", + "Enable User External Storage" : "Aktivera extern lagring för användare", + "Allow users to mount the following external storage" : "Tillåt användare att montera följande extern lagring" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json new file mode 100644 index 0000000000000000000000000000000000000000..12b9f36fd5dc8ce99cf95a5b30c60a7a64fedc2a --- /dev/null +++ b/apps/files_external/l10n/sv.json @@ -0,0 +1,66 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Misslyckades att hämta access tokens. Verifiera att din Dropbox app-nyckel och app-hemlighet är korrekt", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Misslyckades att hämta request tokens. Verifiera att din Dropbox app-nyckel och app-hemlighet är korrekt", + "Please provide a valid Dropbox app key and secret." : "Ange en giltig Dropbox nyckel och hemlighet.", + "External storage" : "Extern lagring", + "Local" : "Lokal", + "Location" : "Plats", + "Amazon S3" : "Amazon S3", + "Key" : "Nyckel", + "Secret" : "Hemlig", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 och compliant", + "Access Key" : "Accessnyckel", + "Secret Key" : "Hemlig nyckel", + "Port" : "Port", + "Region" : "Län", + "Enable SSL" : "Aktivera SSL", + "Enable Path Style" : "Aktivera Path Style", + "App key" : "App-nyckel", + "App secret" : "App-hemlighet", + "Host" : "Server", + "Username" : "Användarnamn", + "Password" : "Lösenord", + "Root" : "Root", + "Secure ftps://" : "Säker ftps://", + "Client ID" : "Klient ID", + "Client secret" : "klient secret", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Region (valfritt för OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "API-nyckel (krävs för Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Tenantname (krävs för OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Lösenord (krävs för OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Tjänstens namn (krävs för OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL för identitetens slutpunkt (krävs för OpenStack Object Storage)", + "Share" : "Dela", + "SMB / CIFS using OC login" : "SMB / CIFS använder OC inloggning", + "Username as share" : "Användarnamn till utdelning", + "URL" : "URL", + "Secure https://" : "Säker https://", + "Remote subfolder" : "Fjärrmapp", + "Access granted" : "Åtkomst beviljad", + "Error configuring Dropbox storage" : "Fel vid konfigurering av Dropbox", + "Grant access" : "Bevilja åtkomst", + "Error configuring Google Drive storage" : "Fel vid konfigurering av Google Drive", + "Personal" : "Personligt", + "System" : "System", + "Saved" : "Sparad", + "Note: " : " OBS: ", + " and " : "och", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : " OBS: cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : " OBS: Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : " OBS: \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", + "You don't have any external storages" : "Du har ingen extern extern lagring", + "Name" : "Namn", + "Storage type" : "Lagringstyp", + "Scope" : "Scope", + "External Storage" : "Extern lagring", + "Folder name" : "Mappnamn", + "Configuration" : "Konfiguration", + "Available for" : "Tillgänglig för", + "Add storage" : "Lägg till lagring", + "Delete" : "Radera", + "Enable User External Storage" : "Aktivera extern lagring för användare", + "Allow users to mount the following external storage" : "Tillåt användare att montera följande extern lagring" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/sv.php b/apps/files_external/l10n/sv.php deleted file mode 100644 index 7e19d016ed6eecd54c5a66f2dd302c96e49d154a..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/sv.php +++ /dev/null @@ -1,67 +0,0 @@ - "Misslyckades att hämta access tokens. Verifiera att din Dropbox app-nyckel och app-hemlighet är korrekt", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Misslyckades att hämta request tokens. Verifiera att din Dropbox app-nyckel och app-hemlighet är korrekt", -"Please provide a valid Dropbox app key and secret." => "Ange en giltig Dropbox nyckel och hemlighet.", -"External storage" => "Extern lagring", -"Local" => "Lokal", -"Location" => "Plats", -"Amazon S3" => "Amazon S3", -"Key" => "Nyckel", -"Secret" => "Hemlig", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 och compliant", -"Access Key" => "Accessnyckel", -"Secret Key" => "Hemlig nyckel", -"Port" => "Port", -"Region" => "Län", -"Enable SSL" => "Aktivera SSL", -"Enable Path Style" => "Aktivera Path Style", -"App key" => "App-nyckel", -"App secret" => "App-hemlighet", -"Host" => "Server", -"Username" => "Användarnamn", -"Password" => "Lösenord", -"Root" => "Root", -"Secure ftps://" => "Säker ftps://", -"Client ID" => "Klient ID", -"Client secret" => "klient secret", -"OpenStack Object Storage" => "OpenStack Object Storage", -"Region (optional for OpenStack Object Storage)" => "Region (valfritt för OpenStack Object Storage)", -"API Key (required for Rackspace Cloud Files)" => "API-nyckel (krävs för Rackspace Cloud Files)", -"Tenantname (required for OpenStack Object Storage)" => "Tenantname (krävs för OpenStack Object Storage)", -"Password (required for OpenStack Object Storage)" => "Lösenord (krävs för OpenStack Object Storage)", -"Service Name (required for OpenStack Object Storage)" => "Tjänstens namn (krävs för OpenStack Object Storage)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "URL för identitetens slutpunkt (krävs för OpenStack Object Storage)", -"Share" => "Dela", -"SMB / CIFS using OC login" => "SMB / CIFS använder OC inloggning", -"Username as share" => "Användarnamn till utdelning", -"URL" => "URL", -"Secure https://" => "Säker https://", -"Remote subfolder" => "Fjärrmapp", -"Access granted" => "Åtkomst beviljad", -"Error configuring Dropbox storage" => "Fel vid konfigurering av Dropbox", -"Grant access" => "Bevilja åtkomst", -"Error configuring Google Drive storage" => "Fel vid konfigurering av Google Drive", -"Personal" => "Personligt", -"System" => "System", -"Saved" => "Sparad", -"Note: " => " OBS: ", -" and " => "och", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => " OBS: cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => " OBS: Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => " OBS: \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör att installera det.", -"You don't have any external storages" => "Du har ingen extern extern lagring", -"Name" => "Namn", -"Storage type" => "Lagringstyp", -"Scope" => "Scope", -"External Storage" => "Extern lagring", -"Folder name" => "Mappnamn", -"Configuration" => "Konfiguration", -"Available for" => "Tillgänglig för", -"Add storage" => "Lägg till lagring", -"Delete" => "Radera", -"Enable User External Storage" => "Aktivera extern lagring för användare", -"Allow users to mount the following external storage" => "Tillåt användare att montera följande extern lagring" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/ta_LK.js b/apps/files_external/l10n/ta_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..274f2dcf34c07eb79ffb56ecaa1df088bab33e07 --- /dev/null +++ b/apps/files_external/l10n/ta_LK.js @@ -0,0 +1,25 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "தயவுசெய்து ஒரு செல்லுபடியான Dropbox செயலி சாவி மற்றும் இரகசியத்தை வழங்குக. ", + "Location" : "இடம்", + "Port" : "துறை ", + "Region" : "பிரதேசம்", + "Host" : "ஓம்புனர்", + "Username" : "பயனாளர் பெயர்", + "Password" : "கடவுச்சொல்", + "Share" : "பகிர்வு", + "URL" : "URL", + "Access granted" : "அனுமதி வழங்கப்பட்டது", + "Error configuring Dropbox storage" : "Dropbox சேமிப்பை தகவமைப்பதில் வழு", + "Grant access" : "அனுமதியை வழங்கல்", + "Error configuring Google Drive storage" : "Google இயக்க சேமிப்பகத்தை தகமைப்பதில் வழு", + "Personal" : "தனிப்பட்ட", + "Name" : "பெயர்", + "External Storage" : "வெளி சேமிப்பு", + "Folder name" : "கோப்புறை பெயர்", + "Configuration" : "தகவமைப்பு", + "Delete" : "நீக்குக", + "Enable User External Storage" : "பயனாளர் வெளி சேமிப்பை இயலுமைப்படுத்துக" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/ta_LK.json b/apps/files_external/l10n/ta_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..6d9b600b56bba0f47a4984fd52c4200343d325b9 --- /dev/null +++ b/apps/files_external/l10n/ta_LK.json @@ -0,0 +1,23 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "தயவுசெய்து ஒரு செல்லுபடியான Dropbox செயலி சாவி மற்றும் இரகசியத்தை வழங்குக. ", + "Location" : "இடம்", + "Port" : "துறை ", + "Region" : "பிரதேசம்", + "Host" : "ஓம்புனர்", + "Username" : "பயனாளர் பெயர்", + "Password" : "கடவுச்சொல்", + "Share" : "பகிர்வு", + "URL" : "URL", + "Access granted" : "அனுமதி வழங்கப்பட்டது", + "Error configuring Dropbox storage" : "Dropbox சேமிப்பை தகவமைப்பதில் வழு", + "Grant access" : "அனுமதியை வழங்கல்", + "Error configuring Google Drive storage" : "Google இயக்க சேமிப்பகத்தை தகமைப்பதில் வழு", + "Personal" : "தனிப்பட்ட", + "Name" : "பெயர்", + "External Storage" : "வெளி சேமிப்பு", + "Folder name" : "கோப்புறை பெயர்", + "Configuration" : "தகவமைப்பு", + "Delete" : "நீக்குக", + "Enable User External Storage" : "பயனாளர் வெளி சேமிப்பை இயலுமைப்படுத்துக" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ta_LK.php b/apps/files_external/l10n/ta_LK.php deleted file mode 100644 index 94cb2faa6d826d47c7a1e6586be8ed9697032c86..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ta_LK.php +++ /dev/null @@ -1,24 +0,0 @@ - "தயவுசெய்து ஒரு செல்லுபடியான Dropbox செயலி சாவி மற்றும் இரகசியத்தை வழங்குக. ", -"Location" => "இடம்", -"Port" => "துறை ", -"Region" => "பிரதேசம்", -"Host" => "ஓம்புனர்", -"Username" => "பயனாளர் பெயர்", -"Password" => "கடவுச்சொல்", -"Share" => "பகிர்வு", -"URL" => "URL", -"Access granted" => "அனுமதி வழங்கப்பட்டது", -"Error configuring Dropbox storage" => "Dropbox சேமிப்பை தகவமைப்பதில் வழு", -"Grant access" => "அனுமதியை வழங்கல்", -"Error configuring Google Drive storage" => "Google இயக்க சேமிப்பகத்தை தகமைப்பதில் வழு", -"Personal" => "தனிப்பட்ட", -"Name" => "பெயர்", -"External Storage" => "வெளி சேமிப்பு", -"Folder name" => "கோப்புறை பெயர்", -"Configuration" => "தகவமைப்பு", -"Delete" => "நீக்குக", -"Enable User External Storage" => "பயனாளர் வெளி சேமிப்பை இயலுமைப்படுத்துக" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/te.js b/apps/files_external/l10n/te.js new file mode 100644 index 0000000000000000000000000000000000000000..b1f0e091c267ccadae7368d4f3e0d17a2d4dfbfa --- /dev/null +++ b/apps/files_external/l10n/te.js @@ -0,0 +1,11 @@ +OC.L10N.register( + "files_external", + { + "Username" : "వాడుకరి పేరు", + "Password" : "సంకేతపదం", + "Personal" : "వ్యక్తిగతం", + "Name" : "పేరు", + "Folder name" : "సంచయం పేరు", + "Delete" : "తొలగించు" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/te.json b/apps/files_external/l10n/te.json new file mode 100644 index 0000000000000000000000000000000000000000..4a6f3caba8657446a5689db962e6c9ef11dedfce --- /dev/null +++ b/apps/files_external/l10n/te.json @@ -0,0 +1,9 @@ +{ "translations": { + "Username" : "వాడుకరి పేరు", + "Password" : "సంకేతపదం", + "Personal" : "వ్యక్తిగతం", + "Name" : "పేరు", + "Folder name" : "సంచయం పేరు", + "Delete" : "తొలగించు" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/te.php b/apps/files_external/l10n/te.php deleted file mode 100644 index 73e828ebfcba45199df284f42b95077425c84204..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/te.php +++ /dev/null @@ -1,10 +0,0 @@ - "వాడుకరి పేరు", -"Password" => "సంకేతపదం", -"Personal" => "వ్యక్తిగతం", -"Name" => "పేరు", -"Folder name" => "సంచయం పేరు", -"Delete" => "తొలగించు" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/th_TH.js b/apps/files_external/l10n/th_TH.js new file mode 100644 index 0000000000000000000000000000000000000000..a86b399fde036609b3e56bc6a177bf4ff857e232 --- /dev/null +++ b/apps/files_external/l10n/th_TH.js @@ -0,0 +1,25 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ", + "Location" : "ตำแหน่งที่อยู่", + "Port" : "พอร์ต", + "Region" : "พื้นที่", + "Host" : "โฮสต์", + "Username" : "ชื่อผู้ใช้งาน", + "Password" : "รหัสผ่าน", + "Share" : "แชร์", + "URL" : "URL", + "Access granted" : "การเข้าถึงได้รับอนุญาตแล้ว", + "Error configuring Dropbox storage" : "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox", + "Grant access" : "อนุญาตให้เข้าถึงได้", + "Error configuring Google Drive storage" : "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive", + "Personal" : "ส่วนตัว", + "Name" : "ชื่อ", + "External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก", + "Folder name" : "ชื่อโฟลเดอร์", + "Configuration" : "การกำหนดค่า", + "Delete" : "ลบ", + "Enable User External Storage" : "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/th_TH.json b/apps/files_external/l10n/th_TH.json new file mode 100644 index 0000000000000000000000000000000000000000..a5612ff444e770b05cc74e45b3ae4a609b5dae1b --- /dev/null +++ b/apps/files_external/l10n/th_TH.json @@ -0,0 +1,23 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ", + "Location" : "ตำแหน่งที่อยู่", + "Port" : "พอร์ต", + "Region" : "พื้นที่", + "Host" : "โฮสต์", + "Username" : "ชื่อผู้ใช้งาน", + "Password" : "รหัสผ่าน", + "Share" : "แชร์", + "URL" : "URL", + "Access granted" : "การเข้าถึงได้รับอนุญาตแล้ว", + "Error configuring Dropbox storage" : "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox", + "Grant access" : "อนุญาตให้เข้าถึงได้", + "Error configuring Google Drive storage" : "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive", + "Personal" : "ส่วนตัว", + "Name" : "ชื่อ", + "External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก", + "Folder name" : "ชื่อโฟลเดอร์", + "Configuration" : "การกำหนดค่า", + "Delete" : "ลบ", + "Enable User External Storage" : "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/th_TH.php b/apps/files_external/l10n/th_TH.php deleted file mode 100644 index c2c577e49719c3007f93c46b8c283dccd95227d8..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/th_TH.php +++ /dev/null @@ -1,24 +0,0 @@ - "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ", -"Location" => "ตำแหน่งที่อยู่", -"Port" => "พอร์ต", -"Region" => "พื้นที่", -"Host" => "โฮสต์", -"Username" => "ชื่อผู้ใช้งาน", -"Password" => "รหัสผ่าน", -"Share" => "แชร์", -"URL" => "URL", -"Access granted" => "การเข้าถึงได้รับอนุญาตแล้ว", -"Error configuring Dropbox storage" => "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox", -"Grant access" => "อนุญาตให้เข้าถึงได้", -"Error configuring Google Drive storage" => "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive", -"Personal" => "ส่วนตัว", -"Name" => "ชื่อ", -"External Storage" => "พื้นทีจัดเก็บข้อมูลจากภายนอก", -"Folder name" => "ชื่อโฟลเดอร์", -"Configuration" => "การกำหนดค่า", -"Delete" => "ลบ", -"Enable User External Storage" => "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js new file mode 100644 index 0000000000000000000000000000000000000000..cbe240b581879a8ed1cc4cf02ede96cd0b93b318 --- /dev/null +++ b/apps/files_external/l10n/tr.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "İstek belirteçleri alınma işlemi başarısız. Dropbox app anahtarı ve parolasının doğru olduğundan emin olun.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Erişim belirteçleri alınma işlemi başarısız. Dropbox app anahtarı ve parolasının doğru olduğundan emin olun.", + "Please provide a valid Dropbox app key and secret." : "Lütfen Dropbox app key ve secret temin ediniz", + "Step 1 failed. Exception: %s" : "Adım 1 başarısız. Özel durum: %s", + "Step 2 failed. Exception: %s" : "Adım 2 başarısız. Özel durum: %s", + "External storage" : "Harici depolama", + "Local" : "Yerel", + "Location" : "Konum", + "Amazon S3" : "Amazon S3", + "Key" : "Anahtar", + "Secret" : "Parola", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 ve uyumlu olanlar", + "Access Key" : "Erişim Anahtarı", + "Secret Key" : "Gizli Anahtar", + "Hostname" : "Makine adı", + "Port" : "Port", + "Region" : "Bölge", + "Enable SSL" : "SSL'yi Etkinleştir", + "Enable Path Style" : "Yol Biçemini Etkinleştir", + "App key" : "Uyg. anahtarı", + "App secret" : "Uyg. parolası", + "Host" : "Sunucu", + "Username" : "Kullanıcı Adı", + "Password" : "Parola", + "Root" : "Kök", + "Secure ftps://" : "Güvenli ftps://", + "Client ID" : "İstemci kimliği", + "Client secret" : "İstemci parolası", + "OpenStack Object Storage" : "OpenStack Nesne Depolama", + "Region (optional for OpenStack Object Storage)" : "Bölge (OpenStack Nesne Depolaması için isteğe bağlı)", + "API Key (required for Rackspace Cloud Files)" : "API Anahtarı (Rackspace Bulut Dosyaları için gerekli)", + "Tenantname (required for OpenStack Object Storage)" : "Kiracı Adı (OpenStack Nesne Depolaması için gerekli)", + "Password (required for OpenStack Object Storage)" : "Parola (OpenStack Nesne Depolaması için gerekli)", + "Service Name (required for OpenStack Object Storage)" : "Hizmet Adı (OpenStack Nesne Depolaması için gerekli)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Kimlik uç nokta adresi (OpenStack Nesne Depolaması için gerekli)", + "Timeout of HTTP requests in seconds" : "Saniye cinsinden HTTP istek zaman aşımı", + "Share" : "Paylaş", + "SMB / CIFS using OC login" : "OC oturumu kullanarak SMB / CIFS", + "Username as share" : "Paylaşım olarak kullanıcı adı", + "URL" : "URL", + "Secure https://" : "Güvenli https://", + "Remote subfolder" : "Uzak alt klasör", + "Access granted" : "Giriş kabul edildi", + "Error configuring Dropbox storage" : "Dropbox depo yapılandırma hatası", + "Grant access" : "Erişimi sağla", + "Error configuring Google Drive storage" : "Google Drive depo yapılandırma hatası", + "Personal" : "Kişisel", + "System" : "Sistem", + "All users. Type to select user or group." : "Tüm kullanıcılar. Kullanıcı veya grup seçmek için yazın.", + "(group)" : "(grup)", + "Saved" : "Kaydedildi", + "Note: " : "Not: ", + " and " : "ve", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Not: PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Not: PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Not: \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "You don't have any external storages" : "Hiç harici depolamanız yok", + "Name" : "Ad", + "Storage type" : "Depolama türü", + "Scope" : "Kapsam", + "External Storage" : "Harici Depolama", + "Folder name" : "Klasör ismi", + "Configuration" : "Yapılandırma", + "Available for" : "Kullanabilenler", + "Add storage" : "Depo ekle", + "Delete" : "Sil", + "Enable User External Storage" : "Kullanıcılar için Harici Depolamayı Etkinleştir", + "Allow users to mount the following external storage" : "Kullanıcıların aşağıdaki harici depolamayı bağlamalarına izin ver" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..669608cca27acd32b4f8ff72c395afba3e0f0ba1 --- /dev/null +++ b/apps/files_external/l10n/tr.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "İstek belirteçleri alınma işlemi başarısız. Dropbox app anahtarı ve parolasının doğru olduğundan emin olun.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Erişim belirteçleri alınma işlemi başarısız. Dropbox app anahtarı ve parolasının doğru olduğundan emin olun.", + "Please provide a valid Dropbox app key and secret." : "Lütfen Dropbox app key ve secret temin ediniz", + "Step 1 failed. Exception: %s" : "Adım 1 başarısız. Özel durum: %s", + "Step 2 failed. Exception: %s" : "Adım 2 başarısız. Özel durum: %s", + "External storage" : "Harici depolama", + "Local" : "Yerel", + "Location" : "Konum", + "Amazon S3" : "Amazon S3", + "Key" : "Anahtar", + "Secret" : "Parola", + "Bucket" : "Bucket", + "Amazon S3 and compliant" : "Amazon S3 ve uyumlu olanlar", + "Access Key" : "Erişim Anahtarı", + "Secret Key" : "Gizli Anahtar", + "Hostname" : "Makine adı", + "Port" : "Port", + "Region" : "Bölge", + "Enable SSL" : "SSL'yi Etkinleştir", + "Enable Path Style" : "Yol Biçemini Etkinleştir", + "App key" : "Uyg. anahtarı", + "App secret" : "Uyg. parolası", + "Host" : "Sunucu", + "Username" : "Kullanıcı Adı", + "Password" : "Parola", + "Root" : "Kök", + "Secure ftps://" : "Güvenli ftps://", + "Client ID" : "İstemci kimliği", + "Client secret" : "İstemci parolası", + "OpenStack Object Storage" : "OpenStack Nesne Depolama", + "Region (optional for OpenStack Object Storage)" : "Bölge (OpenStack Nesne Depolaması için isteğe bağlı)", + "API Key (required for Rackspace Cloud Files)" : "API Anahtarı (Rackspace Bulut Dosyaları için gerekli)", + "Tenantname (required for OpenStack Object Storage)" : "Kiracı Adı (OpenStack Nesne Depolaması için gerekli)", + "Password (required for OpenStack Object Storage)" : "Parola (OpenStack Nesne Depolaması için gerekli)", + "Service Name (required for OpenStack Object Storage)" : "Hizmet Adı (OpenStack Nesne Depolaması için gerekli)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "Kimlik uç nokta adresi (OpenStack Nesne Depolaması için gerekli)", + "Timeout of HTTP requests in seconds" : "Saniye cinsinden HTTP istek zaman aşımı", + "Share" : "Paylaş", + "SMB / CIFS using OC login" : "OC oturumu kullanarak SMB / CIFS", + "Username as share" : "Paylaşım olarak kullanıcı adı", + "URL" : "URL", + "Secure https://" : "Güvenli https://", + "Remote subfolder" : "Uzak alt klasör", + "Access granted" : "Giriş kabul edildi", + "Error configuring Dropbox storage" : "Dropbox depo yapılandırma hatası", + "Grant access" : "Erişimi sağla", + "Error configuring Google Drive storage" : "Google Drive depo yapılandırma hatası", + "Personal" : "Kişisel", + "System" : "Sistem", + "All users. Type to select user or group." : "Tüm kullanıcılar. Kullanıcı veya grup seçmek için yazın.", + "(group)" : "(grup)", + "Saved" : "Kaydedildi", + "Note: " : "Not: ", + " and " : "ve", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Not: PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Not: PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Not: \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", + "You don't have any external storages" : "Hiç harici depolamanız yok", + "Name" : "Ad", + "Storage type" : "Depolama türü", + "Scope" : "Kapsam", + "External Storage" : "Harici Depolama", + "Folder name" : "Klasör ismi", + "Configuration" : "Yapılandırma", + "Available for" : "Kullanabilenler", + "Add storage" : "Depo ekle", + "Delete" : "Sil", + "Enable User External Storage" : "Kullanıcılar için Harici Depolamayı Etkinleştir", + "Allow users to mount the following external storage" : "Kullanıcıların aşağıdaki harici depolamayı bağlamalarına izin ver" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/tr.php b/apps/files_external/l10n/tr.php deleted file mode 100644 index 274d4f12487780552d94ad7e2fd714677985ae49..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/tr.php +++ /dev/null @@ -1,73 +0,0 @@ - "İstek belirteçleri alınma işlemi başarısız. Dropbox app anahtarı ve parolasının doğru olduğundan emin olun.", -"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Erişim belirteçleri alınma işlemi başarısız. Dropbox app anahtarı ve parolasının doğru olduğundan emin olun.", -"Please provide a valid Dropbox app key and secret." => "Lütfen Dropbox app key ve secret temin ediniz", -"Step 1 failed. Exception: %s" => "Adım 1 başarısız. Özel durum: %s", -"Step 2 failed. Exception: %s" => "Adım 2 başarısız. Özel durum: %s", -"External storage" => "Harici depolama", -"Local" => "Yerel", -"Location" => "Konum", -"Amazon S3" => "Amazon S3", -"Key" => "Anahtar", -"Secret" => "Parola", -"Bucket" => "Bucket", -"Amazon S3 and compliant" => "Amazon S3 ve uyumlu olanlar", -"Access Key" => "Erişim Anahtarı", -"Secret Key" => "Gizli Anahtar", -"Hostname" => "Makine adı", -"Port" => "Port", -"Region" => "Bölge", -"Enable SSL" => "SSL'yi Etkinleştir", -"Enable Path Style" => "Yol Biçemini Etkinleştir", -"App key" => "Uyg. anahtarı", -"App secret" => "Uyg. parolası", -"Host" => "Sunucu", -"Username" => "Kullanıcı Adı", -"Password" => "Parola", -"Root" => "Kök", -"Secure ftps://" => "Güvenli ftps://", -"Client ID" => "İstemci kimliği", -"Client secret" => "İstemci parolası", -"OpenStack Object Storage" => "OpenStack Nesne Depolama", -"Region (optional for OpenStack Object Storage)" => "Bölge (OpenStack Nesne Depolaması için isteğe bağlı)", -"API Key (required for Rackspace Cloud Files)" => "API Anahtarı (Rackspace Bulut Dosyaları için gerekli)", -"Tenantname (required for OpenStack Object Storage)" => "Kiracı Adı (OpenStack Nesne Depolaması için gerekli)", -"Password (required for OpenStack Object Storage)" => "Parola (OpenStack Nesne Depolaması için gerekli)", -"Service Name (required for OpenStack Object Storage)" => "Hizmet Adı (OpenStack Nesne Depolaması için gerekli)", -"URL of identity endpoint (required for OpenStack Object Storage)" => "Kimlik uç nokta adresi (OpenStack Nesne Depolaması için gerekli)", -"Timeout of HTTP requests in seconds" => "Saniye cinsinden HTTP istek zaman aşımı", -"Share" => "Paylaş", -"SMB / CIFS using OC login" => "OC oturumu kullanarak SMB / CIFS", -"Username as share" => "Paylaşım olarak kullanıcı adı", -"URL" => "URL", -"Secure https://" => "Güvenli https://", -"Remote subfolder" => "Uzak alt klasör", -"Access granted" => "Giriş kabul edildi", -"Error configuring Dropbox storage" => "Dropbox depo yapılandırma hatası", -"Grant access" => "Erişimi sağla", -"Error configuring Google Drive storage" => "Google Drive depo yapılandırma hatası", -"Personal" => "Kişisel", -"System" => "Sistem", -"All users. Type to select user or group." => "Tüm kullanıcılar. Kullanıcı veya grup seçmek için yazın.", -"(group)" => "(grup)", -"Saved" => "Kaydedildi", -"Note: " => "Not: ", -" and " => "ve", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Not: PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Not: PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "Not: \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.", -"You don't have any external storages" => "Hiç harici depolamanız yok", -"Name" => "Ad", -"Storage type" => "Depolama türü", -"Scope" => "Kapsam", -"External Storage" => "Harici Depolama", -"Folder name" => "Klasör ismi", -"Configuration" => "Yapılandırma", -"Available for" => "Kullanabilenler", -"Add storage" => "Depo ekle", -"Delete" => "Sil", -"Enable User External Storage" => "Kullanıcılar için Harici Depolamayı Etkinleştir", -"Allow users to mount the following external storage" => "Kullanıcıların aşağıdaki harici depolamayı bağlamalarına izin ver" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_external/l10n/ug.js b/apps/files_external/l10n/ug.js new file mode 100644 index 0000000000000000000000000000000000000000..a1a5dc648bca12725a7e65467833e4eabc633439 --- /dev/null +++ b/apps/files_external/l10n/ug.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "files_external", + { + "External storage" : "سىرتقى ساقلىغۇچ", + "Location" : "ئورنى", + "Port" : "ئېغىز", + "Host" : "باش ئاپپارات", + "Username" : "ئىشلەتكۈچى ئاتى", + "Password" : "ئىم", + "Share" : "ھەمبەھىر", + "URL" : "URL", + "Personal" : "شەخسىي", + "Name" : "ئاتى", + "Folder name" : "قىسقۇچ ئاتى", + "Configuration" : "سەپلىمە", + "Delete" : "ئۆچۈر" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ug.json b/apps/files_external/l10n/ug.json new file mode 100644 index 0000000000000000000000000000000000000000..d6923a86599d06e7faa1d7d312066a18f8dfba9a --- /dev/null +++ b/apps/files_external/l10n/ug.json @@ -0,0 +1,16 @@ +{ "translations": { + "External storage" : "سىرتقى ساقلىغۇچ", + "Location" : "ئورنى", + "Port" : "ئېغىز", + "Host" : "باش ئاپپارات", + "Username" : "ئىشلەتكۈچى ئاتى", + "Password" : "ئىم", + "Share" : "ھەمبەھىر", + "URL" : "URL", + "Personal" : "شەخسىي", + "Name" : "ئاتى", + "Folder name" : "قىسقۇچ ئاتى", + "Configuration" : "سەپلىمە", + "Delete" : "ئۆچۈر" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ug.php b/apps/files_external/l10n/ug.php deleted file mode 100644 index 134de2af9324fd278b0d26c24efaaec9172eaf2d..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ug.php +++ /dev/null @@ -1,17 +0,0 @@ - "سىرتقى ساقلىغۇچ", -"Location" => "ئورنى", -"Port" => "ئېغىز", -"Host" => "باش ئاپپارات", -"Username" => "ئىشلەتكۈچى ئاتى", -"Password" => "ئىم", -"Share" => "ھەمبەھىر", -"URL" => "URL", -"Personal" => "شەخسىي", -"Name" => "ئاتى", -"Folder name" => "قىسقۇچ ئاتى", -"Configuration" => "سەپلىمە", -"Delete" => "ئۆچۈر" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js new file mode 100644 index 0000000000000000000000000000000000000000..7cf8533fd242a55ad29eef00fa7cdf614f499678 --- /dev/null +++ b/apps/files_external/l10n/uk.js @@ -0,0 +1,74 @@ +OC.L10N.register( + "files_external", + { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Помилка при отримані токенів. Перевірте правильність вашого секретного ключа та ключ додатка.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Помилка при отримані токена доступу. Перевірте правильність вашого секретного ключа та ключ додатка.", + "Please provide a valid Dropbox app key and secret." : "Будь ласка, надайте дійсний ключ та пароль Dropbox.", + "Step 1 failed. Exception: %s" : "1-й крок невдалий. Виключення: %s", + "Step 2 failed. Exception: %s" : "2-й крок невдалий. Виключення: %s", + "External storage" : "Зовнішнє сховище", + "Local" : "Локально", + "Location" : "Місце", + "Amazon S3" : "Amazon S3", + "Key" : "Ключ", + "Secret" : "Секрет", + "Bucket" : "Кошик", + "Amazon S3 and compliant" : "Amazon S3 та сумісний", + "Access Key" : "Ключ доступа", + "Secret Key" : "Секретний ключ", + "Hostname" : "Ім'я хоста", + "Port" : "Порт", + "Region" : "Регіон", + "Enable SSL" : "Включити SSL", + "Enable Path Style" : "Включити стиль шляху", + "App key" : "Ключ додатку", + "App secret" : "Секретний ключ додатку", + "Host" : "Хост", + "Username" : "Ім'я користувача", + "Password" : "Пароль", + "Root" : "Батьківський каталог", + "Secure ftps://" : "Захищений ftps://", + "Client ID" : "Ідентифікатор клієнта", + "Client secret" : "Ключ клієнта", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Регіон (опціонально для OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Ключ API (обов'язково для Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Ім'я орендатора (обов'язково для OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Пароль (обов’язково для OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Назва сервісу (обов’язково для OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL підтвердження кінцевої точки (обов'язково для OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Тайм-аут HTTP запитів на секунду", + "Share" : "Поділитися", + "SMB / CIFS using OC login" : "SMB / CIFS з використанням логіна OC", + "Username as share" : "Ім'я для відкритого доступу", + "URL" : "URL", + "Secure https://" : "Захищений https://", + "Remote subfolder" : "Віддалений підкаталог", + "Access granted" : "Доступ дозволено", + "Error configuring Dropbox storage" : "Помилка при налаштуванні сховища Dropbox", + "Grant access" : "Дозволити доступ", + "Error configuring Google Drive storage" : "Помилка при налаштуванні сховища Google Drive", + "Personal" : "Особисте", + "System" : "Система", + "All users. Type to select user or group." : "Всі користувачі. Введіть ім'я користувача або групи.", + "(group)" : "(група)", + "Saved" : "Збереженно", + "Note: " : "Примітка:", + " and " : "та", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примітка: Підтримку cURL в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примітка: Підтримку FTP в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примітка: \"%s\" не встановлено. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.", + "You don't have any external storages" : "У вас немає зовнішніх сховищ", + "Name" : "Ім'я", + "Storage type" : "Тип сховища", + "Scope" : "Область", + "External Storage" : "Зовнішні сховища", + "Folder name" : "Ім'я теки", + "Configuration" : "Налаштування", + "Available for" : "Доступний для", + "Add storage" : "Додати сховище", + "Delete" : "Видалити", + "Enable User External Storage" : "Активувати користувацькі зовнішні сховища", + "Allow users to mount the following external storage" : "Дозволити користувачам монтувати наступні зовнішні сховища" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json new file mode 100644 index 0000000000000000000000000000000000000000..8ebccaf5c1cb65cc892ca101049e3fe02bba4164 --- /dev/null +++ b/apps/files_external/l10n/uk.json @@ -0,0 +1,72 @@ +{ "translations": { + "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Помилка при отримані токенів. Перевірте правильність вашого секретного ключа та ключ додатка.", + "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Помилка при отримані токена доступу. Перевірте правильність вашого секретного ключа та ключ додатка.", + "Please provide a valid Dropbox app key and secret." : "Будь ласка, надайте дійсний ключ та пароль Dropbox.", + "Step 1 failed. Exception: %s" : "1-й крок невдалий. Виключення: %s", + "Step 2 failed. Exception: %s" : "2-й крок невдалий. Виключення: %s", + "External storage" : "Зовнішнє сховище", + "Local" : "Локально", + "Location" : "Місце", + "Amazon S3" : "Amazon S3", + "Key" : "Ключ", + "Secret" : "Секрет", + "Bucket" : "Кошик", + "Amazon S3 and compliant" : "Amazon S3 та сумісний", + "Access Key" : "Ключ доступа", + "Secret Key" : "Секретний ключ", + "Hostname" : "Ім'я хоста", + "Port" : "Порт", + "Region" : "Регіон", + "Enable SSL" : "Включити SSL", + "Enable Path Style" : "Включити стиль шляху", + "App key" : "Ключ додатку", + "App secret" : "Секретний ключ додатку", + "Host" : "Хост", + "Username" : "Ім'я користувача", + "Password" : "Пароль", + "Root" : "Батьківський каталог", + "Secure ftps://" : "Захищений ftps://", + "Client ID" : "Ідентифікатор клієнта", + "Client secret" : "Ключ клієнта", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Region (optional for OpenStack Object Storage)" : "Регіон (опціонально для OpenStack Object Storage)", + "API Key (required for Rackspace Cloud Files)" : "Ключ API (обов'язково для Rackspace Cloud Files)", + "Tenantname (required for OpenStack Object Storage)" : "Ім'я орендатора (обов'язково для OpenStack Object Storage)", + "Password (required for OpenStack Object Storage)" : "Пароль (обов’язково для OpenStack Object Storage)", + "Service Name (required for OpenStack Object Storage)" : "Назва сервісу (обов’язково для OpenStack Object Storage)", + "URL of identity endpoint (required for OpenStack Object Storage)" : "URL підтвердження кінцевої точки (обов'язково для OpenStack Object Storage)", + "Timeout of HTTP requests in seconds" : "Тайм-аут HTTP запитів на секунду", + "Share" : "Поділитися", + "SMB / CIFS using OC login" : "SMB / CIFS з використанням логіна OC", + "Username as share" : "Ім'я для відкритого доступу", + "URL" : "URL", + "Secure https://" : "Захищений https://", + "Remote subfolder" : "Віддалений підкаталог", + "Access granted" : "Доступ дозволено", + "Error configuring Dropbox storage" : "Помилка при налаштуванні сховища Dropbox", + "Grant access" : "Дозволити доступ", + "Error configuring Google Drive storage" : "Помилка при налаштуванні сховища Google Drive", + "Personal" : "Особисте", + "System" : "Система", + "All users. Type to select user or group." : "Всі користувачі. Введіть ім'я користувача або групи.", + "(group)" : "(група)", + "Saved" : "Збереженно", + "Note: " : "Примітка:", + " and " : "та", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примітка: Підтримку cURL в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примітка: Підтримку FTP в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Примітка: \"%s\" не встановлено. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.", + "You don't have any external storages" : "У вас немає зовнішніх сховищ", + "Name" : "Ім'я", + "Storage type" : "Тип сховища", + "Scope" : "Область", + "External Storage" : "Зовнішні сховища", + "Folder name" : "Ім'я теки", + "Configuration" : "Налаштування", + "Available for" : "Доступний для", + "Add storage" : "Додати сховище", + "Delete" : "Видалити", + "Enable User External Storage" : "Активувати користувацькі зовнішні сховища", + "Allow users to mount the following external storage" : "Дозволити користувачам монтувати наступні зовнішні сховища" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/uk.php b/apps/files_external/l10n/uk.php deleted file mode 100644 index 0674d3f6175ffb25717289909c3fc46e9ff94a7a..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/uk.php +++ /dev/null @@ -1,26 +0,0 @@ - "Будь ласка, надайте дійсний ключ та пароль Dropbox.", -"External storage" => "Зовнішнє сховище", -"Location" => "Місце", -"Port" => "Порт", -"Region" => "Регіон", -"Host" => "Хост", -"Username" => "Ім'я користувача", -"Password" => "Пароль", -"Share" => "Поділитися", -"URL" => "URL", -"Access granted" => "Доступ дозволено", -"Error configuring Dropbox storage" => "Помилка при налаштуванні сховища Dropbox", -"Grant access" => "Дозволити доступ", -"Error configuring Google Drive storage" => "Помилка при налаштуванні сховища Google Drive", -"Personal" => "Особисте", -"Name" => "Ім'я", -"External Storage" => "Зовнішні сховища", -"Folder name" => "Ім'я теки", -"Configuration" => "Налаштування", -"Add storage" => "Додати сховище", -"Delete" => "Видалити", -"Enable User External Storage" => "Активувати користувацькі зовнішні сховища" -); -$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);"; diff --git a/apps/files_external/l10n/ur_PK.js b/apps/files_external/l10n/ur_PK.js new file mode 100644 index 0000000000000000000000000000000000000000..19554608096e5135bd0f3d011975a43d5f65bb90 --- /dev/null +++ b/apps/files_external/l10n/ur_PK.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "files_external", + { + "Location" : "مقام", + "Username" : "یوزر نیم", + "Password" : "پاسورڈ", + "Share" : "تقسیم", + "URL" : "یو ار ایل", + "Personal" : "شخصی", + "Name" : "اسم", + "Delete" : "حذف کریں" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/ur_PK.json b/apps/files_external/l10n/ur_PK.json new file mode 100644 index 0000000000000000000000000000000000000000..c4df8947bd7b9d3ef9a6df6a4120f858ae9415bf --- /dev/null +++ b/apps/files_external/l10n/ur_PK.json @@ -0,0 +1,11 @@ +{ "translations": { + "Location" : "مقام", + "Username" : "یوزر نیم", + "Password" : "پاسورڈ", + "Share" : "تقسیم", + "URL" : "یو ار ایل", + "Personal" : "شخصی", + "Name" : "اسم", + "Delete" : "حذف کریں" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_external/l10n/ur_PK.php b/apps/files_external/l10n/ur_PK.php deleted file mode 100644 index e5b9089328d994c9c079f67dd9919d3dc2d9d18f..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/ur_PK.php +++ /dev/null @@ -1,12 +0,0 @@ - "مقام", -"Username" => "یوزر نیم", -"Password" => "پاسورڈ", -"Share" => "تقسیم", -"URL" => "یو ار ایل", -"Personal" => "شخصی", -"Name" => "اسم", -"Delete" => "حذف کریں" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_external/l10n/vi.js b/apps/files_external/l10n/vi.js new file mode 100644 index 0000000000000000000000000000000000000000..096ab0713cd8a50371af69bd4fb022fe41812139 --- /dev/null +++ b/apps/files_external/l10n/vi.js @@ -0,0 +1,27 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã bí mật.", + "External storage" : "Lưu trữ ngoài", + "Location" : "Vị trí", + "Port" : "Cổng", + "Region" : "Vùng/miền", + "Host" : "Máy chủ", + "Username" : "Tên đăng nhập", + "Password" : "Mật khẩu", + "Share" : "Chia sẻ", + "URL" : "URL", + "Access granted" : "Đã cấp quyền truy cập", + "Error configuring Dropbox storage" : "Lỗi cấu hình lưu trữ Dropbox ", + "Grant access" : "Cấp quyền truy cập", + "Error configuring Google Drive storage" : "Lỗi cấu hình lưu trữ Google Drive", + "Personal" : "Cá nhân", + "Name" : "Tên", + "External Storage" : "Lưu trữ ngoài", + "Folder name" : "Tên thư mục", + "Configuration" : "Cấu hình", + "Add storage" : "Thêm bộ nhớ", + "Delete" : "Xóa", + "Enable User External Storage" : "Kích hoạt tính năng lưu trữ ngoài" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/vi.json b/apps/files_external/l10n/vi.json new file mode 100644 index 0000000000000000000000000000000000000000..135f9cffdf430291569baf3f443947fbb08e3f30 --- /dev/null +++ b/apps/files_external/l10n/vi.json @@ -0,0 +1,25 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã bí mật.", + "External storage" : "Lưu trữ ngoài", + "Location" : "Vị trí", + "Port" : "Cổng", + "Region" : "Vùng/miền", + "Host" : "Máy chủ", + "Username" : "Tên đăng nhập", + "Password" : "Mật khẩu", + "Share" : "Chia sẻ", + "URL" : "URL", + "Access granted" : "Đã cấp quyền truy cập", + "Error configuring Dropbox storage" : "Lỗi cấu hình lưu trữ Dropbox ", + "Grant access" : "Cấp quyền truy cập", + "Error configuring Google Drive storage" : "Lỗi cấu hình lưu trữ Google Drive", + "Personal" : "Cá nhân", + "Name" : "Tên", + "External Storage" : "Lưu trữ ngoài", + "Folder name" : "Tên thư mục", + "Configuration" : "Cấu hình", + "Add storage" : "Thêm bộ nhớ", + "Delete" : "Xóa", + "Enable User External Storage" : "Kích hoạt tính năng lưu trữ ngoài" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/vi.php b/apps/files_external/l10n/vi.php deleted file mode 100644 index 42db3b4a8345a38b5ce504c1746571d50a702098..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/vi.php +++ /dev/null @@ -1,26 +0,0 @@ - "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã bí mật.", -"External storage" => "Lưu trữ ngoài", -"Location" => "Vị trí", -"Port" => "Cổng", -"Region" => "Vùng/miền", -"Host" => "Máy chủ", -"Username" => "Tên đăng nhập", -"Password" => "Mật khẩu", -"Share" => "Chia sẻ", -"URL" => "URL", -"Access granted" => "Đã cấp quyền truy cập", -"Error configuring Dropbox storage" => "Lỗi cấu hình lưu trữ Dropbox ", -"Grant access" => "Cấp quyền truy cập", -"Error configuring Google Drive storage" => "Lỗi cấu hình lưu trữ Google Drive", -"Personal" => "Cá nhân", -"Name" => "Tên", -"External Storage" => "Lưu trữ ngoài", -"Folder name" => "Tên thư mục", -"Configuration" => "Cấu hình", -"Add storage" => "Thêm bộ nhớ", -"Delete" => "Xóa", -"Enable User External Storage" => "Kích hoạt tính năng lưu trữ ngoài" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/zh_CN.js b/apps/files_external/l10n/zh_CN.js new file mode 100644 index 0000000000000000000000000000000000000000..8c71da68db77f35e6e75bfb72979682cebea662e --- /dev/null +++ b/apps/files_external/l10n/zh_CN.js @@ -0,0 +1,51 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "请提供有效的Dropbox应用key和secret", + "Step 1 failed. Exception: %s" : "步骤 1 失败。异常:%s", + "Step 2 failed. Exception: %s" : "步骤 2 失败。异常:%s", + "External storage" : "外部存储", + "Local" : "本地", + "Location" : "地点", + "Amazon S3" : "Amazon S3", + "Amazon S3 and compliant" : "Amazon S3 和兼容协议", + "Access Key" : "访问密钥", + "Secret Key" : "秘钥", + "Port" : "端口", + "Region" : "地区", + "Enable SSL" : "启用 SSL", + "Enable Path Style" : "启用 Path Style", + "Host" : "主机", + "Username" : "用户名", + "Password" : "密码", + "Root" : "根路径", + "Secure ftps://" : "安全 ftps://", + "OpenStack Object Storage" : "OpenStack 对象存储", + "Share" : "共享", + "SMB / CIFS using OC login" : "SMB / CIFS 使用 OC 登录信息", + "URL" : "URL", + "Secure https://" : "安全 https://", + "Remote subfolder" : "远程子文件夹", + "Access granted" : "权限已授予。", + "Error configuring Dropbox storage" : "配置Dropbox存储时出错", + "Grant access" : "授权", + "Error configuring Google Drive storage" : "配置Google Drive存储时出错", + "Personal" : "个人", + "System" : "系统", + "Saved" : "已保存", + "Note: " : "注意:", + " and " : "和", + "You don't have any external storages" : "您没有外部存储", + "Name" : "名称", + "Storage type" : "存储类型", + "Scope" : "适用范围", + "External Storage" : "外部存储", + "Folder name" : "目录名称", + "Configuration" : "配置", + "Available for" : "可用于", + "Add storage" : "增加存储", + "Delete" : "删除", + "Enable User External Storage" : "启用用户外部存储", + "Allow users to mount the following external storage" : "允许用户挂载以下外部存储" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/zh_CN.json b/apps/files_external/l10n/zh_CN.json new file mode 100644 index 0000000000000000000000000000000000000000..ba2ca93be866239034f45aea34aef328b4d88299 --- /dev/null +++ b/apps/files_external/l10n/zh_CN.json @@ -0,0 +1,49 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "请提供有效的Dropbox应用key和secret", + "Step 1 failed. Exception: %s" : "步骤 1 失败。异常:%s", + "Step 2 failed. Exception: %s" : "步骤 2 失败。异常:%s", + "External storage" : "外部存储", + "Local" : "本地", + "Location" : "地点", + "Amazon S3" : "Amazon S3", + "Amazon S3 and compliant" : "Amazon S3 和兼容协议", + "Access Key" : "访问密钥", + "Secret Key" : "秘钥", + "Port" : "端口", + "Region" : "地区", + "Enable SSL" : "启用 SSL", + "Enable Path Style" : "启用 Path Style", + "Host" : "主机", + "Username" : "用户名", + "Password" : "密码", + "Root" : "根路径", + "Secure ftps://" : "安全 ftps://", + "OpenStack Object Storage" : "OpenStack 对象存储", + "Share" : "共享", + "SMB / CIFS using OC login" : "SMB / CIFS 使用 OC 登录信息", + "URL" : "URL", + "Secure https://" : "安全 https://", + "Remote subfolder" : "远程子文件夹", + "Access granted" : "权限已授予。", + "Error configuring Dropbox storage" : "配置Dropbox存储时出错", + "Grant access" : "授权", + "Error configuring Google Drive storage" : "配置Google Drive存储时出错", + "Personal" : "个人", + "System" : "系统", + "Saved" : "已保存", + "Note: " : "注意:", + " and " : "和", + "You don't have any external storages" : "您没有外部存储", + "Name" : "名称", + "Storage type" : "存储类型", + "Scope" : "适用范围", + "External Storage" : "外部存储", + "Folder name" : "目录名称", + "Configuration" : "配置", + "Available for" : "可用于", + "Add storage" : "增加存储", + "Delete" : "删除", + "Enable User External Storage" : "启用用户外部存储", + "Allow users to mount the following external storage" : "允许用户挂载以下外部存储" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/zh_CN.php b/apps/files_external/l10n/zh_CN.php deleted file mode 100644 index fcb4fc93445fe0aaf1aee599876dfdc45f0d9aa8..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/zh_CN.php +++ /dev/null @@ -1,50 +0,0 @@ - "请提供有效的Dropbox应用key和secret", -"Step 1 failed. Exception: %s" => "步骤 1 失败。异常:%s", -"Step 2 failed. Exception: %s" => "步骤 2 失败。异常:%s", -"External storage" => "外部存储", -"Local" => "本地", -"Location" => "地点", -"Amazon S3" => "Amazon S3", -"Amazon S3 and compliant" => "Amazon S3 和兼容协议", -"Access Key" => "访问密钥", -"Secret Key" => "秘钥", -"Port" => "端口", -"Region" => "地区", -"Enable SSL" => "启用 SSL", -"Enable Path Style" => "启用 Path Style", -"Host" => "主机", -"Username" => "用户名", -"Password" => "密码", -"Root" => "根路径", -"Secure ftps://" => "安全 ftps://", -"OpenStack Object Storage" => "OpenStack 对象存储", -"Share" => "共享", -"SMB / CIFS using OC login" => "SMB / CIFS 使用 OC 登录信息", -"URL" => "URL", -"Secure https://" => "安全 https://", -"Remote subfolder" => "远程子文件夹", -"Access granted" => "权限已授予。", -"Error configuring Dropbox storage" => "配置Dropbox存储时出错", -"Grant access" => "授权", -"Error configuring Google Drive storage" => "配置Google Drive存储时出错", -"Personal" => "个人", -"System" => "系统", -"Saved" => "已保存", -"Note: " => "注意:", -" and " => "和", -"You don't have any external storages" => "您没有外部存储", -"Name" => "名称", -"Storage type" => "存储类型", -"Scope" => "适用范围", -"External Storage" => "外部存储", -"Folder name" => "目录名称", -"Configuration" => "配置", -"Available for" => "可用于", -"Add storage" => "增加存储", -"Delete" => "删除", -"Enable User External Storage" => "启用用户外部存储", -"Allow users to mount the following external storage" => "允许用户挂载以下外部存储" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/zh_HK.js b/apps/files_external/l10n/zh_HK.js new file mode 100644 index 0000000000000000000000000000000000000000..d8446e4dac643741e0f18677a9921d36e603a921 --- /dev/null +++ b/apps/files_external/l10n/zh_HK.js @@ -0,0 +1,15 @@ +OC.L10N.register( + "files_external", + { + "Port" : "連接埠", + "Username" : "用戶名稱", + "Password" : "密碼", + "Share" : "分享", + "URL" : "網址", + "Personal" : "個人", + "Saved" : "已儲存", + "Name" : "名稱", + "Folder name" : "資料夾名稱", + "Delete" : "刪除" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/zh_HK.json b/apps/files_external/l10n/zh_HK.json new file mode 100644 index 0000000000000000000000000000000000000000..46d6c0dabe76b79a811ffb9f42d0799de5c59dd3 --- /dev/null +++ b/apps/files_external/l10n/zh_HK.json @@ -0,0 +1,13 @@ +{ "translations": { + "Port" : "連接埠", + "Username" : "用戶名稱", + "Password" : "密碼", + "Share" : "分享", + "URL" : "網址", + "Personal" : "個人", + "Saved" : "已儲存", + "Name" : "名稱", + "Folder name" : "資料夾名稱", + "Delete" : "刪除" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/zh_HK.php b/apps/files_external/l10n/zh_HK.php deleted file mode 100644 index c7f3f1afd8841dac32f09fb8cdcac3245b8a3029..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/zh_HK.php +++ /dev/null @@ -1,14 +0,0 @@ - "連接埠", -"Username" => "用戶名稱", -"Password" => "密碼", -"Share" => "分享", -"URL" => "網址", -"Personal" => "個人", -"Saved" => "已儲存", -"Name" => "名稱", -"Folder name" => "資料夾名稱", -"Delete" => "刪除" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js new file mode 100644 index 0000000000000000000000000000000000000000..a1f2d8a226dc469badc87fcb7dcfbdac8bdf3647 --- /dev/null +++ b/apps/files_external/l10n/zh_TW.js @@ -0,0 +1,43 @@ +OC.L10N.register( + "files_external", + { + "Please provide a valid Dropbox app key and secret." : "請提供有效的 Dropbox app key 和 app secret 。", + "External storage" : "外部儲存", + "Local" : "本地", + "Location" : "地點", + "Amazon S3" : "Amazon S3", + "Key" : "鑰", + "Secret" : "密", + "Secret Key" : "密鑰", + "Port" : "連接埠", + "Region" : "地區", + "Enable SSL" : "啟用 SSL", + "Host" : "主機", + "Username" : "使用者名稱", + "Password" : "密碼", + "Share" : "分享", + "URL" : "URL", + "Access granted" : "允許存取", + "Error configuring Dropbox storage" : "設定 Dropbox 儲存時發生錯誤", + "Grant access" : "允許存取", + "Error configuring Google Drive storage" : "設定 Google Drive 儲存時發生錯誤", + "Personal" : "個人", + "System" : "系統", + "Saved" : "已儲存", + "Note: " : "警告: ", + " and " : "與", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "警告: PHP 並未啓用 Curl 的支援,因此無法掛載 %s 。請洽您的系統管理員將其安裝並啓用。", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "警告:PHP 並未啓用 FTP 的支援,因此無法掛載 %s,請洽您的系統管理員將其安裝並啓用。", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "警告並未安裝 \"%s\",因此無法掛載 %s。請洽您的系統管理員將其安裝並啓用。", + "You don't have any external storages" : "您沒有任何外部儲存", + "Name" : "名稱", + "External Storage" : "外部儲存", + "Folder name" : "資料夾名稱", + "Configuration" : "設定", + "Available for" : "可用的", + "Add storage" : "增加儲存區", + "Delete" : "刪除", + "Enable User External Storage" : "啓用使用者外部儲存", + "Allow users to mount the following external storage" : "允許使用者自行掛載以下的外部儲存" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json new file mode 100644 index 0000000000000000000000000000000000000000..03a20a3215ecb58892756ac3a6a73940d2cf723d --- /dev/null +++ b/apps/files_external/l10n/zh_TW.json @@ -0,0 +1,41 @@ +{ "translations": { + "Please provide a valid Dropbox app key and secret." : "請提供有效的 Dropbox app key 和 app secret 。", + "External storage" : "外部儲存", + "Local" : "本地", + "Location" : "地點", + "Amazon S3" : "Amazon S3", + "Key" : "鑰", + "Secret" : "密", + "Secret Key" : "密鑰", + "Port" : "連接埠", + "Region" : "地區", + "Enable SSL" : "啟用 SSL", + "Host" : "主機", + "Username" : "使用者名稱", + "Password" : "密碼", + "Share" : "分享", + "URL" : "URL", + "Access granted" : "允許存取", + "Error configuring Dropbox storage" : "設定 Dropbox 儲存時發生錯誤", + "Grant access" : "允許存取", + "Error configuring Google Drive storage" : "設定 Google Drive 儲存時發生錯誤", + "Personal" : "個人", + "System" : "系統", + "Saved" : "已儲存", + "Note: " : "警告: ", + " and " : "與", + "Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "警告: PHP 並未啓用 Curl 的支援,因此無法掛載 %s 。請洽您的系統管理員將其安裝並啓用。", + "Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "警告:PHP 並未啓用 FTP 的支援,因此無法掛載 %s,請洽您的系統管理員將其安裝並啓用。", + "Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "警告並未安裝 \"%s\",因此無法掛載 %s。請洽您的系統管理員將其安裝並啓用。", + "You don't have any external storages" : "您沒有任何外部儲存", + "Name" : "名稱", + "External Storage" : "外部儲存", + "Folder name" : "資料夾名稱", + "Configuration" : "設定", + "Available for" : "可用的", + "Add storage" : "增加儲存區", + "Delete" : "刪除", + "Enable User External Storage" : "啓用使用者外部儲存", + "Allow users to mount the following external storage" : "允許使用者自行掛載以下的外部儲存" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_external/l10n/zh_TW.php b/apps/files_external/l10n/zh_TW.php deleted file mode 100644 index 7dbaebc04d0f36fb230819810bbc940d400dc920..0000000000000000000000000000000000000000 --- a/apps/files_external/l10n/zh_TW.php +++ /dev/null @@ -1,42 +0,0 @@ - "請提供有效的 Dropbox app key 和 app secret 。", -"External storage" => "外部儲存", -"Local" => "本地", -"Location" => "地點", -"Amazon S3" => "Amazon S3", -"Key" => "鑰", -"Secret" => "密", -"Secret Key" => "密鑰", -"Port" => "連接埠", -"Region" => "地區", -"Enable SSL" => "啟用 SSL", -"Host" => "主機", -"Username" => "使用者名稱", -"Password" => "密碼", -"Share" => "分享", -"URL" => "URL", -"Access granted" => "允許存取", -"Error configuring Dropbox storage" => "設定 Dropbox 儲存時發生錯誤", -"Grant access" => "允許存取", -"Error configuring Google Drive storage" => "設定 Google Drive 儲存時發生錯誤", -"Personal" => "個人", -"System" => "系統", -"Saved" => "已儲存", -"Note: " => "警告: ", -" and " => "與", -"Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "警告: PHP 並未啓用 Curl 的支援,因此無法掛載 %s 。請洽您的系統管理員將其安裝並啓用。", -"Note: The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "警告:PHP 並未啓用 FTP 的支援,因此無法掛載 %s,請洽您的系統管理員將其安裝並啓用。", -"Note: \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "警告並未安裝 \"%s\",因此無法掛載 %s。請洽您的系統管理員將其安裝並啓用。", -"You don't have any external storages" => "您沒有任何外部儲存", -"Name" => "名稱", -"External Storage" => "外部儲存", -"Folder name" => "資料夾名稱", -"Configuration" => "設定", -"Available for" => "可用的", -"Add storage" => "增加儲存區", -"Delete" => "刪除", -"Enable User External Storage" => "啓用使用者外部儲存", -"Allow users to mount the following external storage" => "允許使用者自行掛載以下的外部儲存" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php index 808de16c8a82d992258b6644d37b142e7579fcf6..4d94e3561f8625c864c80a72f5c50a40e21affac 100644 --- a/apps/files_external/lib/amazons3.php +++ b/apps/files_external/lib/amazons3.php @@ -45,6 +45,10 @@ class AmazonS3 extends \OC\Files\Storage\Common { * @var array */ private static $tmpFiles = array(); + /** + * @var array + */ + private $params; /** * @var bool */ @@ -101,7 +105,6 @@ class AmazonS3 extends \OC\Files\Storage\Common { $this->updateLegacyId($params); $this->bucket = $params['bucket']; - $scheme = ($params['use_ssl'] === 'false') ? 'http' : 'https'; $this->test = isset($params['test']); $this->timeout = (!isset($params['timeout'])) ? 15 : $params['timeout']; $this->rescanDelay = (!isset($params['rescanDelay'])) ? 10 : $params['rescanDelay']; @@ -110,35 +113,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { if (!isset($params['port']) || $params['port'] === '') { $params['port'] = ($params['use_ssl'] === 'false') ? 80 : 443; } - $base_url = $scheme . '://' . $params['hostname'] . ':' . $params['port'] . '/'; - - $this->connection = S3Client::factory(array( - 'key' => $params['key'], - 'secret' => $params['secret'], - 'base_url' => $base_url, - 'region' => $params['region'] - )); - - if (!$this->connection->isValidBucketName($this->bucket)) { - throw new \Exception("The configured bucket name is invalid."); - } - - if (!$this->connection->doesBucketExist($this->bucket)) { - try { - $this->connection->createBucket(array( - 'Bucket' => $this->bucket - )); - $this->connection->waitUntilBucketExists(array( - 'Bucket' => $this->bucket, - 'waiter.interval' => 1, - 'waiter.max_attempts' => 15 - )); - $this->testTimeout(); - } catch (S3Exception $e) { - \OCP\Util::logException('files_external', $e); - throw new \Exception('Creation of bucket failed. '.$e->getMessage()); - } - } + $this->params = $params; } /** @@ -148,11 +123,28 @@ class AmazonS3 extends \OC\Files\Storage\Common { * @param array $params */ public function updateLegacyId (array $params) { + $oldId = 'amazon::' . $params['key'] . md5($params['secret']); + + // find by old id or bucket $stmt = \OC::$server->getDatabaseConnection()->prepare( - 'UPDATE `*PREFIX*storages` SET `id` = ? WHERE `id` = ?' + 'SELECT `numeric_id`, `id` FROM `*PREFIX*storages` WHERE `id` IN (?, ?)' ); - $oldId = 'amazon::' . $params['key'] . md5($params['secret']); - $stmt->execute(array($this->id, $oldId)); + $stmt->execute(array($oldId, $this->id)); + while ($row = $stmt->fetch()) { + $storages[$row['id']] = $row['numeric_id']; + } + + if (isset($storages[$this->id]) && isset($storages[$oldId])) { + // if both ids exist, delete the old storage and corresponding filecache entries + \OC\Files\Cache\Storage::remove($oldId); + } else if (isset($storages[$oldId])) { + // if only the old id exists do an update + $stmt = \OC::$server->getDatabaseConnection()->prepare( + 'UPDATE `*PREFIX*storages` SET `id` = ? WHERE `id` = ?' + ); + $stmt->execute(array($this->id, $oldId)); + } + // only the bucket based id may exist, do nothing } /** @@ -181,9 +173,10 @@ class AmazonS3 extends \OC\Files\Storage\Common { } try { - $this->connection->putObject(array( + $this->getConnection()->putObject(array( 'Bucket' => $this->bucket, 'Key' => $path . '/', + 'Body' => '', 'ContentType' => 'httpd/unix-directory' )); $this->testTimeout(); @@ -216,7 +209,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { protected function clearBucket() { try { - $this->connection->clearBucket($this->bucket); + $this->getConnection()->clearBucket($this->bucket); return true; // clearBucket() is not working with Ceph, so if it fails we try the slower approach } catch (\Exception $e) { @@ -237,9 +230,9 @@ class AmazonS3 extends \OC\Files\Storage\Common { // to delete all objects prefixed with the path. do { // instead of the iterator, manually loop over the list ... - $objects = $this->connection->listObjects($params); + $objects = $this->getConnection()->listObjects($params); // ... so we can delete the files in batches - $this->connection->deleteObjects(array( + $this->getConnection()->deleteObjects(array( 'Bucket' => $this->bucket, 'Objects' => $objects['Contents'] )); @@ -264,7 +257,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { try { $files = array(); - $result = $this->connection->getIterator('ListObjects', array( + $result = $this->getConnection()->getIterator('ListObjects', array( 'Bucket' => $this->bucket, 'Delimiter' => '/', 'Prefix' => $path @@ -274,10 +267,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { $file = basename( isset($object['Key']) ? $object['Key'] : $object['Prefix'] ); - - if ($file != basename($path)) { - $files[] = $file; - } + $files[] = $file; } \OC\Files\Stream\Dir::register('amazons3' . $path, $files); @@ -299,7 +289,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { $stat['size'] = -1; //unknown $stat['mtime'] = time() - $this->rescanDelay * 1000; } else { - $result = $this->connection->headObject(array( + $result = $this->getConnection()->headObject(array( 'Bucket' => $this->bucket, 'Key' => $path )); @@ -328,10 +318,10 @@ class AmazonS3 extends \OC\Files\Storage\Common { } try { - if ($this->connection->doesObjectExist($this->bucket, $path)) { + if ($this->getConnection()->doesObjectExist($this->bucket, $path)) { return 'file'; } - if ($this->connection->doesObjectExist($this->bucket, $path.'/')) { + if ($this->getConnection()->doesObjectExist($this->bucket, $path.'/')) { return 'dir'; } } catch (S3Exception $e) { @@ -350,7 +340,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { } try { - $this->connection->deleteObject(array( + $this->getConnection()->deleteObject(array( 'Bucket' => $this->bucket, 'Key' => $path )); @@ -373,7 +363,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { self::$tmpFiles[$tmpFile] = $path; try { - $this->connection->getObject(array( + $this->getConnection()->getObject(array( 'Bucket' => $this->bucket, 'Key' => $path, 'SaveAs' => $tmpFile @@ -421,7 +411,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { return 'httpd/unix-directory'; } else if ($this->file_exists($path)) { try { - $result = $this->connection->headObject(array( + $result = $this->getConnection()->headObject(array( 'Bucket' => $this->bucket, 'Key' => $path )); @@ -449,7 +439,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { if ($fileType === 'dir' && ! $this->isRoot($path)) { $path .= '/'; } - $this->connection->copyObject(array( + $this->getConnection()->copyObject(array( 'Bucket' => $this->bucket, 'Key' => $this->cleanKey($path), 'Metadata' => $metadata, @@ -457,11 +447,13 @@ class AmazonS3 extends \OC\Files\Storage\Common { )); $this->testTimeout(); } else { - $this->connection->putObject(array( + $mimeType = \OC_Helper::getMimetypeDetector()->detectPath($path); + $this->getConnection()->putObject(array( 'Bucket' => $this->bucket, 'Key' => $this->cleanKey($path), 'Metadata' => $metadata, - 'Body' => '' + 'Body' => '', + 'ContentType' => $mimeType )); $this->testTimeout(); } @@ -479,7 +471,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { if ($this->is_file($path1)) { try { - $this->connection->copyObject(array( + $this->getConnection()->copyObject(array( 'Bucket' => $this->bucket, 'Key' => $this->cleanKey($path2), 'CopySource' => S3Client::encodeKey($this->bucket . '/' . $path1) @@ -493,7 +485,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { $this->remove($path2); try { - $this->connection->copyObject(array( + $this->getConnection()->copyObject(array( 'Bucket' => $this->bucket, 'Key' => $path2 . '/', 'CopySource' => S3Client::encodeKey($this->bucket . '/' . $path1 . '/') @@ -551,7 +543,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { } public function test() { - $test = $this->connection->getBucketAcl(array( + $test = $this->getConnection()->getBucketAcl(array( 'Bucket' => $this->bucket, )); if (isset($test) && !is_null($test->getPath('Owner/ID'))) { @@ -564,7 +556,48 @@ class AmazonS3 extends \OC\Files\Storage\Common { return $this->id; } + /** + * Returns the connection + * + * @return S3Client connected client + * @throws \Exception if connection could not be made + */ public function getConnection() { + if (!is_null($this->connection)) { + return $this->connection; + } + + $scheme = ($this->params['use_ssl'] === 'false') ? 'http' : 'https'; + $base_url = $scheme . '://' . $this->params['hostname'] . ':' . $this->params['port'] . '/'; + + $this->connection = S3Client::factory(array( + 'key' => $this->params['key'], + 'secret' => $this->params['secret'], + 'base_url' => $base_url, + 'region' => $this->params['region'] + )); + + if (!$this->connection->isValidBucketName($this->bucket)) { + throw new \Exception("The configured bucket name is invalid."); + } + + if (!$this->connection->doesBucketExist($this->bucket)) { + try { + $this->connection->createBucket(array( + 'Bucket' => $this->bucket + )); + $this->connection->waitUntilBucketExists(array( + 'Bucket' => $this->bucket, + 'waiter.interval' => 1, + 'waiter.max_attempts' => 15 + )); + $this->testTimeout(); + } catch (S3Exception $e) { + \OCP\Util::logException('files_external', $e); + throw new \Exception('Creation of bucket failed. '.$e->getMessage()); + } + } + return $this->connection; } @@ -574,7 +607,7 @@ class AmazonS3 extends \OC\Files\Storage\Common { } try { - $this->connection->putObject(array( + $this->getConnection()->putObject(array( 'Bucket' => $this->bucket, 'Key' => $this->cleanKey(self::$tmpFiles[$tmpFile]), 'SourceFile' => $tmpFile, diff --git a/apps/files_external/lib/api.php b/apps/files_external/lib/api.php index 81ebd4e886a68caf25407f06745f17e3b3712415..3b5e0e1759acbb9367ea19ecbab18a47f5ad0189 100644 --- a/apps/files_external/lib/api.php +++ b/apps/files_external/lib/api.php @@ -45,10 +45,10 @@ class Api { $isSystemMount = !$mountConfig['personal']; - $permissions = \OCP\PERMISSION_READ; + $permissions = \OCP\Constants::PERMISSION_READ; // personal mounts can be deleted if (!$isSystemMount) { - $permissions |= \OCP\PERMISSION_DELETE; + $permissions |= \OCP\Constants::PERMISSION_DELETE; } $entry = array( diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php old mode 100755 new mode 100644 index 952463b8015c985fc7c308bc13d80e18e25b8f25..9400bbdedc0960fdc36a78e94b8cb2d3c52c2399 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -118,6 +118,30 @@ class OC_Mount_Config { } $manager->addMount($mount); } + + if ($data['user']) { + $user = \OC::$server->getUserManager()->get($data['user']); + if (!$user) { + \OC_Log::write( + 'files_external', + 'Cannot init external mount points for non-existant user "' . $data['user'] . '".', + \OC_Log::WARN + ); + return; + } + $userView = new \OC\Files\View('/' . $user->getUID() . '/files'); + $changePropagator = new \OC\Files\Cache\ChangePropagator($userView); + $etagPropagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, \OC::$server->getConfig()); + $etagPropagator->propagateDirtyMountPoints(); + \OCP\Util::connectHook( + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_create_mount, + $etagPropagator, 'updateHook'); + \OCP\Util::connectHook( + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_delete_mount, + $etagPropagator, 'updateHook'); + } } /** @@ -463,6 +487,7 @@ class OC_Mount_Config { $priority = null) { $backends = self::getBackends(); $mountPoint = OC\Files\Filesystem::normalizePath($mountPoint); + $relMountPoint = $mountPoint; if ($mountPoint === '' || $mountPoint === '/') { // can't mount at root folder return false; @@ -495,6 +520,10 @@ class OC_Mount_Config { } $mountPoints = self::readData($isPersonal ? OCP\User::getUser() : NULL); + // who else loves multi-dimensional array ? + $isNew = !isset($mountPoints[$mountType]) || + !isset($mountPoints[$mountType][$applicable]) || + !isset($mountPoints[$mountType][$applicable][$mountPoint]); $mountPoints = self::mergeMountPoints($mountPoints, $mount, $mountType); // Set default priority if none set @@ -510,7 +539,19 @@ class OC_Mount_Config { self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints); - return self::getBackendStatus($class, $classOptions, $isPersonal); + $result = self::getBackendStatus($class, $classOptions, $isPersonal); + if ($result && $isNew) { + \OC_Hook::emit( + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_create_mount, + array( + \OC\Files\Filesystem::signal_param_path => $relMountPoint, + \OC\Files\Filesystem::signal_param_mount_type => $mountType, + \OC\Files\Filesystem::signal_param_users => $applicable, + ) + ); + } + return $result; } /** @@ -523,6 +564,7 @@ class OC_Mount_Config { */ public static function removeMountPoint($mountPoint, $mountType, $applicable, $isPersonal = false) { // Verify that the mount point applies for the current user + $relMountPoints = $mountPoint; if ($isPersonal) { if ($applicable != OCP\User::getUser()) { return false; @@ -543,6 +585,15 @@ class OC_Mount_Config { } } self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints); + \OC_Hook::emit( + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_delete_mount, + array( + \OC\Files\Filesystem::signal_param_path => $relMountPoints, + \OC\Files\Filesystem::signal_param_mount_type => $mountType, + \OC\Files\Filesystem::signal_param_users => $applicable, + ) + ); return true; } @@ -673,10 +724,11 @@ class OC_Mount_Config { } } - if (count($dependencyGroup) > 0) { + $dependencyGroupCount = count($dependencyGroup); + if ($dependencyGroupCount > 0) { $backends = ''; - for ($i = 0; $i < count($dependencyGroup); $i++) { - if ($i > 0 && $i === count($dependencyGroup) - 1) { + for ($i = 0; $i < $dependencyGroupCount; $i++) { + if ($i > 0 && $i === $dependencyGroupCount - 1) { $backends .= $l->t(' and '); } elseif ($i > 0) { $backends .= ', '; @@ -696,7 +748,7 @@ class OC_Mount_Config { * @param string $backend * @return string */ - private static function getSingleDependencyMessage($l, $module, $backend) { + private static function getSingleDependencyMessage(OC_L10N $l, $module, $backend) { switch (strtolower($module)) { case 'curl': return $l->t('Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.', $backend); diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php old mode 100755 new mode 100644 index 9f297d22dcb83bfd8a48512562f2c82f271f67ad..cc1e628f8516bf36799a7acbdf7cb95be456e3a5 --- a/apps/files_external/lib/dropbox.php +++ b/apps/files_external/lib/dropbox.php @@ -44,6 +44,7 @@ class Dropbox extends \OC\Files\Storage\Common { $this->id = 'dropbox::'.$params['app_key'] . $params['token']. '/' . $this->root; $oauth = new \Dropbox_OAuth_Curl($params['app_key'], $params['app_secret']); $oauth->setToken($params['token'], $params['token_secret']); + // note: Dropbox_API connection is lazy $this->dropbox = new \Dropbox_API($oauth, 'auto'); } else { throw new \Exception('Creating \OC\Files\Storage\Dropbox storage failed'); diff --git a/apps/files_external/lib/etagpropagator.php b/apps/files_external/lib/etagpropagator.php new file mode 100644 index 0000000000000000000000000000000000000000..80a3849b150d2effb128f9e0dd3c19b99cf6cad0 --- /dev/null +++ b/apps/files_external/lib/etagpropagator.php @@ -0,0 +1,126 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\Files_External; + +use OC\Files\Filesystem; + +/** + * Updates the etag of parent folders whenever a new external storage mount + * point has been created or deleted. Updates need to be triggered using + * the updateHook() method. + * + * There are two modes of operation: + * - for personal mount points, the etag is propagated directly + * - for system mount points, a dirty flag is saved in the configuration and + * the etag will be updated the next time propagateDirtyMountPoints() is called + */ +class EtagPropagator { + /** + * @var \OCP\IUser + */ + protected $user; + + /** + * @var \OC\Files\Cache\ChangePropagator + */ + protected $changePropagator; + + /** + * @var \OCP\IConfig + */ + protected $config; + + /** + * @param \OCP\IUser $user current user, must match the propagator's + * user + * @param \OC\Files\Cache\ChangePropagator $changePropagator change propagator + * initialized with a view for $user + * @param \OCP\IConfig $config + */ + public function __construct($user, $changePropagator, $config) { + $this->user = $user; + $this->changePropagator = $changePropagator; + $this->config = $config; + } + + /** + * Propagate the etag changes for all mountpoints marked as dirty and mark the mountpoints as clean + * + * @param int $time + */ + public function propagateDirtyMountPoints($time = null) { + if ($time === null) { + $time = time(); + } + $mountPoints = $this->getDirtyMountPoints(); + foreach ($mountPoints as $mountPoint) { + $this->changePropagator->addChange($mountPoint); + $this->config->setUserValue($this->user->getUID(), 'files_external', $mountPoint, $time); + } + if (count($mountPoints)) { + $this->changePropagator->propagateChanges($time); + } + } + + /** + * Get all mountpoints we need to update the etag for + * + * @return string[] + */ + protected function getDirtyMountPoints() { + $dirty = array(); + $mountPoints = $this->config->getAppKeys('files_external'); + foreach ($mountPoints as $mountPoint) { + if (substr($mountPoint, 0, 1) === '/') { + $updateTime = $this->config->getAppValue('files_external', $mountPoint); + $userTime = $this->config->getUserValue($this->user->getUID(), 'files_external', $mountPoint); + if ($updateTime > $userTime) { + $dirty[] = $mountPoint; + } + } + } + return $dirty; + } + + /** + * @param string $mountPoint + * @param int $time + */ + protected function markDirty($mountPoint, $time = null) { + if ($time === null) { + $time = time(); + } + $this->config->setAppValue('files_external', $mountPoint, $time); + } + + /** + * Update etags for mount points for known user + * For global or group mount points, updating the etag for every user is not feasible + * instead we mark the mount point as dirty and update the etag when the filesystem is loaded for the user + * For personal mount points, the change is propagated directly + * + * @param array $params hook parameters + * @param int $time update time to use when marking a mount point as dirty + */ + public function updateHook($params, $time = null) { + if ($time === null) { + $time = time(); + } + $users = $params[Filesystem::signal_param_users]; + $type = $params[Filesystem::signal_param_mount_type]; + $mountPoint = $params[Filesystem::signal_param_path]; + $mountPoint = Filesystem::normalizePath($mountPoint); + if ($type === \OC_Mount_Config::MOUNT_TYPE_GROUP or $users === 'all') { + $this->markDirty($mountPoint, $time); + } else { + $this->changePropagator->addChange($mountPoint); + $this->changePropagator->propagateChanges($time); + } + } +} diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index 2650a94f85ef33656f7ae68f59a9609ff65954b9..4a995d21157f7ca28851f5d9b2d8a1378a9c3208 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -39,7 +39,7 @@ class FTP extends \OC\Files\Storage\StreamWrapper{ $this->root .= '/'; } } else { - throw new \Exception(); + throw new \Exception('Creating \OC\Files\Storage\FTP storage failed'); } } diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php index 5d238a363de010140a837ce32b202d3b27264954..c414e34fad48658411346678eb370bc71abf50a3 100644 --- a/apps/files_external/lib/google.php +++ b/apps/files_external/lib/google.php @@ -23,11 +23,12 @@ namespace OC\Files\Storage; set_include_path(get_include_path().PATH_SEPARATOR. \OC_App::getAppPath('files_external').'/3rdparty/google-api-php-client/src'); -require_once 'Google_Client.php'; -require_once 'contrib/Google_DriveService.php'; +require_once 'Google/Client.php'; +require_once 'Google/Service/Drive.php'; class Google extends \OC\Files\Storage\Common { + private $client; private $id; private $service; private $driveFiles; @@ -46,13 +47,19 @@ class Google extends \OC\Files\Storage\Common { && isset($params['client_id']) && isset($params['client_secret']) && isset($params['token']) ) { - $client = new \Google_Client(); - $client->setClientId($params['client_id']); - $client->setClientSecret($params['client_secret']); - $client->setScopes(array('https://www.googleapis.com/auth/drive')); - $client->setUseObjects(true); - $client->setAccessToken($params['token']); - $this->service = new \Google_DriveService($client); + $this->client = new \Google_Client(); + $this->client->setClientId($params['client_id']); + $this->client->setClientSecret($params['client_secret']); + $this->client->setScopes(array('https://www.googleapis.com/auth/drive')); + $this->client->setAccessToken($params['token']); + // if curl isn't available we're likely to run into + // https://github.com/google/google-api-php-client/issues/59 + // - disable gzip to avoid it. + if (!function_exists('curl_version') || !function_exists('curl_exec')) { + $this->client->setClassConfig("Google_Http_Request", "disable_gzip", true); + } + // note: API connection is lazy + $this->service = new \Google_Service_Drive($this->client); $token = json_decode($params['token'], true); $this->id = 'google::'.substr($params['client_id'], 0, 30).$token['created']; } else { @@ -65,9 +72,10 @@ class Google extends \OC\Files\Storage\Common { } /** - * Get the Google_DriveFile object for the specified path + * Get the Google_Service_Drive_DriveFile object for the specified path. + * Returns false on failure. * @param string $path - * @return string + * @return \Google_Service_Drive_DriveFile|false */ private function getDriveFile($path) { // Remove leading and trailing slashes @@ -114,7 +122,7 @@ class Google extends \OC\Files\Storage\Common { $pathWithoutExt = substr($path, 0, $pos); $file = $this->getDriveFile($pathWithoutExt); if ($file) { - // Switch cached Google_DriveFile to the correct index + // Switch cached Google_Service_Drive_DriveFile to the correct index unset($this->driveFiles[$pathWithoutExt]); $this->driveFiles[$path] = $file; $parentId = $file->getId(); @@ -132,9 +140,9 @@ class Google extends \OC\Files\Storage\Common { } /** - * Set the Google_DriveFile object in the cache + * Set the Google_Service_Drive_DriveFile object in the cache * @param string $path - * @param Google_DriveFile|false $file + * @param Google_Service_Drive_DriveFile|false $file */ private function setDriveFile($path, $file) { $path = trim($path, '/'); @@ -187,10 +195,10 @@ class Google extends \OC\Files\Storage\Common { if (!$this->is_dir($path)) { $parentFolder = $this->getDriveFile(dirname($path)); if ($parentFolder) { - $folder = new \Google_DriveFile(); + $folder = new \Google_Service_Drive_DriveFile(); $folder->setTitle(basename($path)); $folder->setMimeType(self::FOLDER); - $parent = new \Google_ParentReference(); + $parent = new \Google_Service_Drive_ParentReference(); $parent->setId($parentFolder->getId()); $folder->setParents(array($parent)); $result = $this->service->files->insert($folder); @@ -265,7 +273,7 @@ class Google extends \OC\Files\Storage\Common { $this->onDuplicateFileDetected($filepath); } } else { - // Cache the Google_DriveFile for future use + // Cache the Google_Service_Drive_DriveFile for future use $this->setDriveFile($filepath, $child); $files[] = $name; } @@ -355,7 +363,7 @@ class Google extends \OC\Files\Storage\Common { // Change file parent $parentFolder2 = $this->getDriveFile(dirname($path2)); if ($parentFolder2) { - $parent = new \Google_ParentReference(); + $parent = new \Google_Service_Drive_ParentReference(); $parent->setId($parentFolder2->getId()); $file->setParents(array($parent)); } else { @@ -394,8 +402,8 @@ class Google extends \OC\Files\Storage\Common { $downloadUrl = $file->getDownloadUrl(); } if (isset($downloadUrl)) { - $request = new \Google_HttpRequest($downloadUrl, 'GET', null, null); - $httpRequest = \Google_Client::$io->authenticatedRequest($request); + $request = new \Google_Http_Request($downloadUrl, 'GET', null, null); + $httpRequest = $this->client->getAuth()->authenticatedRequest($request); if ($httpRequest->getResponseHttpCode() == 200) { $tmpFile = \OC_Helper::tmpFile($ext); $data = $httpRequest->getResponseBody(); @@ -439,16 +447,17 @@ class Google extends \OC\Files\Storage\Common { $params = array( 'data' => $data, 'mimeType' => $mimetype, + 'uploadType' => 'media' ); $result = false; if ($this->file_exists($path)) { $file = $this->getDriveFile($path); $result = $this->service->files->update($file->getId(), $file, $params); } else { - $file = new \Google_DriveFile(); + $file = new \Google_Service_Drive_DriveFile(); $file->setTitle(basename($path)); $file->setMimeType($mimetype); - $parent = new \Google_ParentReference(); + $parent = new \Google_Service_Drive_ParentReference(); $parent->setId($parentFolder->getId()); $file->setParents(array($parent)); $result = $this->service->files->insert($file, $params); @@ -495,7 +504,10 @@ class Google extends \OC\Files\Storage\Common { $result = false; if ($file) { if (isset($mtime)) { - $file->setModifiedDate($mtime); + // This is just RFC3339, but frustratingly, GDrive's API *requires* + // the fractions portion be present, while no handy PHP constant + // for RFC3339 or ISO8601 includes it. So we do it ourselves. + $file->setModifiedDate(date('Y-m-d\TH:i:s.uP', $mtime)); $result = $this->service->files->patch($file->getId(), $file, array( 'setModifiedDate' => true, )); @@ -505,9 +517,9 @@ class Google extends \OC\Files\Storage\Common { } else { $parentFolder = $this->getDriveFile(dirname($path)); if ($parentFolder) { - $file = new \Google_DriveFile(); + $file = new \Google_Service_Drive_DriveFile(); $file->setTitle(basename($path)); - $parent = new \Google_ParentReference(); + $parent = new \Google_Service_Drive_ParentReference(); $parent->setId($parentFolder->getId()); $file->setParents(array($parent)); $result = $this->service->files->insert($file); diff --git a/apps/files_external/lib/owncloud.php b/apps/files_external/lib/owncloud.php index 98314102a64dec5f5115ed7948d95587e2341283..04a1e959eb019bbb49d596e711fa5be7b5c0f155 100644 --- a/apps/files_external/lib/owncloud.php +++ b/apps/files_external/lib/owncloud.php @@ -22,6 +22,14 @@ class OwnCloud extends \OC\Files\Storage\DAV{ // extract context path from host if specified // (owncloud install path on host) $host = $params['host']; + // strip protocol + if (substr($host, 0, 8) == "https://") { + $host = substr($host, 8); + $params['secure'] = true; + } else if (substr($host, 0, 7) == "http://") { + $host = substr($host, 7); + $params['secure'] = false; + } $contextPath = ''; $hostSlashPos = strpos($host, '/'); if ($hostSlashPos !== false){ diff --git a/apps/files_external/lib/sftp.php b/apps/files_external/lib/sftp.php index aec56d088d56fda50fd99d7f769a842a26ed65c4..f0a6f145422571b3782eaf200c9293554d7cb6c9 100644 --- a/apps/files_external/lib/sftp.php +++ b/apps/files_external/lib/sftp.php @@ -53,6 +53,18 @@ class SFTP extends \OC\Files\Storage\Common { if (substr($this->root, -1, 1) != '/') { $this->root .= '/'; } + } + + /** + * Returns the connection. + * + * @return \Net_SFTP connected client instance + * @throws \Exception when the connection failed + */ + public function getConnection() { + if (!is_null($this->client)) { + return $this->client; + } $hostKeys = $this->readHostKeys(); $this->client = new \Net_SFTP($this->host); @@ -71,6 +83,7 @@ class SFTP extends \OC\Files\Storage\Common { if (!$this->client->login($this->user, $this->password)) { throw new \Exception('Login failed'); } + return $this->client; } public function test() { @@ -81,7 +94,7 @@ class SFTP extends \OC\Files\Storage\Common { ) { return false; } - return $this->client->nlist() !== false; + return $this->getConnection()->nlist() !== false; } public function getId(){ @@ -149,7 +162,7 @@ class SFTP extends \OC\Files\Storage\Common { public function mkdir($path) { try { - return $this->client->mkdir($this->absPath($path)); + return $this->getConnection()->mkdir($this->absPath($path)); } catch (\Exception $e) { return false; } @@ -157,7 +170,7 @@ class SFTP extends \OC\Files\Storage\Common { public function rmdir($path) { try { - return $this->client->delete($this->absPath($path), true); + return $this->getConnection()->delete($this->absPath($path), true); } catch (\Exception $e) { return false; } @@ -165,7 +178,7 @@ class SFTP extends \OC\Files\Storage\Common { public function opendir($path) { try { - $list = $this->client->nlist($this->absPath($path)); + $list = $this->getConnection()->nlist($this->absPath($path)); if ($list === false) { return false; } @@ -186,7 +199,7 @@ class SFTP extends \OC\Files\Storage\Common { public function filetype($path) { try { - $stat = $this->client->stat($this->absPath($path)); + $stat = $this->getConnection()->stat($this->absPath($path)); if ($stat['type'] == NET_SFTP_TYPE_REGULAR) { return 'file'; } @@ -202,7 +215,7 @@ class SFTP extends \OC\Files\Storage\Common { public function file_exists($path) { try { - return $this->client->stat($this->absPath($path)) !== false; + return $this->getConnection()->stat($this->absPath($path)) !== false; } catch (\Exception $e) { return false; } @@ -210,7 +223,7 @@ class SFTP extends \OC\Files\Storage\Common { public function unlink($path) { try { - return $this->client->delete($this->absPath($path), true); + return $this->getConnection()->delete($this->absPath($path), true); } catch (\Exception $e) { return false; } @@ -237,7 +250,7 @@ class SFTP extends \OC\Files\Storage\Common { case 'x+': case 'c': case 'c+': - $context = stream_context_create(array('sftp' => array('session' => $this->client))); + $context = stream_context_create(array('sftp' => array('session' => $this->getConnection()))); return fopen($this->constructUrl($path), $mode, false, $context); } } catch (\Exception $e) { @@ -251,7 +264,7 @@ class SFTP extends \OC\Files\Storage\Common { return false; } if (!$this->file_exists($path)) { - $this->client->put($this->absPath($path), ''); + $this->getConnection()->put($this->absPath($path), ''); } else { return false; } @@ -262,11 +275,11 @@ class SFTP extends \OC\Files\Storage\Common { } public function getFile($path, $target) { - $this->client->get($path, $target); + $this->getConnection()->get($path, $target); } public function uploadFile($path, $target) { - $this->client->put($target, $path, NET_SFTP_LOCAL_FILE); + $this->getConnection()->put($target, $path, NET_SFTP_LOCAL_FILE); } public function rename($source, $target) { @@ -274,7 +287,7 @@ class SFTP extends \OC\Files\Storage\Common { if (!$this->is_dir($target) && $this->file_exists($target)) { $this->unlink($target); } - return $this->client->rename( + return $this->getConnection()->rename( $this->absPath($source), $this->absPath($target) ); @@ -285,7 +298,7 @@ class SFTP extends \OC\Files\Storage\Common { public function stat($path) { try { - $stat = $this->client->stat($this->absPath($path)); + $stat = $this->getConnection()->stat($this->absPath($path)); $mtime = $stat ? $stat['mtime'] : -1; $size = $stat ? $stat['size'] : 0; diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php index 6e53c4a99310c9805ac8b5e76b886cb3a91bf4a8..3f0b0f45bfb0eef63858d7895f2440f262d99a05 100644 --- a/apps/files_external/lib/smb.php +++ b/apps/files_external/lib/smb.php @@ -139,13 +139,8 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ * check if smbclient is installed */ public static function checkDependencies() { - if (function_exists('shell_exec')) { - $output=shell_exec('command -v smbclient 2> /dev/null'); - if (!empty($output)) { - return true; - } - } - return array('smbclient'); + $smbClientExists = (bool) \OC_Helper::findBinaryPath('smbclient'); + return $smbClientExists ? true : array('smbclient'); } } diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 6a1e12986fbb80c0d8cd4613d43092caa257225d..79effc048743dd8aa39d1a60762fd526e1222b86 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -48,6 +48,12 @@ class Swift extends \OC\Files\Storage\Common { * @var string */ private $bucket; + /** + * Connection parameters + * + * @var array + */ + private $params; /** * @var array */ @@ -86,7 +92,7 @@ class Swift extends \OC\Files\Storage\Common { */ private function doesObjectExist($path) { try { - $this->container->getPartialObject($path); + $this->getContainer()->getPartialObject($path); return true; } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); @@ -113,41 +119,7 @@ class Swift extends \OC\Files\Storage\Common { $params['service_name'] = 'cloudFiles'; } - $settings = array( - 'username' => $params['user'], - ); - - if (!empty($params['password'])) { - $settings['password'] = $params['password']; - } else if (!empty($params['key'])) { - $settings['apiKey'] = $params['key']; - } - - if (!empty($params['tenant'])) { - $settings['tenantName'] = $params['tenant']; - } - - if (!empty($params['timeout'])) { - $settings['timeout'] = $params['timeout']; - } - - if (isset($settings['apiKey'])) { - $this->anchor = new Rackspace($params['url'], $settings); - } else { - $this->anchor = new OpenStack($params['url'], $settings); - } - - $this->connection = $this->anchor->objectStoreService($params['service_name'], $params['region']); - - try { - $this->container = $this->connection->getContainer($this->bucket); - } catch (ClientErrorResponseException $e) { - $this->container = $this->connection->createContainer($this->bucket); - } - - if (!$this->file_exists('.')) { - $this->mkdir('.'); - } + $this->params = $params; } public function mkdir($path) { @@ -165,7 +137,7 @@ class Swift extends \OC\Files\Storage\Common { $customHeaders = array('content-type' => 'httpd/unix-directory'); $metadataHeaders = DataObject::stockHeaders(array()); $allHeaders = $customHeaders + $metadataHeaders; - $this->container->uploadObject($path, '', $allHeaders); + $this->getContainer()->uploadObject($path, '', $allHeaders); } catch (Exceptions\CreateUpdateError $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -205,7 +177,7 @@ class Swift extends \OC\Files\Storage\Common { } try { - $this->container->dataObject()->setName($path . '/')->delete(); + $this->getContainer()->dataObject()->setName($path . '/')->delete(); } catch (Exceptions\DeleteError $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -228,7 +200,7 @@ class Swift extends \OC\Files\Storage\Common { try { $files = array(); /** @var OpenCloud\Common\Collection $objects */ - $objects = $this->container->objectList(array( + $objects = $this->getContainer()->objectList(array( 'prefix' => $path, 'delimiter' => '/' )); @@ -261,7 +233,7 @@ class Swift extends \OC\Files\Storage\Common { try { /** @var DataObject $object */ - $object = $this->container->getPartialObject($path); + $object = $this->getContainer()->getPartialObject($path); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -314,7 +286,7 @@ class Swift extends \OC\Files\Storage\Common { } try { - $this->container->dataObject()->setName($path)->delete(); + $this->getContainer()->dataObject()->setName($path)->delete(); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -332,7 +304,7 @@ class Swift extends \OC\Files\Storage\Common { $tmpFile = \OC_Helper::tmpFile(); self::$tmpFiles[$tmpFile] = $path; try { - $object = $this->container->getObject($path); + $object = $this->getContainer()->getObject($path); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -385,7 +357,7 @@ class Swift extends \OC\Files\Storage\Common { if ($this->is_dir($path)) { return 'httpd/unix-directory'; } else if ($this->file_exists($path)) { - $object = $this->container->getPartialObject($path); + $object = $this->getContainer()->getPartialObject($path); return $object->getContentType(); } return false; @@ -402,14 +374,15 @@ class Swift extends \OC\Files\Storage\Common { $path .= '/'; } - $object = $this->container->getPartialObject($path); + $object = $this->getContainer()->getPartialObject($path); $object->saveMetadata($metadata); return true; } else { - $customHeaders = array('content-type' => 'text/plain'); + $mimeType = \OC_Helper::getMimetypeDetector()->detectPath($path); + $customHeaders = array('content-type' => $mimeType); $metadataHeaders = DataObject::stockHeaders($metadata); $allHeaders = $customHeaders + $metadataHeaders; - $this->container->uploadObject($path, '', $allHeaders); + $this->getContainer()->uploadObject($path, '', $allHeaders); return true; } } @@ -425,7 +398,7 @@ class Swift extends \OC\Files\Storage\Common { $this->unlink($path2); try { - $source = $this->container->getPartialObject($path1); + $source = $this->getContainer()->getPartialObject($path1); $source->copy($this->bucket . '/' . $path2); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); @@ -438,7 +411,7 @@ class Swift extends \OC\Files\Storage\Common { $this->unlink($path2); try { - $source = $this->container->getPartialObject($path1 . '/'); + $source = $this->getContainer()->getPartialObject($path1 . '/'); $source->copy($this->bucket . '/' . $path2 . '/'); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); @@ -496,16 +469,75 @@ class Swift extends \OC\Files\Storage\Common { return $this->id; } + /** + * Returns the connection + * + * @return OpenCloud\ObjectStore\Service connected client + * @throws \Exception if connection could not be made + */ public function getConnection() { + if (!is_null($this->connection)) { + return $this->connection; + } + + $settings = array( + 'username' => $this->params['user'], + ); + + if (!empty($this->params['password'])) { + $settings['password'] = $this->params['password']; + } else if (!empty($this->params['key'])) { + $settings['apiKey'] = $this->params['key']; + } + + if (!empty($this->params['tenant'])) { + $settings['tenantName'] = $this->params['tenant']; + } + + if (!empty($this->params['timeout'])) { + $settings['timeout'] = $this->params['timeout']; + } + + if (isset($settings['apiKey'])) { + $this->anchor = new Rackspace($this->params['url'], $settings); + } else { + $this->anchor = new OpenStack($this->params['url'], $settings); + } + + $this->connection = $this->anchor->objectStoreService($this->params['service_name'], $this->params['region']); + return $this->connection; } + /** + * Returns the initialized object store container. + * + * @return OpenCloud\ObjectStore\Resource\Container + */ + public function getContainer() { + if (!is_null($this->container)) { + return $this->container; + } + + try { + $this->container = $this->getConnection()->getContainer($this->bucket); + } catch (ClientErrorResponseException $e) { + $this->container = $this->getConnection()->createContainer($this->bucket); + } + + if (!$this->file_exists('.')) { + $this->mkdir('.'); + } + + return $this->container; + } + public function writeBack($tmpFile) { if (!isset(self::$tmpFiles[$tmpFile])) { return false; } $fileData = fopen($tmpFile, 'r'); - $this->container->uploadObject(self::$tmpFiles[$tmpFile], $fileData); + $this->getContainer()->uploadObject(self::$tmpFiles[$tmpFile], $fileData); unlink($tmpFile); } diff --git a/apps/files_external/personal.php b/apps/files_external/personal.php old mode 100755 new mode 100644 diff --git a/apps/files_external/settings.php b/apps/files_external/settings.php index e49eba06731b39c0a22400cf10bd0d384db3212d..dec329e82a2bba16d1e644e8f7d78f71be9f2ae5 100644 --- a/apps/files_external/settings.php +++ b/apps/files_external/settings.php @@ -25,8 +25,8 @@ OC_Util::checkAdminUser(); OCP\Util::addScript('files_external', 'settings'); OCP\Util::addStyle('files_external', 'settings'); -OCP\Util::addScript('core', 'select2/select2'); -OCP\Util::addStyle('core', 'select2/select2'); +\OC_Util::addVendorScript('select2/select2'); +\OC_Util::addVendorStyle('select2/select2'); $backends = OC_Mount_Config::getBackends(); $personal_backends = array(); diff --git a/apps/files_external/tests/amazons3.php b/apps/files_external/tests/amazons3.php index 8eaece6dad9d99c3746b4f4e3ce92bddd4a937c5..fbb8744bd8d4b3cada72e539eee92199dd0e415d 100644 --- a/apps/files_external/tests/amazons3.php +++ b/apps/files_external/tests/amazons3.php @@ -28,7 +28,9 @@ class AmazonS3 extends Storage { private $config; - public function setUp() { + protected function setUp() { + parent::setUp(); + $this->config = include('files_external/tests/config.php'); if ( ! is_array($this->config) or ! isset($this->config['amazons3']) or ! $this->config['amazons3']['run']) { $this->markTestSkipped('AmazonS3 backend not configured'); @@ -36,10 +38,12 @@ class AmazonS3 extends Storage { $this->instance = new \OC\Files\Storage\AmazonS3($this->config['amazons3']); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { $this->instance->rmdir(''); } + + parent::tearDown(); } public function testStat() { diff --git a/apps/files_external/tests/amazons3migration.php b/apps/files_external/tests/amazons3migration.php new file mode 100644 index 0000000000000000000000000000000000000000..145213f5293f3c82de90a570433f0d4c3642eda8 --- /dev/null +++ b/apps/files_external/tests/amazons3migration.php @@ -0,0 +1,130 @@ +. + */ + + +namespace Test\Files\Storage; + +class AmazonS3Migration extends \Test\TestCase { + + /** + * @var \OC\Files\Storage\Storage instance + */ + protected $instance; + + /** @var array */ + protected $params; + + /** @var string */ + protected $oldId; + + /** @var string */ + protected $newId; + + protected function setUp() { + parent::setUp(); + + $uuid = $this->getUniqueID(); + + $this->params['key'] = 'key'.$uuid; + $this->params['secret'] = 'secret'.$uuid; + $this->params['bucket'] = 'bucket'.$uuid; + + $this->oldId = 'amazon::' . $this->params['key'] . md5($this->params['secret']); + $this->newId = 'amazon::' . $this->params['bucket']; + } + + protected function tearDown() { + $this->deleteStorage($this->oldId); + $this->deleteStorage($this->newId); + + parent::tearDown(); + } + + public function testUpdateLegacyOnlyId () { + // add storage ids + $oldCache = new \OC\Files\Cache\Cache($this->oldId); + + // add file to old cache + $fileId = $oldCache->put('/', array('size' => 0, 'mtime' => time(), 'mimetype' => 'httpd/directory')); + + try { + $this->instance = new \OC\Files\Storage\AmazonS3($this->params); + } catch (\Exception $e) { + //ignore + } + $storages = $this->getStorages(); + + $this->assertTrue(isset($storages[$this->newId])); + $this->assertFalse(isset($storages[$this->oldId])); + $this->assertSame((int)$oldCache->getNumericStorageId(), (int)$storages[$this->newId]); + + list($storageId, $path) = \OC\Files\Cache\Cache::getById($fileId); + + $this->assertSame($this->newId, $storageId); + $this->assertSame('/', $path); + } + + public function testUpdateLegacyAndNewId () { + // add storage ids + + $oldCache = new \OC\Files\Cache\Cache($this->oldId); + new \OC\Files\Cache\Cache($this->newId); + + // add file to old cache + $fileId = $oldCache->put('/', array('size' => 0, 'mtime' => time(), 'mimetype' => 'httpd/directory')); + + try { + $this->instance = new \OC\Files\Storage\AmazonS3($this->params); + } catch (\Exception $e) { + //ignore + } + $storages = $this->getStorages(); + + $this->assertTrue(isset($storages[$this->newId])); + $this->assertFalse(isset($storages[$this->oldId])); + + $this->assertNull(\OC\Files\Cache\Cache::getById($fileId), 'old filecache has not been cleared'); + } + + /** + * @param $storages + * @return array + */ + public function getStorages() { + $storages = array(); + $stmt = \OC::$server->getDatabaseConnection()->prepare( + 'SELECT `numeric_id`, `id` FROM `*PREFIX*storages` WHERE `id` IN (?, ?)' + ); + $stmt->execute(array($this->oldId, $this->newId)); + while ($row = $stmt->fetch()) { + $storages[$row['id']] = $row['numeric_id']; + } + return $storages; + } + + public function deleteStorage($id) { + $stmt = \OC::$server->getDatabaseConnection()->prepare( + 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?' + ); + $stmt->execute(array($id)); + } +} \ No newline at end of file diff --git a/apps/files_external/tests/dropbox.php b/apps/files_external/tests/dropbox.php index 4b05228201952ec4d1faed84663553ff9c85c53b..3f25d5a31e838280eae0a361ecd6326130e9fa8b 100644 --- a/apps/files_external/tests/dropbox.php +++ b/apps/files_external/tests/dropbox.php @@ -11,8 +11,10 @@ namespace Test\Files\Storage; class Dropbox extends Storage { private $config; - public function setUp() { - $id = uniqid(); + protected function setUp() { + parent::setUp(); + + $id = $this->getUniqueID(); $this->config = include('files_external/tests/config.php'); if ( ! is_array($this->config) or ! isset($this->config['dropbox']) or ! $this->config['dropbox']['run']) { $this->markTestSkipped('Dropbox backend not configured'); @@ -21,6 +23,14 @@ class Dropbox extends Storage { $this->instance = new \OC\Files\Storage\Dropbox($this->config['dropbox']); } + protected function tearDown() { + if ($this->instance) { + $this->instance->unlink('/'); + } + + parent::tearDown(); + } + public function directoryProvider() { // doesn't support leading/trailing spaces return array(array('folder')); @@ -36,10 +46,4 @@ class Dropbox extends Storage { // false because not supported $this->assertFalse($this->instance->touch('foo')); } - - public function tearDown() { - if ($this->instance) { - $this->instance->unlink('/'); - } - } } diff --git a/apps/files_external/tests/dynamicmountconfig.php b/apps/files_external/tests/dynamicmountconfig.php index 650299075e65f9c5db17121c7d2f59376b5eb36c..eef2a896b3a3c569124154b4e7f50d0a6a873700 100644 --- a/apps/files_external/tests/dynamicmountconfig.php +++ b/apps/files_external/tests/dynamicmountconfig.php @@ -36,7 +36,7 @@ class Test_Mount_Config_Dummy_Backend { /** * Class Test_Dynamic_Mount_Config */ -class Test_Dynamic_Mount_Config extends \PHPUnit_Framework_TestCase { +class Test_Dynamic_Mount_Config extends \Test\TestCase { private $backup; @@ -82,6 +82,7 @@ class Test_Dynamic_Mount_Config extends \PHPUnit_Framework_TestCase { } protected function setUp() { + parent::setUp(); $this->backup = OC_Mount_Config::setUp(); @@ -97,5 +98,6 @@ class Test_Dynamic_Mount_Config extends \PHPUnit_Framework_TestCase { protected function tearDown() { OC_Mount_Config::setUp($this->backup); + parent::tearDown(); } } diff --git a/apps/files_external/tests/etagpropagator.php b/apps/files_external/tests/etagpropagator.php new file mode 100644 index 0000000000000000000000000000000000000000..84b687d18e4893ca76d72e2328372364bfcba697 --- /dev/null +++ b/apps/files_external/tests/etagpropagator.php @@ -0,0 +1,328 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Tests\Files_External; + +use OC\Files\Filesystem; +use OC\User\User; + +class EtagPropagator extends \Test\TestCase { + protected function getUser() { + return new User($this->getUniqueID(), null); + } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject | \OC\Files\Cache\ChangePropagator + */ + protected function getChangePropagator() { + return $this->getMockBuilder('\OC\Files\Cache\ChangePropagator') + ->disableOriginalConstructor() + ->getMock(); + } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject | \OCP\IConfig + */ + protected function getConfig() { + $appConfig = array(); + $userConfig = array(); + $mock = $this->getMockBuilder('\OCP\IConfig') + ->disableOriginalConstructor() + ->getMock(); + + $mock->expects($this->any()) + ->method('getAppValue') + ->will($this->returnCallback(function ($appId, $key, $default = null) use (&$appConfig) { + if (isset($appConfig[$appId]) and isset($appConfig[$appId][$key])) { + return $appConfig[$appId][$key]; + } else { + return $default; + } + })); + $mock->expects($this->any()) + ->method('setAppValue') + ->will($this->returnCallback(function ($appId, $key, $value) use (&$appConfig) { + if (!isset($appConfig[$appId])) { + $appConfig[$appId] = array(); + } + $appConfig[$appId][$key] = $value; + })); + $mock->expects($this->any()) + ->method('getAppKeys') + ->will($this->returnCallback(function ($appId) use (&$appConfig) { + if (!isset($appConfig[$appId])) { + $appConfig[$appId] = array(); + } + return array_keys($appConfig[$appId]); + })); + + $mock->expects($this->any()) + ->method('getUserValue') + ->will($this->returnCallback(function ($userId, $appId, $key, $default = null) use (&$userConfig) { + if (isset($userConfig[$userId]) and isset($userConfig[$userId][$appId]) and isset($userConfig[$userId][$appId][$key])) { + return $userConfig[$userId][$appId][$key]; + } else { + return $default; + } + })); + $mock->expects($this->any()) + ->method('setUserValue') + ->will($this->returnCallback(function ($userId, $appId, $key, $value) use (&$userConfig) { + if (!isset($userConfig[$userId])) { + $userConfig[$userId] = array(); + } + if (!isset($userConfig[$userId][$appId])) { + $userConfig[$userId][$appId] = array(); + } + $userConfig[$userId][$appId][$key] = $value; + })); + + return $mock; + } + + public function testSingleUserMount() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $changePropagator->expects($this->once()) + ->method('addChange') + ->with('/test'); + $changePropagator->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator->updateHook(array( + Filesystem::signal_param_path => '/test', + Filesystem::signal_param_mount_type => \OC_Mount_Config::MOUNT_TYPE_USER, + Filesystem::signal_param_users => $user->getUID(), + ), $time); + } + + public function testGlobalMountNoDirectUpdate() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + // not updated directly + $changePropagator->expects($this->never()) + ->method('addChange'); + $changePropagator->expects($this->never()) + ->method('propagateChanges'); + + $propagator->updateHook(array( + Filesystem::signal_param_path => '/test', + Filesystem::signal_param_mount_type => \OC_Mount_Config::MOUNT_TYPE_USER, + Filesystem::signal_param_users => 'all', + ), $time); + + // mount point marked as dirty + $this->assertEquals(array('/test'), $config->getAppKeys('files_external')); + $this->assertEquals($time, $config->getAppValue('files_external', '/test')); + } + + public function testGroupMountNoDirectUpdate() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + // not updated directly + $changePropagator->expects($this->never()) + ->method('addChange'); + $changePropagator->expects($this->never()) + ->method('propagateChanges'); + + $propagator->updateHook(array( + Filesystem::signal_param_path => '/test', + Filesystem::signal_param_mount_type => \OC_Mount_Config::MOUNT_TYPE_GROUP, + Filesystem::signal_param_users => 'test', + ), $time); + + // mount point marked as dirty + $this->assertEquals(array('/test'), $config->getAppKeys('files_external')); + $this->assertEquals($time, $config->getAppValue('files_external', '/test')); + } + + public function testGlobalMountNoDirtyMountPoint() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $changePropagator->expects($this->never()) + ->method('addChange'); + $changePropagator->expects($this->never()) + ->method('propagateChanges'); + + $propagator->propagateDirtyMountPoints($time); + + $this->assertEquals(0, $config->getUserValue($user->getUID(), 'files_external', '/test', 0)); + } + + public function testGlobalMountDirtyMountPointFirstTime() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $config->setAppValue('files_external', '/test', $time - 10); + + $changePropagator->expects($this->once()) + ->method('addChange') + ->with('/test'); + $changePropagator->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator->propagateDirtyMountPoints($time); + + $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test')); + } + + public function testGlobalMountNonDirtyMountPoint() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $config->setAppValue('files_external', '/test', $time - 10); + $config->setUserValue($user->getUID(), 'files_external', '/test', $time - 10); + + $changePropagator->expects($this->never()) + ->method('addChange'); + $changePropagator->expects($this->never()) + ->method('propagateChanges'); + + $propagator->propagateDirtyMountPoints($time); + + $this->assertEquals($time - 10, $config->getUserValue($user->getUID(), 'files_external', '/test')); + } + + public function testGlobalMountNonDirtyMountPointOtherUser() { + $time = time(); + $user = $this->getUser(); + $user2 = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $config->setAppValue('files_external', '/test', $time - 10); + $config->setUserValue($user2->getUID(), 'files_external', '/test', $time - 10); + + $changePropagator->expects($this->once()) + ->method('addChange') + ->with('/test'); + $changePropagator->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator->propagateDirtyMountPoints($time); + + $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test')); + } + + public function testGlobalMountDirtyMountPointSecondTime() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $config->setAppValue('files_external', '/test', $time - 10); + $config->setUserValue($user->getUID(), 'files_external', '/test', $time - 20); + + $changePropagator->expects($this->once()) + ->method('addChange') + ->with('/test'); + $changePropagator->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator->propagateDirtyMountPoints($time); + + $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test')); + } + + public function testGlobalMountMultipleUsers() { + $time = time(); + $config = $this->getConfig(); + $user1 = $this->getUser(); + $user2 = $this->getUser(); + $user3 = $this->getUser(); + $changePropagator1 = $this->getChangePropagator(); + $changePropagator2 = $this->getChangePropagator(); + $changePropagator3 = $this->getChangePropagator(); + $propagator1 = new \OCA\Files_External\EtagPropagator($user1, $changePropagator1, $config); + $propagator2 = new \OCA\Files_External\EtagPropagator($user2, $changePropagator2, $config); + $propagator3 = new \OCA\Files_External\EtagPropagator($user3, $changePropagator3, $config); + + $config->setAppValue('files_external', '/test', $time - 10); + + $changePropagator1->expects($this->once()) + ->method('addChange') + ->with('/test'); + $changePropagator1->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator1->propagateDirtyMountPoints($time); + + $this->assertEquals($time, $config->getUserValue($user1->getUID(), 'files_external', '/test')); + $this->assertEquals(0, $config->getUserValue($user2->getUID(), 'files_external', '/test', 0)); + $this->assertEquals(0, $config->getUserValue($user3->getUID(), 'files_external', '/test', 0)); + + $changePropagator2->expects($this->once()) + ->method('addChange') + ->with('/test'); + $changePropagator2->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator2->propagateDirtyMountPoints($time); + + $this->assertEquals($time, $config->getUserValue($user1->getUID(), 'files_external', '/test')); + $this->assertEquals($time, $config->getUserValue($user2->getUID(), 'files_external', '/test', 0)); + $this->assertEquals(0, $config->getUserValue($user3->getUID(), 'files_external', '/test', 0)); + } + + public function testGlobalMountMultipleDirtyMountPoints() { + $time = time(); + $user = $this->getUser(); + $config = $this->getConfig(); + $changePropagator = $this->getChangePropagator(); + $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config); + + $config->setAppValue('files_external', '/test', $time - 10); + $config->setAppValue('files_external', '/foo', $time - 50); + $config->setAppValue('files_external', '/bar', $time - 70); + + $config->setUserValue($user->getUID(), 'files_external', '/foo', $time - 70); + $config->setUserValue($user->getUID(), 'files_external', '/bar', $time - 70); + + $changePropagator->expects($this->exactly(2)) + ->method('addChange'); + $changePropagator->expects($this->once()) + ->method('propagateChanges') + ->with($time); + + $propagator->propagateDirtyMountPoints($time); + + $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test')); + $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/foo')); + $this->assertEquals($time - 70, $config->getUserValue($user->getUID(), 'files_external', '/bar')); + } +} diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index 3037793120a296ea97047a7e2f5ad812b353d61e..842b7f43fa82b13a04afe72d280b51db5545e95d 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -11,8 +11,10 @@ namespace Test\Files\Storage; class FTP extends Storage { private $config; - public function setUp() { - $id = uniqid(); + protected function setUp() { + parent::setUp(); + + $id = $this->getUniqueID(); $this->config = include('files_external/tests/config.php'); if ( ! is_array($this->config) or ! isset($this->config['ftp']) or ! $this->config['ftp']['run']) { $this->markTestSkipped('FTP backend not configured'); @@ -22,10 +24,12 @@ class FTP extends Storage { $this->instance->mkdir('/'); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { \OCP\Files::rmdirr($this->instance->constructUrl('')); } + + parent::tearDown(); } public function testConstructUrl(){ diff --git a/apps/files_external/tests/google.php b/apps/files_external/tests/google.php index d5495d49c5e4795c72eada3f5f48b06616b208b4..79023fac9e1037d9635f2c5a8bb020b3a674098a 100644 --- a/apps/files_external/tests/google.php +++ b/apps/files_external/tests/google.php @@ -28,6 +28,8 @@ class Google extends Storage { private $config; protected function setUp() { + parent::setUp(); + $this->config = include('files_external/tests/config.php'); if (!is_array($this->config) || !isset($this->config['google']) || !$this->config['google']['run'] @@ -41,5 +43,7 @@ class Google extends Storage { if ($this->instance) { $this->instance->rmdir('/'); } + + parent::tearDown(); } } diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php index fc482823843a8983157b1cebb5a01f28a4b39297..ab65e648643841b0d6060236ff2f46d04821ebbe 100644 --- a/apps/files_external/tests/mountconfig.php +++ b/apps/files_external/tests/mountconfig.php @@ -26,10 +26,46 @@ class Test_Mount_Config_Dummy_Storage { } } +class Test_Mount_Config_Hook_Test { + static $signal; + static $params; + + public static function setUpHooks() { + self::clear(); + \OCP\Util::connectHook( + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_create_mount, + '\Test_Mount_Config_Hook_Test', 'createHookCallback'); + \OCP\Util::connectHook( + \OC\Files\Filesystem::CLASSNAME, + \OC\Files\Filesystem::signal_delete_mount, + '\Test_Mount_Config_Hook_Test', 'deleteHookCallback'); + } + + public static function clear() { + self::$signal = null; + self::$params = null; + } + + public static function createHookCallback($params) { + self::$signal = \OC\Files\Filesystem::signal_create_mount; + self::$params = $params; + } + + public static function deleteHookCallback($params) { + self::$signal = \OC\Files\Filesystem::signal_delete_mount; + self::$params = $params; + } + + public static function getLastCall() { + return array(self::$signal, self::$params); + } +} + /** * Class Test_Mount_Config */ -class Test_Mount_Config extends \PHPUnit_Framework_TestCase { +class Test_Mount_Config extends \Test\TestCase { private $dataDir; private $userHome; @@ -43,7 +79,9 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { const TEST_GROUP2 = 'group2'; const TEST_GROUP2B = 'group2b'; - public function setUp() { + protected function setUp() { + parent::setUp(); + \OC_User::createUser(self::TEST_USER1, self::TEST_USER1); \OC_User::createUser(self::TEST_USER2, self::TEST_USER2); @@ -77,9 +115,11 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { ); OC_Mount_Config::$skipTest = true; + Test_Mount_Config_Hook_Test::setupHooks(); } - public function tearDown() { + protected function tearDown() { + Test_Mount_Config_Hook_Test::clear(); OC_Mount_Config::$skipTest = false; \OC_User::deleteUser(self::TEST_USER2); @@ -96,6 +136,8 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { 'user_mounting_backends', $this->oldAllowedBackends ); + + parent::tearDown(); } /** @@ -337,6 +379,102 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { $this->assertEquals(array_keys($options), array_keys($savedOptions)); } + public function testHooks() { + $mountPoint = '/test'; + $mountType = 'user'; + $applicable = 'all'; + $isPersonal = false; + + $mountConfig = array( + 'host' => 'smbhost', + 'user' => 'smbuser', + 'password' => 'smbpassword', + 'share' => 'smbshare', + 'root' => 'smbroot' + ); + + // write config + $this->assertTrue( + OC_Mount_Config::addMountPoint( + $mountPoint, + '\OC\Files\Storage\SMB', + $mountConfig, + $mountType, + $applicable, + $isPersonal + ) + ); + + list($hookName, $params) = Test_Mount_Config_Hook_Test::getLastCall(); + $this->assertEquals( + \OC\Files\Filesystem::signal_create_mount, + $hookName + ); + $this->assertEquals( + $mountPoint, + $params[\OC\Files\Filesystem::signal_param_path] + ); + $this->assertEquals( + $mountType, + $params[\OC\Files\Filesystem::signal_param_mount_type] + ); + $this->assertEquals( + $applicable, + $params[\OC\Files\Filesystem::signal_param_users] + ); + + Test_Mount_Config_Hook_Test::clear(); + + // edit + $mountConfig['host'] = 'anothersmbhost'; + $this->assertTrue( + OC_Mount_Config::addMountPoint( + $mountPoint, + '\OC\Files\Storage\SMB', + $mountConfig, + $mountType, + $applicable, + $isPersonal + ) + ); + + // hook must not be called on edit + list($hookName, $params) = Test_Mount_Config_Hook_Test::getLastCall(); + $this->assertEquals( + null, + $hookName + ); + + Test_Mount_Config_Hook_Test::clear(); + + $this->assertTrue( + OC_Mount_Config::removeMountPoint( + $mountPoint, + $mountType, + $applicable, + $isPersonal + ) + ); + + list($hookName, $params) = Test_Mount_Config_Hook_Test::getLastCall(); + $this->assertEquals( + \OC\Files\Filesystem::signal_delete_mount, + $hookName + ); + $this->assertEquals( + $mountPoint, + $params[\OC\Files\Filesystem::signal_param_path] + ); + $this->assertEquals( + $mountType, + $params[\OC\Files\Filesystem::signal_param_mount_type] + ); + $this->assertEquals( + $applicable, + $params[\OC\Files\Filesystem::signal_param_users] + ); + } + /** * Test password obfuscation */ diff --git a/apps/files_external/tests/owncloud.php b/apps/files_external/tests/owncloud.php index 408a55864f29cb0cfa80a27817a2d0e3ef9146af..ab9101cfe5ff86f2f85639efdeef6f1ba25359a8 100644 --- a/apps/files_external/tests/owncloud.php +++ b/apps/files_external/tests/owncloud.php @@ -12,8 +12,10 @@ class OwnCloud extends Storage { private $config; - public function setUp() { - $id = uniqid(); + protected function setUp() { + parent::setUp(); + + $id = $this->getUniqueID(); $this->config = include('files_external/tests/config.php'); if ( ! is_array($this->config) or ! isset($this->config['owncloud']) or ! $this->config['owncloud']['run']) { $this->markTestSkipped('ownCloud backend not configured'); @@ -23,9 +25,11 @@ class OwnCloud extends Storage { $this->instance->mkdir('/'); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { $this->instance->rmdir('/'); } + + parent::tearDown(); } } diff --git a/apps/files_external/tests/owncloudfunctions.php b/apps/files_external/tests/owncloudfunctions.php new file mode 100644 index 0000000000000000000000000000000000000000..8232f30a5e233df7d97d0d818034b0464bb9a9af --- /dev/null +++ b/apps/files_external/tests/owncloudfunctions.php @@ -0,0 +1,83 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Storage; + +class OwnCloudFunctions extends \Test\TestCase { + + function configUrlProvider() { + return array( + array( + array( + 'host' => 'testhost', + 'root' => 'testroot', + 'secure' => false + ), + 'http://testhost/remote.php/webdav/testroot/', + ), + array( + array( + 'host' => 'testhost', + 'root' => 'testroot', + 'secure' => true + ), + 'https://testhost/remote.php/webdav/testroot/', + ), + array( + array( + 'host' => 'http://testhost', + 'root' => 'testroot', + 'secure' => false + ), + 'http://testhost/remote.php/webdav/testroot/', + ), + array( + array( + 'host' => 'https://testhost', + 'root' => 'testroot', + 'secure' => false + ), + 'https://testhost/remote.php/webdav/testroot/', + ), + array( + array( + 'host' => 'https://testhost/testroot', + 'root' => '', + 'secure' => false + ), + 'https://testhost/testroot/remote.php/webdav/', + ), + array( + array( + 'host' => 'https://testhost/testroot', + 'root' => 'subdir', + 'secure' => false + ), + 'https://testhost/testroot/remote.php/webdav/subdir/', + ), + array( + array( + 'host' => 'http://testhost/testroot', + 'root' => 'subdir', + 'secure' => true + ), + 'http://testhost/testroot/remote.php/webdav/subdir/', + ), + ); + } + + /** + * @dataProvider configUrlProvider + */ + public function testConfig($config, $expectedUri) { + $config['user'] = 'someuser'; + $config['password'] = 'somepassword'; + $instance = new \OC\Files\Storage\OwnCloud($config); + $this->assertEquals($expectedUri, $instance->createBaseUri()); + } +} diff --git a/apps/files_external/tests/sftp.php b/apps/files_external/tests/sftp.php index efea7f075ff20d48d19d4b49a5e68448a023d423..703b37d93f10fac3c543acd7645e25c87dc1e5fa 100644 --- a/apps/files_external/tests/sftp.php +++ b/apps/files_external/tests/sftp.php @@ -25,8 +25,10 @@ namespace Test\Files\Storage; class SFTP extends Storage { private $config; - public function setUp() { - $id = uniqid(); + protected function setUp() { + parent::setUp(); + + $id = $this->getUniqueID(); $this->config = include('files_external/tests/config.php'); if ( ! is_array($this->config) or ! isset($this->config['sftp']) or ! $this->config['sftp']['run']) { $this->markTestSkipped('SFTP backend not configured'); @@ -36,9 +38,11 @@ class SFTP extends Storage { $this->instance->mkdir('/'); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { $this->instance->rmdir('/'); } + + parent::tearDown(); } } diff --git a/apps/files_external/tests/smb.php b/apps/files_external/tests/smb.php index 199e35af6763a11b6fb51c5acad0b278849b3d05..9e5ab2b331fbdf0adb6ec34c34ad7da7e4b26a74 100644 --- a/apps/files_external/tests/smb.php +++ b/apps/files_external/tests/smb.php @@ -12,8 +12,10 @@ class SMB extends Storage { private $config; - public function setUp() { - $id = uniqid(); + protected function setUp() { + parent::setUp(); + + $id = $this->getUniqueID(); $this->config = include('files_external/tests/config.php'); if (!is_array($this->config) or !isset($this->config['smb']) or !$this->config['smb']['run']) { $this->markTestSkipped('Samba backend not configured'); @@ -23,10 +25,12 @@ class SMB extends Storage { $this->instance->mkdir('/'); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { \OCP\Files::rmdirr($this->instance->constructUrl('')); } + + parent::tearDown(); } public function directoryProvider() { diff --git a/apps/files_external/tests/smbfunctions.php b/apps/files_external/tests/smbfunctions.php index 749906d01364e37b734b728ce6ce792fc8e86568..cf9f7cb20fe2fba28698885bc62902946112773d 100644 --- a/apps/files_external/tests/smbfunctions.php +++ b/apps/files_external/tests/smbfunctions.php @@ -8,10 +8,11 @@ namespace Test\Files\Storage; -class SMBFunctions extends \PHPUnit_Framework_TestCase { +class SMBFunctions extends \Test\TestCase { + + protected function setUp() { + parent::setUp(); - public function setUp() { - $id = uniqid(); // dummy config $this->config = array( 'run'=>false, @@ -25,9 +26,6 @@ class SMBFunctions extends \PHPUnit_Framework_TestCase { $this->instance = new \OC\Files\Storage\SMB($this->config); } - public function tearDown() { - } - public function testGetId() { $this->assertEquals('smb::test@smbhost//sharename//rootdir/', $this->instance->getId()); } diff --git a/apps/files_external/tests/swift.php b/apps/files_external/tests/swift.php index 3918497ebfaf6b1ec247daad7509daa812dbd0d7..d2c884a8b4c13913531790438de52b7b6e7fa24f 100644 --- a/apps/files_external/tests/swift.php +++ b/apps/files_external/tests/swift.php @@ -26,7 +26,9 @@ class Swift extends Storage { private $config; - public function setUp() { + protected function setUp() { + parent::setUp(); + $this->config = include('files_external/tests/config.php'); if (!is_array($this->config) or !isset($this->config['swift']) or !$this->config['swift']['run']) { @@ -35,7 +37,7 @@ class Swift extends Storage { $this->instance = new \OC\Files\Storage\Swift($this->config['swift']); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { $connection = $this->instance->getConnection(); $container = $connection->getContainer($this->config['swift']['bucket']); @@ -48,5 +50,7 @@ class Swift extends Storage { $container->delete(); } + + parent::tearDown(); } } diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/webdav.php index 74e905ccc89eb5704d0651534402b9d13fcb2015..5f53568b91a7d8998c338843c25abd6312892bac 100644 --- a/apps/files_external/tests/webdav.php +++ b/apps/files_external/tests/webdav.php @@ -12,8 +12,10 @@ class DAV extends Storage { private $config; - public function setUp() { - $id = uniqid(); + protected function setUp() { + parent::setUp(); + + $id = $this->getUniqueID(); $this->config = include('files_external/tests/config.php'); if ( ! is_array($this->config) or ! isset($this->config['webdav']) or ! $this->config['webdav']['run']) { $this->markTestSkipped('WebDAV backend not configured'); @@ -26,9 +28,11 @@ class DAV extends Storage { $this->instance->mkdir('/'); } - public function tearDown() { + protected function tearDown() { if ($this->instance) { $this->instance->rmdir('/'); } + + parent::tearDown(); } } diff --git a/apps/files_sharing/ajax/list.php b/apps/files_sharing/ajax/list.php index 93964c5ed5bdc0b45b6b5c07c9afaadf5e43b8c5..073c86365bec568203678729103331c0ecf3bfa3 100644 --- a/apps/files_sharing/ajax/list.php +++ b/apps/files_sharing/ajax/list.php @@ -65,7 +65,7 @@ $formattedFiles = array(); foreach ($files as $file) { $entry = \OCA\Files\Helper::formatFileInfo($file); unset($entry['directory']); // for now - $entry['permissions'] = \OCP\PERMISSION_READ; + $entry['permissions'] = \OCP\Constants::PERMISSION_READ; $formattedFiles[] = $entry; } @@ -76,9 +76,9 @@ $data['dirToken'] = $linkItem['token']; $permissions = $linkItem['permissions']; // if globally disabled -if (OC_Appconfig::getValue('core', 'shareapi_allow_public_upload', 'yes') === 'no') { +if (\OC::$server->getAppConfig()->getValue('core', 'shareapi_allow_public_upload', 'yes') === 'no') { // only allow reading - $permissions = \OCP\PERMISSION_READ; + $permissions = \OCP\Constants::PERMISSION_READ; } $data['permissions'] = $permissions; diff --git a/apps/files_sharing/ajax/shareinfo.php b/apps/files_sharing/ajax/shareinfo.php index e87b0779e8d653d47800eaba070d14c8e4ea9246..f196a67a9ddff43143a9c86196e0f390d32ecd12 100644 --- a/apps/files_sharing/ajax/shareinfo.php +++ b/apps/files_sharing/ajax/shareinfo.php @@ -31,7 +31,7 @@ $linkItem = $data['linkItem']; // Load the files $path = $data['realPath']; -$isWritable = $linkItem['permissions'] & (\OCP\PERMISSION_UPDATE | \OCP\PERMISSION_CREATE); +$isWritable = $linkItem['permissions'] & (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_CREATE); if (!$isWritable) { \OC\Files\Filesystem::addStorageWrapper('readonly', function ($mountPoint, $storage) { return new \OCA\Files_Sharing\ReadOnlyWrapper(array('storage' => $storage)); diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php index f2c454a9ae27bfd3dfd33879fa2cc017ed20a99d..a01f8d98c7d1f49bb92eb0d8dc713a49e6257b42 100644 --- a/apps/files_sharing/appinfo/app.php +++ b/apps/files_sharing/appinfo/app.php @@ -22,6 +22,7 @@ OC::$CLASSPATH['OCA\Files_Sharing\Exceptions\BrokenPath'] = 'files_sharing/lib/e OCP\Share::registerBackend('file', 'OC_Share_Backend_File'); OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file'); +OCP\Util::addTranslations('files_sharing'); OCP\Util::addScript('files_sharing', 'share'); OCP\Util::addScript('files_sharing', 'external'); diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml index c32a24ecd290b3d02057e98b538636a03bb01259..d6f7e4b13209c5f503cb0997ccbfe7ac160f765f 100644 --- a/apps/files_sharing/appinfo/info.xml +++ b/apps/files_sharing/appinfo/info.xml @@ -2,7 +2,11 @@ files_sharing Share Files - File sharing between users + + This application enables users to share files within ownCloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within ownCloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of ownCloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices. +Turning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the ownCloud Documentation. + + AGPL Michael Gapczynski, Bjoern Schiessle 4.93 diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php index d58a97e295617953fb8855929920fd57f3f50745..68f33d94995bdec65b735eba7677826a67ace7ff 100644 --- a/apps/files_sharing/appinfo/routes.php +++ b/apps/files_sharing/appinfo/routes.php @@ -1,4 +1,5 @@ create('core_ajax_public_preview', '/publicpreview')->action( function() { diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php deleted file mode 100644 index e393b1575af5cb36654a6da5a57b01fd57844a5f..0000000000000000000000000000000000000000 --- a/apps/files_sharing/appinfo/update.php +++ /dev/null @@ -1,120 +0,0 @@ -execute(array('file')); - - $updatedRows = array(); - - while ($row = $result->fetchRow()) { - if ($row['permissions'] & \OCP\PERMISSION_DELETE) { - $updatedRows[$row['id']] = (int)$row['permissions'] & ~\OCP\PERMISSION_DELETE; - } - } - - $connection = \OC_DB::getConnection(); - $chunkedPermissionList = array_chunk($updatedRows, $chunkSize, true); - - foreach ($chunkedPermissionList as $subList) { - $statement = "UPDATE `*PREFIX*share` SET `permissions` = CASE `id` "; - //update share table - $ids = implode(',', array_keys($subList)); - foreach ($subList as $id => $permission) { - $statement .= "WHEN " . $connection->quote($id, \PDO::PARAM_INT) . " THEN " . $permission . " "; - } - $statement .= ' END WHERE `id` IN (' . $ids . ')'; - - $query = OCP\DB::prepare($statement); - $query->execute(); - } - -} - -/** - * update script for the removal of the logical "Shared" folder, we create physical "Shared" folder and - * update the users file_target so that it doesn't make any difference for the user - * @note parameters are just for testing, please ignore them - */ -function removeSharedFolder($mkdirs = true, $chunkSize = 99) { - $query = OCP\DB::prepare('SELECT * FROM `*PREFIX*share`'); - $result = $query->execute(); - $view = new \OC\Files\View('/'); - $users = array(); - $shares = array(); - //we need to set up user backends - OC_User::useBackend(new OC_User_Database()); - OC_Group::useBackend(new OC_Group_Database()); - OC_App::loadApps(array('authentication')); - //we need to set up user backends, otherwise creating the shares will fail with "because user does not exist" - while ($row = $result->fetchRow()) { - //collect all user shares - if ((int)$row['share_type'] === 0 && ($row['item_type'] === 'file' || $row['item_type'] === 'folder')) { - $users[] = $row['share_with']; - $shares[$row['id']] = $row['file_target']; - } else if ((int)$row['share_type'] === 1 && ($row['item_type'] === 'file' || $row['item_type'] === 'folder')) { - //collect all group shares - $users = array_merge($users, \OC_group::usersInGroup($row['share_with'])); - $shares[$row['id']] = $row['file_target']; - } else if ((int)$row['share_type'] === 2) { - $shares[$row['id']] = $row['file_target']; - } - } - - $unique_users = array_unique($users); - - if (!empty($unique_users) && !empty($shares)) { - - // create folder Shared for each user - - if ($mkdirs) { - foreach ($unique_users as $user) { - \OC\Files\Filesystem::initMountPoints($user); - if (!$view->file_exists('/' . $user . '/files/Shared')) { - $view->mkdir('/' . $user . '/files/Shared'); - } - } - } - - $chunkedShareList = array_chunk($shares, $chunkSize, true); - $connection = \OC_DB::getConnection(); - - foreach ($chunkedShareList as $subList) { - - $statement = "UPDATE `*PREFIX*share` SET `file_target` = CASE `id` "; - //update share table - $ids = implode(',', array_keys($subList)); - foreach ($subList as $id => $target) { - $statement .= "WHEN " . $connection->quote($id, \PDO::PARAM_INT) . " THEN " . $connection->quote('/Shared' . $target, \PDO::PARAM_STR); - } - $statement .= ' END WHERE `id` IN (' . $ids . ')'; - - $query = OCP\DB::prepare($statement); - - $query->execute(array()); - } - - // set config to keep the Shared folder as the default location for new shares - \OCA\Files_Sharing\Helper::setShareFolder('/Shared'); - - } -} diff --git a/apps/files_sharing/application.php b/apps/files_sharing/application.php new file mode 100644 index 0000000000000000000000000000000000000000..089ed6afbdaecb946cff9ee18798d7388de37455 --- /dev/null +++ b/apps/files_sharing/application.php @@ -0,0 +1,73 @@ +getContainer(); + + /** + * Controllers + */ + $container->registerService('ShareController', function(SimpleContainer $c) { + return new ShareController( + $c->query('AppName'), + $c->query('Request'), + $c->query('UserSession'), + $c->query('ServerContainer')->getAppConfig(), + $c->query('ServerContainer')->getConfig(), + $c->query('URLGenerator'), + $c->query('ServerContainer')->getUserManager(), + $c->query('ServerContainer')->getLogger() + ); + }); + + /** + * Core class wrappers + */ + $container->registerService('UserSession', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getUserSession(); + }); + $container->registerService('URLGenerator', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getUrlGenerator(); + }); + + /** + * Middleware + */ + $container->registerService('SharingCheckMiddleware', function(SimpleContainer $c){ + return new SharingCheckMiddleware( + $c->query('AppName'), + $c->query('ServerContainer')->getAppConfig(), + $c->getCoreApi() + ); + }); + + // Execute middlewares + $container->registerMiddleware('SharingCheckMiddleware'); + } + +} diff --git a/apps/files_sharing/img/app.svg b/apps/files_sharing/img/app.svg new file mode 100644 index 0000000000000000000000000000000000000000..d64e44b70b0e36b0edf66c9f0bf5755e6540eea7 --- /dev/null +++ b/apps/files_sharing/img/app.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js index 1a3bfac5b97e99a42574b9680b882add4eb0b403..1314304c567b6e54f44685abe604a74b30728c81 100644 --- a/apps/files_sharing/js/app.js +++ b/apps/files_sharing/js/app.js @@ -9,8 +9,14 @@ */ if (!OCA.Sharing) { + /** + * @namespace OCA.Sharing + */ OCA.Sharing = {}; } +/** + * @namespace + */ OCA.Sharing.App = { _inFileList: null, diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index b30362544012de423609a66e0b4143220646f899..0627ed6ab54dbcaabf45e7148bd654d9e7fed476 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -16,9 +16,17 @@ if (!OCA.Sharing) { if (!OCA.Files) { OCA.Files = {}; } +/** + * @namespace + */ OCA.Sharing.PublicApp = { _initialized: false, + /** + * Initializes the public share app. + * + * @param $el container + */ initialize: function ($el) { var self = this; var fileActions; @@ -85,7 +93,7 @@ OCA.Sharing.PublicApp = { }; var img = $(''); - if (previewSupported === 'true' || mimetype.substr(0, mimetype.indexOf('/')) === 'image') { + if (previewSupported === 'true' || mimetype.substr(0, mimetype.indexOf('/')) === 'image' && mimetype !== 'image/svg+xml') { img.attr('src', OC.filePath('files_sharing', 'ajax', 'publicpreview.php') + '?' + OC.buildQueryString(params)); img.appendTo('#imgframe'); } else if (mimetype.substr(0, mimetype.indexOf('/')) !== 'video') { @@ -101,14 +109,12 @@ OCA.Sharing.PublicApp = { filename = JSON.stringify(filename); } var path = dir || FileList.getCurrentDirectory(); + var token = $('#sharingToken').val(); var params = { - service: 'files', - t: $('#sharingToken').val(), path: path, - files: filename, - download: null + files: filename }; - return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params); + return OC.generateUrl('/s/'+token+'/download') + '?' + OC.buildQueryString(params); }; this.fileList.getAjaxUrl = function (action, params) { @@ -118,12 +124,11 @@ OCA.Sharing.PublicApp = { }; this.fileList.linkTo = function (dir) { + var token = $('#sharingToken').val(); var params = { - service: 'files', - t: $('#sharingToken').val(), dir: dir }; - return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params); + return OC.generateUrl('/s/'+token+'') + '?' + OC.buildQueryString(params); }; this.fileList.generatePreviewUrl = function (urlSpec) { @@ -185,8 +190,6 @@ OCA.Sharing.PublicApp = { _onDirectoryChanged: function (e) { OC.Util.History.pushState({ - service: 'files', - t: $('#sharingToken').val(), // arghhhh, why is this not called "dir" !? path: e.dir }); diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index eccd21c9248862a95b641360be333e26ec70e965..8474c66d4b83fe54769a4553f0bc79d181a26adf 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -12,13 +12,30 @@ if (!OCA.Sharing) { OCA.Sharing = {}; } + /** + * @namespace + */ OCA.Sharing.Util = { + /** + * Initialize the sharing app overrides of the default + * file list. + * + * Registers the "Share" file action and adds additional + * DOM attributes for the sharing file info. + * + * @param {OCA.Files.FileActions} fileActions file actions to extend + */ initialize: function(fileActions) { if (OCA.Files.FileList) { var oldCreateRow = OCA.Files.FileList.prototype._createRow; OCA.Files.FileList.prototype._createRow = function(fileData) { var tr = oldCreateRow.apply(this, arguments); var sharePermissions = fileData.permissions; + if (fileData.mountType && fileData.mountType === "external-root"){ + // for external storages we cant use the permissions of the mountpoint + // instead we show all permissions and only use the share permissions from the mountpoint to handle resharing + sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE); + } if (fileData.type === 'file') { // files can't be shared with delete permissions sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE; @@ -160,9 +177,9 @@ * other ones will be shown as "+x" where "x" is the number of * remaining recipients. * - * @param recipients recipients array - * @param count optional total recipients count (in case the array was shortened) - * @return formatted recipients display text + * @param {Array.} recipients recipients array + * @param {int} count optional total recipients count (in case the array was shortened) + * @return {String} formatted recipients display text */ formatRecipients: function(recipients, count) { var maxRecipients = 4; diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js index b99611f9bf048c31fc7d4af06dc4af51bea57439..7a7c24993c0d6f9d130e9ad41e7e1552a090998e 100644 --- a/apps/files_sharing/js/sharedfilelist.js +++ b/apps/files_sharing/js/sharedfilelist.js @@ -10,15 +10,25 @@ (function() { /** - * Sharing file list + * @class OCA.Sharing.FileList + * @augments OCA.Files.FileList * + * @classdesc Sharing file list. * Contains both "shared with others" and "shared with you" modes. + * + * @param $el container element with existing markup for the #controls + * and a table + * @param [options] map of options, see other parameters + * @param {boolean} [options.sharedWithUser] true to return files shared with + * the current user, false to return files that the user shared with others. + * Defaults to false. + * @param {boolean} [options.linksOnly] true to return only link shares */ var FileList = function($el, options) { this.initialize($el, options); }; - - FileList.prototype = _.extend({}, OCA.Files.FileList.prototype, { + FileList.prototype = _.extend({}, OCA.Files.FileList.prototype, + /** @lends OCA.Sharing.FileList.prototype */ { appName: 'Shares', /** @@ -27,9 +37,11 @@ */ _sharedWithUser: false, _linksOnly: false, - _clientSideSort: true, + /** + * @private + */ initialize: function($el, options) { OCA.Files.FileList.prototype.initialize.apply(this, arguments); if (this.initialized) { @@ -91,7 +103,11 @@ }, getDirectoryPermissions: function() { - return OC.PERMISSION_READ | OC.PERMISSION_DELETE; + var perms = OC.PERMISSION_READ; + if (this._sharedWithUser) { + perms |= OC.PERMISSION_DELETE; + } + return perms; }, updateStorageStatistics: function() { @@ -138,8 +154,8 @@ /** * Converts the OCS API share response data to a file info * list - * @param OCS API share array - * @return array of file info maps + * @param {Array} data OCS API share array + * @return {Array.} array of shared file info */ _makeFilesFromShares: function(data) { /* jshint camelcase: false */ @@ -191,7 +207,11 @@ } file.name = OC.basename(share.path); file.path = OC.dirname(share.path); - file.permissions = OC.PERMISSION_ALL; + if (this._sharedWithUser) { + file.permissions = OC.PERMISSION_ALL; + } else { + file.permissions = OC.PERMISSION_ALL - OC.PERMISSION_DELETE; + } if (file.path) { file.extraData = share.path; } @@ -259,5 +279,33 @@ } }); + /** + * Share info attributes. + * + * @typedef {Object} OCA.Sharing.ShareInfo + * + * @property {int} id share ID + * @property {int} type share type + * @property {String} target share target, either user name or group name + * @property {int} stime share timestamp in milliseconds + * @property {String} [targetDisplayName] display name of the recipient + * (only when shared with others) + * + */ + + /** + * Shared file info attributes. + * + * @typedef {OCA.Files.FileInfo} OCA.Sharing.SharedFileInfo + * + * @property {Array.} shares array of shares for + * this file + * @property {int} mtime most recent share time (if multiple shares) + * @property {String} shareOwner name of the share owner + * @property {Array.} recipients name of the first 4 recipients + * (this is mostly for display purposes) + * @property {String} recipientsDisplayName display name + */ + OCA.Sharing.FileList = FileList; })(); diff --git a/apps/files_sharing/l10n/af_ZA.js b/apps/files_sharing/l10n/af_ZA.js new file mode 100644 index 0000000000000000000000000000000000000000..4e05c5983533fe9fff82e261db6feb0a6a12d16b --- /dev/null +++ b/apps/files_sharing/l10n/af_ZA.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Kanseleer", + "Password" : "Wagwoord" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/af_ZA.json b/apps/files_sharing/l10n/af_ZA.json new file mode 100644 index 0000000000000000000000000000000000000000..1e959e1544a1d0e8e9e22a44d83ba085f4e0842d --- /dev/null +++ b/apps/files_sharing/l10n/af_ZA.json @@ -0,0 +1,5 @@ +{ "translations": { + "Cancel" : "Kanseleer", + "Password" : "Wagwoord" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/af_ZA.php b/apps/files_sharing/l10n/af_ZA.php deleted file mode 100644 index e57c3578de3afabe286d958e6abf89d2c3d50fc1..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/af_ZA.php +++ /dev/null @@ -1,6 +0,0 @@ - "Kanseleer", -"Password" => "Wagwoord" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js new file mode 100644 index 0000000000000000000000000000000000000000..de2b179847ab62c35214d2599d2184acb8b4e565 --- /dev/null +++ b/apps/files_sharing/l10n/ar.js @@ -0,0 +1,20 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "إلغاء", + "Shared by" : "تم مشاركتها بواسطة", + "This share is password-protected" : "هذه المشاركة محمية بكلمة مرور", + "The password is wrong. Try again." : "كلمة المرور خاطئة. حاول مرة أخرى", + "Password" : "كلمة المرور", + "Name" : "اسم", + "Sorry, this link doesn’t seem to work anymore." : "عذرا، يبدو أن هذا الرابط لم يعد يعمل.", + "Reasons might be:" : "الأسباب الممكنة :", + "the item was removed" : "تم حذف العنصر المطلوب", + "the link expired" : "انتهت صلاحية الرابط", + "sharing is disabled" : "المشاركة غير مفعلة", + "For more info, please ask the person who sent this link." : "لمزيد من المعلومات، يرجى سؤال الشخص الذي أرسل هذا الرابط", + "Download" : "تحميل", + "Download %s" : "تحميل %s", + "Direct link" : "رابط مباشر" +}, +"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json new file mode 100644 index 0000000000000000000000000000000000000000..890035152a25047d7bf4de13104b712073701249 --- /dev/null +++ b/apps/files_sharing/l10n/ar.json @@ -0,0 +1,18 @@ +{ "translations": { + "Cancel" : "إلغاء", + "Shared by" : "تم مشاركتها بواسطة", + "This share is password-protected" : "هذه المشاركة محمية بكلمة مرور", + "The password is wrong. Try again." : "كلمة المرور خاطئة. حاول مرة أخرى", + "Password" : "كلمة المرور", + "Name" : "اسم", + "Sorry, this link doesn’t seem to work anymore." : "عذرا، يبدو أن هذا الرابط لم يعد يعمل.", + "Reasons might be:" : "الأسباب الممكنة :", + "the item was removed" : "تم حذف العنصر المطلوب", + "the link expired" : "انتهت صلاحية الرابط", + "sharing is disabled" : "المشاركة غير مفعلة", + "For more info, please ask the person who sent this link." : "لمزيد من المعلومات، يرجى سؤال الشخص الذي أرسل هذا الرابط", + "Download" : "تحميل", + "Download %s" : "تحميل %s", + "Direct link" : "رابط مباشر" +},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ar.php b/apps/files_sharing/l10n/ar.php deleted file mode 100644 index 937bdadb0fb78ce1c8d0addc8a4610ec78b70a71..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ar.php +++ /dev/null @@ -1,19 +0,0 @@ - "إلغاء", -"Shared by" => "تم مشاركتها بواسطة", -"This share is password-protected" => "هذه المشاركة محمية بكلمة مرور", -"The password is wrong. Try again." => "كلمة المرور خاطئة. حاول مرة أخرى", -"Password" => "كلمة المرور", -"Name" => "اسم", -"Sorry, this link doesn’t seem to work anymore." => "عذرا، يبدو أن هذا الرابط لم يعد يعمل.", -"Reasons might be:" => "الأسباب الممكنة :", -"the item was removed" => "تم حذف العنصر المطلوب", -"the link expired" => "انتهت صلاحية الرابط", -"sharing is disabled" => "المشاركة غير مفعلة", -"For more info, please ask the person who sent this link." => "لمزيد من المعلومات، يرجى سؤال الشخص الذي أرسل هذا الرابط", -"Download" => "تحميل", -"Download %s" => "تحميل %s", -"Direct link" => "رابط مباشر" -); -$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"; diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js new file mode 100644 index 0000000000000000000000000000000000000000..7273f0fec5bfb69ce415f77380dca363ccd820ce --- /dev/null +++ b/apps/files_sharing/l10n/ast.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "La compartición sirvidor a sirvidor nun ta habilitada nesti sirvidor", + "The mountpoint name contains invalid characters." : "El puntu de montax contien caracteres non válidos", + "Invalid or untrusted SSL certificate" : "Certificáu SSL inválidu o ensín validar", + "Couldn't add remote share" : "Nun pudo amestase una compartición remota", + "Shared with you" : "Compartíos contigo", + "Shared with others" : "Compartíos con otros", + "Shared by link" : "Compartíos per enllaz", + "No files have been shared with you yet." : "Entá nun se compartieron ficheros contigo.", + "You haven't shared any files yet." : "Entá nun compartiesti dengún ficheru.", + "You haven't shared any files by link yet." : "Entá nun compartiesti nengún ficheru per enllaz.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Quies amestar compartición remota {name} de {owner}@{remote}?", + "Remote share" : "Compartición remota", + "Remote share password" : "Contraseña de compartición remota", + "Cancel" : "Encaboxar", + "Add remote share" : "Amestar compartición remota", + "No ownCloud installation found at {remote}" : "Nun s'alcontró denguna instalación d'ownCloud en {remote}", + "Invalid ownCloud url" : "Url ownCloud inválida", + "Shared by" : "Compartíos por", + "This share is password-protected" : "Esta compartición tien contraseña protexida", + "The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.", + "Password" : "Contraseña", + "Name" : "Nome", + "Share time" : "Compartir hora", + "Sorry, this link doesn’t seem to work anymore." : "Sentímoslo, esti enllaz paez que yá nun furrula.", + "Reasons might be:" : "Les razones pueden ser: ", + "the item was removed" : "desanicióse l'elementu", + "the link expired" : "l'enllaz caducó", + "sharing is disabled" : "la compartición ta deshabilitada", + "For more info, please ask the person who sent this link." : "Pa más información, entrúga-y a la persona qu'unvió esti enllaz", + "Add to your ownCloud" : "Amestar al to ownCloud", + "Download" : "Baxar", + "Download %s" : "Descargar %s", + "Direct link" : "Enllaz direutu" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json new file mode 100644 index 0000000000000000000000000000000000000000..fd9d2479cc7e83a90959ec2c2c6299e5cc871678 --- /dev/null +++ b/apps/files_sharing/l10n/ast.json @@ -0,0 +1,36 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "La compartición sirvidor a sirvidor nun ta habilitada nesti sirvidor", + "The mountpoint name contains invalid characters." : "El puntu de montax contien caracteres non válidos", + "Invalid or untrusted SSL certificate" : "Certificáu SSL inválidu o ensín validar", + "Couldn't add remote share" : "Nun pudo amestase una compartición remota", + "Shared with you" : "Compartíos contigo", + "Shared with others" : "Compartíos con otros", + "Shared by link" : "Compartíos per enllaz", + "No files have been shared with you yet." : "Entá nun se compartieron ficheros contigo.", + "You haven't shared any files yet." : "Entá nun compartiesti dengún ficheru.", + "You haven't shared any files by link yet." : "Entá nun compartiesti nengún ficheru per enllaz.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Quies amestar compartición remota {name} de {owner}@{remote}?", + "Remote share" : "Compartición remota", + "Remote share password" : "Contraseña de compartición remota", + "Cancel" : "Encaboxar", + "Add remote share" : "Amestar compartición remota", + "No ownCloud installation found at {remote}" : "Nun s'alcontró denguna instalación d'ownCloud en {remote}", + "Invalid ownCloud url" : "Url ownCloud inválida", + "Shared by" : "Compartíos por", + "This share is password-protected" : "Esta compartición tien contraseña protexida", + "The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.", + "Password" : "Contraseña", + "Name" : "Nome", + "Share time" : "Compartir hora", + "Sorry, this link doesn’t seem to work anymore." : "Sentímoslo, esti enllaz paez que yá nun furrula.", + "Reasons might be:" : "Les razones pueden ser: ", + "the item was removed" : "desanicióse l'elementu", + "the link expired" : "l'enllaz caducó", + "sharing is disabled" : "la compartición ta deshabilitada", + "For more info, please ask the person who sent this link." : "Pa más información, entrúga-y a la persona qu'unvió esti enllaz", + "Add to your ownCloud" : "Amestar al to ownCloud", + "Download" : "Baxar", + "Download %s" : "Descargar %s", + "Direct link" : "Enllaz direutu" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ast.php b/apps/files_sharing/l10n/ast.php deleted file mode 100644 index 2a5004811b8a7e5a2d1d84590f86de320f2d3ba5..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ast.php +++ /dev/null @@ -1,39 +0,0 @@ - "La compartición sirvidor a sirvidor nun ta habilitada nesti sirvidor", -"Invalid or untrusted SSL certificate" => "Certificáu SSL inválidu o ensín validar", -"Couldn't add remote share" => "Nun pudo amestase una compartición remota", -"Shared with you" => "Compartíos contigo", -"Shared with others" => "Compartíos con otros", -"Shared by link" => "Compartíos per enllaz", -"No files have been shared with you yet." => "Entá nun se compartieron ficheros contigo.", -"You haven't shared any files yet." => "Entá nun compartiesti dengún ficheru.", -"You haven't shared any files by link yet." => "Entá nun compartiesti nengún ficheru per enllaz.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Quies amestar compartición remota {name} de {owner}@{remote}?", -"Remote share" => "Compartición remota", -"Remote share password" => "Contraseña de compartición remota", -"Cancel" => "Encaboxar", -"Add remote share" => "Amestar compartición remota", -"No ownCloud installation found at {remote}" => "Nun s'alcontró denguna instalación d'ownCloud en {remote}", -"Invalid ownCloud url" => "Url ownCloud inválida", -"Shared by" => "Compartíos por", -"This share is password-protected" => "Esta compartición tien contraseña protexida", -"The password is wrong. Try again." => "La contraseña ye incorreuta. Inténtalo otra vegada.", -"Password" => "Contraseña", -"Name" => "Nome", -"Share time" => "Compartir hora", -"Sorry, this link doesn’t seem to work anymore." => "Sentímoslo, esti enllaz paez que yá nun furrula.", -"Reasons might be:" => "Les razones pueden ser: ", -"the item was removed" => "desanicióse l'elementu", -"the link expired" => "l'enllaz caducó", -"sharing is disabled" => "la compartición ta deshabilitada", -"For more info, please ask the person who sent this link." => "Pa más información, entrúga-y a la persona qu'unvió esti enllaz", -"Add to your ownCloud" => "Amestar al to ownCloud", -"Download" => "Baxar", -"Download %s" => "Descargar %s", -"Direct link" => "Enllaz direutu", -"Remote Shares" => "Comparticiones remotes", -"Allow other instances to mount public links shared from this server" => "Permitir a otres instancies montar enllaces compartíos públicos d'esti sirvidor", -"Allow users to mount public link shares" => "Permitir a los usuarios montar enllaces compartíos públicos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/az.js b/apps/files_sharing/l10n/az.js new file mode 100644 index 0000000000000000000000000000000000000000..ac29161dbd72a56d3143c10b3146fec0c4767fdb --- /dev/null +++ b/apps/files_sharing/l10n/az.js @@ -0,0 +1,21 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Bu serverdə, serverlərarası yayımlanma aktiv deyil", + "Invalid or untrusted SSL certificate" : "Yalnış yada inam listindən kənar SSL sertifikatı", + "Couldn't add remote share" : "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı", + "Shared with you" : "Sizinlə yayımlanan", + "Shared with others" : "Hər kəsə yayımlanmış", + "You haven't shared any files yet." : "Siz hələki heç bir faylı yayımlamamısnız.", + "You haven't shared any files by link yet." : "Hələki siz bu link ilə heç bir faylı yayımlamamısıniz.", + "Remote share" : "Uzaq yayımlanma", + "Remote share password" : "Uzaq yayımlanma şifrəsi", + "Cancel" : "Dayandır", + "Add remote share" : "Uzaq yayımlanmanı əlavə et", + "Invalid ownCloud url" : "Yalnış ownCloud url-i", + "Shared by" : "Tərəfindən yayımlanıb", + "Password" : "Şifrə", + "Name" : "Ad", + "Download" : "Yüklə" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/az.json b/apps/files_sharing/l10n/az.json new file mode 100644 index 0000000000000000000000000000000000000000..1b08e3b4e7d21289d7ff5b270e6b06d7965ccf94 --- /dev/null +++ b/apps/files_sharing/l10n/az.json @@ -0,0 +1,19 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Bu serverdə, serverlərarası yayımlanma aktiv deyil", + "Invalid or untrusted SSL certificate" : "Yalnış yada inam listindən kənar SSL sertifikatı", + "Couldn't add remote share" : "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı", + "Shared with you" : "Sizinlə yayımlanan", + "Shared with others" : "Hər kəsə yayımlanmış", + "You haven't shared any files yet." : "Siz hələki heç bir faylı yayımlamamısnız.", + "You haven't shared any files by link yet." : "Hələki siz bu link ilə heç bir faylı yayımlamamısıniz.", + "Remote share" : "Uzaq yayımlanma", + "Remote share password" : "Uzaq yayımlanma şifrəsi", + "Cancel" : "Dayandır", + "Add remote share" : "Uzaq yayımlanmanı əlavə et", + "Invalid ownCloud url" : "Yalnış ownCloud url-i", + "Shared by" : "Tərəfindən yayımlanıb", + "Password" : "Şifrə", + "Name" : "Ad", + "Download" : "Yüklə" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/az.php b/apps/files_sharing/l10n/az.php deleted file mode 100644 index edb068ab19860b8ca1d5390cf3328c3b5dcacee8..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/az.php +++ /dev/null @@ -1,20 +0,0 @@ - "Bu serverdə, serverlərarası yayımlanma aktiv deyil", -"Invalid or untrusted SSL certificate" => "Yalnış yada inam listindən kənar SSL sertifikatı", -"Couldn't add remote share" => "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı", -"Shared with you" => "Sizinlə yayımlanan", -"Shared with others" => "Hər kəsə yayımlanmış", -"You haven't shared any files yet." => "Siz hələki heç bir faylı yayımlamamısnız.", -"You haven't shared any files by link yet." => "Hələki siz bu link ilə heç bir faylı yayımlamamısıniz.", -"Remote share" => "Uzaq yayımlanma", -"Remote share password" => "Uzaq yayımlanma şifrəsi", -"Cancel" => "Dayandır", -"Add remote share" => "Uzaq yayımlanmanı əlavə et", -"Invalid ownCloud url" => "Yalnış ownCloud url-i", -"Shared by" => "Tərəfindən yayımlanıb", -"Password" => "Şifrə", -"Name" => "Ad", -"Download" => "Yüklə" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/bg_BG.js b/apps/files_sharing/l10n/bg_BG.js new file mode 100644 index 0000000000000000000000000000000000000000..3b23a76e0f31c3dfea03d1cb14801a25b6f622b8 --- /dev/null +++ b/apps/files_sharing/l10n/bg_BG.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Споделяне между сървъри не е разрешено на този сървър.", + "The mountpoint name contains invalid characters." : "Името на mountpoint-a съдържа невалидни символи.", + "Invalid or untrusted SSL certificate" : "Невалиден или ненадежден SSL сертификат", + "Couldn't add remote share" : "Неуспешно добавяне на отдалечена споделена директория.", + "Shared with you" : "Споделено с теб", + "Shared with others" : "Споделено с други", + "Shared by link" : "Споделено с връзка", + "No files have been shared with you yet." : "Все още няма споделени с теб файлове.", + "You haven't shared any files yet." : "Все още не си споделил файлове.", + "You haven't shared any files by link yet." : "Все още не си споделил файлове с връзка.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Желаеш ли да добавиш като прикачената папка {name} от {owner}@{remote}?", + "Remote share" : "Прикачена Папка", + "Remote share password" : "Парола за прикачена папка", + "Cancel" : "Отказ", + "Add remote share" : "Добави прикачена папка", + "No ownCloud installation found at {remote}" : "Не е открит инсталиран ownCloud на {remote}.", + "Invalid ownCloud url" : "Невалиден ownCloud интернет адрес.", + "Shared by" : "Споделено от", + "This share is password-protected" : "Тази зона е защитена с парола.", + "The password is wrong. Try again." : "Грешна парола. Опитай отново.", + "Password" : "Парола", + "Name" : "Име", + "Share time" : "Споделено на", + "Sorry, this link doesn’t seem to work anymore." : "Съжаляваме, връзката вече не е активна.", + "Reasons might be:" : "Причините може да са:", + "the item was removed" : "съдържанието е премахнато", + "the link expired" : "връзката е изтекла", + "sharing is disabled" : "споделянето е изключено", + "For more info, please ask the person who sent this link." : "За повече информация, моля питай човека, който е изпратил тази връзка.", + "Add to your ownCloud" : "Добави към своя ownCloud", + "Download" : "Изтегли", + "Download %s" : "Изтегли %s", + "Direct link" : "Директна връзка", + "Server-to-Server Sharing" : "Споделяне между Сървъри", + "Allow users on this server to send shares to other servers" : "Позволи на потребители от този сървър да споделят папки с други сървъри", + "Allow users on this server to receive shares from other servers" : "Позволи на потребители на този сървър да получават споделени папки от други сървъри" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/bg_BG.json b/apps/files_sharing/l10n/bg_BG.json new file mode 100644 index 0000000000000000000000000000000000000000..c116c4c69ca7acaab1e62da12dce8359bc6c9610 --- /dev/null +++ b/apps/files_sharing/l10n/bg_BG.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Споделяне между сървъри не е разрешено на този сървър.", + "The mountpoint name contains invalid characters." : "Името на mountpoint-a съдържа невалидни символи.", + "Invalid or untrusted SSL certificate" : "Невалиден или ненадежден SSL сертификат", + "Couldn't add remote share" : "Неуспешно добавяне на отдалечена споделена директория.", + "Shared with you" : "Споделено с теб", + "Shared with others" : "Споделено с други", + "Shared by link" : "Споделено с връзка", + "No files have been shared with you yet." : "Все още няма споделени с теб файлове.", + "You haven't shared any files yet." : "Все още не си споделил файлове.", + "You haven't shared any files by link yet." : "Все още не си споделил файлове с връзка.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Желаеш ли да добавиш като прикачената папка {name} от {owner}@{remote}?", + "Remote share" : "Прикачена Папка", + "Remote share password" : "Парола за прикачена папка", + "Cancel" : "Отказ", + "Add remote share" : "Добави прикачена папка", + "No ownCloud installation found at {remote}" : "Не е открит инсталиран ownCloud на {remote}.", + "Invalid ownCloud url" : "Невалиден ownCloud интернет адрес.", + "Shared by" : "Споделено от", + "This share is password-protected" : "Тази зона е защитена с парола.", + "The password is wrong. Try again." : "Грешна парола. Опитай отново.", + "Password" : "Парола", + "Name" : "Име", + "Share time" : "Споделено на", + "Sorry, this link doesn’t seem to work anymore." : "Съжаляваме, връзката вече не е активна.", + "Reasons might be:" : "Причините може да са:", + "the item was removed" : "съдържанието е премахнато", + "the link expired" : "връзката е изтекла", + "sharing is disabled" : "споделянето е изключено", + "For more info, please ask the person who sent this link." : "За повече информация, моля питай човека, който е изпратил тази връзка.", + "Add to your ownCloud" : "Добави към своя ownCloud", + "Download" : "Изтегли", + "Download %s" : "Изтегли %s", + "Direct link" : "Директна връзка", + "Server-to-Server Sharing" : "Споделяне между Сървъри", + "Allow users on this server to send shares to other servers" : "Позволи на потребители от този сървър да споделят папки с други сървъри", + "Allow users on this server to receive shares from other servers" : "Позволи на потребители на този сървър да получават споделени папки от други сървъри" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/bg_BG.php b/apps/files_sharing/l10n/bg_BG.php deleted file mode 100644 index 80af46938986c2d439698a46a6f85e567d644762..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/bg_BG.php +++ /dev/null @@ -1,40 +0,0 @@ - "Споделяне между сървъри не е разрешено на този сървър.", -"The mountpoint name contains invalid characters." => "Името на mountpoint-a съдържа невалидни символи.", -"Invalid or untrusted SSL certificate" => "Невалиден или ненадежден SSL сертификат", -"Couldn't add remote share" => "Неуспешно добавяне на отдалечена споделена директория.", -"Shared with you" => "Споделено с теб", -"Shared with others" => "Споделено с други", -"Shared by link" => "Споделено с връзка", -"No files have been shared with you yet." => "Все още няма споделени с теб файлове.", -"You haven't shared any files yet." => "Все още не си споделил файлове.", -"You haven't shared any files by link yet." => "Все още не си споделил файлове с връзка.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Желаеш ли да добавиш като прикачената папка {name} от {owner}@{remote}?", -"Remote share" => "Прикачена Папка", -"Remote share password" => "Парола за прикачена папка", -"Cancel" => "Отказ", -"Add remote share" => "Добави прикачена папка", -"No ownCloud installation found at {remote}" => "Не е открит инсталиран ownCloud на {remote}.", -"Invalid ownCloud url" => "Невалиден ownCloud интернет адрес.", -"Shared by" => "Споделено от", -"This share is password-protected" => "Тази зона е защитена с парола.", -"The password is wrong. Try again." => "Грешна парола. Опитай отново.", -"Password" => "Парола", -"Name" => "Име", -"Share time" => "Споделено на", -"Sorry, this link doesn’t seem to work anymore." => "Съжаляваме, връзката вече не е активна.", -"Reasons might be:" => "Причините може да са:", -"the item was removed" => "съдържанието е премахнато", -"the link expired" => "връзката е изтекла", -"sharing is disabled" => "споделянето е изключено", -"For more info, please ask the person who sent this link." => "За повече информация, моля питай човека, който е изпратил тази връзка.", -"Add to your ownCloud" => "Добави към своя ownCloud", -"Download" => "Изтегли", -"Download %s" => "Изтегли %s", -"Direct link" => "Директна връзка", -"Remote Shares" => "Прикачени Папки", -"Allow other instances to mount public links shared from this server" => "Разреши други ownCloud сървъри да прикачват папки, споделени посредством връзки, на този сървър.", -"Allow users to mount public link shares" => "Разреши потребители да прикачват папки, споделени посредством връзки." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/bn_BD.js b/apps/files_sharing/l10n/bn_BD.js new file mode 100644 index 0000000000000000000000000000000000000000..9f345965aeea284ba6a2d007a3d8afc202a15f54 --- /dev/null +++ b/apps/files_sharing/l10n/bn_BD.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়", + "Invalid or untrusted SSL certificate" : "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট", + "Couldn't add remote share" : "দুরবর্তী ভাগাভাগি যোগ করা গেলনা", + "Shared with you" : "আপনার সাথে ভাগাভাগি করেছেন", + "Shared by link" : "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত", + "Remote share" : "দুরবর্তী ভাগাভাগি", + "Cancel" : "বাতিল", + "No ownCloud installation found at {remote}" : "{remote}এ কোন ওউনক্লাউড ইনস্টলেসন পাওয়া গেলনা", + "Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url", + "Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে", + "This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত", + "The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।", + "Password" : "কূটশব্দ", + "Name" : "নাম", + "Share time" : "ভাগাভাগির সময়", + "Sorry, this link doesn’t seem to work anymore." : "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।", + "Reasons might be:" : "কারণসমূহ হতে পারে:", + "the item was removed" : "আইটেমটি অপসারণ করা হয়েছিল", + "the link expired" : "মেয়াদোত্তীর্ন লিঙ্ক", + "sharing is disabled" : "ভাগাভাগি অকার্যকর", + "For more info, please ask the person who sent this link." : "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।", + "Download" : "ডাউনলোড", + "Download %s" : "ডাউনলোড %s", + "Direct link" : "সরাসরি লিঙ্ক" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/bn_BD.json b/apps/files_sharing/l10n/bn_BD.json new file mode 100644 index 0000000000000000000000000000000000000000..0511dc3d93990755a8a75f53a9441e134923e895 --- /dev/null +++ b/apps/files_sharing/l10n/bn_BD.json @@ -0,0 +1,27 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়", + "Invalid or untrusted SSL certificate" : "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট", + "Couldn't add remote share" : "দুরবর্তী ভাগাভাগি যোগ করা গেলনা", + "Shared with you" : "আপনার সাথে ভাগাভাগি করেছেন", + "Shared by link" : "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত", + "Remote share" : "দুরবর্তী ভাগাভাগি", + "Cancel" : "বাতিল", + "No ownCloud installation found at {remote}" : "{remote}এ কোন ওউনক্লাউড ইনস্টলেসন পাওয়া গেলনা", + "Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url", + "Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে", + "This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত", + "The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।", + "Password" : "কূটশব্দ", + "Name" : "নাম", + "Share time" : "ভাগাভাগির সময়", + "Sorry, this link doesn’t seem to work anymore." : "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।", + "Reasons might be:" : "কারণসমূহ হতে পারে:", + "the item was removed" : "আইটেমটি অপসারণ করা হয়েছিল", + "the link expired" : "মেয়াদোত্তীর্ন লিঙ্ক", + "sharing is disabled" : "ভাগাভাগি অকার্যকর", + "For more info, please ask the person who sent this link." : "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।", + "Download" : "ডাউনলোড", + "Download %s" : "ডাউনলোড %s", + "Direct link" : "সরাসরি লিঙ্ক" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/bn_BD.php b/apps/files_sharing/l10n/bn_BD.php deleted file mode 100644 index fdd3f5233bfd09b5310c81409d912ec55631c11e..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/bn_BD.php +++ /dev/null @@ -1,29 +0,0 @@ - "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়", -"Invalid or untrusted SSL certificate" => "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট", -"Couldn't add remote share" => "দুরবর্তী ভাগাভাগি যোগ করা গেলনা", -"Shared with you" => "আপনার সাথে ভাগাভাগি করেছেন", -"Shared by link" => "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত", -"Remote share" => "দুরবর্তী ভাগাভাগি", -"Cancel" => "বাতিল", -"No ownCloud installation found at {remote}" => "{remote}এ কোন ওউনক্লাউড ইনস্টলেসন পাওয়া গেলনা", -"Invalid ownCloud url" => "অবৈধ ওউনক্লাউড url", -"Shared by" => "যাদের মাঝে ভাগাভাগি করা হয়েছে", -"This share is password-protected" => "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত", -"The password is wrong. Try again." => "কুটশব্দটি ভুল। আবার চেষ্টা করুন।", -"Password" => "কূটশব্দ", -"Name" => "নাম", -"Share time" => "ভাগাভাগির সময়", -"Sorry, this link doesn’t seem to work anymore." => "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।", -"Reasons might be:" => "কারণসমূহ হতে পারে:", -"the item was removed" => "আইটেমটি অপসারণ করা হয়েছিল", -"the link expired" => "মেয়াদোত্তীর্ন লিঙ্ক", -"sharing is disabled" => "ভাগাভাগি অকার্যকর", -"For more info, please ask the person who sent this link." => "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।", -"Download" => "ডাউনলোড", -"Download %s" => "ডাউনলোড %s", -"Direct link" => "সরাসরি লিঙ্ক", -"Remote Shares" => "দুরবর্তী ভাগাভাগি" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/bn_IN.js b/apps/files_sharing/l10n/bn_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..61694c85575f8034301538ed132b2138b04ba863 --- /dev/null +++ b/apps/files_sharing/l10n/bn_IN.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "বাতিল করা", + "Name" : "নাম", + "Download" : "ডাউনলোড করুন" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/bn_IN.json b/apps/files_sharing/l10n/bn_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..344c7677c19c36004bb85ec3a3b51aa45eefdb7b --- /dev/null +++ b/apps/files_sharing/l10n/bn_IN.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "বাতিল করা", + "Name" : "নাম", + "Download" : "ডাউনলোড করুন" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/bn_IN.php b/apps/files_sharing/l10n/bn_IN.php deleted file mode 100644 index 99daa51da7965e8e80ebec6d4272b0a6ce1ffc73..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/bn_IN.php +++ /dev/null @@ -1,7 +0,0 @@ - "বাতিল করা", -"Name" => "নাম", -"Download" => "ডাউনলোড করুন" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/bs.js b/apps/files_sharing/l10n/bs.js new file mode 100644 index 0000000000000000000000000000000000000000..1be4f1f3fb85fe2fc4cd541499700dab61870fe2 --- /dev/null +++ b/apps/files_sharing/l10n/bs.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_sharing", + { + "Shared by" : "Dijeli", + "Name" : "Ime" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/bs.json b/apps/files_sharing/l10n/bs.json new file mode 100644 index 0000000000000000000000000000000000000000..48fb8d2209a35956ab3a592c718fd82bad30319a --- /dev/null +++ b/apps/files_sharing/l10n/bs.json @@ -0,0 +1,5 @@ +{ "translations": { + "Shared by" : "Dijeli", + "Name" : "Ime" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/bs.php b/apps/files_sharing/l10n/bs.php deleted file mode 100644 index bf5b758a33d399de0c514756cc18d6c11cdfc08b..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/bs.php +++ /dev/null @@ -1,6 +0,0 @@ - "Dijeli", -"Name" => "Ime" -); -$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);"; diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js new file mode 100644 index 0000000000000000000000000000000000000000..4a22d71fb59d6fc84bd4a1638f118582c5fcc44d --- /dev/null +++ b/apps/files_sharing/l10n/ca.js @@ -0,0 +1,37 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "La compartició entre servidors no està activada en aquest servidor", + "Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable", + "Couldn't add remote share" : "No s'ha pogut afegir una compartició remota", + "Shared with you" : "Us han compartit", + "Shared with others" : "Heu compartit", + "Shared by link" : "Compartit amb enllaç", + "No files have been shared with you yet." : "Encara no us han compartit fitxters.", + "You haven't shared any files yet." : "Encara no heu compartit cap fitxer.", + "You haven't shared any files by link yet." : "Encara no heu compartit cap fitxer amb enllaç.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", + "Remote share" : "Compartició remota", + "Remote share password" : "Contrasenya de compartició remota", + "Cancel" : "Cancel·la", + "Add remote share" : "Afegeix compartició remota", + "No ownCloud installation found at {remote}" : "No s'ha trobat cap instal·lació ownCloud a {remote}", + "Invalid ownCloud url" : "La url d'ownCloud no és vàlida", + "Shared by" : "Compartit per", + "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", + "The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.", + "Password" : "Contrasenya", + "Name" : "Nom", + "Share time" : "Temps de compartició", + "Sorry, this link doesn’t seem to work anymore." : "Aquest enllaç sembla que no funciona.", + "Reasons might be:" : "Les raons podrien ser:", + "the item was removed" : "l'element ha estat eliminat", + "the link expired" : "l'enllaç ha vençut", + "sharing is disabled" : "s'ha desactivat la compartició", + "For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.", + "Add to your ownCloud" : "Afegiu a ownCloud", + "Download" : "Baixa", + "Download %s" : "Baixa %s", + "Direct link" : "Enllaç directe" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json new file mode 100644 index 0000000000000000000000000000000000000000..83668750494cd63a220ef62fc05e80813da01354 --- /dev/null +++ b/apps/files_sharing/l10n/ca.json @@ -0,0 +1,35 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "La compartició entre servidors no està activada en aquest servidor", + "Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable", + "Couldn't add remote share" : "No s'ha pogut afegir una compartició remota", + "Shared with you" : "Us han compartit", + "Shared with others" : "Heu compartit", + "Shared by link" : "Compartit amb enllaç", + "No files have been shared with you yet." : "Encara no us han compartit fitxters.", + "You haven't shared any files yet." : "Encara no heu compartit cap fitxer.", + "You haven't shared any files by link yet." : "Encara no heu compartit cap fitxer amb enllaç.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", + "Remote share" : "Compartició remota", + "Remote share password" : "Contrasenya de compartició remota", + "Cancel" : "Cancel·la", + "Add remote share" : "Afegeix compartició remota", + "No ownCloud installation found at {remote}" : "No s'ha trobat cap instal·lació ownCloud a {remote}", + "Invalid ownCloud url" : "La url d'ownCloud no és vàlida", + "Shared by" : "Compartit per", + "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", + "The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.", + "Password" : "Contrasenya", + "Name" : "Nom", + "Share time" : "Temps de compartició", + "Sorry, this link doesn’t seem to work anymore." : "Aquest enllaç sembla que no funciona.", + "Reasons might be:" : "Les raons podrien ser:", + "the item was removed" : "l'element ha estat eliminat", + "the link expired" : "l'enllaç ha vençut", + "sharing is disabled" : "s'ha desactivat la compartició", + "For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.", + "Add to your ownCloud" : "Afegiu a ownCloud", + "Download" : "Baixa", + "Download %s" : "Baixa %s", + "Direct link" : "Enllaç directe" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ca.php b/apps/files_sharing/l10n/ca.php deleted file mode 100644 index 1b94c030358b912fc70c1475e658fcc78695e03b..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ca.php +++ /dev/null @@ -1,39 +0,0 @@ - "La compartició entre servidors no està activada en aquest servidor", -"Invalid or untrusted SSL certificate" => "El certificat SSL és invàlid o no és fiable", -"Couldn't add remote share" => "No s'ha pogut afegir una compartició remota", -"Shared with you" => "Compartit amb vós", -"Shared with others" => "Compartit amb altres", -"Shared by link" => "Compartit amb enllaç", -"No files have been shared with you yet." => "Encara no hi ha fitxers compartits amb vós.", -"You haven't shared any files yet." => "Encara no heu compartit cap fitxer.", -"You haven't shared any files by link yet." => "Encara no heu compartit cap fitxer amb enllaç.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", -"Remote share" => "Compartició remota", -"Remote share password" => "Contrasenya de compartició remota", -"Cancel" => "Cancel·la", -"Add remote share" => "Afegeix compartició remota", -"No ownCloud installation found at {remote}" => "No s'ha trobat cap instal·lació ownCloud a {remote}", -"Invalid ownCloud url" => "La url d'ownCloud no és vàlida", -"Shared by" => "Compartit per", -"This share is password-protected" => "Aquest compartit està protegit amb contrasenya", -"The password is wrong. Try again." => "la contrasenya és incorrecta. Intenteu-ho de nou.", -"Password" => "Contrasenya", -"Name" => "Nom", -"Share time" => "Temps de compartició", -"Sorry, this link doesn’t seem to work anymore." => "Aquest enllaç sembla que no funciona.", -"Reasons might be:" => "Les raons podrien ser:", -"the item was removed" => "l'element ha estat eliminat", -"the link expired" => "l'enllaç ha vençut", -"sharing is disabled" => "s'ha desactivat la compartició", -"For more info, please ask the person who sent this link." => "Per més informació contacteu amb qui us ha enviat l'enllaç.", -"Add to your ownCloud" => "Afegiu a ownCloud", -"Download" => "Baixa", -"Download %s" => "Baixa %s", -"Direct link" => "Enllaç directe", -"Remote Shares" => "Compartició remota", -"Allow other instances to mount public links shared from this server" => "Permet que altres instàncies muntin enllaços públics compartits des d'aqeust servidor", -"Allow users to mount public link shares" => "Permet que usuaris muntin compartits amb enllaços públics" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..6b2c05b4dfb8148875432e109c717d3bf76e6c48 --- /dev/null +++ b/apps/files_sharing/l10n/cs_CZ.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Sdílení mezi servery není povoleno", + "The mountpoint name contains invalid characters." : "Jméno přípojného bodu obsahuje nepovolené znaky.", + "Invalid or untrusted SSL certificate" : "Neplatný nebo nedůvěryhodný SSL certifikát", + "Couldn't add remote share" : "Nelze přidat vzdálené úložiště", + "Shared with you" : "Sdíleno s vámi", + "Shared with others" : "Sdíleno s ostatními", + "Shared by link" : "Sdíleno pomocí odkazu", + "No files have been shared with you yet." : "Zatím s vámi nikdo žádné soubory nesdílel.", + "You haven't shared any files yet." : "Zatím jste nesdíleli žádné soubory.", + "You haven't shared any files by link yet." : "Zatím jste nesdíleli pomocí odkazu žádné soubory.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete přidat vzdálené úložiště {name} uživatele {owner}@{remote}?", + "Remote share" : "Vzdálené úložiště", + "Remote share password" : "Heslo ke vzdálenému úložišti", + "Cancel" : "Zrušit", + "Add remote share" : "Přidat vzdálené úložiště", + "No ownCloud installation found at {remote}" : "Nebyla nalezena instalace ownCloud na {remote}", + "Invalid ownCloud url" : "Neplatná ownCloud url", + "Shared by" : "Sdílí", + "This share is password-protected" : "Toto sdílení je chráněno heslem", + "The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.", + "Password" : "Heslo", + "Name" : "Název", + "Share time" : "Čas sdílení", + "Sorry, this link doesn’t seem to work anymore." : "Je nám líto, ale tento odkaz již není funkční.", + "Reasons might be:" : "Možné důvody:", + "the item was removed" : "položka byla odebrána", + "the link expired" : "platnost odkazu vypršela", + "sharing is disabled" : "sdílení je zakázané", + "For more info, please ask the person who sent this link." : "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.", + "Add to your ownCloud" : "Přidat do svého ownCloudu", + "Download" : "Stáhnout", + "Download %s" : "Stáhnout %s", + "Direct link" : "Přímý odkaz", + "Server-to-Server Sharing" : "Sdílení mezi servery", + "Allow users on this server to send shares to other servers" : "Povolit uživatelům z tohoto serveru zasílat sdílení na jiné servery", + "Allow users on this server to receive shares from other servers" : "Povolit uživatelům z tohoto serveru přijímat sdílení z jiných serverů" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/cs_CZ.json b/apps/files_sharing/l10n/cs_CZ.json new file mode 100644 index 0000000000000000000000000000000000000000..276887c770f306f0f66ad13e7adfe52492e3678d --- /dev/null +++ b/apps/files_sharing/l10n/cs_CZ.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Sdílení mezi servery není povoleno", + "The mountpoint name contains invalid characters." : "Jméno přípojného bodu obsahuje nepovolené znaky.", + "Invalid or untrusted SSL certificate" : "Neplatný nebo nedůvěryhodný SSL certifikát", + "Couldn't add remote share" : "Nelze přidat vzdálené úložiště", + "Shared with you" : "Sdíleno s vámi", + "Shared with others" : "Sdíleno s ostatními", + "Shared by link" : "Sdíleno pomocí odkazu", + "No files have been shared with you yet." : "Zatím s vámi nikdo žádné soubory nesdílel.", + "You haven't shared any files yet." : "Zatím jste nesdíleli žádné soubory.", + "You haven't shared any files by link yet." : "Zatím jste nesdíleli pomocí odkazu žádné soubory.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete přidat vzdálené úložiště {name} uživatele {owner}@{remote}?", + "Remote share" : "Vzdálené úložiště", + "Remote share password" : "Heslo ke vzdálenému úložišti", + "Cancel" : "Zrušit", + "Add remote share" : "Přidat vzdálené úložiště", + "No ownCloud installation found at {remote}" : "Nebyla nalezena instalace ownCloud na {remote}", + "Invalid ownCloud url" : "Neplatná ownCloud url", + "Shared by" : "Sdílí", + "This share is password-protected" : "Toto sdílení je chráněno heslem", + "The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.", + "Password" : "Heslo", + "Name" : "Název", + "Share time" : "Čas sdílení", + "Sorry, this link doesn’t seem to work anymore." : "Je nám líto, ale tento odkaz již není funkční.", + "Reasons might be:" : "Možné důvody:", + "the item was removed" : "položka byla odebrána", + "the link expired" : "platnost odkazu vypršela", + "sharing is disabled" : "sdílení je zakázané", + "For more info, please ask the person who sent this link." : "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.", + "Add to your ownCloud" : "Přidat do svého ownCloudu", + "Download" : "Stáhnout", + "Download %s" : "Stáhnout %s", + "Direct link" : "Přímý odkaz", + "Server-to-Server Sharing" : "Sdílení mezi servery", + "Allow users on this server to send shares to other servers" : "Povolit uživatelům z tohoto serveru zasílat sdílení na jiné servery", + "Allow users on this server to receive shares from other servers" : "Povolit uživatelům z tohoto serveru přijímat sdílení z jiných serverů" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/cs_CZ.php b/apps/files_sharing/l10n/cs_CZ.php deleted file mode 100644 index d9b7aab958d011c89c70e82f6004724cc71eb026..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/cs_CZ.php +++ /dev/null @@ -1,40 +0,0 @@ - "Sdílení mezi servery není povoleno", -"The mountpoint name contains invalid characters." => "Jméno přípojného bodu obsahuje nepovolené znaky.", -"Invalid or untrusted SSL certificate" => "Neplatný nebo nedůvěryhodný SSL certifikát", -"Couldn't add remote share" => "Nelze přidat vzdálené úložiště", -"Shared with you" => "Sdíleno s vámi", -"Shared with others" => "Sdíleno s ostatními", -"Shared by link" => "Sdíleno pomocí odkazu", -"No files have been shared with you yet." => "Zatím s vámi nikdo žádné soubory nesdílel.", -"You haven't shared any files yet." => "Zatím jste nesdíleli žádné soubory.", -"You haven't shared any files by link yet." => "Zatím jste nesdíleli pomocí odkazu žádné soubory.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Chcete přidat vzdálené úložiště {name} uživatele {owner}@{remote}?", -"Remote share" => "Vzdálené úložiště", -"Remote share password" => "Heslo ke vzdálenému úložišti", -"Cancel" => "Zrušit", -"Add remote share" => "Přidat vzdálené úložiště", -"No ownCloud installation found at {remote}" => "Nebyla nalezena instalace ownCloud na {remote}", -"Invalid ownCloud url" => "Neplatná ownCloud url", -"Shared by" => "Sdílí", -"This share is password-protected" => "Toto sdílení je chráněno heslem", -"The password is wrong. Try again." => "Heslo není správné. Zkuste to znovu.", -"Password" => "Heslo", -"Name" => "Název", -"Share time" => "Čas sdílení", -"Sorry, this link doesn’t seem to work anymore." => "Je nám líto, ale tento odkaz již není funkční.", -"Reasons might be:" => "Možné důvody:", -"the item was removed" => "položka byla odebrána", -"the link expired" => "platnost odkazu vypršela", -"sharing is disabled" => "sdílení je zakázané", -"For more info, please ask the person who sent this link." => "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.", -"Add to your ownCloud" => "Přidat do svého ownCloudu", -"Download" => "Stáhnout", -"Download %s" => "Stáhnout %s", -"Direct link" => "Přímý odkaz", -"Remote Shares" => "Vzdálená úložiště", -"Allow other instances to mount public links shared from this server" => "Povolit připojování veřejně sdílených odkazů z tohoto serveru", -"Allow users to mount public link shares" => "Povolit uživatelům připojovat veřejně sdílené odkazy" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_sharing/l10n/cy_GB.js b/apps/files_sharing/l10n/cy_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..1a8addf1729580b5db5286898a240ebda6041fc5 --- /dev/null +++ b/apps/files_sharing/l10n/cy_GB.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Diddymu", + "Shared by" : "Rhannwyd gan", + "Password" : "Cyfrinair", + "Name" : "Enw", + "Download" : "Llwytho i lawr" +}, +"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/files_sharing/l10n/cy_GB.json b/apps/files_sharing/l10n/cy_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..9eebc50be7d67262b1585c8f53edfcfc705f3b19 --- /dev/null +++ b/apps/files_sharing/l10n/cy_GB.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "Diddymu", + "Shared by" : "Rhannwyd gan", + "Password" : "Cyfrinair", + "Name" : "Enw", + "Download" : "Llwytho i lawr" +},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/cy_GB.php b/apps/files_sharing/l10n/cy_GB.php deleted file mode 100644 index 92ce71f1bd6cd10d5665e4a88015ef330c2c24b8..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/cy_GB.php +++ /dev/null @@ -1,9 +0,0 @@ - "Diddymu", -"Shared by" => "Rhannwyd gan", -"Password" => "Cyfrinair", -"Name" => "Enw", -"Download" => "Llwytho i lawr" -); -$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"; diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js new file mode 100644 index 0000000000000000000000000000000000000000..de8c6102993436ec224065ff3f50ab164ff5a572 --- /dev/null +++ b/apps/files_sharing/l10n/da.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Server til serverdeling er ikke slået til på denne server", + "The mountpoint name contains invalid characters." : "Monteringspunktets navn indeholder ugyldige tegn.", + "Invalid or untrusted SSL certificate" : "Ugyldigt eller upålideligt SSL-certifikat", + "Couldn't add remote share" : "Kunne ikke tliføje den delte ekstern ressource", + "Shared with you" : "Delt med dig", + "Shared with others" : "Delt med andre", + "Shared by link" : "Delt via link", + "No files have been shared with you yet." : "Endnu er ingen filer delt med dig.", + "You haven't shared any files yet." : "Du har ikke delt nogen filer endnu.", + "You haven't shared any files by link yet." : "Du har ikke delt nogen filer endnu.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Vil du tilføje den eksterne deling {name} fra {owner}@{remote}?", + "Remote share" : "Ekstern deling", + "Remote share password" : "Adgangskode for ekstern deling", + "Cancel" : "Annuller", + "Add remote share" : "Tilføj ekstern deling", + "No ownCloud installation found at {remote}" : "Der blev ikke fundet en ownCloud-installation på {remote}", + "Invalid ownCloud url" : "Ugyldig ownCloud-URL", + "Shared by" : "Delt af", + "This share is password-protected" : "Delingen er beskyttet af kodeord", + "The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.", + "Password" : "Kodeord", + "Name" : "Navn", + "Share time" : "Dele periode", + "Sorry, this link doesn’t seem to work anymore." : "Desværre, dette link ser ikke ud til at fungerer længere.", + "Reasons might be:" : "Årsagen kan være:", + "the item was removed" : "Filen blev fjernet", + "the link expired" : "linket udløb", + "sharing is disabled" : "deling er deaktiveret", + "For more info, please ask the person who sent this link." : "For yderligere information, kontakt venligst personen der sendte linket. ", + "Add to your ownCloud" : "Tilføj til din ownCload", + "Download" : "Download", + "Download %s" : "Download %s", + "Direct link" : "Direkte link", + "Server-to-Server Sharing" : "Deling via server-til-server", + "Allow users on this server to send shares to other servers" : "Tillad brugere på denne server, at sende delinger til andre servere", + "Allow users on this server to receive shares from other servers" : "Tillad brugere på denne server, at modtage delinger fra andre servere" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json new file mode 100644 index 0000000000000000000000000000000000000000..996d45436c61b76d2d556c492e762a6f88384327 --- /dev/null +++ b/apps/files_sharing/l10n/da.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Server til serverdeling er ikke slået til på denne server", + "The mountpoint name contains invalid characters." : "Monteringspunktets navn indeholder ugyldige tegn.", + "Invalid or untrusted SSL certificate" : "Ugyldigt eller upålideligt SSL-certifikat", + "Couldn't add remote share" : "Kunne ikke tliføje den delte ekstern ressource", + "Shared with you" : "Delt med dig", + "Shared with others" : "Delt med andre", + "Shared by link" : "Delt via link", + "No files have been shared with you yet." : "Endnu er ingen filer delt med dig.", + "You haven't shared any files yet." : "Du har ikke delt nogen filer endnu.", + "You haven't shared any files by link yet." : "Du har ikke delt nogen filer endnu.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Vil du tilføje den eksterne deling {name} fra {owner}@{remote}?", + "Remote share" : "Ekstern deling", + "Remote share password" : "Adgangskode for ekstern deling", + "Cancel" : "Annuller", + "Add remote share" : "Tilføj ekstern deling", + "No ownCloud installation found at {remote}" : "Der blev ikke fundet en ownCloud-installation på {remote}", + "Invalid ownCloud url" : "Ugyldig ownCloud-URL", + "Shared by" : "Delt af", + "This share is password-protected" : "Delingen er beskyttet af kodeord", + "The password is wrong. Try again." : "Kodeordet er forkert. Prøv igen.", + "Password" : "Kodeord", + "Name" : "Navn", + "Share time" : "Dele periode", + "Sorry, this link doesn’t seem to work anymore." : "Desværre, dette link ser ikke ud til at fungerer længere.", + "Reasons might be:" : "Årsagen kan være:", + "the item was removed" : "Filen blev fjernet", + "the link expired" : "linket udløb", + "sharing is disabled" : "deling er deaktiveret", + "For more info, please ask the person who sent this link." : "For yderligere information, kontakt venligst personen der sendte linket. ", + "Add to your ownCloud" : "Tilføj til din ownCload", + "Download" : "Download", + "Download %s" : "Download %s", + "Direct link" : "Direkte link", + "Server-to-Server Sharing" : "Deling via server-til-server", + "Allow users on this server to send shares to other servers" : "Tillad brugere på denne server, at sende delinger til andre servere", + "Allow users on this server to receive shares from other servers" : "Tillad brugere på denne server, at modtage delinger fra andre servere" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/da.php b/apps/files_sharing/l10n/da.php deleted file mode 100644 index 8ab8c077be5f2731aeaab279e797ca474ff5b978..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/da.php +++ /dev/null @@ -1,40 +0,0 @@ - "Server til serverdeling er ikke slået til på denne server", -"The mountpoint name contains invalid characters." => "Monteringspunktets navn indeholder ugyldige tegn.", -"Invalid or untrusted SSL certificate" => "Ugyldigt eller upålideligt SSL-certifikat", -"Couldn't add remote share" => "Kunne ikke tliføje den delte ekstern ressource", -"Shared with you" => "Delt med dig", -"Shared with others" => "Delt med andre", -"Shared by link" => "Delt via link", -"No files have been shared with you yet." => "Endnu er ingen filer delt med dig.", -"You haven't shared any files yet." => "Du har ikke delt nogen filer endnu.", -"You haven't shared any files by link yet." => "Du har ikke delt nogen filer endnu.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Vil du tilføje den eksterne deling {name} fra {owner}@{remote}?", -"Remote share" => "Ekstern deling", -"Remote share password" => "Adgangskode for ekstern deling", -"Cancel" => "Annuller", -"Add remote share" => "Tilføj ekstern deling", -"No ownCloud installation found at {remote}" => "Der blev ikke fundet en ownCloud-installation på {remote}", -"Invalid ownCloud url" => "Ugyldig ownCloud-URL", -"Shared by" => "Delt af", -"This share is password-protected" => "Delingen er beskyttet af kodeord", -"The password is wrong. Try again." => "Kodeordet er forkert. Prøv igen.", -"Password" => "Kodeord", -"Name" => "Navn", -"Share time" => "Dele periode", -"Sorry, this link doesn’t seem to work anymore." => "Desværre, dette link ser ikke ud til at fungerer længere.", -"Reasons might be:" => "Årsagen kan være:", -"the item was removed" => "Filen blev fjernet", -"the link expired" => "linket udløb", -"sharing is disabled" => "deling er deaktiveret", -"For more info, please ask the person who sent this link." => "For yderligere information, kontakt venligst personen der sendte linket. ", -"Add to your ownCloud" => "Tilføj til din ownCload", -"Download" => "Download", -"Download %s" => "Download %s", -"Direct link" => "Direkte link", -"Remote Shares" => "Eksterne delinger", -"Allow other instances to mount public links shared from this server" => "Tillad andre instanser at montere offentlige links, der er delt fra denne server", -"Allow users to mount public link shares" => "Tillad brugere at montere offentlige linkdelinger" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js new file mode 100644 index 0000000000000000000000000000000000000000..c3160792e1cf49b2dc048605c90c783dd9c2ef7e --- /dev/null +++ b/apps/files_sharing/l10n/de.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert", + "The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.", + "Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat", + "Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzu gefügt werden", + "Shared with you" : "Mit Dir geteilt", + "Shared with others" : "Von Dir geteilt", + "Shared by link" : "Geteilt über einen Link", + "No files have been shared with you yet." : "Es wurden bis jetzt keine Dateien mit Dir geteilt.", + "You haven't shared any files yet." : "Du hast bis jetzt keine Dateien mit anderen geteilt.", + "You haven't shared any files by link yet." : "Du hast bis jetzt keine Dateien über einen Link mit anderen geteilt.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Möchtest Du die entfernte Freigabe {name} von {owner}@{remote} hinzufügen?", + "Remote share" : "Entfernte Freigabe", + "Remote share password" : "Passwort für die entfernte Freigabe", + "Cancel" : "Abbrechen", + "Add remote share" : "Entfernte Freigabe hinzufügen", + "No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden", + "Invalid ownCloud url" : "Ungültige OwnCloud-URL", + "Shared by" : "Geteilt von ", + "This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt", + "The password is wrong. Try again." : "Bitte überprüfe Dein Passwort und versuche es erneut.", + "Password" : "Passwort", + "Name" : "Name", + "Share time" : "Zeitpunkt der Freigabe", + "Sorry, this link doesn’t seem to work anymore." : "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", + "Reasons might be:" : "Gründe könnten sein:", + "the item was removed" : "Das Element wurde entfernt", + "the link expired" : "Der Link ist abgelaufen", + "sharing is disabled" : "Teilen ist deaktiviert", + "For more info, please ask the person who sent this link." : "Für mehr Informationen, frage bitte die Person, die Dir diesen Link geschickt hat.", + "Add to your ownCloud" : "Zu Deiner ownCloud hinzufügen", + "Download" : "Herunterladen", + "Download %s" : "Download %s", + "Direct link" : "Direkter Link", + "Server-to-Server Sharing" : "Server-zu-Server Datenaustausch", + "Allow users on this server to send shares to other servers" : "Nutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", + "Allow users on this server to receive shares from other servers" : "Nutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..62a74cf445bdb471949fa92f8f329bd7d37d3716 --- /dev/null +++ b/apps/files_sharing/l10n/de.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert", + "The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.", + "Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat", + "Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzu gefügt werden", + "Shared with you" : "Mit Dir geteilt", + "Shared with others" : "Von Dir geteilt", + "Shared by link" : "Geteilt über einen Link", + "No files have been shared with you yet." : "Es wurden bis jetzt keine Dateien mit Dir geteilt.", + "You haven't shared any files yet." : "Du hast bis jetzt keine Dateien mit anderen geteilt.", + "You haven't shared any files by link yet." : "Du hast bis jetzt keine Dateien über einen Link mit anderen geteilt.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Möchtest Du die entfernte Freigabe {name} von {owner}@{remote} hinzufügen?", + "Remote share" : "Entfernte Freigabe", + "Remote share password" : "Passwort für die entfernte Freigabe", + "Cancel" : "Abbrechen", + "Add remote share" : "Entfernte Freigabe hinzufügen", + "No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden", + "Invalid ownCloud url" : "Ungültige OwnCloud-URL", + "Shared by" : "Geteilt von ", + "This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt", + "The password is wrong. Try again." : "Bitte überprüfe Dein Passwort und versuche es erneut.", + "Password" : "Passwort", + "Name" : "Name", + "Share time" : "Zeitpunkt der Freigabe", + "Sorry, this link doesn’t seem to work anymore." : "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", + "Reasons might be:" : "Gründe könnten sein:", + "the item was removed" : "Das Element wurde entfernt", + "the link expired" : "Der Link ist abgelaufen", + "sharing is disabled" : "Teilen ist deaktiviert", + "For more info, please ask the person who sent this link." : "Für mehr Informationen, frage bitte die Person, die Dir diesen Link geschickt hat.", + "Add to your ownCloud" : "Zu Deiner ownCloud hinzufügen", + "Download" : "Herunterladen", + "Download %s" : "Download %s", + "Direct link" : "Direkter Link", + "Server-to-Server Sharing" : "Server-zu-Server Datenaustausch", + "Allow users on this server to send shares to other servers" : "Nutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", + "Allow users on this server to receive shares from other servers" : "Nutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/de.php b/apps/files_sharing/l10n/de.php deleted file mode 100644 index 517f7c68b2ecb8e48857f4201175855e17b81993..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/de.php +++ /dev/null @@ -1,40 +0,0 @@ - "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert", -"The mountpoint name contains invalid characters." => "Der Name des Einhängepunktes enthält nicht gültige Zeichen.", -"Invalid or untrusted SSL certificate" => "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat", -"Couldn't add remote share" => "Entfernte Freigabe kann nicht hinzu gefügt werden", -"Shared with you" => "Mit Dir geteilt", -"Shared with others" => "Von Dir geteilt", -"Shared by link" => "Geteilt über einen Link", -"No files have been shared with you yet." => "Es wurden bis jetzt keine Dateien mit Dir geteilt.", -"You haven't shared any files yet." => "Du hast bis jetzt keine Dateien mit anderen geteilt.", -"You haven't shared any files by link yet." => "Du hast bis jetzt keine Dateien über einen Link mit anderen geteilt.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Möchtest Du die entfernte Freigabe {name} von {owner}@{remote} hinzufügen?", -"Remote share" => "Entfernte Freigabe", -"Remote share password" => "Passwort für die entfernte Freigabe", -"Cancel" => "Abbrechen", -"Add remote share" => "Entfernte Freigabe hinzufügen", -"No ownCloud installation found at {remote}" => "Keine OwnCloud-Installation auf {remote} gefunden", -"Invalid ownCloud url" => "Ungültige OwnCloud-URL", -"Shared by" => "Geteilt von ", -"This share is password-protected" => "Diese Freigabe ist durch ein Passwort geschützt", -"The password is wrong. Try again." => "Bitte überprüfe Dein Passwort und versuche es erneut.", -"Password" => "Passwort", -"Name" => "Name", -"Share time" => "Zeitpunkt der Freigabe", -"Sorry, this link doesn’t seem to work anymore." => "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", -"Reasons might be:" => "Gründe könnten sein:", -"the item was removed" => "Das Element wurde entfernt", -"the link expired" => "Der Link ist abgelaufen", -"sharing is disabled" => "Teilen ist deaktiviert", -"For more info, please ask the person who sent this link." => "Für mehr Informationen, frage bitte die Person, die Dir diesen Link geschickt hat.", -"Add to your ownCloud" => "Zu Deiner ownCloud hinzufügen", -"Download" => "Herunterladen", -"Download %s" => "Download %s", -"Direct link" => "Direkter Link", -"Remote Shares" => "Entfernte Freigaben", -"Allow other instances to mount public links shared from this server" => "Andere Instanzen zum Hinzufügen von öffentlichen Links, die über diesen Server Freigegeben werden, erlauben", -"Allow users to mount public link shares" => "Erlaube Nutzern das Hinzufügen von freigegebenen öffentlichen Links" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/de_AT.js b/apps/files_sharing/l10n/de_AT.js new file mode 100644 index 0000000000000000000000000000000000000000..50b8f406f806723d65ded003ab5d63f90b1296e5 --- /dev/null +++ b/apps/files_sharing/l10n/de_AT.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Abbrechen", + "Password" : "Passwort", + "Download" : "Herunterladen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de_AT.json b/apps/files_sharing/l10n/de_AT.json new file mode 100644 index 0000000000000000000000000000000000000000..4f05c28750b43adabce14183ea668a94b3637a4e --- /dev/null +++ b/apps/files_sharing/l10n/de_AT.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "Abbrechen", + "Password" : "Passwort", + "Download" : "Herunterladen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/de_AT.php b/apps/files_sharing/l10n/de_AT.php deleted file mode 100644 index ebb78eece1d71b11f7eba038194d7419f6382205..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/de_AT.php +++ /dev/null @@ -1,7 +0,0 @@ - "Abbrechen", -"Password" => "Passwort", -"Download" => "Herunterladen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/de_CH.js b/apps/files_sharing/l10n/de_CH.js new file mode 100644 index 0000000000000000000000000000000000000000..2cdb3d47c69bf25d93a22df7ab6ba1c711ba22da --- /dev/null +++ b/apps/files_sharing/l10n/de_CH.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Abbrechen", + "Shared by" : "Geteilt von", + "The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", + "Password" : "Passwort", + "Name" : "Name", + "Sorry, this link doesn’t seem to work anymore." : "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", + "Reasons might be:" : "Gründe könnten sein:", + "the item was removed" : "Das Element wurde entfernt", + "the link expired" : "Der Link ist abgelaufen", + "sharing is disabled" : "Teilen ist deaktiviert", + "For more info, please ask the person who sent this link." : "Für mehr Informationen, fragen Sie bitte die Person, die Ihnen diesen Link geschickt hat.", + "Download" : "Herunterladen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de_CH.json b/apps/files_sharing/l10n/de_CH.json new file mode 100644 index 0000000000000000000000000000000000000000..a161e06bae86532b02c106d558d199b79dd26d28 --- /dev/null +++ b/apps/files_sharing/l10n/de_CH.json @@ -0,0 +1,15 @@ +{ "translations": { + "Cancel" : "Abbrechen", + "Shared by" : "Geteilt von", + "The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", + "Password" : "Passwort", + "Name" : "Name", + "Sorry, this link doesn’t seem to work anymore." : "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", + "Reasons might be:" : "Gründe könnten sein:", + "the item was removed" : "Das Element wurde entfernt", + "the link expired" : "Der Link ist abgelaufen", + "sharing is disabled" : "Teilen ist deaktiviert", + "For more info, please ask the person who sent this link." : "Für mehr Informationen, fragen Sie bitte die Person, die Ihnen diesen Link geschickt hat.", + "Download" : "Herunterladen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/de_CH.php b/apps/files_sharing/l10n/de_CH.php deleted file mode 100644 index 2088d9a4030c2d64d00812ed1f5db20b48963ac1..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/de_CH.php +++ /dev/null @@ -1,16 +0,0 @@ - "Abbrechen", -"Shared by" => "Geteilt von", -"The password is wrong. Try again." => "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", -"Password" => "Passwort", -"Name" => "Name", -"Sorry, this link doesn’t seem to work anymore." => "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", -"Reasons might be:" => "Gründe könnten sein:", -"the item was removed" => "Das Element wurde entfernt", -"the link expired" => "Der Link ist abgelaufen", -"sharing is disabled" => "Teilen ist deaktiviert", -"For more info, please ask the person who sent this link." => "Für mehr Informationen, fragen Sie bitte die Person, die Ihnen diesen Link geschickt hat.", -"Download" => "Herunterladen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js new file mode 100644 index 0000000000000000000000000000000000000000..e50a15dd29ea9d3efd6689b93585c3ef7471d985 --- /dev/null +++ b/apps/files_sharing/l10n/de_DE.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert", + "The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.", + "Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat", + "Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzugefügt werden", + "Shared with you" : "Mit Ihnen geteilt", + "Shared with others" : "Von Ihnen geteilt", + "Shared by link" : "Geteilt über einen Link", + "No files have been shared with you yet." : "Es wurden bis jetzt keine Dateien mit Ihnen geteilt.", + "You haven't shared any files yet." : "Sie haben bis jetzt keine Dateien mit anderen geteilt.", + "You haven't shared any files by link yet." : "Sie haben bis jetzt keine Dateien über einen Link mit anderen geteilt.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Möchten Sie die entfernte Freigabe {name} von {owner}@{remote} hinzufügen?", + "Remote share" : "Entfernte Freigabe", + "Remote share password" : "Passwort für die entfernte Freigabe", + "Cancel" : "Abbrechen", + "Add remote share" : "Entfernte Freigabe hinzufügen", + "No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden", + "Invalid ownCloud url" : "Ungültige OwnCloud-Adresse", + "Shared by" : "Geteilt von", + "This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt", + "The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", + "Password" : "Passwort", + "Name" : "Name", + "Share time" : "Zeitpunkt der Freigabe", + "Sorry, this link doesn’t seem to work anymore." : "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", + "Reasons might be:" : "Gründe könnten sein:", + "the item was removed" : "Das Element wurde entfernt", + "the link expired" : "Der Link ist abgelaufen", + "sharing is disabled" : "Teilen ist deaktiviert", + "For more info, please ask the person who sent this link." : "Für mehr Informationen, fragen Sie bitte die Person, die Ihnen diesen Link geschickt hat.", + "Add to your ownCloud" : "Zu Ihrer ownCloud hinzufügen", + "Download" : "Herunterladen", + "Download %s" : "Download %s", + "Direct link" : "Direkte Verlinkung", + "Server-to-Server Sharing" : "Server-zu-Server Datenaustausch", + "Allow users on this server to send shares to other servers" : "Nutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", + "Allow users on this server to receive shares from other servers" : "Nutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json new file mode 100644 index 0000000000000000000000000000000000000000..129769939e5dcf1fc85b7a36decd5bc971e803d4 --- /dev/null +++ b/apps/files_sharing/l10n/de_DE.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert", + "The mountpoint name contains invalid characters." : "Der Name des Einhängepunktes enthält nicht gültige Zeichen.", + "Invalid or untrusted SSL certificate" : "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat", + "Couldn't add remote share" : "Entfernte Freigabe kann nicht hinzugefügt werden", + "Shared with you" : "Mit Ihnen geteilt", + "Shared with others" : "Von Ihnen geteilt", + "Shared by link" : "Geteilt über einen Link", + "No files have been shared with you yet." : "Es wurden bis jetzt keine Dateien mit Ihnen geteilt.", + "You haven't shared any files yet." : "Sie haben bis jetzt keine Dateien mit anderen geteilt.", + "You haven't shared any files by link yet." : "Sie haben bis jetzt keine Dateien über einen Link mit anderen geteilt.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Möchten Sie die entfernte Freigabe {name} von {owner}@{remote} hinzufügen?", + "Remote share" : "Entfernte Freigabe", + "Remote share password" : "Passwort für die entfernte Freigabe", + "Cancel" : "Abbrechen", + "Add remote share" : "Entfernte Freigabe hinzufügen", + "No ownCloud installation found at {remote}" : "Keine OwnCloud-Installation auf {remote} gefunden", + "Invalid ownCloud url" : "Ungültige OwnCloud-Adresse", + "Shared by" : "Geteilt von", + "This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt", + "The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", + "Password" : "Passwort", + "Name" : "Name", + "Share time" : "Zeitpunkt der Freigabe", + "Sorry, this link doesn’t seem to work anymore." : "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", + "Reasons might be:" : "Gründe könnten sein:", + "the item was removed" : "Das Element wurde entfernt", + "the link expired" : "Der Link ist abgelaufen", + "sharing is disabled" : "Teilen ist deaktiviert", + "For more info, please ask the person who sent this link." : "Für mehr Informationen, fragen Sie bitte die Person, die Ihnen diesen Link geschickt hat.", + "Add to your ownCloud" : "Zu Ihrer ownCloud hinzufügen", + "Download" : "Herunterladen", + "Download %s" : "Download %s", + "Direct link" : "Direkte Verlinkung", + "Server-to-Server Sharing" : "Server-zu-Server Datenaustausch", + "Allow users on this server to send shares to other servers" : "Nutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", + "Allow users on this server to receive shares from other servers" : "Nutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/de_DE.php b/apps/files_sharing/l10n/de_DE.php deleted file mode 100644 index 231b2adb15cb9924404af9338eafb82c19bc3773..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/de_DE.php +++ /dev/null @@ -1,40 +0,0 @@ - "Der Server für die Serverfreigabe ist auf diesem Server nicht aktiviert", -"The mountpoint name contains invalid characters." => "Der Name des Einhängepunktes enthält nicht gültige Zeichen.", -"Invalid or untrusted SSL certificate" => "Ungültiges oder nicht vertrauenswürdiges SSL-Zertifikat", -"Couldn't add remote share" => "Entfernte Freigabe kann nicht hinzugefügt werden", -"Shared with you" => "Mit Ihnen geteilt", -"Shared with others" => "Von Ihnen geteilt", -"Shared by link" => "Geteilt über einen Link", -"No files have been shared with you yet." => "Es wurden bis jetzt keine Dateien mit Ihnen geteilt.", -"You haven't shared any files yet." => "Sie haben bis jetzt keine Dateien mit anderen geteilt.", -"You haven't shared any files by link yet." => "Sie haben bis jetzt keine Dateien über einen Link mit anderen geteilt.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Möchten Sie die entfernte Freigabe {name} von {owner}@{remote} hinzufügen?", -"Remote share" => "Entfernte Freigabe", -"Remote share password" => "Passwort für die entfernte Freigabe", -"Cancel" => "Abbrechen", -"Add remote share" => "Entfernte Freigabe hinzufügen", -"No ownCloud installation found at {remote}" => "Keine OwnCloud-Installation auf {remote} gefunden", -"Invalid ownCloud url" => "Ungültige OwnCloud-Adresse", -"Shared by" => "Geteilt von", -"This share is password-protected" => "Diese Freigabe ist durch ein Passwort geschützt", -"The password is wrong. Try again." => "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", -"Password" => "Passwort", -"Name" => "Name", -"Share time" => "Zeitpunkt der Freigabe", -"Sorry, this link doesn’t seem to work anymore." => "Entschuldigung, dieser Link scheint nicht mehr zu funktionieren.", -"Reasons might be:" => "Gründe könnten sein:", -"the item was removed" => "Das Element wurde entfernt", -"the link expired" => "Der Link ist abgelaufen", -"sharing is disabled" => "Teilen ist deaktiviert", -"For more info, please ask the person who sent this link." => "Für mehr Informationen, fragen Sie bitte die Person, die Ihnen diesen Link geschickt hat.", -"Add to your ownCloud" => "Zu Ihrer ownCloud hinzufügen", -"Download" => "Herunterladen", -"Download %s" => "Download %s", -"Direct link" => "Direkte Verlinkung", -"Remote Shares" => "Entfernte Freigaben", -"Allow other instances to mount public links shared from this server" => "Andere Instanzen zum Hinzufügen von öffentlichen Links, die über diesen Server Freigegeben werden, erlauben", -"Allow users to mount public link shares" => "Benutzern das Hinzufügen von freigegebenen öffentlichen Links erlauben" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js new file mode 100644 index 0000000000000000000000000000000000000000..1acfa0240feac56edd6a5a25eeb6174d830745c6 --- /dev/null +++ b/apps/files_sharing/l10n/el.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Ο διαμοιρασμός μεταξύ διακομιστών δεν έχει ενεργοποιηθεί σε αυτόν το διακομιστή", + "The mountpoint name contains invalid characters." : "Το όνομα σημείου προσάρτησης περιέχει μη έγκυρους χαρακτήρες.", + "Invalid or untrusted SSL certificate" : "Μη έγκυρο ή μη έμπιστο πιστοποιητικό SSL", + "Couldn't add remote share" : "Αδυναμία προσθήκης απομακρυσμένου κοινόχρηστου φακέλου", + "Shared with you" : "Διαμοιρασμένο με εσάς", + "Shared with others" : "Διαμοιρασμένο με άλλους", + "Shared by link" : "Διαμοιρασμένο μέσω συνδέσμου", + "No files have been shared with you yet." : "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.", + "You haven't shared any files yet." : "Δεν έχετε διαμοιραστεί κανένα αρχείο ακόμα.", + "You haven't shared any files by link yet." : "Δεν έχετε διαμοιραστεί κανένα αρχείο μέσω συνδέσμου ακόμα.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Θέλετε να προσθέσουμε τον απομακρυσμένο κοινόχρηστο φάκελο {name} από {owner}@{remote}?", + "Remote share" : "Απομακρυσμένος κοινόχρηστος φάκελος", + "Remote share password" : "Κωδικός πρόσβασης απομακρυσμένου κοινόχρηστου φακέλου", + "Cancel" : "Άκυρο", + "Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου", + "No ownCloud installation found at {remote}" : "Δεν βρέθηκε εγκατεστημένο ownCloud στο {remote}", + "Invalid ownCloud url" : "Άκυρη url ownCloud ", + "Shared by" : "Διαμοιράστηκε από", + "This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", + "The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", + "Password" : "Κωδικός πρόσβασης", + "Name" : "Όνομα", + "Share time" : "Χρόνος διαμοιρασμού", + "Sorry, this link doesn’t seem to work anymore." : "Συγγνώμη, αυτός ο σύνδεσμος μοιάζει να μην ισχύει πια.", + "Reasons might be:" : "Οι λόγοι μπορεί να είναι:", + "the item was removed" : "το αντικείμενο απομακρύνθηκε", + "the link expired" : "ο σύνδεσμος έληξε", + "sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε", + "For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.", + "Add to your ownCloud" : "Προσθήκη στο ownCloud σου", + "Download" : "Λήψη", + "Download %s" : "Λήψη %s", + "Direct link" : "Άμεσος σύνδεσμος", + "Allow users on this server to receive shares from other servers" : "Να επιτρέπεται στους χρίστες του διακομιστή να λαμβάνουν διαμοιρασμένα αρχεία από άλλους διακομιστές" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json new file mode 100644 index 0000000000000000000000000000000000000000..27152556e10d5b62f7d4bfd65660855e1ec8fb79 --- /dev/null +++ b/apps/files_sharing/l10n/el.json @@ -0,0 +1,37 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Ο διαμοιρασμός μεταξύ διακομιστών δεν έχει ενεργοποιηθεί σε αυτόν το διακομιστή", + "The mountpoint name contains invalid characters." : "Το όνομα σημείου προσάρτησης περιέχει μη έγκυρους χαρακτήρες.", + "Invalid or untrusted SSL certificate" : "Μη έγκυρο ή μη έμπιστο πιστοποιητικό SSL", + "Couldn't add remote share" : "Αδυναμία προσθήκης απομακρυσμένου κοινόχρηστου φακέλου", + "Shared with you" : "Διαμοιρασμένο με εσάς", + "Shared with others" : "Διαμοιρασμένο με άλλους", + "Shared by link" : "Διαμοιρασμένο μέσω συνδέσμου", + "No files have been shared with you yet." : "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.", + "You haven't shared any files yet." : "Δεν έχετε διαμοιραστεί κανένα αρχείο ακόμα.", + "You haven't shared any files by link yet." : "Δεν έχετε διαμοιραστεί κανένα αρχείο μέσω συνδέσμου ακόμα.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Θέλετε να προσθέσουμε τον απομακρυσμένο κοινόχρηστο φάκελο {name} από {owner}@{remote}?", + "Remote share" : "Απομακρυσμένος κοινόχρηστος φάκελος", + "Remote share password" : "Κωδικός πρόσβασης απομακρυσμένου κοινόχρηστου φακέλου", + "Cancel" : "Άκυρο", + "Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου", + "No ownCloud installation found at {remote}" : "Δεν βρέθηκε εγκατεστημένο ownCloud στο {remote}", + "Invalid ownCloud url" : "Άκυρη url ownCloud ", + "Shared by" : "Διαμοιράστηκε από", + "This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", + "The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", + "Password" : "Κωδικός πρόσβασης", + "Name" : "Όνομα", + "Share time" : "Χρόνος διαμοιρασμού", + "Sorry, this link doesn’t seem to work anymore." : "Συγγνώμη, αυτός ο σύνδεσμος μοιάζει να μην ισχύει πια.", + "Reasons might be:" : "Οι λόγοι μπορεί να είναι:", + "the item was removed" : "το αντικείμενο απομακρύνθηκε", + "the link expired" : "ο σύνδεσμος έληξε", + "sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε", + "For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.", + "Add to your ownCloud" : "Προσθήκη στο ownCloud σου", + "Download" : "Λήψη", + "Download %s" : "Λήψη %s", + "Direct link" : "Άμεσος σύνδεσμος", + "Allow users on this server to receive shares from other servers" : "Να επιτρέπεται στους χρίστες του διακομιστή να λαμβάνουν διαμοιρασμένα αρχεία από άλλους διακομιστές" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/el.php b/apps/files_sharing/l10n/el.php deleted file mode 100644 index d12f4b561663388b620919314c30393ff8222cbc..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/el.php +++ /dev/null @@ -1,39 +0,0 @@ - "Ο διαμοιρασμός μεταξύ διακομιστών δεν έχει ενεργοποιηθεί σε αυτόν το διακομιστή", -"Invalid or untrusted SSL certificate" => "Μη έγκυρο ή μη έμπιστο πιστοποιητικό SSL", -"Couldn't add remote share" => "Αδυναμία προσθήκης απομακρυσμένου κοινόχρηστου φακέλου", -"Shared with you" => "Διαμοιρασμένο με εσάς", -"Shared with others" => "Διαμοιρασμένο με άλλους", -"Shared by link" => "Διαμοιρασμένο μέσω συνδέσμου", -"No files have been shared with you yet." => "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.", -"You haven't shared any files yet." => "Δεν έχετε διαμοιραστεί κανένα αρχείο ακόμα.", -"You haven't shared any files by link yet." => "Δεν έχετε διαμοιραστεί κανένα αρχείο μέσω συνδέσμου ακόμα.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Θέλετε να προσθέσουμε τον απομακρυσμένο κοινόχρηστο φάκελο {name} από {owner}@{remote}?", -"Remote share" => "Απομακρυσμένος κοινόχρηστος φάκελος", -"Remote share password" => "Κωδικός πρόσβασης απομακρυσμένου κοινόχρηστου φακέλου", -"Cancel" => "Άκυρο", -"Add remote share" => "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου", -"No ownCloud installation found at {remote}" => "Δεν βρέθηκε εγκατεστημένο ownCloud στο {remote}", -"Invalid ownCloud url" => "Άκυρη url ownCloud ", -"Shared by" => "Διαμοιράστηκε από", -"This share is password-protected" => "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", -"The password is wrong. Try again." => "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", -"Password" => "Κωδικός πρόσβασης", -"Name" => "Όνομα", -"Share time" => "Χρόνος διαμοιρασμού", -"Sorry, this link doesn’t seem to work anymore." => "Συγγνώμη, αυτός ο σύνδεσμος μοιάζει να μην ισχύει πια.", -"Reasons might be:" => "Οι λόγοι μπορεί να είναι:", -"the item was removed" => "το αντικείμενο απομακρύνθηκε", -"the link expired" => "ο σύνδεσμος έληξε", -"sharing is disabled" => "ο διαμοιρασμός απενεργοποιήθηκε", -"For more info, please ask the person who sent this link." => "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.", -"Add to your ownCloud" => "Προσθήκη στο ownCloud σου", -"Download" => "Λήψη", -"Download %s" => "Λήψη %s", -"Direct link" => "Άμεσος σύνδεσμος", -"Remote Shares" => "Απομακρυσμένοι Κοινόχρηστοι Φάκελοι", -"Allow other instances to mount public links shared from this server" => "Να επιτρέπεται σε άλλες εγκαταστάσεις να επιθέτουν δημόσιους συνδέσμους που έχουν διαμοιραστεί από αυτόν το διακομιστή", -"Allow users to mount public link shares" => "Να επιτρέπεται στους χρήστες να επιθέτουν κοινόχρηστους φακέλους από δημόσιους συνδέσμους" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/en@pirate.js b/apps/files_sharing/l10n/en@pirate.js new file mode 100644 index 0000000000000000000000000000000000000000..84e0fabadc68f8292840b97e9c9646c14dc15384 --- /dev/null +++ b/apps/files_sharing/l10n/en@pirate.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_sharing", + { + "Password" : "Secret Code", + "Download" : "Download" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/en@pirate.json b/apps/files_sharing/l10n/en@pirate.json new file mode 100644 index 0000000000000000000000000000000000000000..ec5b5f4b2721b36e6778390adea6f7de6b5488a3 --- /dev/null +++ b/apps/files_sharing/l10n/en@pirate.json @@ -0,0 +1,5 @@ +{ "translations": { + "Password" : "Secret Code", + "Download" : "Download" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/en@pirate.php b/apps/files_sharing/l10n/en@pirate.php deleted file mode 100644 index a92711090026493ca38b83b2c5dbafd35d6b20f6..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/en@pirate.php +++ /dev/null @@ -1,6 +0,0 @@ - "Secret Code", -"Download" => "Download" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..07cc91c662159cc28633b58d45824a672b6d0c72 --- /dev/null +++ b/apps/files_sharing/l10n/en_GB.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Server to server sharing is not enabled on this server", + "The mountpoint name contains invalid characters." : "The mountpoint name contains invalid characters.", + "Invalid or untrusted SSL certificate" : "Invalid or untrusted SSL certificate", + "Couldn't add remote share" : "Couldn't add remote share", + "Shared with you" : "Shared with you", + "Shared with others" : "Shared with others", + "Shared by link" : "Shared by link", + "No files have been shared with you yet." : "No files have been shared with you yet.", + "You haven't shared any files yet." : "You haven't shared any files yet.", + "You haven't shared any files by link yet." : "You haven't shared any files by link yet.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Do you want to add the remote share {name} from {owner}@{remote}?", + "Remote share" : "Remote share", + "Remote share password" : "Remote share password", + "Cancel" : "Cancel", + "Add remote share" : "Add remote share", + "No ownCloud installation found at {remote}" : "No ownCloud installation found at {remote}", + "Invalid ownCloud url" : "Invalid ownCloud URL", + "Shared by" : "Shared by", + "This share is password-protected" : "This share is password-protected", + "The password is wrong. Try again." : "The password is wrong. Try again.", + "Password" : "Password", + "Name" : "Name", + "Share time" : "Share time", + "Sorry, this link doesn’t seem to work anymore." : "Sorry, this link doesn’t seem to work anymore.", + "Reasons might be:" : "Reasons might be:", + "the item was removed" : "the item was removed", + "the link expired" : "the link expired", + "sharing is disabled" : "sharing is disabled", + "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.", + "Add to your ownCloud" : "Add to your ownCloud", + "Download" : "Download", + "Download %s" : "Download %s", + "Direct link" : "Direct link", + "Server-to-Server Sharing" : "Server-to-Server Sharing", + "Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers", + "Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..f0e6f5b5bed65d643041ff60cebe9d44417bcfb5 --- /dev/null +++ b/apps/files_sharing/l10n/en_GB.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Server to server sharing is not enabled on this server", + "The mountpoint name contains invalid characters." : "The mountpoint name contains invalid characters.", + "Invalid or untrusted SSL certificate" : "Invalid or untrusted SSL certificate", + "Couldn't add remote share" : "Couldn't add remote share", + "Shared with you" : "Shared with you", + "Shared with others" : "Shared with others", + "Shared by link" : "Shared by link", + "No files have been shared with you yet." : "No files have been shared with you yet.", + "You haven't shared any files yet." : "You haven't shared any files yet.", + "You haven't shared any files by link yet." : "You haven't shared any files by link yet.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Do you want to add the remote share {name} from {owner}@{remote}?", + "Remote share" : "Remote share", + "Remote share password" : "Remote share password", + "Cancel" : "Cancel", + "Add remote share" : "Add remote share", + "No ownCloud installation found at {remote}" : "No ownCloud installation found at {remote}", + "Invalid ownCloud url" : "Invalid ownCloud URL", + "Shared by" : "Shared by", + "This share is password-protected" : "This share is password-protected", + "The password is wrong. Try again." : "The password is wrong. Try again.", + "Password" : "Password", + "Name" : "Name", + "Share time" : "Share time", + "Sorry, this link doesn’t seem to work anymore." : "Sorry, this link doesn’t seem to work anymore.", + "Reasons might be:" : "Reasons might be:", + "the item was removed" : "the item was removed", + "the link expired" : "the link expired", + "sharing is disabled" : "sharing is disabled", + "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.", + "Add to your ownCloud" : "Add to your ownCloud", + "Download" : "Download", + "Download %s" : "Download %s", + "Direct link" : "Direct link", + "Server-to-Server Sharing" : "Server-to-Server Sharing", + "Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers", + "Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/en_GB.php b/apps/files_sharing/l10n/en_GB.php deleted file mode 100644 index 66238fbb6b8e24539c0159fba8ef179506d9912a..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/en_GB.php +++ /dev/null @@ -1,40 +0,0 @@ - "Server to server sharing is not enabled on this server", -"The mountpoint name contains invalid characters." => "The mountpoint name contains invalid characters.", -"Invalid or untrusted SSL certificate" => "Invalid or untrusted SSL certificate", -"Couldn't add remote share" => "Couldn't add remote share", -"Shared with you" => "Shared with you", -"Shared with others" => "Shared with others", -"Shared by link" => "Shared by link", -"No files have been shared with you yet." => "No files have been shared with you yet.", -"You haven't shared any files yet." => "You haven't shared any files yet.", -"You haven't shared any files by link yet." => "You haven't shared any files by link yet.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Do you want to add the remote share {name} from {owner}@{remote}?", -"Remote share" => "Remote share", -"Remote share password" => "Remote share password", -"Cancel" => "Cancel", -"Add remote share" => "Add remote share", -"No ownCloud installation found at {remote}" => "No ownCloud installation found at {remote}", -"Invalid ownCloud url" => "Invalid ownCloud URL", -"Shared by" => "Shared by", -"This share is password-protected" => "This share is password-protected", -"The password is wrong. Try again." => "The password is wrong. Try again.", -"Password" => "Password", -"Name" => "Name", -"Share time" => "Share time", -"Sorry, this link doesn’t seem to work anymore." => "Sorry, this link doesn’t seem to work anymore.", -"Reasons might be:" => "Reasons might be:", -"the item was removed" => "the item was removed", -"the link expired" => "the link expired", -"sharing is disabled" => "sharing is disabled", -"For more info, please ask the person who sent this link." => "For more info, please ask the person who sent this link.", -"Add to your ownCloud" => "Add to your ownCloud", -"Download" => "Download", -"Download %s" => "Download %s", -"Direct link" => "Direct link", -"Remote Shares" => "Remote Shares", -"Allow other instances to mount public links shared from this server" => "Allow other instances to mount public links shared from this server", -"Allow users to mount public link shares" => "Allow users to mount public link shares" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/eo.js b/apps/files_sharing/l10n/eo.js new file mode 100644 index 0000000000000000000000000000000000000000..28e1c3acdbb7f41f6cb99031f307ba3839195f35 --- /dev/null +++ b/apps/files_sharing/l10n/eo.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Interservila kunhavo ne kapabliĝis en ĉi tiu servilo", + "Shared with you" : "Kunhavata kun vi", + "Shared with others" : "Kunhavata kun aliaj", + "Shared by link" : "Kunhavata per ligilo", + "No files have been shared with you yet." : "Neniu dosiero kunhaviĝis kun vi ankoraŭ.", + "You haven't shared any files yet." : "Vi kunhavigis neniun dosieron ankoraŭ.", + "You haven't shared any files by link yet." : "Vi kunhavigis neniun dosieron per ligilo ankoraŭ.", + "Cancel" : "Nuligi", + "No ownCloud installation found at {remote}" : "Ne troviĝis instalo de ownCloud ĉe {remote}", + "Invalid ownCloud url" : "Nevalidas URL de ownCloud", + "Shared by" : "Kunhavigita de", + "This share is password-protected" : "Ĉi tiu kunhavigo estas protektata per pasvorto", + "The password is wrong. Try again." : "La pasvorto malĝustas. Provu denove.", + "Password" : "Pasvorto", + "Name" : "Nomo", + "Sorry, this link doesn’t seem to work anymore." : "Pardonu, ĉi tiu ligilo ŝajne ne plu funkcias.", + "Reasons might be:" : "Kialoj povas esti:", + "the item was removed" : "la ero foriĝis", + "the link expired" : "la ligilo eksvalidiĝis", + "sharing is disabled" : "kunhavigo malkapablas", + "For more info, please ask the person who sent this link." : "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon.", + "Download" : "Elŝuti", + "Download %s" : "Elŝuti %s", + "Direct link" : "Direkta ligilo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/eo.json b/apps/files_sharing/l10n/eo.json new file mode 100644 index 0000000000000000000000000000000000000000..00d0d7de2aa6b2d05b794ad4b8d3837719cfb338 --- /dev/null +++ b/apps/files_sharing/l10n/eo.json @@ -0,0 +1,27 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Interservila kunhavo ne kapabliĝis en ĉi tiu servilo", + "Shared with you" : "Kunhavata kun vi", + "Shared with others" : "Kunhavata kun aliaj", + "Shared by link" : "Kunhavata per ligilo", + "No files have been shared with you yet." : "Neniu dosiero kunhaviĝis kun vi ankoraŭ.", + "You haven't shared any files yet." : "Vi kunhavigis neniun dosieron ankoraŭ.", + "You haven't shared any files by link yet." : "Vi kunhavigis neniun dosieron per ligilo ankoraŭ.", + "Cancel" : "Nuligi", + "No ownCloud installation found at {remote}" : "Ne troviĝis instalo de ownCloud ĉe {remote}", + "Invalid ownCloud url" : "Nevalidas URL de ownCloud", + "Shared by" : "Kunhavigita de", + "This share is password-protected" : "Ĉi tiu kunhavigo estas protektata per pasvorto", + "The password is wrong. Try again." : "La pasvorto malĝustas. Provu denove.", + "Password" : "Pasvorto", + "Name" : "Nomo", + "Sorry, this link doesn’t seem to work anymore." : "Pardonu, ĉi tiu ligilo ŝajne ne plu funkcias.", + "Reasons might be:" : "Kialoj povas esti:", + "the item was removed" : "la ero foriĝis", + "the link expired" : "la ligilo eksvalidiĝis", + "sharing is disabled" : "kunhavigo malkapablas", + "For more info, please ask the person who sent this link." : "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon.", + "Download" : "Elŝuti", + "Download %s" : "Elŝuti %s", + "Direct link" : "Direkta ligilo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/eo.php b/apps/files_sharing/l10n/eo.php deleted file mode 100644 index 14ae1b36ffcda49b91aaea172605357252e1d44c..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/eo.php +++ /dev/null @@ -1,28 +0,0 @@ - "Interservila kunhavo ne kapabliĝis en ĉi tiu servilo", -"Shared with you" => "Kunhavata kun vi", -"Shared with others" => "Kunhavata kun aliaj", -"Shared by link" => "Kunhavata per ligilo", -"No files have been shared with you yet." => "Neniu dosiero kunhaviĝis kun vi ankoraŭ.", -"You haven't shared any files yet." => "Vi kunhavigis neniun dosieron ankoraŭ.", -"You haven't shared any files by link yet." => "Vi kunhavigis neniun dosieron per ligilo ankoraŭ.", -"Cancel" => "Nuligi", -"No ownCloud installation found at {remote}" => "Ne troviĝis instalo de ownCloud ĉe {remote}", -"Invalid ownCloud url" => "Nevalidas URL de ownCloud", -"Shared by" => "Kunhavigita de", -"This share is password-protected" => "Ĉi tiu kunhavigo estas protektata per pasvorto", -"The password is wrong. Try again." => "La pasvorto malĝustas. Provu denove.", -"Password" => "Pasvorto", -"Name" => "Nomo", -"Sorry, this link doesn’t seem to work anymore." => "Pardonu, ĉi tiu ligilo ŝajne ne plu funkcias.", -"Reasons might be:" => "Kialoj povas esti:", -"the item was removed" => "la ero foriĝis", -"the link expired" => "la ligilo eksvalidiĝis", -"sharing is disabled" => "kunhavigo malkapablas", -"For more info, please ask the person who sent this link." => "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon.", -"Download" => "Elŝuti", -"Download %s" => "Elŝuti %s", -"Direct link" => "Direkta ligilo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js new file mode 100644 index 0000000000000000000000000000000000000000..922c52aeaa015f0e91db5d904b361c80546e6d33 --- /dev/null +++ b/apps/files_sharing/l10n/es.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Compartir entre servidores no está habilitado en este servidor", + "The mountpoint name contains invalid characters." : "El punto de montaje contiene caracteres inválidos.", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no confiable", + "Couldn't add remote share" : "No se puede añadir un compartido remoto", + "Shared with you" : "Compartido contigo", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por medio de enlaces", + "No files have been shared with you yet." : "Aún no han compartido contigo ningún archivo.", + "You haven't shared any files yet." : "Aún no has compartido ningún archivo.", + "You haven't shared any files by link yet." : "Usted todavía no ha compartido ningún archivo por medio de enlaces.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea añadir el recurso compartido remoto {name} de {owner}@{remote}?", + "Remote share" : "Recurso compartido remoto", + "Remote share password" : "Contraseña del compartido remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Añadir recurso compartido remoto", + "No ownCloud installation found at {remote}" : "No se encontró una instalación de ownCloud en {remote}", + "Invalid ownCloud url" : "URL de ownCloud inválido", + "Shared by" : "Compartido por", + "This share is password-protected" : "Este elemento compartido esta protegido por contraseña", + "The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.", + "Password" : "Contraseña", + "Name" : "Nombre", + "Share time" : "Compartido hace", + "Sorry, this link doesn’t seem to work anymore." : "Vaya, este enlace parece que no volverá a funcionar.", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "el enlace expiró", + "sharing is disabled" : "compartir está desactivado", + "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.", + "Add to your ownCloud" : "Agregue su propio ownCloud", + "Download" : "Descargar", + "Download %s" : "Descargar %s", + "Direct link" : "Enlace directo", + "Server-to-Server Sharing" : "Compartir Servidor-a-Servidor", + "Allow users on this server to send shares to other servers" : "Permitir a usuarios de este servidor compartir con usuarios de otros servidores", + "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json new file mode 100644 index 0000000000000000000000000000000000000000..8339a435be011aea8d016f12889ab73328fc0e13 --- /dev/null +++ b/apps/files_sharing/l10n/es.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Compartir entre servidores no está habilitado en este servidor", + "The mountpoint name contains invalid characters." : "El punto de montaje contiene caracteres inválidos.", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no confiable", + "Couldn't add remote share" : "No se puede añadir un compartido remoto", + "Shared with you" : "Compartido contigo", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por medio de enlaces", + "No files have been shared with you yet." : "Aún no han compartido contigo ningún archivo.", + "You haven't shared any files yet." : "Aún no has compartido ningún archivo.", + "You haven't shared any files by link yet." : "Usted todavía no ha compartido ningún archivo por medio de enlaces.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea añadir el recurso compartido remoto {name} de {owner}@{remote}?", + "Remote share" : "Recurso compartido remoto", + "Remote share password" : "Contraseña del compartido remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Añadir recurso compartido remoto", + "No ownCloud installation found at {remote}" : "No se encontró una instalación de ownCloud en {remote}", + "Invalid ownCloud url" : "URL de ownCloud inválido", + "Shared by" : "Compartido por", + "This share is password-protected" : "Este elemento compartido esta protegido por contraseña", + "The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.", + "Password" : "Contraseña", + "Name" : "Nombre", + "Share time" : "Compartido hace", + "Sorry, this link doesn’t seem to work anymore." : "Vaya, este enlace parece que no volverá a funcionar.", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "el enlace expiró", + "sharing is disabled" : "compartir está desactivado", + "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.", + "Add to your ownCloud" : "Agregue su propio ownCloud", + "Download" : "Descargar", + "Download %s" : "Descargar %s", + "Direct link" : "Enlace directo", + "Server-to-Server Sharing" : "Compartir Servidor-a-Servidor", + "Allow users on this server to send shares to other servers" : "Permitir a usuarios de este servidor compartir con usuarios de otros servidores", + "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/es.php b/apps/files_sharing/l10n/es.php deleted file mode 100644 index 2611ab993d161bcb3ab64e7faaaeddf95514e83d..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/es.php +++ /dev/null @@ -1,40 +0,0 @@ - "Compartir entre servidores no está habilitado en este servidor", -"The mountpoint name contains invalid characters." => "El punto de montaje contiene caracteres inválidos.", -"Invalid or untrusted SSL certificate" => "Certificado SSL inválido o no confiable", -"Couldn't add remote share" => "No se puede añadir un compartido remoto", -"Shared with you" => "Compartido contigo", -"Shared with others" => "Compartido con otros", -"Shared by link" => "Compartido por medio de enlaces", -"No files have been shared with you yet." => "Aún no han compartido contigo ningún archivo.", -"You haven't shared any files yet." => "Aún no has compartido ningún archivo.", -"You haven't shared any files by link yet." => "Usted todavía no ha compartido ningún archivo por medio de enlaces.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "¿Desea añadir el recurso compartido remoto {name} de {owner}@{remote}?", -"Remote share" => "Recurso compartido remoto", -"Remote share password" => "Contraseña del compartido remoto", -"Cancel" => "Cancelar", -"Add remote share" => "Añadir recurso compartido remoto", -"No ownCloud installation found at {remote}" => "No se encontró una instalación de ownCloud en {remote}", -"Invalid ownCloud url" => "URL de ownCloud inválido", -"Shared by" => "Compartido por", -"This share is password-protected" => "Este elemento compartido esta protegido por contraseña", -"The password is wrong. Try again." => "La contraseña introducida es errónea. Inténtelo de nuevo.", -"Password" => "Contraseña", -"Name" => "Nombre", -"Share time" => "Compartido hace", -"Sorry, this link doesn’t seem to work anymore." => "Vaya, este enlace parece que no volverá a funcionar.", -"Reasons might be:" => "Las causas podrían ser:", -"the item was removed" => "el elemento fue eliminado", -"the link expired" => "el enlace expiró", -"sharing is disabled" => "compartir está desactivado", -"For more info, please ask the person who sent this link." => "Para mayor información, contacte a la persona que le envió el enlace.", -"Add to your ownCloud" => "Agregue su propio ownCloud", -"Download" => "Descargar", -"Download %s" => "Descargar %s", -"Direct link" => "Enlace directo", -"Remote Shares" => "Almacenamiento compartido remoto", -"Allow other instances to mount public links shared from this server" => "Permitir a otros montar enlaces publicos compartidos de este servidor", -"Allow users to mount public link shares" => "Permitir a los usuarios montar enlaces publicos compartidos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js new file mode 100644 index 0000000000000000000000000000000000000000..b90c8293dfe911095ccf7c749f1b471d0fde7f11 --- /dev/null +++ b/apps/files_sharing/l10n/es_AR.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Cancelar", + "Shared by" : "Compartido por", + "This share is password-protected" : "Esto está protegido por contraseña", + "The password is wrong. Try again." : "La contraseña no es correcta. Probá de nuevo.", + "Password" : "Contraseña", + "Name" : "Nombre", + "Sorry, this link doesn’t seem to work anymore." : "Perdón, este enlace parece no funcionar más.", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue borrado", + "the link expired" : "el enlace expiró", + "sharing is disabled" : "compartir está desactivado", + "For more info, please ask the person who sent this link." : "Para mayor información, contactá a la persona que te mandó el enlace.", + "Download" : "Descargar", + "Direct link" : "Vínculo directo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json new file mode 100644 index 0000000000000000000000000000000000000000..9e11b761eda7c8dc3f39737ccbf6be2be1f92f9b --- /dev/null +++ b/apps/files_sharing/l10n/es_AR.json @@ -0,0 +1,17 @@ +{ "translations": { + "Cancel" : "Cancelar", + "Shared by" : "Compartido por", + "This share is password-protected" : "Esto está protegido por contraseña", + "The password is wrong. Try again." : "La contraseña no es correcta. Probá de nuevo.", + "Password" : "Contraseña", + "Name" : "Nombre", + "Sorry, this link doesn’t seem to work anymore." : "Perdón, este enlace parece no funcionar más.", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue borrado", + "the link expired" : "el enlace expiró", + "sharing is disabled" : "compartir está desactivado", + "For more info, please ask the person who sent this link." : "Para mayor información, contactá a la persona que te mandó el enlace.", + "Download" : "Descargar", + "Direct link" : "Vínculo directo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/es_AR.php b/apps/files_sharing/l10n/es_AR.php deleted file mode 100644 index 4d57018a3b397f2e977781b2b95d7274beb7e4c0..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/es_AR.php +++ /dev/null @@ -1,18 +0,0 @@ - "Cancelar", -"Shared by" => "Compartido por", -"This share is password-protected" => "Esto está protegido por contraseña", -"The password is wrong. Try again." => "La contraseña no es correcta. Probá de nuevo.", -"Password" => "Contraseña", -"Name" => "Nombre", -"Sorry, this link doesn’t seem to work anymore." => "Perdón, este enlace parece no funcionar más.", -"Reasons might be:" => "Las causas podrían ser:", -"the item was removed" => "el elemento fue borrado", -"the link expired" => "el enlace expiró", -"sharing is disabled" => "compartir está desactivado", -"For more info, please ask the person who sent this link." => "Para mayor información, contactá a la persona que te mandó el enlace.", -"Download" => "Descargar", -"Direct link" => "Vínculo directo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/es_CL.js b/apps/files_sharing/l10n/es_CL.js new file mode 100644 index 0000000000000000000000000000000000000000..33d53eb99e441d1c1a8eebabc6ca04156d1e9ece --- /dev/null +++ b/apps/files_sharing/l10n/es_CL.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Cancelar", + "Password" : "Clave", + "Download" : "Descargar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_CL.json b/apps/files_sharing/l10n/es_CL.json new file mode 100644 index 0000000000000000000000000000000000000000..a77aecd03470adea99451d878865c5445f8d4644 --- /dev/null +++ b/apps/files_sharing/l10n/es_CL.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "Cancelar", + "Password" : "Clave", + "Download" : "Descargar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/es_CL.php b/apps/files_sharing/l10n/es_CL.php deleted file mode 100644 index 3b5a3bea6f4117083cec9518c394ad6a89f2f434..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/es_CL.php +++ /dev/null @@ -1,7 +0,0 @@ - "Cancelar", -"Password" => "Clave", -"Download" => "Descargar" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js new file mode 100644 index 0000000000000000000000000000000000000000..7d608b06e45a531d81dcd11ed6145cc3f2ea2311 --- /dev/null +++ b/apps/files_sharing/l10n/es_MX.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Cancelar", + "Shared by" : "Compartido por", + "This share is password-protected" : "Este elemento compartido esta protegido por contraseña", + "The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.", + "Password" : "Contraseña", + "Name" : "Nombre", + "Sorry, this link doesn’t seem to work anymore." : "Lo siento, este enlace al parecer ya no funciona.", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "el enlace expiró", + "sharing is disabled" : "compartir está desactivado", + "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.", + "Download" : "Descargar", + "Direct link" : "Enlace directo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json new file mode 100644 index 0000000000000000000000000000000000000000..7b0cff90181d1b4a4684333aecef9017f5c26e02 --- /dev/null +++ b/apps/files_sharing/l10n/es_MX.json @@ -0,0 +1,17 @@ +{ "translations": { + "Cancel" : "Cancelar", + "Shared by" : "Compartido por", + "This share is password-protected" : "Este elemento compartido esta protegido por contraseña", + "The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.", + "Password" : "Contraseña", + "Name" : "Nombre", + "Sorry, this link doesn’t seem to work anymore." : "Lo siento, este enlace al parecer ya no funciona.", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "el enlace expiró", + "sharing is disabled" : "compartir está desactivado", + "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.", + "Download" : "Descargar", + "Direct link" : "Enlace directo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/es_MX.php b/apps/files_sharing/l10n/es_MX.php deleted file mode 100644 index e86f58ed6a38c3cdd33a7992a8064cd9a064aad5..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/es_MX.php +++ /dev/null @@ -1,18 +0,0 @@ - "Cancelar", -"Shared by" => "Compartido por", -"This share is password-protected" => "Este elemento compartido esta protegido por contraseña", -"The password is wrong. Try again." => "La contraseña introducida es errónea. Inténtelo de nuevo.", -"Password" => "Contraseña", -"Name" => "Nombre", -"Sorry, this link doesn’t seem to work anymore." => "Lo siento, este enlace al parecer ya no funciona.", -"Reasons might be:" => "Las causas podrían ser:", -"the item was removed" => "el elemento fue eliminado", -"the link expired" => "el enlace expiró", -"sharing is disabled" => "compartir está desactivado", -"For more info, please ask the person who sent this link." => "Para mayor información, contacte a la persona que le envió el enlace.", -"Download" => "Descargar", -"Direct link" => "Enlace directo" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js new file mode 100644 index 0000000000000000000000000000000000000000..e815812952761eac3c3e7ffdaf8404beec3c268a --- /dev/null +++ b/apps/files_sharing/l10n/et_EE.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Serverist serverisse jagamine pole antud serveris lubatud", + "The mountpoint name contains invalid characters." : "Ühenduspunkti nimes on vigaseid märke.", + "Invalid or untrusted SSL certificate" : "Vigane või tundmatu SSL sertifikaat", + "Couldn't add remote share" : "Ei suutnud lisada kaugjagamist", + "Shared with you" : "Sinuga jagatud", + "Shared with others" : "Teistega jagatud", + "Shared by link" : "Jagatud lingiga", + "No files have been shared with you yet." : "Sinuga pole veel ühtegi faili jagatud.", + "You haven't shared any files yet." : "Sa pole jaganud veel ühtegi faili.", + "You haven't shared any files by link yet." : "Sa pole lingiga jaganud veel ühtegi faili.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisata kaugjagamise {name} asukohast {owner}@{remote}?", + "Remote share" : "Kaugjagamine", + "Remote share password" : "Kaugjagamise parool", + "Cancel" : "Loobu", + "Add remote share" : "Lisa kaugjagamine", + "No ownCloud installation found at {remote}" : "Ei leitud ownCloud paigaldust asukohas {remote}", + "Invalid ownCloud url" : "Vigane ownCloud url", + "Shared by" : "Jagas", + "This share is password-protected" : "See jagamine on parooliga kaitstud", + "The password is wrong. Try again." : "Parool on vale. Proovi uuesti.", + "Password" : "Parool", + "Name" : "Nimi", + "Share time" : "Jagamise aeg", + "Sorry, this link doesn’t seem to work anymore." : "Vabandust, see link ei tundu enam toimivat.", + "Reasons might be:" : "Põhjused võivad olla:", + "the item was removed" : "üksus on eemaldatud", + "the link expired" : "link on aegunud", + "sharing is disabled" : "jagamine on peatatud", + "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", + "Add to your ownCloud" : "Lisa oma ownCloudi", + "Download" : "Lae alla", + "Download %s" : "Laadi alla %s", + "Direct link" : "Otsene link", + "Server-to-Server Sharing" : "Serverist-serverisse jagamine", + "Allow users on this server to send shares to other servers" : "Luba selle serveri kasutajatel saata faile teistesse serveritesse", + "Allow users on this server to receive shares from other servers" : "Luba selle serveri kasutajatel võtta vastu jagamisi teistest serveritest" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json new file mode 100644 index 0000000000000000000000000000000000000000..bb17d22b99f1150bbd210ff465c7ff5670ae8434 --- /dev/null +++ b/apps/files_sharing/l10n/et_EE.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Serverist serverisse jagamine pole antud serveris lubatud", + "The mountpoint name contains invalid characters." : "Ühenduspunkti nimes on vigaseid märke.", + "Invalid or untrusted SSL certificate" : "Vigane või tundmatu SSL sertifikaat", + "Couldn't add remote share" : "Ei suutnud lisada kaugjagamist", + "Shared with you" : "Sinuga jagatud", + "Shared with others" : "Teistega jagatud", + "Shared by link" : "Jagatud lingiga", + "No files have been shared with you yet." : "Sinuga pole veel ühtegi faili jagatud.", + "You haven't shared any files yet." : "Sa pole jaganud veel ühtegi faili.", + "You haven't shared any files by link yet." : "Sa pole lingiga jaganud veel ühtegi faili.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisata kaugjagamise {name} asukohast {owner}@{remote}?", + "Remote share" : "Kaugjagamine", + "Remote share password" : "Kaugjagamise parool", + "Cancel" : "Loobu", + "Add remote share" : "Lisa kaugjagamine", + "No ownCloud installation found at {remote}" : "Ei leitud ownCloud paigaldust asukohas {remote}", + "Invalid ownCloud url" : "Vigane ownCloud url", + "Shared by" : "Jagas", + "This share is password-protected" : "See jagamine on parooliga kaitstud", + "The password is wrong. Try again." : "Parool on vale. Proovi uuesti.", + "Password" : "Parool", + "Name" : "Nimi", + "Share time" : "Jagamise aeg", + "Sorry, this link doesn’t seem to work anymore." : "Vabandust, see link ei tundu enam toimivat.", + "Reasons might be:" : "Põhjused võivad olla:", + "the item was removed" : "üksus on eemaldatud", + "the link expired" : "link on aegunud", + "sharing is disabled" : "jagamine on peatatud", + "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", + "Add to your ownCloud" : "Lisa oma ownCloudi", + "Download" : "Lae alla", + "Download %s" : "Laadi alla %s", + "Direct link" : "Otsene link", + "Server-to-Server Sharing" : "Serverist-serverisse jagamine", + "Allow users on this server to send shares to other servers" : "Luba selle serveri kasutajatel saata faile teistesse serveritesse", + "Allow users on this server to receive shares from other servers" : "Luba selle serveri kasutajatel võtta vastu jagamisi teistest serveritest" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/et_EE.php b/apps/files_sharing/l10n/et_EE.php deleted file mode 100644 index d0fb98e4ee2ad6a03845ae0a566aa8090b9ad03e..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/et_EE.php +++ /dev/null @@ -1,39 +0,0 @@ - "Serverist serverisse jagamine pole antud serveris lubatud", -"Invalid or untrusted SSL certificate" => "Vigane või tundmatu SSL sertifikaat", -"Couldn't add remote share" => "Ei suutnud lisada kaugjagamist", -"Shared with you" => "Sinuga jagatud", -"Shared with others" => "Teistega jagatud", -"Shared by link" => "Jagatud lingiga", -"No files have been shared with you yet." => "Sinuga pole veel ühtegi faili jagatud.", -"You haven't shared any files yet." => "Sa pole jaganud veel ühtegi faili.", -"You haven't shared any files by link yet." => "Sa pole lingiga jaganud veel ühtegi faili.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Soovid lisata kaugjagamise {name} asukohast {owner}@{remote}?", -"Remote share" => "Kaugjagamine", -"Remote share password" => "Kaugjagamise parool", -"Cancel" => "Loobu", -"Add remote share" => "Lisa kaugjagamine", -"No ownCloud installation found at {remote}" => "Ei leitud ownCloud paigaldust asukohas {remote}", -"Invalid ownCloud url" => "Vigane ownCloud url", -"Shared by" => "Jagas", -"This share is password-protected" => "See jagamine on parooliga kaitstud", -"The password is wrong. Try again." => "Parool on vale. Proovi uuesti.", -"Password" => "Parool", -"Name" => "Nimi", -"Share time" => "Jagamise aeg", -"Sorry, this link doesn’t seem to work anymore." => "Vabandust, see link ei tundu enam toimivat.", -"Reasons might be:" => "Põhjused võivad olla:", -"the item was removed" => "üksus on eemaldatud", -"the link expired" => "link on aegunud", -"sharing is disabled" => "jagamine on peatatud", -"For more info, please ask the person who sent this link." => "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", -"Add to your ownCloud" => "Lisa oma ownCloudi", -"Download" => "Lae alla", -"Download %s" => "Laadi alla %s", -"Direct link" => "Otsene link", -"Remote Shares" => "Eemalolevad jagamised", -"Allow other instances to mount public links shared from this server" => "Luba teistel instantsidel ühendada sellest serverist jagatud avalikke linke", -"Allow users to mount public link shares" => "Luba kasutajatel ühendada jagatud avalikke linke" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js new file mode 100644 index 0000000000000000000000000000000000000000..9e492649eee7cd10de3c1a042a3b710702ac2f8a --- /dev/null +++ b/apps/files_sharing/l10n/eu.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Zerbitzaritik zerbitzarirako elkarbanaketa ez dago gaituta zerbitzari honetan", + "The mountpoint name contains invalid characters." : "Montatze puntuaren izenak baliogabeko karaktereak ditu.", + "Invalid or untrusted SSL certificate" : "SSL ziurtagiri baliogabea edo fidagaitza", + "Couldn't add remote share" : "Ezin izan da hurruneko elkarbanaketa gehitu", + "Shared with you" : "Zurekin elkarbanatuta", + "Shared with others" : "Beste batzuekin elkarbanatuta", + "Shared by link" : "Lotura bidez elkarbanatuta", + "No files have been shared with you yet." : "Ez da zurekin fitxategirik elkarbanatu oraindik.", + "You haven't shared any files yet." : "Ez duzu oraindik fitxategirik elkarbanatu.", + "You haven't shared any files by link yet." : "Ez duzu oraindik fitxategirik lotura bidez elkarbanatu.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Nahi duzu gehitzea {name} urrutiko partekatzea honengandik {owner}@{remote}?", + "Remote share" : "Urrutiko parte hartzea", + "Remote share password" : "Urrutiko parte hartzeen pasahitza", + "Cancel" : "Ezeztatu", + "Add remote share" : "Gehitu urrutiko parte hartzea", + "No ownCloud installation found at {remote}" : "Ez da ownClouden instalaziorik aurkitu {remote}n", + "Invalid ownCloud url" : "ownCloud url baliogabea", + "Shared by" : "Honek elkarbanatuta", + "This share is password-protected" : "Elkarbanatutako hau pasahitzarekin babestuta dago", + "The password is wrong. Try again." : "Pasahitza ez da egokia. Saiatu berriro.", + "Password" : "Pasahitza", + "Name" : "Izena", + "Share time" : "Elkarbanatze unea", + "Sorry, this link doesn’t seem to work anymore." : "Barkatu, lotura ez dirudi eskuragarria dagoenik.", + "Reasons might be:" : "Arrazoiak hurrengoak litezke:", + "the item was removed" : "fitxategia ezbatua izan da", + "the link expired" : "lotura iraungi da", + "sharing is disabled" : "elkarbanatzea ez dago gaituta", + "For more info, please ask the person who sent this link." : "Informazio gehiagorako, mesedez eskatu lotura hau bidali zuen pertsonari", + "Add to your ownCloud" : "Gehitu zure ownCloud-era", + "Download" : "Deskargatu", + "Download %s" : "Deskargatu %s", + "Direct link" : "Lotura zuzena" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json new file mode 100644 index 0000000000000000000000000000000000000000..0d04b0c2f9affb76fa5ca78e943b7aa8cff902a2 --- /dev/null +++ b/apps/files_sharing/l10n/eu.json @@ -0,0 +1,36 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Zerbitzaritik zerbitzarirako elkarbanaketa ez dago gaituta zerbitzari honetan", + "The mountpoint name contains invalid characters." : "Montatze puntuaren izenak baliogabeko karaktereak ditu.", + "Invalid or untrusted SSL certificate" : "SSL ziurtagiri baliogabea edo fidagaitza", + "Couldn't add remote share" : "Ezin izan da hurruneko elkarbanaketa gehitu", + "Shared with you" : "Zurekin elkarbanatuta", + "Shared with others" : "Beste batzuekin elkarbanatuta", + "Shared by link" : "Lotura bidez elkarbanatuta", + "No files have been shared with you yet." : "Ez da zurekin fitxategirik elkarbanatu oraindik.", + "You haven't shared any files yet." : "Ez duzu oraindik fitxategirik elkarbanatu.", + "You haven't shared any files by link yet." : "Ez duzu oraindik fitxategirik lotura bidez elkarbanatu.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Nahi duzu gehitzea {name} urrutiko partekatzea honengandik {owner}@{remote}?", + "Remote share" : "Urrutiko parte hartzea", + "Remote share password" : "Urrutiko parte hartzeen pasahitza", + "Cancel" : "Ezeztatu", + "Add remote share" : "Gehitu urrutiko parte hartzea", + "No ownCloud installation found at {remote}" : "Ez da ownClouden instalaziorik aurkitu {remote}n", + "Invalid ownCloud url" : "ownCloud url baliogabea", + "Shared by" : "Honek elkarbanatuta", + "This share is password-protected" : "Elkarbanatutako hau pasahitzarekin babestuta dago", + "The password is wrong. Try again." : "Pasahitza ez da egokia. Saiatu berriro.", + "Password" : "Pasahitza", + "Name" : "Izena", + "Share time" : "Elkarbanatze unea", + "Sorry, this link doesn’t seem to work anymore." : "Barkatu, lotura ez dirudi eskuragarria dagoenik.", + "Reasons might be:" : "Arrazoiak hurrengoak litezke:", + "the item was removed" : "fitxategia ezbatua izan da", + "the link expired" : "lotura iraungi da", + "sharing is disabled" : "elkarbanatzea ez dago gaituta", + "For more info, please ask the person who sent this link." : "Informazio gehiagorako, mesedez eskatu lotura hau bidali zuen pertsonari", + "Add to your ownCloud" : "Gehitu zure ownCloud-era", + "Download" : "Deskargatu", + "Download %s" : "Deskargatu %s", + "Direct link" : "Lotura zuzena" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/eu.php b/apps/files_sharing/l10n/eu.php deleted file mode 100644 index 4bb54e12501f9995b8abeb3e91cd5aff08811931..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/eu.php +++ /dev/null @@ -1,38 +0,0 @@ - "Zerbitzaritik zerbitzarirako elkarbanaketa ez dago gaituta zerbitzari honetan", -"Couldn't add remote share" => "Ezin izan da hurruneko elkarbanaketa gehitu", -"Shared with you" => "Zurekin elkarbanatuta", -"Shared with others" => "Beste batzuekin elkarbanatuta", -"Shared by link" => "Lotura bidez elkarbanatuta", -"No files have been shared with you yet." => "Ez da zurekin fitxategirik elkarbanatu oraindik.", -"You haven't shared any files yet." => "Ez duzu oraindik fitxategirik elkarbanatu.", -"You haven't shared any files by link yet." => "Ez duzu oraindik fitxategirik lotura bidez elkarbanatu.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Nahi duzu gehitzea {name} urrutiko partekatzea honengandik {owner}@{remote}?", -"Remote share" => "Urrutiko parte hartzea", -"Remote share password" => "Urrutiko parte hartzeen pasahitza", -"Cancel" => "Ezeztatu", -"Add remote share" => "Gehitu urrutiko parte hartzea", -"No ownCloud installation found at {remote}" => "Ez da ownClouden instalaziorik aurkitu {remote}n", -"Invalid ownCloud url" => "ownCloud url baliogabea", -"Shared by" => "Honek elkarbanatuta", -"This share is password-protected" => "Elkarbanatutako hau pasahitzarekin babestuta dago", -"The password is wrong. Try again." => "Pasahitza ez da egokia. Saiatu berriro.", -"Password" => "Pasahitza", -"Name" => "Izena", -"Share time" => "Elkarbanatze unea", -"Sorry, this link doesn’t seem to work anymore." => "Barkatu, lotura ez dirudi eskuragarria dagoenik.", -"Reasons might be:" => "Arrazoiak hurrengoak litezke:", -"the item was removed" => "fitxategia ezbatua izan da", -"the link expired" => "lotura iraungi da", -"sharing is disabled" => "elkarbanatzea ez dago gaituta", -"For more info, please ask the person who sent this link." => "Informazio gehiagorako, mesedez eskatu lotura hau bidali zuen pertsonari", -"Add to your ownCloud" => "Gehitu zure ownCloud-era", -"Download" => "Deskargatu", -"Download %s" => "Deskargatu %s", -"Direct link" => "Lotura zuzena", -"Remote Shares" => "Urrutiko parte hartzeak", -"Allow other instances to mount public links shared from this server" => "Baimendu beste instantziak zerbitzari honetatik elkarbanatutako lotura publikoak kargatzen", -"Allow users to mount public link shares" => "Baimendu erabiltzaileak lotura publiko bidezko elkarbanaketak muntatzen" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/eu_ES.js b/apps/files_sharing/l10n/eu_ES.js new file mode 100644 index 0000000000000000000000000000000000000000..240f01815596b4be169ff486c4588e2db0bef5ce --- /dev/null +++ b/apps/files_sharing/l10n/eu_ES.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Ezeztatu", + "Download" : "Deskargatu" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/eu_ES.json b/apps/files_sharing/l10n/eu_ES.json new file mode 100644 index 0000000000000000000000000000000000000000..9adbb2b8185b1f47b3e5b23227cabbcc31d003ce --- /dev/null +++ b/apps/files_sharing/l10n/eu_ES.json @@ -0,0 +1,5 @@ +{ "translations": { + "Cancel" : "Ezeztatu", + "Download" : "Deskargatu" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/eu_ES.php b/apps/files_sharing/l10n/eu_ES.php deleted file mode 100644 index c6d9c9eb7334e2ede7200bb213ea6a2857baee2f..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/eu_ES.php +++ /dev/null @@ -1,6 +0,0 @@ - "Ezeztatu", -"Download" => "Deskargatu" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js new file mode 100644 index 0000000000000000000000000000000000000000..3c78846ed4422e8c2aedee5dd2ff416ed1587e70 --- /dev/null +++ b/apps/files_sharing/l10n/fa.js @@ -0,0 +1,37 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "اشتراک سرور به سرور در این سرور فعال نیست .", + "Invalid or untrusted SSL certificate" : "گواهینامه SSL غیر قابل اعتماد یا غیر معتبر است.", + "Couldn't add remote share" : "امکان افزودن اشتراک گذاری از راه دور وجود ندارد", + "Shared with you" : "موارد به اشتراک گذاشته شده با شما", + "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران", + "Shared by link" : "اشتراک گذاشته شده از طریق پیوند", + "No files have been shared with you yet." : "هنوز هیچ فایلی با شما به اشتراک گذاشته نشده است.", + "You haven't shared any files yet." : "شما هنوز هیچ فایلی را به اشتراک نگذاشته اید.", + "You haven't shared any files by link yet." : "شما هنوز هیچ فایلی را از طریق پیوند با کسی به اشتراک نگذاشته اید.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "آیا مایل به افزودن اشتراک از راه دور {name} از {owner}@{remote} هستید.", + "Remote share" : "اشتراک از راه دور", + "Remote share password" : "رمز عبور اشتراک از راه دور", + "Cancel" : "منصرف شدن", + "Add remote share" : "افزودن اشتراک از راه دور", + "No ownCloud installation found at {remote}" : "نمونه ای از ownCloud نصب شده در {remote} یافت نشد", + "Invalid ownCloud url" : "آدرس نمونه ownCloud غیر معتبر است", + "Shared by" : "اشتراک گذاشته شده به وسیله", + "This share is password-protected" : "این اشتراک توسط رمز عبور محافظت می شود", + "The password is wrong. Try again." : "رمزعبور اشتباه می باشد. دوباره امتحان کنید.", + "Password" : "گذرواژه", + "Name" : "نام", + "Share time" : "زمان به اشتراک گذاری", + "Sorry, this link doesn’t seem to work anymore." : "متاسفانه این پیوند دیگر کار نمی کند", + "Reasons might be:" : "ممکن است به این دلایل باشد:", + "the item was removed" : "این مورد حذف شده است", + "the link expired" : "این پیوند منقضی شده است", + "sharing is disabled" : "قابلیت اشتراک گذاری غیرفعال است", + "For more info, please ask the person who sent this link." : "برای اطلاعات بیشتر، لطفا از شخصی که این پیوند را ارسال کرده سوال بفرمایید.", + "Add to your ownCloud" : "افزودن به ownCloud شما", + "Download" : "دانلود", + "Download %s" : "دانلود %s", + "Direct link" : "پیوند مستقیم" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json new file mode 100644 index 0000000000000000000000000000000000000000..8e5fd724927310db5fe2534671e3087c847f190c --- /dev/null +++ b/apps/files_sharing/l10n/fa.json @@ -0,0 +1,35 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "اشتراک سرور به سرور در این سرور فعال نیست .", + "Invalid or untrusted SSL certificate" : "گواهینامه SSL غیر قابل اعتماد یا غیر معتبر است.", + "Couldn't add remote share" : "امکان افزودن اشتراک گذاری از راه دور وجود ندارد", + "Shared with you" : "موارد به اشتراک گذاشته شده با شما", + "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران", + "Shared by link" : "اشتراک گذاشته شده از طریق پیوند", + "No files have been shared with you yet." : "هنوز هیچ فایلی با شما به اشتراک گذاشته نشده است.", + "You haven't shared any files yet." : "شما هنوز هیچ فایلی را به اشتراک نگذاشته اید.", + "You haven't shared any files by link yet." : "شما هنوز هیچ فایلی را از طریق پیوند با کسی به اشتراک نگذاشته اید.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "آیا مایل به افزودن اشتراک از راه دور {name} از {owner}@{remote} هستید.", + "Remote share" : "اشتراک از راه دور", + "Remote share password" : "رمز عبور اشتراک از راه دور", + "Cancel" : "منصرف شدن", + "Add remote share" : "افزودن اشتراک از راه دور", + "No ownCloud installation found at {remote}" : "نمونه ای از ownCloud نصب شده در {remote} یافت نشد", + "Invalid ownCloud url" : "آدرس نمونه ownCloud غیر معتبر است", + "Shared by" : "اشتراک گذاشته شده به وسیله", + "This share is password-protected" : "این اشتراک توسط رمز عبور محافظت می شود", + "The password is wrong. Try again." : "رمزعبور اشتباه می باشد. دوباره امتحان کنید.", + "Password" : "گذرواژه", + "Name" : "نام", + "Share time" : "زمان به اشتراک گذاری", + "Sorry, this link doesn’t seem to work anymore." : "متاسفانه این پیوند دیگر کار نمی کند", + "Reasons might be:" : "ممکن است به این دلایل باشد:", + "the item was removed" : "این مورد حذف شده است", + "the link expired" : "این پیوند منقضی شده است", + "sharing is disabled" : "قابلیت اشتراک گذاری غیرفعال است", + "For more info, please ask the person who sent this link." : "برای اطلاعات بیشتر، لطفا از شخصی که این پیوند را ارسال کرده سوال بفرمایید.", + "Add to your ownCloud" : "افزودن به ownCloud شما", + "Download" : "دانلود", + "Download %s" : "دانلود %s", + "Direct link" : "پیوند مستقیم" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/fa.php b/apps/files_sharing/l10n/fa.php deleted file mode 100644 index 5b55438c4ff0835010ae41b13e619ef6d9eff359..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/fa.php +++ /dev/null @@ -1,39 +0,0 @@ - "اشتراک سرور به سرور در این سرور فعال نیست .", -"Invalid or untrusted SSL certificate" => "گواهینامه SSL غیر قابل اعتماد یا غیر معتبر است.", -"Couldn't add remote share" => "امکان افزودن اشتراک گذاری از راه دور وجود ندارد", -"Shared with you" => "موارد به اشتراک گذاشته شده با شما", -"Shared with others" => "موارد به اشتراک گذاشته شده با دیگران", -"Shared by link" => "اشتراک گذاشته شده از طریق پیوند", -"No files have been shared with you yet." => "هنوز هیچ فایلی با شما به اشتراک گذاشته نشده است.", -"You haven't shared any files yet." => "شما هنوز هیچ فایلی را به اشتراک نگذاشته اید.", -"You haven't shared any files by link yet." => "شما هنوز هیچ فایلی را از طریق پیوند با کسی به اشتراک نگذاشته اید.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "آیا مایل به افزودن اشتراک از راه دور {name} از {owner}@{remote} هستید.", -"Remote share" => "اشتراک از راه دور", -"Remote share password" => "رمز عبور اشتراک از راه دور", -"Cancel" => "منصرف شدن", -"Add remote share" => "افزودن اشتراک از راه دور", -"No ownCloud installation found at {remote}" => "نمونه ای از ownCloud نصب شده در {remote} یافت نشد", -"Invalid ownCloud url" => "آدرس نمونه ownCloud غیر معتبر است", -"Shared by" => "اشتراک گذاشته شده به وسیله", -"This share is password-protected" => "این اشتراک توسط رمز عبور محافظت می شود", -"The password is wrong. Try again." => "رمزعبور اشتباه می باشد. دوباره امتحان کنید.", -"Password" => "گذرواژه", -"Name" => "نام", -"Share time" => "زمان به اشتراک گذاری", -"Sorry, this link doesn’t seem to work anymore." => "متاسفانه این پیوند دیگر کار نمی کند", -"Reasons might be:" => "ممکن است به این دلایل باشد:", -"the item was removed" => "این مورد حذف شده است", -"the link expired" => "این پیوند منقضی شده است", -"sharing is disabled" => "قابلیت اشتراک گذاری غیرفعال است", -"For more info, please ask the person who sent this link." => "برای اطلاعات بیشتر، لطفا از شخصی که این پیوند را ارسال کرده سوال بفرمایید.", -"Add to your ownCloud" => "افزودن به ownCloud شما", -"Download" => "دانلود", -"Download %s" => "دانلود %s", -"Direct link" => "پیوند مستقیم", -"Remote Shares" => "اشتراک های از راه دور", -"Allow other instances to mount public links shared from this server" => "اجازه به نمونه های دیگر برای مانت کردن پیوند های عمومی به اشتراک گذاشته شده از این سرور", -"Allow users to mount public link shares" => "اجازه دادن به کاربران برای مانت پیوندهای عمومی موارد به اشتراک گذاری" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js new file mode 100644 index 0000000000000000000000000000000000000000..bb02376e11572a86687b3087039c79cd20e6287d --- /dev/null +++ b/apps/files_sharing/l10n/fi_FI.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Palvelimelta-palvelimelle-jakaminen ei ole käytössä tällä palvelimella", + "The mountpoint name contains invalid characters." : "Liitospisteen nimi sisältää virheellisiä merkkejä.", + "Invalid or untrusted SSL certificate" : "Virheellinen tai ei-luotettu SSL-varmenne", + "Couldn't add remote share" : "Etäjaon liittäminen epäonnistui", + "Shared with you" : "Jaettu kanssasi", + "Shared with others" : "Jaettu muiden kanssa", + "Shared by link" : "Jaettu linkin kautta", + "No files have been shared with you yet." : "Kukaan ei ole jakanut tiedostoja kanssasi vielä.", + "You haven't shared any files yet." : "Et ole jakanut yhtäkään tiedostoa vielä.", + "You haven't shared any files by link yet." : "Et ole vielä jakanut yhtäkään tiedostoa linkin kautta.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Haluatko lisätä etäjaon {name} kohteesta {owner}@{remote}?", + "Remote share" : "Etäjako", + "Remote share password" : "Etäjaon salasana", + "Cancel" : "Peru", + "Add remote share" : "Lisää etäjako", + "No ownCloud installation found at {remote}" : "ownCloud-asennusta ei löytynyt kohteesta {remote}", + "Invalid ownCloud url" : "Virheellinen ownCloud-osoite", + "Shared by" : "Jakanut", + "This share is password-protected" : "Tämä jako on suojattu salasanalla", + "The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.", + "Password" : "Salasana", + "Name" : "Nimi", + "Share time" : "Jakamisen ajankohta", + "Sorry, this link doesn’t seem to work anymore." : "Valitettavasti linkki ei vaikuta enää toimivan.", + "Reasons might be:" : "Mahdollisia syitä:", + "the item was removed" : "kohde poistettiin", + "the link expired" : "linkki vanheni", + "sharing is disabled" : "jakaminen on poistettu käytöstä", + "For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.", + "Add to your ownCloud" : "Lisää ownCloudiisi", + "Download" : "Lataa", + "Download %s" : "Lataa %s", + "Direct link" : "Suora linkki", + "Server-to-Server Sharing" : "Palvelimelta palvelimelle -jakaminen", + "Allow users on this server to send shares to other servers" : "Salli tämän palvelimen käyttäjien lähettää jakoja muille palvelimille", + "Allow users on this server to receive shares from other servers" : "Salli tämän palvelimen käyttäjien vastaanottaa jakoja muilta palvelimilta" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/fi_FI.json b/apps/files_sharing/l10n/fi_FI.json new file mode 100644 index 0000000000000000000000000000000000000000..84b681252dcfee8536919ff9fb125d6ce073c8da --- /dev/null +++ b/apps/files_sharing/l10n/fi_FI.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Palvelimelta-palvelimelle-jakaminen ei ole käytössä tällä palvelimella", + "The mountpoint name contains invalid characters." : "Liitospisteen nimi sisältää virheellisiä merkkejä.", + "Invalid or untrusted SSL certificate" : "Virheellinen tai ei-luotettu SSL-varmenne", + "Couldn't add remote share" : "Etäjaon liittäminen epäonnistui", + "Shared with you" : "Jaettu kanssasi", + "Shared with others" : "Jaettu muiden kanssa", + "Shared by link" : "Jaettu linkin kautta", + "No files have been shared with you yet." : "Kukaan ei ole jakanut tiedostoja kanssasi vielä.", + "You haven't shared any files yet." : "Et ole jakanut yhtäkään tiedostoa vielä.", + "You haven't shared any files by link yet." : "Et ole vielä jakanut yhtäkään tiedostoa linkin kautta.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Haluatko lisätä etäjaon {name} kohteesta {owner}@{remote}?", + "Remote share" : "Etäjako", + "Remote share password" : "Etäjaon salasana", + "Cancel" : "Peru", + "Add remote share" : "Lisää etäjako", + "No ownCloud installation found at {remote}" : "ownCloud-asennusta ei löytynyt kohteesta {remote}", + "Invalid ownCloud url" : "Virheellinen ownCloud-osoite", + "Shared by" : "Jakanut", + "This share is password-protected" : "Tämä jako on suojattu salasanalla", + "The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.", + "Password" : "Salasana", + "Name" : "Nimi", + "Share time" : "Jakamisen ajankohta", + "Sorry, this link doesn’t seem to work anymore." : "Valitettavasti linkki ei vaikuta enää toimivan.", + "Reasons might be:" : "Mahdollisia syitä:", + "the item was removed" : "kohde poistettiin", + "the link expired" : "linkki vanheni", + "sharing is disabled" : "jakaminen on poistettu käytöstä", + "For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.", + "Add to your ownCloud" : "Lisää ownCloudiisi", + "Download" : "Lataa", + "Download %s" : "Lataa %s", + "Direct link" : "Suora linkki", + "Server-to-Server Sharing" : "Palvelimelta palvelimelle -jakaminen", + "Allow users on this server to send shares to other servers" : "Salli tämän palvelimen käyttäjien lähettää jakoja muille palvelimille", + "Allow users on this server to receive shares from other servers" : "Salli tämän palvelimen käyttäjien vastaanottaa jakoja muilta palvelimilta" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/fi_FI.php b/apps/files_sharing/l10n/fi_FI.php deleted file mode 100644 index 210b2d57d37080a49a079ce719fa01d57b64000c..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/fi_FI.php +++ /dev/null @@ -1,40 +0,0 @@ - "Palvelimelta-palvelimelle-jakaminen ei ole käytössä tällä palvelimella", -"The mountpoint name contains invalid characters." => "Liitospisteen nimi sisältää virheellisiä merkkejä.", -"Invalid or untrusted SSL certificate" => "Virheellinen tai ei-luotettu SSL-varmenne", -"Couldn't add remote share" => "Etäjaon liittäminen epäonnistui", -"Shared with you" => "Jaettu kanssasi", -"Shared with others" => "Jaettu muiden kanssa", -"Shared by link" => "Jaettu linkin kautta", -"No files have been shared with you yet." => "Kukaan ei ole jakanut tiedostoja kanssasi vielä.", -"You haven't shared any files yet." => "Et ole jakanut yhtäkään tiedostoa vielä.", -"You haven't shared any files by link yet." => "Et ole vielä jakanut yhtäkään tiedostoa linkin kautta.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Haluatko lisätä etäjaon {name} kohteesta {owner}@{remote}?", -"Remote share" => "Etäjako", -"Remote share password" => "Etäjaon salasana", -"Cancel" => "Peru", -"Add remote share" => "Lisää etäjako", -"No ownCloud installation found at {remote}" => "ownCloud-asennusta ei löytynyt kohteesta {remote}", -"Invalid ownCloud url" => "Virheellinen ownCloud-osoite", -"Shared by" => "Jakanut", -"This share is password-protected" => "Tämä jako on suojattu salasanalla", -"The password is wrong. Try again." => "Väärä salasana. Yritä uudelleen.", -"Password" => "Salasana", -"Name" => "Nimi", -"Share time" => "Jakamisen ajankohta", -"Sorry, this link doesn’t seem to work anymore." => "Valitettavasti linkki ei vaikuta enää toimivan.", -"Reasons might be:" => "Mahdollisia syitä:", -"the item was removed" => "kohde poistettiin", -"the link expired" => "linkki vanheni", -"sharing is disabled" => "jakaminen on poistettu käytöstä", -"For more info, please ask the person who sent this link." => "Kysy lisätietoja henkilöltä, jolta sait linkin.", -"Add to your ownCloud" => "Lisää ownCloudiisi", -"Download" => "Lataa", -"Download %s" => "Lataa %s", -"Direct link" => "Suora linkki", -"Remote Shares" => "Etäjaot", -"Allow other instances to mount public links shared from this server" => "Salli muiden instanssien liittää tältä palvelimelta jaettuja julkisia linkkejä", -"Allow users to mount public link shares" => "Salli käyttäjien liittää julkisia linkkijakoja" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js new file mode 100644 index 0000000000000000000000000000000000000000..98f1a46627d8f4a0a2ddd69f36b660e763accf88 --- /dev/null +++ b/apps/files_sharing/l10n/fr.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Le partage de serveur à serveur n'est pas activé sur ce serveur", + "The mountpoint name contains invalid characters." : "Le nom du point de montage contient des caractères invalides.", + "Invalid or untrusted SSL certificate" : "Certificat SSL invalide ou non-fiable", + "Couldn't add remote share" : "Impossible d'ajouter un partage distant", + "Shared with you" : "Partagés avec vous", + "Shared with others" : "Partagés avec d'autres", + "Shared by link" : "Partagés par lien", + "No files have been shared with you yet." : "Aucun fichier n'est partagé avec vous pour l'instant.", + "You haven't shared any files yet." : "Vous ne partagez pas de fichier pour l'instant.", + "You haven't shared any files by link yet." : "Vous ne partagez pas de fichier par lien pour l'instant.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voulez-vous ajouter le partage distant {name} de {owner}@{remote} ?", + "Remote share" : "Partage distant", + "Remote share password" : "Mot de passe du partage distant", + "Cancel" : "Annuler", + "Add remote share" : "Ajouter un partage distant", + "No ownCloud installation found at {remote}" : "Aucune installation ownCloud n'a été trouvée sur {remote}", + "Invalid ownCloud url" : "URL ownCloud invalide", + "Shared by" : "Partagé par", + "This share is password-protected" : "Ce partage est protégé par un mot de passe", + "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", + "Password" : "Mot de passe", + "Name" : "Nom", + "Share time" : "Date de partage", + "Sorry, this link doesn’t seem to work anymore." : "Désolé, mais le lien semble ne plus fonctionner.", + "Reasons might be:" : "Les raisons peuvent être :", + "the item was removed" : "l'item a été supprimé", + "the link expired" : "le lien a expiré", + "sharing is disabled" : "le partage est désactivé", + "For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.", + "Add to your ownCloud" : "Ajouter à votre ownCloud", + "Download" : "Télécharger", + "Download %s" : "Télécharger %s", + "Direct link" : "Lien direct", + "Server-to-Server Sharing" : "Partage de serveur à serveur", + "Allow users on this server to send shares to other servers" : "Autoriser les utilisateurs de ce serveur à envoyer des partages vers d'autres serveurs", + "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..c7145f92e98be3ce4dc3d96860e6a0bfa20d1462 --- /dev/null +++ b/apps/files_sharing/l10n/fr.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Le partage de serveur à serveur n'est pas activé sur ce serveur", + "The mountpoint name contains invalid characters." : "Le nom du point de montage contient des caractères invalides.", + "Invalid or untrusted SSL certificate" : "Certificat SSL invalide ou non-fiable", + "Couldn't add remote share" : "Impossible d'ajouter un partage distant", + "Shared with you" : "Partagés avec vous", + "Shared with others" : "Partagés avec d'autres", + "Shared by link" : "Partagés par lien", + "No files have been shared with you yet." : "Aucun fichier n'est partagé avec vous pour l'instant.", + "You haven't shared any files yet." : "Vous ne partagez pas de fichier pour l'instant.", + "You haven't shared any files by link yet." : "Vous ne partagez pas de fichier par lien pour l'instant.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voulez-vous ajouter le partage distant {name} de {owner}@{remote} ?", + "Remote share" : "Partage distant", + "Remote share password" : "Mot de passe du partage distant", + "Cancel" : "Annuler", + "Add remote share" : "Ajouter un partage distant", + "No ownCloud installation found at {remote}" : "Aucune installation ownCloud n'a été trouvée sur {remote}", + "Invalid ownCloud url" : "URL ownCloud invalide", + "Shared by" : "Partagé par", + "This share is password-protected" : "Ce partage est protégé par un mot de passe", + "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", + "Password" : "Mot de passe", + "Name" : "Nom", + "Share time" : "Date de partage", + "Sorry, this link doesn’t seem to work anymore." : "Désolé, mais le lien semble ne plus fonctionner.", + "Reasons might be:" : "Les raisons peuvent être :", + "the item was removed" : "l'item a été supprimé", + "the link expired" : "le lien a expiré", + "sharing is disabled" : "le partage est désactivé", + "For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.", + "Add to your ownCloud" : "Ajouter à votre ownCloud", + "Download" : "Télécharger", + "Download %s" : "Télécharger %s", + "Direct link" : "Lien direct", + "Server-to-Server Sharing" : "Partage de serveur à serveur", + "Allow users on this server to send shares to other servers" : "Autoriser les utilisateurs de ce serveur à envoyer des partages vers d'autres serveurs", + "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/fr.php b/apps/files_sharing/l10n/fr.php deleted file mode 100644 index 27dd4bcbc67781dd324cc684336d5637bbcd7e6c..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/fr.php +++ /dev/null @@ -1,40 +0,0 @@ - "Le partage de serveur à serveur n'est pas activé sur ce serveur", -"The mountpoint name contains invalid characters." => "Le nom du point de montage contient des caractères invalides.", -"Invalid or untrusted SSL certificate" => "Certificat SSL invalide ou non-fiable", -"Couldn't add remote share" => "Impossible d'ajouter un partage distant", -"Shared with you" => "Partagés avec vous", -"Shared with others" => "Partagés avec d'autres", -"Shared by link" => "Partagés par lien", -"No files have been shared with you yet." => "Aucun fichier n'est partagé avec vous pour l'instant.", -"You haven't shared any files yet." => "Vous ne partagez pas de fichier pour l'instant.", -"You haven't shared any files by link yet." => "Vous n'avez aucun partage de fichier par lien pour le moment.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Voulez-vous ajouter le partage distant {name} de {owner}@{remote} ?", -"Remote share" => "Partage distant", -"Remote share password" => "Mot de passe du partage distant", -"Cancel" => "Annuler", -"Add remote share" => "Ajouter un partage distant", -"No ownCloud installation found at {remote}" => "Aucune installation ownCloud n'a été trouvée sur {remote}", -"Invalid ownCloud url" => "URL ownCloud invalide", -"Shared by" => "Partagé par", -"This share is password-protected" => "Ce partage est protégé par un mot de passe", -"The password is wrong. Try again." => "Le mot de passe est incorrect. Veuillez réessayer.", -"Password" => "Mot de passe", -"Name" => "Nom", -"Share time" => "Date de partage", -"Sorry, this link doesn’t seem to work anymore." => "Désolé, mais le lien semble ne plus fonctionner.", -"Reasons might be:" => "Les raisons peuvent être :", -"the item was removed" => "l'item a été supprimé", -"the link expired" => "le lien a expiré", -"sharing is disabled" => "le partage est désactivé", -"For more info, please ask the person who sent this link." => "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.", -"Add to your ownCloud" => "Ajouter à votre ownCloud", -"Download" => "Télécharger", -"Download %s" => "Télécharger %s", -"Direct link" => "Lien direct", -"Remote Shares" => "Partages distants", -"Allow other instances to mount public links shared from this server" => "Autoriser d'autres instances à monter des liens publics, partagés depuis ce serveur", -"Allow users to mount public link shares" => "Autoriser des utilisateurs à monter des liens de partages publics" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js new file mode 100644 index 0000000000000000000000000000000000000000..45d20914ee8a1d75e40fea0c566c42366eb1e767 --- /dev/null +++ b/apps/files_sharing/l10n/gl.js @@ -0,0 +1,37 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Neste servidor non está activada a compartición de servidor a servidor", + "Invalid or untrusted SSL certificate" : "Certificado SSL incorrecto ou non fiábel", + "Couldn't add remote share" : "Non foi posíbel engadir a compartición remota", + "Shared with you" : "Compartido con vostede", + "Shared with others" : "Compartido con outros", + "Shared by link" : "Compartido por ligazón", + "No files have been shared with you yet." : "Aínda non hai ficheiros compartidos con vostede.", + "You haven't shared any files yet." : "Aínda non compartiu ningún ficheiro.", + "You haven't shared any files by link yet." : "Aínda non compartiu ningún ficheiro por ligazón.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Quere engadir a compartición remota {name} desde {owner}@{remote}?", + "Remote share" : "Compartición remota", + "Remote share password" : "Contrasinal da compartición remota", + "Cancel" : "Cancelar", + "Add remote share" : "Engadir unha compartición remota", + "No ownCloud installation found at {remote}" : "Non se atopou unha instalación do ownCloud en {remote}", + "Invalid ownCloud url" : "URL incorrecta do ownCloud", + "Shared by" : "Compartido por", + "This share is password-protected" : "Esta compartición está protexida con contrasinal", + "The password is wrong. Try again." : "O contrasinal é incorrecto. Ténteo de novo.", + "Password" : "Contrasinal", + "Name" : "Nome", + "Share time" : "Compartir o tempo", + "Sorry, this link doesn’t seem to work anymore." : "Semella que esta ligazón non funciona.", + "Reasons might be:" : "As razóns poderían ser:", + "the item was removed" : "o elemento foi retirado", + "the link expired" : "a ligazón caducou", + "sharing is disabled" : "foi desactivada a compartición", + "For more info, please ask the person who sent this link." : "Para obter máis información, pregúntelle á persoa que lle enviou a ligazón.", + "Add to your ownCloud" : "Engadir ao seu ownCloud", + "Download" : "Descargar", + "Download %s" : "Descargar %s", + "Direct link" : "Ligazón directa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json new file mode 100644 index 0000000000000000000000000000000000000000..5ddd5b021555d2048a084103cb827de8437a9410 --- /dev/null +++ b/apps/files_sharing/l10n/gl.json @@ -0,0 +1,35 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Neste servidor non está activada a compartición de servidor a servidor", + "Invalid or untrusted SSL certificate" : "Certificado SSL incorrecto ou non fiábel", + "Couldn't add remote share" : "Non foi posíbel engadir a compartición remota", + "Shared with you" : "Compartido con vostede", + "Shared with others" : "Compartido con outros", + "Shared by link" : "Compartido por ligazón", + "No files have been shared with you yet." : "Aínda non hai ficheiros compartidos con vostede.", + "You haven't shared any files yet." : "Aínda non compartiu ningún ficheiro.", + "You haven't shared any files by link yet." : "Aínda non compartiu ningún ficheiro por ligazón.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Quere engadir a compartición remota {name} desde {owner}@{remote}?", + "Remote share" : "Compartición remota", + "Remote share password" : "Contrasinal da compartición remota", + "Cancel" : "Cancelar", + "Add remote share" : "Engadir unha compartición remota", + "No ownCloud installation found at {remote}" : "Non se atopou unha instalación do ownCloud en {remote}", + "Invalid ownCloud url" : "URL incorrecta do ownCloud", + "Shared by" : "Compartido por", + "This share is password-protected" : "Esta compartición está protexida con contrasinal", + "The password is wrong. Try again." : "O contrasinal é incorrecto. Ténteo de novo.", + "Password" : "Contrasinal", + "Name" : "Nome", + "Share time" : "Compartir o tempo", + "Sorry, this link doesn’t seem to work anymore." : "Semella que esta ligazón non funciona.", + "Reasons might be:" : "As razóns poderían ser:", + "the item was removed" : "o elemento foi retirado", + "the link expired" : "a ligazón caducou", + "sharing is disabled" : "foi desactivada a compartición", + "For more info, please ask the person who sent this link." : "Para obter máis información, pregúntelle á persoa que lle enviou a ligazón.", + "Add to your ownCloud" : "Engadir ao seu ownCloud", + "Download" : "Descargar", + "Download %s" : "Descargar %s", + "Direct link" : "Ligazón directa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/gl.php b/apps/files_sharing/l10n/gl.php deleted file mode 100644 index c272ac8afe7ded140b9fe575f949544ba991d481..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/gl.php +++ /dev/null @@ -1,39 +0,0 @@ - "Neste servidor non está activada a compartición de servidor a servidor", -"Invalid or untrusted SSL certificate" => "Certificado SSL incorrecto ou non fiábel", -"Couldn't add remote share" => "Non foi posíbel engadir a compartición remota", -"Shared with you" => "Compartido con vostede", -"Shared with others" => "Compartido con outros", -"Shared by link" => "Compartido por ligazón", -"No files have been shared with you yet." => "Aínda non hai ficheiros compartidos con vostede.", -"You haven't shared any files yet." => "Aínda non compartiu ningún ficheiro.", -"You haven't shared any files by link yet." => "Aínda non compartiu ningún ficheiro por ligazón.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Quere engadir a compartición remota {name} desde {owner}@{remote}?", -"Remote share" => "Compartición remota", -"Remote share password" => "Contrasinal da compartición remota", -"Cancel" => "Cancelar", -"Add remote share" => "Engadir unha compartición remota", -"No ownCloud installation found at {remote}" => "Non se atopou unha instalación do ownCloud en {remote}", -"Invalid ownCloud url" => "URL incorrecta do ownCloud", -"Shared by" => "Compartido por", -"This share is password-protected" => "Esta compartición está protexida con contrasinal", -"The password is wrong. Try again." => "O contrasinal é incorrecto. Ténteo de novo.", -"Password" => "Contrasinal", -"Name" => "Nome", -"Share time" => "Compartir o tempo", -"Sorry, this link doesn’t seem to work anymore." => "Semella que esta ligazón non funciona.", -"Reasons might be:" => "As razóns poderían ser:", -"the item was removed" => "o elemento foi retirado", -"the link expired" => "a ligazón caducou", -"sharing is disabled" => "foi desactivada a compartición", -"For more info, please ask the person who sent this link." => "Para obter máis información, pregúntelle á persoa que lle enviou a ligazón.", -"Add to your ownCloud" => "Engadir ao seu ownCloud", -"Download" => "Descargar", -"Download %s" => "Descargar %s", -"Direct link" => "Ligazón directa", -"Remote Shares" => "Comparticións remotas", -"Allow other instances to mount public links shared from this server" => "Permitir que outras instancias monten ligazóns públicas compartidas desde este servidor", -"Allow users to mount public link shares" => "Permitirlle aos usuarios montar ligazóns públicas compartidas" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js new file mode 100644 index 0000000000000000000000000000000000000000..4e9ce97224041df1cc864d3e4dc8f98509c8bda7 --- /dev/null +++ b/apps/files_sharing/l10n/he.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "ביטול", + "Shared by" : "שותף על־ידי", + "Password" : "סיסמא", + "Name" : "שם", + "Download" : "הורדה" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json new file mode 100644 index 0000000000000000000000000000000000000000..fe209ca3ecdee7603536d2bff231eda248dcb60f --- /dev/null +++ b/apps/files_sharing/l10n/he.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "ביטול", + "Shared by" : "שותף על־ידי", + "Password" : "סיסמא", + "Name" : "שם", + "Download" : "הורדה" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/he.php b/apps/files_sharing/l10n/he.php deleted file mode 100644 index d5228c608f393cf1710b30e0f656251452fc4c46..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/he.php +++ /dev/null @@ -1,9 +0,0 @@ - "ביטול", -"Shared by" => "שותף על־ידי", -"Password" => "סיסמא", -"Name" => "שם", -"Download" => "הורדה" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/hi.js b/apps/files_sharing/l10n/hi.js new file mode 100644 index 0000000000000000000000000000000000000000..a9647c762d0c7cc88de6d444659f828c8fbc5b1e --- /dev/null +++ b/apps/files_sharing/l10n/hi.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "रद्द करें ", + "Shared by" : "द्वारा साझा", + "Password" : "पासवर्ड" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/hi.json b/apps/files_sharing/l10n/hi.json new file mode 100644 index 0000000000000000000000000000000000000000..5775830b621f7855b5f9b3e0181474f19e12e5e3 --- /dev/null +++ b/apps/files_sharing/l10n/hi.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "रद्द करें ", + "Shared by" : "द्वारा साझा", + "Password" : "पासवर्ड" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/hi.php b/apps/files_sharing/l10n/hi.php deleted file mode 100644 index e713e5b022fdc0c4f0594170f3cde3dc0ec7e023..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/hi.php +++ /dev/null @@ -1,7 +0,0 @@ - "रद्द करें ", -"Shared by" => "द्वारा साझा", -"Password" => "पासवर्ड" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/hr.js b/apps/files_sharing/l10n/hr.js new file mode 100644 index 0000000000000000000000000000000000000000..3c409ea159c86f90fef72b3edf45a918480ca114 --- /dev/null +++ b/apps/files_sharing/l10n/hr.js @@ -0,0 +1,37 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Dijeljenje resursa s poslužitelja na poslužitelj s ovog poslužitelja nije omogućeno.", + "Invalid or untrusted SSL certificate" : "Neispravna ili nepouzdana SSL potvrda", + "Couldn't add remote share" : "Udaljeni zajednički resurs nije moguće dodati", + "Shared with you" : "Podijeljeno s vama", + "Shared with others" : "Podijeljeno s ostalima", + "Shared by link" : "POdijeljeno putem veze", + "No files have been shared with you yet." : "S vama dosad još nisu podijeljene nikakve datoteke.", + "You haven't shared any files yet." : "Vi dosad još niste podijelili nikakve datoteke.", + "You haven't shared any files by link yet." : "Vi dosad još niste putem veze podijelili nikakve datoteke.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Želite li dodati udaljeni zajednički resurs {name} od {owner}@{remote}?", + "Remote share" : "Udaljeni zajednički resurs (za raspodjelu)", + "Remote share password" : "Lozinka za udaljeni zajednički resurs", + "Cancel" : "Odustanite", + "Add remote share" : "Dodajte udaljeni zajednički resurs", + "No ownCloud installation found at {remote}" : "Nijedna ownCloud instalacija nije nađena na {remote}", + "Invalid ownCloud url" : "Neispravan ownCloud URL", + "Shared by" : "Podijeljeno od strane", + "This share is password-protected" : "Ovaj zajednički resurs je zaštićen lozinkom", + "The password is wrong. Try again." : "Pogrešna lozinka. Pokušajte ponovno.", + "Password" : "Lozinka", + "Name" : "Naziv", + "Share time" : "Vrijeme dijeljenja", + "Sorry, this link doesn’t seem to work anymore." : "Žao nam je, čini se da ova veza više ne radi.", + "Reasons might be:" : "Mogući razlozi su:", + "the item was removed" : "stavka je uklonjena", + "the link expired" : "veza je istekla", + "sharing is disabled" : "dijeljenje je onemogućeno", + "For more info, please ask the person who sent this link." : "Za više informacija, molimo obratite se osobi koja je ovu vezu poslala.", + "Add to your ownCloud" : "Dodajte svome ownCloud", + "Download" : "Preuzmite", + "Download %s" : "Preuzmite %s", + "Direct link" : "Izravna veza" +}, +"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/hr.json b/apps/files_sharing/l10n/hr.json new file mode 100644 index 0000000000000000000000000000000000000000..cb37f80350152a3e5672ebb9b4541070534ee4ad --- /dev/null +++ b/apps/files_sharing/l10n/hr.json @@ -0,0 +1,35 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Dijeljenje resursa s poslužitelja na poslužitelj s ovog poslužitelja nije omogućeno.", + "Invalid or untrusted SSL certificate" : "Neispravna ili nepouzdana SSL potvrda", + "Couldn't add remote share" : "Udaljeni zajednički resurs nije moguće dodati", + "Shared with you" : "Podijeljeno s vama", + "Shared with others" : "Podijeljeno s ostalima", + "Shared by link" : "POdijeljeno putem veze", + "No files have been shared with you yet." : "S vama dosad još nisu podijeljene nikakve datoteke.", + "You haven't shared any files yet." : "Vi dosad još niste podijelili nikakve datoteke.", + "You haven't shared any files by link yet." : "Vi dosad još niste putem veze podijelili nikakve datoteke.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Želite li dodati udaljeni zajednički resurs {name} od {owner}@{remote}?", + "Remote share" : "Udaljeni zajednički resurs (za raspodjelu)", + "Remote share password" : "Lozinka za udaljeni zajednički resurs", + "Cancel" : "Odustanite", + "Add remote share" : "Dodajte udaljeni zajednički resurs", + "No ownCloud installation found at {remote}" : "Nijedna ownCloud instalacija nije nađena na {remote}", + "Invalid ownCloud url" : "Neispravan ownCloud URL", + "Shared by" : "Podijeljeno od strane", + "This share is password-protected" : "Ovaj zajednički resurs je zaštićen lozinkom", + "The password is wrong. Try again." : "Pogrešna lozinka. Pokušajte ponovno.", + "Password" : "Lozinka", + "Name" : "Naziv", + "Share time" : "Vrijeme dijeljenja", + "Sorry, this link doesn’t seem to work anymore." : "Žao nam je, čini se da ova veza više ne radi.", + "Reasons might be:" : "Mogući razlozi su:", + "the item was removed" : "stavka je uklonjena", + "the link expired" : "veza je istekla", + "sharing is disabled" : "dijeljenje je onemogućeno", + "For more info, please ask the person who sent this link." : "Za više informacija, molimo obratite se osobi koja je ovu vezu poslala.", + "Add to your ownCloud" : "Dodajte svome ownCloud", + "Download" : "Preuzmite", + "Download %s" : "Preuzmite %s", + "Direct link" : "Izravna veza" +},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/hr.php b/apps/files_sharing/l10n/hr.php deleted file mode 100644 index 2cb0d0596d070a2c3a850a8bc21d0717b58d96db..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/hr.php +++ /dev/null @@ -1,39 +0,0 @@ - "Dijeljenje resursa s poslužitelja na poslužitelj s ovog poslužitelja nije omogućeno.", -"Invalid or untrusted SSL certificate" => "Neispravna ili nepouzdana SSL potvrda", -"Couldn't add remote share" => "Udaljeni zajednički resurs nije moguće dodati", -"Shared with you" => "Podijeljeno s vama", -"Shared with others" => "Podijeljeno s ostalima", -"Shared by link" => "POdijeljeno putem veze", -"No files have been shared with you yet." => "S vama dosad još nisu podijeljene nikakve datoteke.", -"You haven't shared any files yet." => "Vi dosad još niste podijelili nikakve datoteke.", -"You haven't shared any files by link yet." => "Vi dosad još niste putem veze podijelili nikakve datoteke.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Želite li dodati udaljeni zajednički resurs {name} od {owner}@{remote}?", -"Remote share" => "Udaljeni zajednički resurs (za raspodjelu)", -"Remote share password" => "Lozinka za udaljeni zajednički resurs", -"Cancel" => "Odustanite", -"Add remote share" => "Dodajte udaljeni zajednički resurs", -"No ownCloud installation found at {remote}" => "Nijedna ownCloud instalacija nije nađena na {remote}", -"Invalid ownCloud url" => "Neispravan ownCloud URL", -"Shared by" => "Podijeljeno od strane", -"This share is password-protected" => "Ovaj zajednički resurs je zaštićen lozinkom", -"The password is wrong. Try again." => "Pogrešna lozinka. Pokušajte ponovno.", -"Password" => "Lozinka", -"Name" => "Naziv", -"Share time" => "Vrijeme dijeljenja", -"Sorry, this link doesn’t seem to work anymore." => "Žao nam je, čini se da ova veza više ne radi.", -"Reasons might be:" => "Mogući razlozi su:", -"the item was removed" => "stavka je uklonjena", -"the link expired" => "veza je istekla", -"sharing is disabled" => "dijeljenje je onemogućeno", -"For more info, please ask the person who sent this link." => "Za više informacija, molimo obratite se osobi koja je ovu vezu poslala.", -"Add to your ownCloud" => "Dodajte svome ownCloud", -"Download" => "Preuzmite", -"Download %s" => "Preuzmite %s", -"Direct link" => "Izravna veza", -"Remote Shares" => "Udaljeni zajednički resursi (za raspodjelu)", -"Allow other instances to mount public links shared from this server" => "Dopustite drugim instancama postavljanje javnih veza koje su podijeljene s ovog poslužitelja.", -"Allow users to mount public link shares" => "Dopustite korisnicima postavljanje podijeljenih javnih veza" -); -$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;"; diff --git a/apps/files_sharing/l10n/hu_HU.js b/apps/files_sharing/l10n/hu_HU.js new file mode 100644 index 0000000000000000000000000000000000000000..9472f88a99227638250fb103bdc10de001c6f30d --- /dev/null +++ b/apps/files_sharing/l10n/hu_HU.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "A kiszolgálók közötti megosztás nincs engedélyezve ezen a kiszolgálón", + "The mountpoint name contains invalid characters." : "A csatlakozási pont neve érvénytelen karaktereket tartalmaz ", + "Invalid or untrusted SSL certificate" : "Érvénytelen vagy nem megbízható az SSL tanúsítvány", + "Couldn't add remote share" : "A távoli megosztás nem hozható létre", + "Shared with you" : "Velem osztották meg", + "Shared with others" : "Én osztottam meg másokkal", + "Shared by link" : "Linkkel osztottam meg", + "No files have been shared with you yet." : "Még nem osztottak meg Önnel semmit.", + "You haven't shared any files yet." : "Még nem osztott meg másokkal semmit", + "You haven't shared any files by link yet." : "Még nem osztott meg link segítségével semmit.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Használatba kívánja venni a {name} távoli megosztást, amit a {owner}@{remote} címről kapott?", + "Remote share" : "Távoli megosztás", + "Remote share password" : "Jelszó a távoli megosztáshoz", + "Cancel" : "Mégsem", + "Add remote share" : "Távoli megosztás létrehozása", + "No ownCloud installation found at {remote}" : "Nem található ownCloud telepítés ezen a címen {remote}", + "Invalid ownCloud url" : "Érvénytelen ownCloud webcím", + "Shared by" : "Megosztotta Önnel", + "This share is password-protected" : "Ez egy jelszóval védett megosztás", + "The password is wrong. Try again." : "A megadott jelszó nem megfelelő. Próbálja újra!", + "Password" : "Jelszó", + "Name" : "Név", + "Share time" : "A megosztás időpontja", + "Sorry, this link doesn’t seem to work anymore." : "Sajnos úgy tűnik, ez a link már nem működik.", + "Reasons might be:" : "Ennek az oka a következő lehet:", + "the item was removed" : "az állományt időközben eltávolították", + "the link expired" : "lejárt a link érvényességi ideje", + "sharing is disabled" : "letiltásra került a megosztás", + "For more info, please ask the person who sent this link." : "További információért forduljon ahhoz, aki ezt a linket küldte Önnek!", + "Add to your ownCloud" : "Adjuk hozzá a saját ownCloudunkhoz", + "Download" : "Letöltés", + "Download %s" : "%s letöltése", + "Direct link" : "Közvetlen link" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/hu_HU.json b/apps/files_sharing/l10n/hu_HU.json new file mode 100644 index 0000000000000000000000000000000000000000..735228feaac0190cfee503c8876bbfd37d28f6e5 --- /dev/null +++ b/apps/files_sharing/l10n/hu_HU.json @@ -0,0 +1,36 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "A kiszolgálók közötti megosztás nincs engedélyezve ezen a kiszolgálón", + "The mountpoint name contains invalid characters." : "A csatlakozási pont neve érvénytelen karaktereket tartalmaz ", + "Invalid or untrusted SSL certificate" : "Érvénytelen vagy nem megbízható az SSL tanúsítvány", + "Couldn't add remote share" : "A távoli megosztás nem hozható létre", + "Shared with you" : "Velem osztották meg", + "Shared with others" : "Én osztottam meg másokkal", + "Shared by link" : "Linkkel osztottam meg", + "No files have been shared with you yet." : "Még nem osztottak meg Önnel semmit.", + "You haven't shared any files yet." : "Még nem osztott meg másokkal semmit", + "You haven't shared any files by link yet." : "Még nem osztott meg link segítségével semmit.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Használatba kívánja venni a {name} távoli megosztást, amit a {owner}@{remote} címről kapott?", + "Remote share" : "Távoli megosztás", + "Remote share password" : "Jelszó a távoli megosztáshoz", + "Cancel" : "Mégsem", + "Add remote share" : "Távoli megosztás létrehozása", + "No ownCloud installation found at {remote}" : "Nem található ownCloud telepítés ezen a címen {remote}", + "Invalid ownCloud url" : "Érvénytelen ownCloud webcím", + "Shared by" : "Megosztotta Önnel", + "This share is password-protected" : "Ez egy jelszóval védett megosztás", + "The password is wrong. Try again." : "A megadott jelszó nem megfelelő. Próbálja újra!", + "Password" : "Jelszó", + "Name" : "Név", + "Share time" : "A megosztás időpontja", + "Sorry, this link doesn’t seem to work anymore." : "Sajnos úgy tűnik, ez a link már nem működik.", + "Reasons might be:" : "Ennek az oka a következő lehet:", + "the item was removed" : "az állományt időközben eltávolították", + "the link expired" : "lejárt a link érvényességi ideje", + "sharing is disabled" : "letiltásra került a megosztás", + "For more info, please ask the person who sent this link." : "További információért forduljon ahhoz, aki ezt a linket küldte Önnek!", + "Add to your ownCloud" : "Adjuk hozzá a saját ownCloudunkhoz", + "Download" : "Letöltés", + "Download %s" : "%s letöltése", + "Direct link" : "Közvetlen link" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/hu_HU.php b/apps/files_sharing/l10n/hu_HU.php deleted file mode 100644 index 0194e0aa6b3e2ded702e6bae0d49e9f92a0f997d..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/hu_HU.php +++ /dev/null @@ -1,39 +0,0 @@ - "A kiszolgálók közötti megosztás nincs engedélyezve ezen a kiszolgálón", -"Invalid or untrusted SSL certificate" => "Érvénytelen vagy nem megbízható az SSL tanúsítvány", -"Couldn't add remote share" => "A távoli megosztás nem hozható létre", -"Shared with you" => "Velem osztották meg", -"Shared with others" => "Én osztottam meg másokkal", -"Shared by link" => "Linkkel osztottam meg", -"No files have been shared with you yet." => "Még nem osztottak meg Önnel semmit.", -"You haven't shared any files yet." => "Még nem osztott meg másokkal semmit", -"You haven't shared any files by link yet." => "Még nem osztott meg link segítségével semmit.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Használatba kívánja venni a {name} távoli megosztást, amit a {owner}@{remote} címről kapott?", -"Remote share" => "Távoli megosztás", -"Remote share password" => "Jelszó a távoli megosztáshoz", -"Cancel" => "Mégsem", -"Add remote share" => "Távoli megosztás létrehozása", -"No ownCloud installation found at {remote}" => "Nem található ownCloud telepítés ezen a címen {remote}", -"Invalid ownCloud url" => "Érvénytelen ownCloud webcím", -"Shared by" => "Megosztotta Önnel", -"This share is password-protected" => "Ez egy jelszóval védett megosztás", -"The password is wrong. Try again." => "A megadott jelszó nem megfelelő. Próbálja újra!", -"Password" => "Jelszó", -"Name" => "Név", -"Share time" => "A megosztás időpontja", -"Sorry, this link doesn’t seem to work anymore." => "Sajnos úgy tűnik, ez a link már nem működik.", -"Reasons might be:" => "Ennek az oka a következő lehet:", -"the item was removed" => "az állományt időközben eltávolították", -"the link expired" => "lejárt a link érvényességi ideje", -"sharing is disabled" => "letiltásra került a megosztás", -"For more info, please ask the person who sent this link." => "További információért forduljon ahhoz, aki ezt a linket küldte Önnek!", -"Add to your ownCloud" => "Adjuk hozzá a saját ownCloudunkhoz", -"Download" => "Letöltés", -"Download %s" => "%s letöltése", -"Direct link" => "Közvetlen link", -"Remote Shares" => "Távoli megosztások", -"Allow other instances to mount public links shared from this server" => "Engedélyezzük más ownCloud telepítéseknek, hogy becsatolják ennek a kiszolgálónak a nyilvános linkkel megadott megosztásait", -"Allow users to mount public link shares" => "Engedélyezzük, hogy felhasználóink becsatolják más kiszolgálók nyilvános, linkkel megadott megosztásait" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/hy.js b/apps/files_sharing/l10n/hy.js new file mode 100644 index 0000000000000000000000000000000000000000..10b9dfa1dd4dc12b7ef381a9ac24ad20cfa040c5 --- /dev/null +++ b/apps/files_sharing/l10n/hy.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_sharing", + { + "Download" : "Բեռնել" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/hy.json b/apps/files_sharing/l10n/hy.json new file mode 100644 index 0000000000000000000000000000000000000000..1d9890db3d988d2dece7eb30b2a372f4a569e860 --- /dev/null +++ b/apps/files_sharing/l10n/hy.json @@ -0,0 +1,4 @@ +{ "translations": { + "Download" : "Բեռնել" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/hy.php b/apps/files_sharing/l10n/hy.php deleted file mode 100644 index da200623e03e62dfffc18bcda6749d853ce77928..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/hy.php +++ /dev/null @@ -1,5 +0,0 @@ - "Բեռնել" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/ia.js b/apps/files_sharing/l10n/ia.js new file mode 100644 index 0000000000000000000000000000000000000000..c144fbd44f3d988a3d22272677e55cd32e1070d5 --- /dev/null +++ b/apps/files_sharing/l10n/ia.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Cancellar", + "Password" : "Contrasigno", + "Name" : "Nomine", + "Download" : "Discargar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ia.json b/apps/files_sharing/l10n/ia.json new file mode 100644 index 0000000000000000000000000000000000000000..d6153f18230a8a05088f438c5f906f4547c3957e --- /dev/null +++ b/apps/files_sharing/l10n/ia.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "Cancellar", + "Password" : "Contrasigno", + "Name" : "Nomine", + "Download" : "Discargar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ia.php b/apps/files_sharing/l10n/ia.php deleted file mode 100644 index c6feab0db28c790d99d3fd7e0a2db5679c437424..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ia.php +++ /dev/null @@ -1,8 +0,0 @@ - "Cancellar", -"Password" => "Contrasigno", -"Name" => "Nomine", -"Download" => "Discargar" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js new file mode 100644 index 0000000000000000000000000000000000000000..bc61073311b44cb3e8d6d0bcd1c74f44c6acb91e --- /dev/null +++ b/apps/files_sharing/l10n/id.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Berbagi server ke server tidak diaktifkan pada server ini", + "The mountpoint name contains invalid characters." : "Nama titik kait berisi karakter yang tidak sah.", + "Invalid or untrusted SSL certificate" : "Sertifikast SSL tidak sah atau tidak terpercaya", + "Couldn't add remote share" : "Tidak dapat menambahkan berbagi remote", + "Shared with you" : "Dibagikan dengan Anda", + "Shared with others" : "Dibagikan dengan lainnya", + "Shared by link" : "Dibagikan dengan tautan", + "No files have been shared with you yet." : "Tidak ada berkas yang dibagikan kepada Anda.", + "You haven't shared any files yet." : "Anda belum berbagi berkas apapun.", + "You haven't shared any files by link yet." : "Anda belum berbagi berkas dengan tautan satupun.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Apakah Anda ingin menambahkan berbagi remote {name} dari {owner}@{remote}?", + "Remote share" : "Berbagi remote", + "Remote share password" : "Sandi berbagi remote", + "Cancel" : "Batal", + "Add remote share" : "Tambah berbagi remote", + "No ownCloud installation found at {remote}" : "Tidak ada instalasi ownCloud yang ditemukan di {remote}", + "Invalid ownCloud url" : "URL ownCloud tidak sah", + "Shared by" : "Dibagikan oleh", + "This share is password-protected" : "Berbagi ini dilindungi sandi", + "The password is wrong. Try again." : "Sandi salah. Coba lagi", + "Password" : "Sandi", + "Name" : "Nama", + "Share time" : "Bagikan waktu", + "Sorry, this link doesn’t seem to work anymore." : "Maaf, tautan ini tampaknya tidak berfungsi lagi.", + "Reasons might be:" : "Alasan yang mungkin:", + "the item was removed" : "item telah dihapus", + "the link expired" : "tautan telah kadaluarsa", + "sharing is disabled" : "berbagi dinonaktifkan", + "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.", + "Add to your ownCloud" : "Tambahkan ke ownCloud Anda", + "Download" : "Unduh", + "Download %s" : "Unduh %s", + "Direct link" : "Tautan langsung" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json new file mode 100644 index 0000000000000000000000000000000000000000..a4b0a984969c3763d4bbdd7579dfba47905912e9 --- /dev/null +++ b/apps/files_sharing/l10n/id.json @@ -0,0 +1,36 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Berbagi server ke server tidak diaktifkan pada server ini", + "The mountpoint name contains invalid characters." : "Nama titik kait berisi karakter yang tidak sah.", + "Invalid or untrusted SSL certificate" : "Sertifikast SSL tidak sah atau tidak terpercaya", + "Couldn't add remote share" : "Tidak dapat menambahkan berbagi remote", + "Shared with you" : "Dibagikan dengan Anda", + "Shared with others" : "Dibagikan dengan lainnya", + "Shared by link" : "Dibagikan dengan tautan", + "No files have been shared with you yet." : "Tidak ada berkas yang dibagikan kepada Anda.", + "You haven't shared any files yet." : "Anda belum berbagi berkas apapun.", + "You haven't shared any files by link yet." : "Anda belum berbagi berkas dengan tautan satupun.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Apakah Anda ingin menambahkan berbagi remote {name} dari {owner}@{remote}?", + "Remote share" : "Berbagi remote", + "Remote share password" : "Sandi berbagi remote", + "Cancel" : "Batal", + "Add remote share" : "Tambah berbagi remote", + "No ownCloud installation found at {remote}" : "Tidak ada instalasi ownCloud yang ditemukan di {remote}", + "Invalid ownCloud url" : "URL ownCloud tidak sah", + "Shared by" : "Dibagikan oleh", + "This share is password-protected" : "Berbagi ini dilindungi sandi", + "The password is wrong. Try again." : "Sandi salah. Coba lagi", + "Password" : "Sandi", + "Name" : "Nama", + "Share time" : "Bagikan waktu", + "Sorry, this link doesn’t seem to work anymore." : "Maaf, tautan ini tampaknya tidak berfungsi lagi.", + "Reasons might be:" : "Alasan yang mungkin:", + "the item was removed" : "item telah dihapus", + "the link expired" : "tautan telah kadaluarsa", + "sharing is disabled" : "berbagi dinonaktifkan", + "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.", + "Add to your ownCloud" : "Tambahkan ke ownCloud Anda", + "Download" : "Unduh", + "Download %s" : "Unduh %s", + "Direct link" : "Tautan langsung" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/id.php b/apps/files_sharing/l10n/id.php deleted file mode 100644 index c591cbad7f30b01e57aa6a876406ee282440b7fe..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/id.php +++ /dev/null @@ -1,30 +0,0 @@ - "Berbagi server ke server tidaj diaktifkan pada server ini", -"Shared with you" => "Dibagikan dengan Anda", -"Shared with others" => "Dibagikan dengan lainnya", -"Shared by link" => "Dibagikan dengan tautan", -"No files have been shared with you yet." => "Tidak ada berkas yang dibagikan kepada Anda.", -"You haven't shared any files yet." => "Anda belum berbagi berkas apapun.", -"You haven't shared any files by link yet." => "Anda belum berbagi berkas dengan tautan satupun.", -"Cancel" => "Batal", -"No ownCloud installation found at {remote}" => "Tidak ada instalasi ownCloud yang ditemukan di {remote}", -"Invalid ownCloud url" => "URL ownCloud tidak sah", -"Shared by" => "Dibagikan oleh", -"This share is password-protected" => "Berbagi ini dilindungi sandi", -"The password is wrong. Try again." => "Sandi salah. Coba lagi", -"Password" => "Sandi", -"Name" => "Nama", -"Share time" => "Bagikan waktu", -"Sorry, this link doesn’t seem to work anymore." => "Maaf, tautan ini tampaknya tidak berfungsi lagi.", -"Reasons might be:" => "Alasan mungkin:", -"the item was removed" => "item telah dihapus", -"the link expired" => "tautan telah kadaluarsa", -"sharing is disabled" => "berbagi dinonaktifkan", -"For more info, please ask the person who sent this link." => "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.", -"Download" => "Unduh", -"Download %s" => "Unduh %s", -"Direct link" => "Tautan langsung", -"Allow users to mount public link shares" => "Izinkan pengguna untuk mengaitkan tautan berbagi publik" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js new file mode 100644 index 0000000000000000000000000000000000000000..ecce4e25d970cef953b1278c6176c0a679002051 --- /dev/null +++ b/apps/files_sharing/l10n/is.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Hætta við", + "Shared by" : "Deilt af", + "Password" : "Lykilorð", + "Name" : "Nafn", + "Download" : "Niðurhal" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json new file mode 100644 index 0000000000000000000000000000000000000000..889f8a32398a3a1eac8e909dd9f1a5a5e8e6e4f2 --- /dev/null +++ b/apps/files_sharing/l10n/is.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "Hætta við", + "Shared by" : "Deilt af", + "Password" : "Lykilorð", + "Name" : "Nafn", + "Download" : "Niðurhal" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/is.php b/apps/files_sharing/l10n/is.php deleted file mode 100644 index 3acd2159495ab73c8a7d5b750515d704afc1bade..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/is.php +++ /dev/null @@ -1,9 +0,0 @@ - "Hætta við", -"Shared by" => "Deilt af", -"Password" => "Lykilorð", -"Name" => "Nafn", -"Download" => "Niðurhal" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js new file mode 100644 index 0000000000000000000000000000000000000000..64ee7b18f6fb1ed3da28fbc8218e84b537867263 --- /dev/null +++ b/apps/files_sharing/l10n/it.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "La condivisione tra server non è abilitata su questo server", + "The mountpoint name contains invalid characters." : "Il nome del punto di mount contiene caratteri non validi.", + "Invalid or untrusted SSL certificate" : "Certificato SSL non valido o non attendibile", + "Couldn't add remote share" : "Impossibile aggiungere la condivisione remota", + "Shared with you" : "Condiviso con te", + "Shared with others" : "Condiviso con altri", + "Shared by link" : "Condiviso tramite collegamento", + "No files have been shared with you yet." : "Non è stato ancora condiviso alcun file con te.", + "You haven't shared any files yet." : "Non hai ancora condiviso alcun file.", + "You haven't shared any files by link yet." : "Non hai ancora condiviso alcun file tramite collegamento.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Vuoi aggiungere la condivisione remota {name} da {owner}@{remote}?", + "Remote share" : "Condivisione remota", + "Remote share password" : "Password della condivisione remota", + "Cancel" : "Annulla", + "Add remote share" : "Aggiungi condivisione remota", + "No ownCloud installation found at {remote}" : "Nessuna installazione di ownCloud trovata su {remote}", + "Invalid ownCloud url" : "URL di ownCloud non valido", + "Shared by" : "Condiviso da", + "This share is password-protected" : "Questa condivione è protetta da password", + "The password is wrong. Try again." : "La password è errata. Prova ancora.", + "Password" : "Password", + "Name" : "Nome", + "Share time" : "Tempo di condivisione", + "Sorry, this link doesn’t seem to work anymore." : "Spiacenti, questo collegamento sembra non essere più attivo.", + "Reasons might be:" : "I motivi potrebbero essere:", + "the item was removed" : "l'elemento è stato rimosso", + "the link expired" : "il collegamento è scaduto", + "sharing is disabled" : "la condivisione è disabilitata", + "For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.", + "Add to your ownCloud" : "Aggiungi al tuo ownCloud", + "Download" : "Scarica", + "Download %s" : "Scarica %s", + "Direct link" : "Collegamento diretto", + "Server-to-Server Sharing" : "Condivisione server-a-server", + "Allow users on this server to send shares to other servers" : "Consenti agli utenti su questo server di inviare condivisioni ad altri server", + "Allow users on this server to receive shares from other servers" : "Consenti agli utenti su questo server di ricevere condivisioni da altri server" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json new file mode 100644 index 0000000000000000000000000000000000000000..241c24febed73d65c230cc2b5d190370cfb78134 --- /dev/null +++ b/apps/files_sharing/l10n/it.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "La condivisione tra server non è abilitata su questo server", + "The mountpoint name contains invalid characters." : "Il nome del punto di mount contiene caratteri non validi.", + "Invalid or untrusted SSL certificate" : "Certificato SSL non valido o non attendibile", + "Couldn't add remote share" : "Impossibile aggiungere la condivisione remota", + "Shared with you" : "Condiviso con te", + "Shared with others" : "Condiviso con altri", + "Shared by link" : "Condiviso tramite collegamento", + "No files have been shared with you yet." : "Non è stato ancora condiviso alcun file con te.", + "You haven't shared any files yet." : "Non hai ancora condiviso alcun file.", + "You haven't shared any files by link yet." : "Non hai ancora condiviso alcun file tramite collegamento.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Vuoi aggiungere la condivisione remota {name} da {owner}@{remote}?", + "Remote share" : "Condivisione remota", + "Remote share password" : "Password della condivisione remota", + "Cancel" : "Annulla", + "Add remote share" : "Aggiungi condivisione remota", + "No ownCloud installation found at {remote}" : "Nessuna installazione di ownCloud trovata su {remote}", + "Invalid ownCloud url" : "URL di ownCloud non valido", + "Shared by" : "Condiviso da", + "This share is password-protected" : "Questa condivione è protetta da password", + "The password is wrong. Try again." : "La password è errata. Prova ancora.", + "Password" : "Password", + "Name" : "Nome", + "Share time" : "Tempo di condivisione", + "Sorry, this link doesn’t seem to work anymore." : "Spiacenti, questo collegamento sembra non essere più attivo.", + "Reasons might be:" : "I motivi potrebbero essere:", + "the item was removed" : "l'elemento è stato rimosso", + "the link expired" : "il collegamento è scaduto", + "sharing is disabled" : "la condivisione è disabilitata", + "For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.", + "Add to your ownCloud" : "Aggiungi al tuo ownCloud", + "Download" : "Scarica", + "Download %s" : "Scarica %s", + "Direct link" : "Collegamento diretto", + "Server-to-Server Sharing" : "Condivisione server-a-server", + "Allow users on this server to send shares to other servers" : "Consenti agli utenti su questo server di inviare condivisioni ad altri server", + "Allow users on this server to receive shares from other servers" : "Consenti agli utenti su questo server di ricevere condivisioni da altri server" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/it.php b/apps/files_sharing/l10n/it.php deleted file mode 100644 index 5aad92e7d0917e7f466bf9aa352c6d333e4cd8bf..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/it.php +++ /dev/null @@ -1,40 +0,0 @@ - "La condivisione tra server non è abilitata su questo server", -"The mountpoint name contains invalid characters." => "Il nome del punto di mount contiene caratteri non validi.", -"Invalid or untrusted SSL certificate" => "Certificato SSL non valido o non attendibile", -"Couldn't add remote share" => "Impossibile aggiungere la condivisione remota", -"Shared with you" => "Condiviso con te", -"Shared with others" => "Condiviso con altri", -"Shared by link" => "Condiviso tramite collegamento", -"No files have been shared with you yet." => "Non è stato ancora condiviso alcun file con te.", -"You haven't shared any files yet." => "Non hai ancora condiviso alcun file.", -"You haven't shared any files by link yet." => "Non hai ancora condiviso alcun file tramite collegamento.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Vuoi aggiungere la condivisione remota {name} da {owner}@{remote}?", -"Remote share" => "Condivisione remota", -"Remote share password" => "Password della condivisione remota", -"Cancel" => "Annulla", -"Add remote share" => "Aggiungi condivisione remota", -"No ownCloud installation found at {remote}" => "Nessuna installazione di ownCloud trovata su {remote}", -"Invalid ownCloud url" => "URL di ownCloud non valido", -"Shared by" => "Condiviso da", -"This share is password-protected" => "Questa condivione è protetta da password", -"The password is wrong. Try again." => "La password è errata. Prova ancora.", -"Password" => "Password", -"Name" => "Nome", -"Share time" => "Tempo di condivisione", -"Sorry, this link doesn’t seem to work anymore." => "Spiacenti, questo collegamento sembra non essere più attivo.", -"Reasons might be:" => "I motivi potrebbero essere:", -"the item was removed" => "l'elemento è stato rimosso", -"the link expired" => "il collegamento è scaduto", -"sharing is disabled" => "la condivisione è disabilitata", -"For more info, please ask the person who sent this link." => "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.", -"Add to your ownCloud" => "Aggiungi al tuo ownCloud", -"Download" => "Scarica", -"Download %s" => "Scarica %s", -"Direct link" => "Collegamento diretto", -"Remote Shares" => "Condivisioni remote", -"Allow other instances to mount public links shared from this server" => "Permetti ad altre istanze di montare collegamenti pubblici condivisi da questo server", -"Allow users to mount public link shares" => "Permetti agli utenti di montare condivisioni con collegamento pubblico" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js new file mode 100644 index 0000000000000000000000000000000000000000..c0626abb2225ddb1fb1e3a77f2f4eef0f8facb73 --- /dev/null +++ b/apps/files_sharing/l10n/ja.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "このサーバーでは、サーバー間の共有が有効ではありません", + "The mountpoint name contains invalid characters." : "マウントポイント名 に不正な文字列が含まれています。", + "Invalid or untrusted SSL certificate" : "無効または信頼できないSSL証明書", + "Couldn't add remote share" : "リモート共有を追加できませんでした", + "Shared with you" : "他ユーザーがあなたと共有中", + "Shared with others" : "他ユーザーと共有中", + "Shared by link" : "URLリンクで共有中", + "No files have been shared with you yet." : "他のユーザーがあなたと共有しているファイルはありません。", + "You haven't shared any files yet." : "他のユーザーと共有しているファイルはありません。", + "You haven't shared any files by link yet." : "URLリンクで共有しているファイルはありません。", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} からリモート共有 {name} を追加してもよろしいですか?", + "Remote share" : "リモート共有", + "Remote share password" : "リモート共有のパスワード", + "Cancel" : "キャンセル", + "Add remote share" : "リモート共有を追加", + "No ownCloud installation found at {remote}" : "{remote} にはownCloudがインストールされていません", + "Invalid ownCloud url" : "無効なownCloud URL です", + "Shared by" : "共有者:", + "This share is password-protected" : "この共有はパスワードで保護されています", + "The password is wrong. Try again." : "パスワードが間違っています。再試行してください。", + "Password" : "パスワード", + "Name" : "名前", + "Share time" : "共有時間", + "Sorry, this link doesn’t seem to work anymore." : "申し訳ございません。このリンクはもう利用できません。", + "Reasons might be:" : "理由は以下の通りと考えられます:", + "the item was removed" : "アイテムが削除されました", + "the link expired" : "リンクの期限が切れています", + "sharing is disabled" : "共有は無効になっています", + "For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。", + "Add to your ownCloud" : "ownCloud に追加", + "Download" : "ダウンロード", + "Download %s" : "%s をダウンロード", + "Direct link" : "リンク", + "Server-to-Server Sharing" : "サーバー間共有", + "Allow users on this server to send shares to other servers" : "ユーザーがこのサーバーから他のサーバーに共有することを許可する", + "Allow users on this server to receive shares from other servers" : "ユーザーが他のサーバーからこのサーバーに共有することを許可する" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..1a199b9e6dc4214e3406e10adc2572ed94a4f4d9 --- /dev/null +++ b/apps/files_sharing/l10n/ja.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "このサーバーでは、サーバー間の共有が有効ではありません", + "The mountpoint name contains invalid characters." : "マウントポイント名 に不正な文字列が含まれています。", + "Invalid or untrusted SSL certificate" : "無効または信頼できないSSL証明書", + "Couldn't add remote share" : "リモート共有を追加できませんでした", + "Shared with you" : "他ユーザーがあなたと共有中", + "Shared with others" : "他ユーザーと共有中", + "Shared by link" : "URLリンクで共有中", + "No files have been shared with you yet." : "他のユーザーがあなたと共有しているファイルはありません。", + "You haven't shared any files yet." : "他のユーザーと共有しているファイルはありません。", + "You haven't shared any files by link yet." : "URLリンクで共有しているファイルはありません。", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} からリモート共有 {name} を追加してもよろしいですか?", + "Remote share" : "リモート共有", + "Remote share password" : "リモート共有のパスワード", + "Cancel" : "キャンセル", + "Add remote share" : "リモート共有を追加", + "No ownCloud installation found at {remote}" : "{remote} にはownCloudがインストールされていません", + "Invalid ownCloud url" : "無効なownCloud URL です", + "Shared by" : "共有者:", + "This share is password-protected" : "この共有はパスワードで保護されています", + "The password is wrong. Try again." : "パスワードが間違っています。再試行してください。", + "Password" : "パスワード", + "Name" : "名前", + "Share time" : "共有時間", + "Sorry, this link doesn’t seem to work anymore." : "申し訳ございません。このリンクはもう利用できません。", + "Reasons might be:" : "理由は以下の通りと考えられます:", + "the item was removed" : "アイテムが削除されました", + "the link expired" : "リンクの期限が切れています", + "sharing is disabled" : "共有は無効になっています", + "For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。", + "Add to your ownCloud" : "ownCloud に追加", + "Download" : "ダウンロード", + "Download %s" : "%s をダウンロード", + "Direct link" : "リンク", + "Server-to-Server Sharing" : "サーバー間共有", + "Allow users on this server to send shares to other servers" : "ユーザーがこのサーバーから他のサーバーに共有することを許可する", + "Allow users on this server to receive shares from other servers" : "ユーザーが他のサーバーからこのサーバーに共有することを許可する" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ja.php b/apps/files_sharing/l10n/ja.php deleted file mode 100644 index 7a89a180b43dd46b15131d2ad602386ed7fe1e4b..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ja.php +++ /dev/null @@ -1,40 +0,0 @@ - "このサーバーでは、サーバー間の共有が有効ではありません", -"The mountpoint name contains invalid characters." => "マウントポイント名 に不正な文字列が含まれています。", -"Invalid or untrusted SSL certificate" => "無効または信頼できないSSL証明書", -"Couldn't add remote share" => "リモート共有を追加できませんでした", -"Shared with you" => "他ユーザーがあなたと共有中", -"Shared with others" => "他ユーザーと共有中", -"Shared by link" => "URLリンクで共有中", -"No files have been shared with you yet." => "他のユーザーがあなたと共有しているファイルはありません。", -"You haven't shared any files yet." => "他のユーザーと共有しているファイルはありません。", -"You haven't shared any files by link yet." => "URLリンクで共有しているファイルはありません。", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "{owner}@{remote} からリモート共有 {name} を追加してもよろしいですか?", -"Remote share" => "リモート共有", -"Remote share password" => "リモート共有のパスワード", -"Cancel" => "キャンセル", -"Add remote share" => "リモート共有を追加", -"No ownCloud installation found at {remote}" => "{remote} にはownCloudがインストールされていません", -"Invalid ownCloud url" => "無効なownCloud URL です", -"Shared by" => "共有者:", -"This share is password-protected" => "この共有はパスワードで保護されています", -"The password is wrong. Try again." => "パスワードが間違っています。再試行してください。", -"Password" => "パスワード", -"Name" => "名前", -"Share time" => "共有時間", -"Sorry, this link doesn’t seem to work anymore." => "申し訳ございません。このリンクはもう利用できません。", -"Reasons might be:" => "理由は以下の通りと考えられます:", -"the item was removed" => "アイテムが削除されました", -"the link expired" => "リンクの期限が切れています", -"sharing is disabled" => "共有は無効になっています", -"For more info, please ask the person who sent this link." => "不明な点は、こちらのリンクの提供者に確認をお願いします。", -"Add to your ownCloud" => "ownCloud に追加", -"Download" => "ダウンロード", -"Download %s" => "%s をダウンロード", -"Direct link" => "リンク", -"Remote Shares" => "リモート共有", -"Allow other instances to mount public links shared from this server" => "このサーバーにおけるURLでの共有を他のインスタンスからマウントできるようにする", -"Allow users to mount public link shares" => "ユーザーがURLでの共有をマウントできるようにする" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/jv.js b/apps/files_sharing/l10n/jv.js new file mode 100644 index 0000000000000000000000000000000000000000..6a7a3e6fedc7e02a7a7baf7e634e620e08bf36d4 --- /dev/null +++ b/apps/files_sharing/l10n/jv.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "files_sharing", + { + "Download" : "Njipuk" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/jv.json b/apps/files_sharing/l10n/jv.json new file mode 100644 index 0000000000000000000000000000000000000000..5122607580c270429178ceb9bd72f2c7fe50b205 --- /dev/null +++ b/apps/files_sharing/l10n/jv.json @@ -0,0 +1,4 @@ +{ "translations": { + "Download" : "Njipuk" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/jv.php b/apps/files_sharing/l10n/jv.php deleted file mode 100644 index 690632bdba02f02aa1d936feb666acda97002e8e..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/jv.php +++ /dev/null @@ -1,5 +0,0 @@ - "Njipuk" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js new file mode 100644 index 0000000000000000000000000000000000000000..df36093b6882308b3b62d0703cbf90900766a4fe --- /dev/null +++ b/apps/files_sharing/l10n/ka_GE.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "უარყოფა", + "Shared by" : "აზიარებს", + "Password" : "პაროლი", + "Name" : "სახელი", + "Download" : "ჩამოტვირთვა" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json new file mode 100644 index 0000000000000000000000000000000000000000..acebf7caa30fc06446871011fc526d1f0e712cec --- /dev/null +++ b/apps/files_sharing/l10n/ka_GE.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "უარყოფა", + "Shared by" : "აზიარებს", + "Password" : "პაროლი", + "Name" : "სახელი", + "Download" : "ჩამოტვირთვა" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ka_GE.php b/apps/files_sharing/l10n/ka_GE.php deleted file mode 100644 index 0fcf07f3bb1726b5c4d54e156808b9bb53200608..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ka_GE.php +++ /dev/null @@ -1,9 +0,0 @@ - "უარყოფა", -"Shared by" => "აზიარებს", -"Password" => "პაროლი", -"Name" => "სახელი", -"Download" => "ჩამოტვირთვა" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/km.js b/apps/files_sharing/l10n/km.js new file mode 100644 index 0000000000000000000000000000000000000000..d98f1df047e3d42ca0089f88f4479122cf49f886 --- /dev/null +++ b/apps/files_sharing/l10n/km.js @@ -0,0 +1,20 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "បោះបង់", + "Shared by" : "បាន​ចែក​រំលែក​ដោយ", + "This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់", + "The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។", + "Password" : "ពាក្យសម្ងាត់", + "Name" : "ឈ្មោះ", + "Sorry, this link doesn’t seem to work anymore." : "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។", + "Reasons might be:" : "មូលហេតុ​អាច​ជា៖", + "the item was removed" : "របស់​ត្រូវ​បាន​ដក​ចេញ", + "the link expired" : "តំណ​ផុត​ពេល​កំណត់", + "sharing is disabled" : "មិន​អនុញ្ញាត​ការ​ចែករំលែក", + "For more info, please ask the person who sent this link." : "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។", + "Download" : "ទាញយក", + "Download %s" : "ទាញយក %s", + "Direct link" : "តំណ​ផ្ទាល់" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/km.json b/apps/files_sharing/l10n/km.json new file mode 100644 index 0000000000000000000000000000000000000000..283ddcf871a75364cd0ff7cc0156f7f994d97b58 --- /dev/null +++ b/apps/files_sharing/l10n/km.json @@ -0,0 +1,18 @@ +{ "translations": { + "Cancel" : "បោះបង់", + "Shared by" : "បាន​ចែក​រំលែក​ដោយ", + "This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់", + "The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។", + "Password" : "ពាក្យសម្ងាត់", + "Name" : "ឈ្មោះ", + "Sorry, this link doesn’t seem to work anymore." : "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។", + "Reasons might be:" : "មូលហេតុ​អាច​ជា៖", + "the item was removed" : "របស់​ត្រូវ​បាន​ដក​ចេញ", + "the link expired" : "តំណ​ផុត​ពេល​កំណត់", + "sharing is disabled" : "មិន​អនុញ្ញាត​ការ​ចែករំលែក", + "For more info, please ask the person who sent this link." : "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។", + "Download" : "ទាញយក", + "Download %s" : "ទាញយក %s", + "Direct link" : "តំណ​ផ្ទាល់" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/km.php b/apps/files_sharing/l10n/km.php deleted file mode 100644 index 605266d6da15f53059b5eda51c935b5e672971a3..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/km.php +++ /dev/null @@ -1,19 +0,0 @@ - "បោះបង់", -"Shared by" => "បាន​ចែក​រំលែក​ដោយ", -"This share is password-protected" => "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់", -"The password is wrong. Try again." => "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។", -"Password" => "ពាក្យសម្ងាត់", -"Name" => "ឈ្មោះ", -"Sorry, this link doesn’t seem to work anymore." => "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។", -"Reasons might be:" => "មូលហេតុ​អាច​ជា៖", -"the item was removed" => "របស់​ត្រូវ​បាន​ដក​ចេញ", -"the link expired" => "តំណ​ផុត​ពេល​កំណត់", -"sharing is disabled" => "មិន​អនុញ្ញាត​ការ​ចែករំលែក", -"For more info, please ask the person who sent this link." => "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។", -"Download" => "ទាញយក", -"Download %s" => "ទាញយក %s", -"Direct link" => "តំណ​ផ្ទាល់" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js new file mode 100644 index 0000000000000000000000000000000000000000..88fe10788c91ccf908d776f08dcfd3d08b7ab227 --- /dev/null +++ b/apps/files_sharing/l10n/ko.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "취소", + "Shared by" : "공유한 사용자:", + "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", + "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", + "Password" : "암호", + "Name" : "이름", + "Sorry, this link doesn’t seem to work anymore." : "죄송합니다. 이 링크는 더 이상 작동하지 않습니다.", + "Reasons might be:" : "이유는 다음과 같을 수 있습니다:", + "the item was removed" : "항목이 삭제됨", + "the link expired" : "링크가 만료됨", + "sharing is disabled" : "공유가 비활성화됨", + "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", + "Download" : "다운로드", + "Direct link" : "직접 링크" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..e005feecef10ca6aa8b09e8107ce0e624aee009d --- /dev/null +++ b/apps/files_sharing/l10n/ko.json @@ -0,0 +1,17 @@ +{ "translations": { + "Cancel" : "취소", + "Shared by" : "공유한 사용자:", + "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", + "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", + "Password" : "암호", + "Name" : "이름", + "Sorry, this link doesn’t seem to work anymore." : "죄송합니다. 이 링크는 더 이상 작동하지 않습니다.", + "Reasons might be:" : "이유는 다음과 같을 수 있습니다:", + "the item was removed" : "항목이 삭제됨", + "the link expired" : "링크가 만료됨", + "sharing is disabled" : "공유가 비활성화됨", + "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", + "Download" : "다운로드", + "Direct link" : "직접 링크" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ko.php b/apps/files_sharing/l10n/ko.php deleted file mode 100644 index 1a75eca32f6f30572c1bbb7f798804178cdfa2ce..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ko.php +++ /dev/null @@ -1,18 +0,0 @@ - "취소", -"Shared by" => "공유한 사용자:", -"This share is password-protected" => "이 공유는 암호로 보호되어 있습니다", -"The password is wrong. Try again." => "암호가 잘못되었습니다. 다시 입력해 주십시오.", -"Password" => "암호", -"Name" => "이름", -"Sorry, this link doesn’t seem to work anymore." => "죄송합니다. 이 링크는 더 이상 작동하지 않습니다.", -"Reasons might be:" => "이유는 다음과 같을 수 있습니다:", -"the item was removed" => "항목이 삭제됨", -"the link expired" => "링크가 만료됨", -"sharing is disabled" => "공유가 비활성화됨", -"For more info, please ask the person who sent this link." => "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", -"Download" => "다운로드", -"Direct link" => "직접 링크" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/ku_IQ.js b/apps/files_sharing/l10n/ku_IQ.js new file mode 100644 index 0000000000000000000000000000000000000000..f1549d46c0fdcb15b29087f16ec41d1fbab3c652 --- /dev/null +++ b/apps/files_sharing/l10n/ku_IQ.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "لابردن", + "Password" : "وشەی تێپەربو", + "Name" : "ناو", + "Download" : "داگرتن" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ku_IQ.json b/apps/files_sharing/l10n/ku_IQ.json new file mode 100644 index 0000000000000000000000000000000000000000..7be49d0c5e2bedc0bfd7301b9de9ca44f6e13241 --- /dev/null +++ b/apps/files_sharing/l10n/ku_IQ.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "لابردن", + "Password" : "وشەی تێپەربو", + "Name" : "ناو", + "Download" : "داگرتن" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ku_IQ.php b/apps/files_sharing/l10n/ku_IQ.php deleted file mode 100644 index 50f75a7b5730be0fc19af2659368394d43239fc3..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ku_IQ.php +++ /dev/null @@ -1,8 +0,0 @@ - "لابردن", -"Password" => "وشەی تێپەربو", -"Name" => "ناو", -"Download" => "داگرتن" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/lb.js b/apps/files_sharing/l10n/lb.js new file mode 100644 index 0000000000000000000000000000000000000000..f391757f7094a8cd0e8fb7fdbb699df931ffc421 --- /dev/null +++ b/apps/files_sharing/l10n/lb.js @@ -0,0 +1,11 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Ofbriechen", + "Shared by" : "Gedeelt vun", + "The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.", + "Password" : "Passwuert", + "Name" : "Numm", + "Download" : "Download" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/lb.json b/apps/files_sharing/l10n/lb.json new file mode 100644 index 0000000000000000000000000000000000000000..07d504d9165987871400aa7466f11ff8c68b76d0 --- /dev/null +++ b/apps/files_sharing/l10n/lb.json @@ -0,0 +1,9 @@ +{ "translations": { + "Cancel" : "Ofbriechen", + "Shared by" : "Gedeelt vun", + "The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.", + "Password" : "Passwuert", + "Name" : "Numm", + "Download" : "Download" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/lb.php b/apps/files_sharing/l10n/lb.php deleted file mode 100644 index 0657d968264720e8857d7d3dce8ae69e690098c4..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/lb.php +++ /dev/null @@ -1,10 +0,0 @@ - "Ofbriechen", -"Shared by" => "Gedeelt vun", -"The password is wrong. Try again." => "Den Passwuert ass incorrect. Probeier ed nach eng keier.", -"Password" => "Passwuert", -"Name" => "Numm", -"Download" => "Download" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js new file mode 100644 index 0000000000000000000000000000000000000000..9a7145bbdae6ffb84fb3defc378eee131c54a435 --- /dev/null +++ b/apps/files_sharing/l10n/lt_LT.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Atšaukti", + "Shared by" : "Dalinasi", + "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", + "The password is wrong. Try again." : "Netinka slaptažodis: Bandykite dar kartą.", + "Password" : "Slaptažodis", + "Name" : "Pavadinimas", + "Sorry, this link doesn’t seem to work anymore." : "Atleiskite, panašu, kad nuoroda yra neveiksni.", + "Reasons might be:" : "Galimos priežastys:", + "the item was removed" : "elementas buvo pašalintas", + "the link expired" : "baigėsi nuorodos galiojimo laikas", + "sharing is disabled" : "dalinimasis yra išjungtas", + "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", + "Download" : "Atsisiųsti", + "Direct link" : "Tiesioginė nuoroda" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json new file mode 100644 index 0000000000000000000000000000000000000000..2da5fb37d50eea12dbd75ee7f2ddb2c3bacbf094 --- /dev/null +++ b/apps/files_sharing/l10n/lt_LT.json @@ -0,0 +1,17 @@ +{ "translations": { + "Cancel" : "Atšaukti", + "Shared by" : "Dalinasi", + "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", + "The password is wrong. Try again." : "Netinka slaptažodis: Bandykite dar kartą.", + "Password" : "Slaptažodis", + "Name" : "Pavadinimas", + "Sorry, this link doesn’t seem to work anymore." : "Atleiskite, panašu, kad nuoroda yra neveiksni.", + "Reasons might be:" : "Galimos priežastys:", + "the item was removed" : "elementas buvo pašalintas", + "the link expired" : "baigėsi nuorodos galiojimo laikas", + "sharing is disabled" : "dalinimasis yra išjungtas", + "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", + "Download" : "Atsisiųsti", + "Direct link" : "Tiesioginė nuoroda" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/lt_LT.php b/apps/files_sharing/l10n/lt_LT.php deleted file mode 100644 index 4742d2ccd9dac6bbfa9deced3a2eceff8bb0a378..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/lt_LT.php +++ /dev/null @@ -1,18 +0,0 @@ - "Atšaukti", -"Shared by" => "Dalinasi", -"This share is password-protected" => "Turinys apsaugotas slaptažodžiu", -"The password is wrong. Try again." => "Netinka slaptažodis: Bandykite dar kartą.", -"Password" => "Slaptažodis", -"Name" => "Pavadinimas", -"Sorry, this link doesn’t seem to work anymore." => "Atleiskite, panašu, kad nuoroda yra neveiksni.", -"Reasons might be:" => "Galimos priežastys:", -"the item was removed" => "elementas buvo pašalintas", -"the link expired" => "baigėsi nuorodos galiojimo laikas", -"sharing is disabled" => "dalinimasis yra išjungtas", -"For more info, please ask the person who sent this link." => "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", -"Download" => "Atsisiųsti", -"Direct link" => "Tiesioginė nuoroda" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js new file mode 100644 index 0000000000000000000000000000000000000000..c786d7f3f1870ee6398b7c6e9c6d68f636cab9f7 --- /dev/null +++ b/apps/files_sharing/l10n/lv.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Atcelt", + "Shared by" : "Dalījās", + "Password" : "Parole", + "Name" : "Nosaukums", + "Download" : "Lejupielādēt" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json new file mode 100644 index 0000000000000000000000000000000000000000..dc317305cc56a8f37ba1ccdf85df6709669bd2d8 --- /dev/null +++ b/apps/files_sharing/l10n/lv.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "Atcelt", + "Shared by" : "Dalījās", + "Password" : "Parole", + "Name" : "Nosaukums", + "Download" : "Lejupielādēt" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/lv.php b/apps/files_sharing/l10n/lv.php deleted file mode 100644 index 33182d25eb792faf85c036dcd1fb0c36b5d6e8b4..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/lv.php +++ /dev/null @@ -1,9 +0,0 @@ - "Atcelt", -"Shared by" => "Dalījās", -"Password" => "Parole", -"Name" => "Nosaukums", -"Download" => "Lejupielādēt" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"; diff --git a/apps/files_sharing/l10n/mk.js b/apps/files_sharing/l10n/mk.js new file mode 100644 index 0000000000000000000000000000000000000000..028c2f7ee0f5fc41f1d56fcc9a8133b4861a017e --- /dev/null +++ b/apps/files_sharing/l10n/mk.js @@ -0,0 +1,27 @@ +OC.L10N.register( + "files_sharing", + { + "Shared with you" : "Споделено со тебе", + "Shared with others" : "Сподели со останатите", + "Shared by link" : "Споделено со врска", + "No files have been shared with you yet." : "Ниту една датотека сеуште не била споделена со вас.", + "You haven't shared any files yet." : "Вие досега немате споделено ниту една датотека.", + "You haven't shared any files by link yet." : "Сеуште немате споделено датотека со врска.", + "Cancel" : "Откажи", + "Shared by" : "Споделено од", + "This share is password-protected" : "Ова споделување е заштитено со лозинка", + "The password is wrong. Try again." : "Лозинката е грешна. Обиди се повторно.", + "Password" : "Лозинка", + "Name" : "Име", + "Share time" : "Сподели време", + "Sorry, this link doesn’t seem to work anymore." : "Извенете, но овој линк изгледа дека повеќе не функционира.", + "Reasons might be:" : "Причината може да биде:", + "the item was removed" : "предметот беше одстранет", + "the link expired" : "времетраењето на линкот е изминато", + "sharing is disabled" : "споделувањето не е дозволено", + "For more info, please ask the person who sent this link." : "За повеќе информации, прашајте го лицето кое ви ја испратила врската.", + "Download" : "Преземи", + "Download %s" : "Преземи %s", + "Direct link" : "Директна врска" +}, +"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files_sharing/l10n/mk.json b/apps/files_sharing/l10n/mk.json new file mode 100644 index 0000000000000000000000000000000000000000..9e51f668eb0ae8caca1735d18b0dded0f3ec8ddc --- /dev/null +++ b/apps/files_sharing/l10n/mk.json @@ -0,0 +1,25 @@ +{ "translations": { + "Shared with you" : "Споделено со тебе", + "Shared with others" : "Сподели со останатите", + "Shared by link" : "Споделено со врска", + "No files have been shared with you yet." : "Ниту една датотека сеуште не била споделена со вас.", + "You haven't shared any files yet." : "Вие досега немате споделено ниту една датотека.", + "You haven't shared any files by link yet." : "Сеуште немате споделено датотека со врска.", + "Cancel" : "Откажи", + "Shared by" : "Споделено од", + "This share is password-protected" : "Ова споделување е заштитено со лозинка", + "The password is wrong. Try again." : "Лозинката е грешна. Обиди се повторно.", + "Password" : "Лозинка", + "Name" : "Име", + "Share time" : "Сподели време", + "Sorry, this link doesn’t seem to work anymore." : "Извенете, но овој линк изгледа дека повеќе не функционира.", + "Reasons might be:" : "Причината може да биде:", + "the item was removed" : "предметот беше одстранет", + "the link expired" : "времетраењето на линкот е изминато", + "sharing is disabled" : "споделувањето не е дозволено", + "For more info, please ask the person who sent this link." : "За повеќе информации, прашајте го лицето кое ви ја испратила врската.", + "Download" : "Преземи", + "Download %s" : "Преземи %s", + "Direct link" : "Директна врска" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/mk.php b/apps/files_sharing/l10n/mk.php deleted file mode 100644 index 4a4a1c1aab2ccbd509e756b5fb7c54ed10c2617b..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/mk.php +++ /dev/null @@ -1,26 +0,0 @@ - "Споделено со тебе", -"Shared with others" => "Сподели со останатите", -"Shared by link" => "Споделено со врска", -"No files have been shared with you yet." => "Ниту една датотека сеуште не била споделена со вас.", -"You haven't shared any files yet." => "Вие досега немате споделено ниту една датотека.", -"You haven't shared any files by link yet." => "Сеуште немате споделено датотека со врска.", -"Cancel" => "Откажи", -"Shared by" => "Споделено од", -"This share is password-protected" => "Ова споделување е заштитено со лозинка", -"The password is wrong. Try again." => "Лозинката е грешна. Обиди се повторно.", -"Password" => "Лозинка", -"Name" => "Име", -"Share time" => "Сподели време", -"Sorry, this link doesn’t seem to work anymore." => "Извенете, но овој линк изгледа дека повеќе не функционира.", -"Reasons might be:" => "Причината може да биде:", -"the item was removed" => "предметот беше одстранет", -"the link expired" => "времетраењето на линкот е изминато", -"sharing is disabled" => "споделувањето не е дозволено", -"For more info, please ask the person who sent this link." => "За повеќе информации, прашајте го лицето кое ви ја испратила врската.", -"Download" => "Преземи", -"Download %s" => "Преземи %s", -"Direct link" => "Директна врска" -); -$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/apps/files_sharing/l10n/ms_MY.js b/apps/files_sharing/l10n/ms_MY.js new file mode 100644 index 0000000000000000000000000000000000000000..92ca90bb60ee6f7ccffadedc50195f12cd5a0fc2 --- /dev/null +++ b/apps/files_sharing/l10n/ms_MY.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Batal", + "Shared by" : "Dikongsi dengan", + "Password" : "Kata laluan", + "Name" : "Nama", + "Download" : "Muat turun" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ms_MY.json b/apps/files_sharing/l10n/ms_MY.json new file mode 100644 index 0000000000000000000000000000000000000000..45ae1fe85a0a8a56651d5500ca3f58a5f5dea443 --- /dev/null +++ b/apps/files_sharing/l10n/ms_MY.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "Batal", + "Shared by" : "Dikongsi dengan", + "Password" : "Kata laluan", + "Name" : "Nama", + "Download" : "Muat turun" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ms_MY.php b/apps/files_sharing/l10n/ms_MY.php deleted file mode 100644 index 0d1e00c1b478b15bf3f9d3fc0bd6a284cdce7ad2..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ms_MY.php +++ /dev/null @@ -1,9 +0,0 @@ - "Batal", -"Shared by" => "Dikongsi dengan", -"Password" => "Kata laluan", -"Name" => "Nama", -"Download" => "Muat turun" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/my_MM.js b/apps/files_sharing/l10n/my_MM.js new file mode 100644 index 0000000000000000000000000000000000000000..cde621b63be7798309d8c737bcf08e3c444e89cb --- /dev/null +++ b/apps/files_sharing/l10n/my_MM.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "ပယ်ဖျက်မည်", + "Password" : "စကားဝှက်", + "Download" : "ဒေါင်းလုတ်" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/my_MM.json b/apps/files_sharing/l10n/my_MM.json new file mode 100644 index 0000000000000000000000000000000000000000..9e7fd456f0b340ea8250c5314c704d027b4ed7cb --- /dev/null +++ b/apps/files_sharing/l10n/my_MM.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "ပယ်ဖျက်မည်", + "Password" : "စကားဝှက်", + "Download" : "ဒေါင်းလုတ်" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/my_MM.php b/apps/files_sharing/l10n/my_MM.php deleted file mode 100644 index 4ca6a9049e74a565fb3fad17e65ea007640d3a72..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/my_MM.php +++ /dev/null @@ -1,7 +0,0 @@ - "ပယ်ဖျက်မည်", -"Password" => "စကားဝှက်", -"Download" => "ဒေါင်းလုတ်" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/nb_NO.js b/apps/files_sharing/l10n/nb_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..cd98a9c396d1215d23c65b601a904bf61aa5f1f1 --- /dev/null +++ b/apps/files_sharing/l10n/nb_NO.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Server til server-deling er ikke aktivert på denne serveren", + "The mountpoint name contains invalid characters." : "Navnet på oppkoblingspunktet inneholder ugyldige tegn.", + "Invalid or untrusted SSL certificate" : "Ugyldig eller ikke tiltrodd SSL-sertifikat", + "Couldn't add remote share" : "Klarte ikke å legge til ekstern deling", + "Shared with you" : "Delt med deg", + "Shared with others" : "Delt med andre", + "Shared by link" : "Delt med lenke", + "No files have been shared with you yet." : "Ingen filer er delt med deg ennå.", + "You haven't shared any files yet." : "Du har ikke delt noen filer ennå.", + "You haven't shared any files by link yet." : "Du har ikke delt noen filer med lenke ennå.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ønsker du å legge til ekstern deling {name} fra {owner}@{remote}?", + "Remote share" : "Ekstern deling", + "Remote share password" : "Passord for ekstern deling", + "Cancel" : "Avbryt", + "Add remote share" : "Legg til ekstern deling", + "No ownCloud installation found at {remote}" : "Ingen ownCloud-installasjon funnet på {remote}", + "Invalid ownCloud url" : "Ugyldig ownCloud-url", + "Shared by" : "Delt av", + "This share is password-protected" : "Denne delingen er passordbeskyttet", + "The password is wrong. Try again." : "Passordet er feil. Prøv på nytt.", + "Password" : "Passord", + "Name" : "Navn", + "Share time" : "Delingstidspunkt", + "Sorry, this link doesn’t seem to work anymore." : "Beklager, denne lenken ser ikke ut til å virke lenger.", + "Reasons might be:" : "Mulige årsaker:", + "the item was removed" : "elementet er fjernet", + "the link expired" : "lenken er utløpt", + "sharing is disabled" : "deling er deaktivert", + "For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.", + "Add to your ownCloud" : "Legg til i din ownCloud", + "Download" : "Last ned", + "Download %s" : "Last ned %s", + "Direct link" : "Direkte lenke" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nb_NO.json b/apps/files_sharing/l10n/nb_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..fe2df9e930746c3a774e4b9d3c6d1deb04ec632b --- /dev/null +++ b/apps/files_sharing/l10n/nb_NO.json @@ -0,0 +1,36 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Server til server-deling er ikke aktivert på denne serveren", + "The mountpoint name contains invalid characters." : "Navnet på oppkoblingspunktet inneholder ugyldige tegn.", + "Invalid or untrusted SSL certificate" : "Ugyldig eller ikke tiltrodd SSL-sertifikat", + "Couldn't add remote share" : "Klarte ikke å legge til ekstern deling", + "Shared with you" : "Delt med deg", + "Shared with others" : "Delt med andre", + "Shared by link" : "Delt med lenke", + "No files have been shared with you yet." : "Ingen filer er delt med deg ennå.", + "You haven't shared any files yet." : "Du har ikke delt noen filer ennå.", + "You haven't shared any files by link yet." : "Du har ikke delt noen filer med lenke ennå.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ønsker du å legge til ekstern deling {name} fra {owner}@{remote}?", + "Remote share" : "Ekstern deling", + "Remote share password" : "Passord for ekstern deling", + "Cancel" : "Avbryt", + "Add remote share" : "Legg til ekstern deling", + "No ownCloud installation found at {remote}" : "Ingen ownCloud-installasjon funnet på {remote}", + "Invalid ownCloud url" : "Ugyldig ownCloud-url", + "Shared by" : "Delt av", + "This share is password-protected" : "Denne delingen er passordbeskyttet", + "The password is wrong. Try again." : "Passordet er feil. Prøv på nytt.", + "Password" : "Passord", + "Name" : "Navn", + "Share time" : "Delingstidspunkt", + "Sorry, this link doesn’t seem to work anymore." : "Beklager, denne lenken ser ikke ut til å virke lenger.", + "Reasons might be:" : "Mulige årsaker:", + "the item was removed" : "elementet er fjernet", + "the link expired" : "lenken er utløpt", + "sharing is disabled" : "deling er deaktivert", + "For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.", + "Add to your ownCloud" : "Legg til i din ownCloud", + "Download" : "Last ned", + "Download %s" : "Last ned %s", + "Direct link" : "Direkte lenke" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/nb_NO.php b/apps/files_sharing/l10n/nb_NO.php deleted file mode 100644 index 306e3b0204d94cc698617ad49b26f22edc0d99e7..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/nb_NO.php +++ /dev/null @@ -1,40 +0,0 @@ - "Server til server-deling er ikke aktivert på denne serveren", -"The mountpoint name contains invalid characters." => "Navnet på oppkoblingspunktet inneholder ugyldige tegn.", -"Invalid or untrusted SSL certificate" => "Ugyldig eller ikke tiltrodd SSL-sertifikat", -"Couldn't add remote share" => "Klarte ikke å legge til ekstern deling", -"Shared with you" => "Delt med deg", -"Shared with others" => "Delt med andre", -"Shared by link" => "Delt med lenke", -"No files have been shared with you yet." => "Ingen filer er delt med deg ennå.", -"You haven't shared any files yet." => "Du har ikke delt noen filer ennå.", -"You haven't shared any files by link yet." => "Du har ikke delt noen filer med lenke ennå.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Ønsker du å legge til ekstern deling {name} fra {owner}@{remote}?", -"Remote share" => "Ekstern deling", -"Remote share password" => "Passord for ekstern deling", -"Cancel" => "Avbryt", -"Add remote share" => "Legg til ekstern deling", -"No ownCloud installation found at {remote}" => "Ingen ownCloud-installasjon funnet på {remote}", -"Invalid ownCloud url" => "Ugyldig ownCloud-url", -"Shared by" => "Delt av", -"This share is password-protected" => "Denne delingen er passordbeskyttet", -"The password is wrong. Try again." => "Passordet er feil. Prøv på nytt.", -"Password" => "Passord", -"Name" => "Navn", -"Share time" => "Delingstidspunkt", -"Sorry, this link doesn’t seem to work anymore." => "Beklager, denne lenken ser ikke ut til å virke lenger.", -"Reasons might be:" => "Mulige årsaker:", -"the item was removed" => "elementet er fjernet", -"the link expired" => "lenken er utløpt", -"sharing is disabled" => "deling er deaktivert", -"For more info, please ask the person who sent this link." => "For mer informasjon, spør personen som sendte lenken.", -"Add to your ownCloud" => "Legg til i din ownCloud", -"Download" => "Last ned", -"Download %s" => "Last ned %s", -"Direct link" => "Direkte lenke", -"Remote Shares" => "Ekstern deling", -"Allow other instances to mount public links shared from this server" => "Tillat at andre servere kobler opp offentlige lenker som er delt fra denne serveren", -"Allow users to mount public link shares" => "Tillat at brukere kobler opp offentlige lenke-delinger" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js new file mode 100644 index 0000000000000000000000000000000000000000..e997a1167f43ee82daab6e1dc3c5069fe1b63c37 --- /dev/null +++ b/apps/files_sharing/l10n/nl.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Server met server delen is niet geactiveerd op deze server", + "The mountpoint name contains invalid characters." : "De naam van het mountpoint bevat ongeldige karakters.", + "Invalid or untrusted SSL certificate" : "Ongeldig of onvertrouwd SSL-certificaat", + "Couldn't add remote share" : "Kon geen externe share toevoegen", + "Shared with you" : "Gedeeld met u", + "Shared with others" : "Gedeeld door u", + "Shared by link" : "Gedeeld via een link", + "No files have been shared with you yet." : "Er zijn nog geen bestanden met u gedeeld.", + "You haven't shared any files yet." : "U hebt nog geen bestanden gedeeld.", + "You haven't shared any files by link yet." : "U hebt nog geen bestanden via een link gedeeld.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Wilt u de externe share {name} van {owner}@{remote} toevoegen?", + "Remote share" : "Externe share", + "Remote share password" : "Wachtwoord externe share", + "Cancel" : "Annuleren", + "Add remote share" : "Toevoegen externe share", + "No ownCloud installation found at {remote}" : "Geen ownCloud installatie gevonden op {remote}", + "Invalid ownCloud url" : "Ongeldige ownCloud url", + "Shared by" : "Gedeeld door", + "This share is password-protected" : "Deze share is met een wachtwoord beveiligd", + "The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.", + "Password" : "Wachtwoord", + "Name" : "Naam", + "Share time" : "Deel tijd", + "Sorry, this link doesn’t seem to work anymore." : "Sorry, deze link lijkt niet meer in gebruik te zijn.", + "Reasons might be:" : "Redenen kunnen zijn:", + "the item was removed" : "bestand was verwijderd", + "the link expired" : "de link is verlopen", + "sharing is disabled" : "delen is uitgeschakeld", + "For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.", + "Add to your ownCloud" : "Toevoegen aan uw ownCloud", + "Download" : "Downloaden", + "Download %s" : "Download %s", + "Direct link" : "Directe link", + "Server-to-Server Sharing" : "Server-naar-Server delen", + "Allow users on this server to send shares to other servers" : "Toestaan dat gebruikers op deze server shares sturen naar andere servers", + "Allow users on this server to receive shares from other servers" : "Toestaan dat gebruikers op deze server shares ontvangen van andere servers" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..9d6fd9c37cac3c31bf58df6b89d3efa929efe993 --- /dev/null +++ b/apps/files_sharing/l10n/nl.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Server met server delen is niet geactiveerd op deze server", + "The mountpoint name contains invalid characters." : "De naam van het mountpoint bevat ongeldige karakters.", + "Invalid or untrusted SSL certificate" : "Ongeldig of onvertrouwd SSL-certificaat", + "Couldn't add remote share" : "Kon geen externe share toevoegen", + "Shared with you" : "Gedeeld met u", + "Shared with others" : "Gedeeld door u", + "Shared by link" : "Gedeeld via een link", + "No files have been shared with you yet." : "Er zijn nog geen bestanden met u gedeeld.", + "You haven't shared any files yet." : "U hebt nog geen bestanden gedeeld.", + "You haven't shared any files by link yet." : "U hebt nog geen bestanden via een link gedeeld.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Wilt u de externe share {name} van {owner}@{remote} toevoegen?", + "Remote share" : "Externe share", + "Remote share password" : "Wachtwoord externe share", + "Cancel" : "Annuleren", + "Add remote share" : "Toevoegen externe share", + "No ownCloud installation found at {remote}" : "Geen ownCloud installatie gevonden op {remote}", + "Invalid ownCloud url" : "Ongeldige ownCloud url", + "Shared by" : "Gedeeld door", + "This share is password-protected" : "Deze share is met een wachtwoord beveiligd", + "The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.", + "Password" : "Wachtwoord", + "Name" : "Naam", + "Share time" : "Deel tijd", + "Sorry, this link doesn’t seem to work anymore." : "Sorry, deze link lijkt niet meer in gebruik te zijn.", + "Reasons might be:" : "Redenen kunnen zijn:", + "the item was removed" : "bestand was verwijderd", + "the link expired" : "de link is verlopen", + "sharing is disabled" : "delen is uitgeschakeld", + "For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.", + "Add to your ownCloud" : "Toevoegen aan uw ownCloud", + "Download" : "Downloaden", + "Download %s" : "Download %s", + "Direct link" : "Directe link", + "Server-to-Server Sharing" : "Server-naar-Server delen", + "Allow users on this server to send shares to other servers" : "Toestaan dat gebruikers op deze server shares sturen naar andere servers", + "Allow users on this server to receive shares from other servers" : "Toestaan dat gebruikers op deze server shares ontvangen van andere servers" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/nl.php b/apps/files_sharing/l10n/nl.php deleted file mode 100644 index 91f8cd3e74c2da34b2c414c2d644fc035d2cf3c7..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/nl.php +++ /dev/null @@ -1,40 +0,0 @@ - "Server met server delen is niet geactiveerd op deze server", -"The mountpoint name contains invalid characters." => "De naam van het mountpoint bevat ongeldige karakters.", -"Invalid or untrusted SSL certificate" => "Ongeldig of onvertrouwd SSL-certificaat", -"Couldn't add remote share" => "Kon geen externe share toevoegen", -"Shared with you" => "Gedeeld met u", -"Shared with others" => "Gedeeld door u", -"Shared by link" => "Gedeeld via een link", -"No files have been shared with you yet." => "Er zijn nog geen bestanden met u gedeeld.", -"You haven't shared any files yet." => "U hebt nog geen bestanden gedeeld.", -"You haven't shared any files by link yet." => "U hebt nog geen bestanden via een link gedeeld.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Wilt u de externe share {name} van {owner}@{remote} toevoegen?", -"Remote share" => "Externe share", -"Remote share password" => "Wachtwoord externe share", -"Cancel" => "Annuleren", -"Add remote share" => "Toevoegen externe share", -"No ownCloud installation found at {remote}" => "Geen ownCloud installatie gevonden op {remote}", -"Invalid ownCloud url" => "Ongeldige ownCloud url", -"Shared by" => "Gedeeld door", -"This share is password-protected" => "Deze share is met een wachtwoord beveiligd", -"The password is wrong. Try again." => "Wachtwoord ongeldig. Probeer het nogmaals.", -"Password" => "Wachtwoord", -"Name" => "Naam", -"Share time" => "Deel tijd", -"Sorry, this link doesn’t seem to work anymore." => "Sorry, deze link lijkt niet meer in gebruik te zijn.", -"Reasons might be:" => "Redenen kunnen zijn:", -"the item was removed" => "bestand was verwijderd", -"the link expired" => "de link is verlopen", -"sharing is disabled" => "delen is uitgeschakeld", -"For more info, please ask the person who sent this link." => "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.", -"Add to your ownCloud" => "Toevoegen aan uw ownCloud", -"Download" => "Downloaden", -"Download %s" => "Download %s", -"Direct link" => "Directe link", -"Remote Shares" => "Externe shares", -"Allow other instances to mount public links shared from this server" => "Toestaan dat andere oanClouds openbaar gedeelde links mounten vanaf deze server", -"Allow users to mount public link shares" => "Toestaan dat gebruikers openbaar gedeelde links mounten" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/nn_NO.js b/apps/files_sharing/l10n/nn_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..f0c749ceb5845e06aac9716a50bd7ac77fc53542 --- /dev/null +++ b/apps/files_sharing/l10n/nn_NO.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Avbryt", + "Shared by" : "Delt av", + "The password is wrong. Try again." : "Passordet er gale. Prøv igjen.", + "Password" : "Passord", + "Name" : "Namn", + "Sorry, this link doesn’t seem to work anymore." : "Orsak, denne lenkja fungerer visst ikkje lenger.", + "Reasons might be:" : "Moglege grunnar:", + "the item was removed" : "fila/mappa er fjerna", + "the link expired" : "lenkja har gått ut på dato", + "sharing is disabled" : "deling er slått av", + "For more info, please ask the person who sent this link." : "Spør den som sende deg lenkje om du vil ha meir informasjon.", + "Download" : "Last ned" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nn_NO.json b/apps/files_sharing/l10n/nn_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..c4292b2ccb6bcbf8755bdb0a291cf0f7ea337218 --- /dev/null +++ b/apps/files_sharing/l10n/nn_NO.json @@ -0,0 +1,15 @@ +{ "translations": { + "Cancel" : "Avbryt", + "Shared by" : "Delt av", + "The password is wrong. Try again." : "Passordet er gale. Prøv igjen.", + "Password" : "Passord", + "Name" : "Namn", + "Sorry, this link doesn’t seem to work anymore." : "Orsak, denne lenkja fungerer visst ikkje lenger.", + "Reasons might be:" : "Moglege grunnar:", + "the item was removed" : "fila/mappa er fjerna", + "the link expired" : "lenkja har gått ut på dato", + "sharing is disabled" : "deling er slått av", + "For more info, please ask the person who sent this link." : "Spør den som sende deg lenkje om du vil ha meir informasjon.", + "Download" : "Last ned" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/nn_NO.php b/apps/files_sharing/l10n/nn_NO.php deleted file mode 100644 index 7297183b2e7dc3c80c1a2278463601f3fe7791cb..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/nn_NO.php +++ /dev/null @@ -1,16 +0,0 @@ - "Avbryt", -"Shared by" => "Delt av", -"The password is wrong. Try again." => "Passordet er gale. Prøv igjen.", -"Password" => "Passord", -"Name" => "Namn", -"Sorry, this link doesn’t seem to work anymore." => "Orsak, denne lenkja fungerer visst ikkje lenger.", -"Reasons might be:" => "Moglege grunnar:", -"the item was removed" => "fila/mappa er fjerna", -"the link expired" => "lenkja har gått ut på dato", -"sharing is disabled" => "deling er slått av", -"For more info, please ask the person who sent this link." => "Spør den som sende deg lenkje om du vil ha meir informasjon.", -"Download" => "Last ned" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js new file mode 100644 index 0000000000000000000000000000000000000000..7449267160310662832c5950340459aee9c94d08 --- /dev/null +++ b/apps/files_sharing/l10n/oc.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Annula", + "Password" : "Senhal", + "Name" : "Nom", + "Download" : "Avalcarga" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json new file mode 100644 index 0000000000000000000000000000000000000000..787013857a598d5d61b3a2817df5290f0c856a96 --- /dev/null +++ b/apps/files_sharing/l10n/oc.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "Annula", + "Password" : "Senhal", + "Name" : "Nom", + "Download" : "Avalcarga" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/oc.php b/apps/files_sharing/l10n/oc.php deleted file mode 100644 index 6316969769007fd44dd60cd0f0a8078b61e53de0..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/oc.php +++ /dev/null @@ -1,8 +0,0 @@ - "Annula", -"Password" => "Senhal", -"Name" => "Nom", -"Download" => "Avalcarga" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_sharing/l10n/pa.js b/apps/files_sharing/l10n/pa.js new file mode 100644 index 0000000000000000000000000000000000000000..55e1fcc249873f0a38d104030b9b0cd2a235819a --- /dev/null +++ b/apps/files_sharing/l10n/pa.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "ਰੱਦ ਕਰੋ", + "Password" : "ਪਾਸਵਰ", + "Download" : "ਡਾਊਨਲੋਡ" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/pa.json b/apps/files_sharing/l10n/pa.json new file mode 100644 index 0000000000000000000000000000000000000000..d0feec38fff63d57ed390d5a20ae6cd20bfb80eb --- /dev/null +++ b/apps/files_sharing/l10n/pa.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "ਰੱਦ ਕਰੋ", + "Password" : "ਪਾਸਵਰ", + "Download" : "ਡਾਊਨਲੋਡ" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/pa.php b/apps/files_sharing/l10n/pa.php deleted file mode 100644 index cdd4fbc8c447ece554eaf43a1f3c6ad73536ea05..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/pa.php +++ /dev/null @@ -1,7 +0,0 @@ - "ਰੱਦ ਕਰੋ", -"Password" => "ਪਾਸਵਰ", -"Download" => "ਡਾਊਨਲੋਡ" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js new file mode 100644 index 0000000000000000000000000000000000000000..9fc08f64bbc2d303f3e271832789dd88db79f04f --- /dev/null +++ b/apps/files_sharing/l10n/pl.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Współdzielenie między serwerami nie jest uruchomione na tym serwerze", + "The mountpoint name contains invalid characters." : "Nazwa zamontowanego zasobu zawiera niedozwolone znaki.", + "Invalid or untrusted SSL certificate" : "Niewłaściwy lub niezaufany certyfikat SSL", + "Couldn't add remote share" : "Nie można dodać zdalnego folderu", + "Shared with you" : "Współdzielony z Tobą", + "Shared with others" : "Współdzielony z innymi", + "Shared by link" : "Współdzielony linkiem", + "No files have been shared with you yet." : "Nie ma jeszcze żadnych plików współdzielonych z Tobą", + "You haven't shared any files yet." : "Nie współdzielisz jeszcze żadnych plików.", + "You haven't shared any files by link yet." : "Nie współdzielisz jeszcze żadnych plików linkiem", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Czy chcesz dodać udział zdalny {name} od {owner}@{remote}?", + "Remote share" : "Zdalny zasób", + "Remote share password" : "Hasło do zdalnego zasobu", + "Cancel" : "Anuluj", + "Add remote share" : "Dodaj zdalny zasób", + "No ownCloud installation found at {remote}" : "Nie znaleziono instalacji ownCloud na {remote}", + "Invalid ownCloud url" : "Błędny adres URL", + "Shared by" : "Udostępniane przez", + "This share is password-protected" : "Udział ten jest chroniony hasłem", + "The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.", + "Password" : "Hasło", + "Name" : "Nazwa", + "Share time" : "Czas współdzielenia", + "Sorry, this link doesn’t seem to work anymore." : "Przepraszamy ale wygląda na to, że ten link już nie działa.", + "Reasons might be:" : "Możliwe powody:", + "the item was removed" : "element został usunięty", + "the link expired" : "link wygasł", + "sharing is disabled" : "udostępnianie jest wyłączone", + "For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.", + "Add to your ownCloud" : "Dodaj do twojego ownCloud", + "Download" : "Pobierz", + "Download %s" : "Pobierz %s", + "Direct link" : "Bezpośredni link" +}, +"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_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..a6c06ef01fce56c2d10175c3d1003ba5f86394cc --- /dev/null +++ b/apps/files_sharing/l10n/pl.json @@ -0,0 +1,36 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Współdzielenie między serwerami nie jest uruchomione na tym serwerze", + "The mountpoint name contains invalid characters." : "Nazwa zamontowanego zasobu zawiera niedozwolone znaki.", + "Invalid or untrusted SSL certificate" : "Niewłaściwy lub niezaufany certyfikat SSL", + "Couldn't add remote share" : "Nie można dodać zdalnego folderu", + "Shared with you" : "Współdzielony z Tobą", + "Shared with others" : "Współdzielony z innymi", + "Shared by link" : "Współdzielony linkiem", + "No files have been shared with you yet." : "Nie ma jeszcze żadnych plików współdzielonych z Tobą", + "You haven't shared any files yet." : "Nie współdzielisz jeszcze żadnych plików.", + "You haven't shared any files by link yet." : "Nie współdzielisz jeszcze żadnych plików linkiem", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Czy chcesz dodać udział zdalny {name} od {owner}@{remote}?", + "Remote share" : "Zdalny zasób", + "Remote share password" : "Hasło do zdalnego zasobu", + "Cancel" : "Anuluj", + "Add remote share" : "Dodaj zdalny zasób", + "No ownCloud installation found at {remote}" : "Nie znaleziono instalacji ownCloud na {remote}", + "Invalid ownCloud url" : "Błędny adres URL", + "Shared by" : "Udostępniane przez", + "This share is password-protected" : "Udział ten jest chroniony hasłem", + "The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.", + "Password" : "Hasło", + "Name" : "Nazwa", + "Share time" : "Czas współdzielenia", + "Sorry, this link doesn’t seem to work anymore." : "Przepraszamy ale wygląda na to, że ten link już nie działa.", + "Reasons might be:" : "Możliwe powody:", + "the item was removed" : "element został usunięty", + "the link expired" : "link wygasł", + "sharing is disabled" : "udostępnianie jest wyłączone", + "For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.", + "Add to your ownCloud" : "Dodaj do twojego ownCloud", + "Download" : "Pobierz", + "Download %s" : "Pobierz %s", + "Direct link" : "Bezpośredni link" +},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/pl.php b/apps/files_sharing/l10n/pl.php deleted file mode 100644 index ee3dfbcac4856c7ce3ba58009359affd651f97f0..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/pl.php +++ /dev/null @@ -1,40 +0,0 @@ - "Współdzielenie między serwerami nie jest uruchomione na tym serwerze", -"The mountpoint name contains invalid characters." => "Nazwa zamontowanego zasobu zawiera niedozwolone znaki.", -"Invalid or untrusted SSL certificate" => "Niewłaściwy lub niezaufany certyfikat SSL", -"Couldn't add remote share" => "Nie można dodać zdalnego folderu", -"Shared with you" => "Współdzielony z Tobą", -"Shared with others" => "Współdzielony z innymi", -"Shared by link" => "Współdzielony linkiem", -"No files have been shared with you yet." => "Nie ma jeszcze żadnych plików współdzielonych z Tobą", -"You haven't shared any files yet." => "Nie współdzielisz jeszcze żadnych plików.", -"You haven't shared any files by link yet." => "Nie współdzielisz jeszcze żadnych plików linkiem", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Czy chcesz dodać udział zdalny {name} od {owner}@{remote}?", -"Remote share" => "Zdalny zasób", -"Remote share password" => "Hasło do zdalnego zasobu", -"Cancel" => "Anuluj", -"Add remote share" => "Dodaj zdalny zasób", -"No ownCloud installation found at {remote}" => "Nie znaleziono instalacji ownCloud na {remote}", -"Invalid ownCloud url" => "Błędny adres URL", -"Shared by" => "Udostępniane przez", -"This share is password-protected" => "Udział ten jest chroniony hasłem", -"The password is wrong. Try again." => "To hasło jest niewłaściwe. Spróbuj ponownie.", -"Password" => "Hasło", -"Name" => "Nazwa", -"Share time" => "Czas współdzielenia", -"Sorry, this link doesn’t seem to work anymore." => "Przepraszamy ale wygląda na to, że ten link już nie działa.", -"Reasons might be:" => "Możliwe powody:", -"the item was removed" => "element został usunięty", -"the link expired" => "link wygasł", -"sharing is disabled" => "udostępnianie jest wyłączone", -"For more info, please ask the person who sent this link." => "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.", -"Add to your ownCloud" => "Dodaj do twojego ownCloud", -"Download" => "Pobierz", -"Download %s" => "Pobierz %s", -"Direct link" => "Bezpośredni link", -"Remote Shares" => "Udziały zdalne", -"Allow other instances to mount public links shared from this server" => "Pozwól innym instancjom montować publiczne linki z tego serwera", -"Allow users to mount public link shares" => "Zezwalaj użytkownikom na montowanie publicznych linków" -); -$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_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js new file mode 100644 index 0000000000000000000000000000000000000000..57d2018282cac788f08212dcd93ea9802bdbf3be --- /dev/null +++ b/apps/files_sharing/l10n/pt_BR.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Compartilhamento de servidor para servidor não está habilitado no servidor", + "The mountpoint name contains invalid characters." : "O nome do ponto de montagem contém caracteres inválidos.", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido ou não confiável", + "Couldn't add remote share" : "Não foi possível adicionar compartilhamento remoto", + "Shared with you" : "Compartilhado com você", + "Shared with others" : "Compartilhado com outros", + "Shared by link" : "Compartilhado por link", + "No files have been shared with you yet." : "Nenhum arquivo ainda foi compartilhado com você.", + "You haven't shared any files yet." : "Você ainda não compartilhou nenhum arquivo.", + "You haven't shared any files by link yet." : "Você ainda não compartilhou nenhum arquivo por link.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Você quer adicionar o compartilhamento remoto {name} de {owner}@{remote}?", + "Remote share" : "Compartilhamento remoto", + "Remote share password" : "Senha do compartilhamento remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Adicionar compartilhamento remoto", + "No ownCloud installation found at {remote}" : "Nenhuma instalação ownCloud encontrada em {remote}", + "Invalid ownCloud url" : "Url invalida para ownCloud", + "Shared by" : "Compartilhado por", + "This share is password-protected" : "Este compartilhamento esta protegido por senha", + "The password is wrong. Try again." : "Senha incorreta. Tente novamente.", + "Password" : "Senha", + "Name" : "Nome", + "Share time" : "Tempo de compartilhamento", + "Sorry, this link doesn’t seem to work anymore." : "Desculpe, este link parece não mais funcionar.", + "Reasons might be:" : "As razões podem ser:", + "the item was removed" : "o item foi removido", + "the link expired" : "o link expirou", + "sharing is disabled" : "o compartilhamento está desativado", + "For more info, please ask the person who sent this link." : "Para mais informações, por favor, pergunte a pessoa que enviou este link.", + "Add to your ownCloud" : "Adiconar ao seu ownCloud", + "Download" : "Baixar", + "Download %s" : "Baixar %s", + "Direct link" : "Link direto", + "Server-to-Server Sharing" : "Compartilhamento Servidor-a-servidor", + "Allow users on this server to send shares to other servers" : "Permitir que os usuários deste servidor enviem compartilhamentos para outros servidores", + "Allow users on this server to receive shares from other servers" : "Permitir que os usuários nesse servidor recebam compartilhamentos de outros servidores" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json new file mode 100644 index 0000000000000000000000000000000000000000..1587aca9832a456b07f8dc11aa2620d6c2d72984 --- /dev/null +++ b/apps/files_sharing/l10n/pt_BR.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Compartilhamento de servidor para servidor não está habilitado no servidor", + "The mountpoint name contains invalid characters." : "O nome do ponto de montagem contém caracteres inválidos.", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido ou não confiável", + "Couldn't add remote share" : "Não foi possível adicionar compartilhamento remoto", + "Shared with you" : "Compartilhado com você", + "Shared with others" : "Compartilhado com outros", + "Shared by link" : "Compartilhado por link", + "No files have been shared with you yet." : "Nenhum arquivo ainda foi compartilhado com você.", + "You haven't shared any files yet." : "Você ainda não compartilhou nenhum arquivo.", + "You haven't shared any files by link yet." : "Você ainda não compartilhou nenhum arquivo por link.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Você quer adicionar o compartilhamento remoto {name} de {owner}@{remote}?", + "Remote share" : "Compartilhamento remoto", + "Remote share password" : "Senha do compartilhamento remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Adicionar compartilhamento remoto", + "No ownCloud installation found at {remote}" : "Nenhuma instalação ownCloud encontrada em {remote}", + "Invalid ownCloud url" : "Url invalida para ownCloud", + "Shared by" : "Compartilhado por", + "This share is password-protected" : "Este compartilhamento esta protegido por senha", + "The password is wrong. Try again." : "Senha incorreta. Tente novamente.", + "Password" : "Senha", + "Name" : "Nome", + "Share time" : "Tempo de compartilhamento", + "Sorry, this link doesn’t seem to work anymore." : "Desculpe, este link parece não mais funcionar.", + "Reasons might be:" : "As razões podem ser:", + "the item was removed" : "o item foi removido", + "the link expired" : "o link expirou", + "sharing is disabled" : "o compartilhamento está desativado", + "For more info, please ask the person who sent this link." : "Para mais informações, por favor, pergunte a pessoa que enviou este link.", + "Add to your ownCloud" : "Adiconar ao seu ownCloud", + "Download" : "Baixar", + "Download %s" : "Baixar %s", + "Direct link" : "Link direto", + "Server-to-Server Sharing" : "Compartilhamento Servidor-a-servidor", + "Allow users on this server to send shares to other servers" : "Permitir que os usuários deste servidor enviem compartilhamentos para outros servidores", + "Allow users on this server to receive shares from other servers" : "Permitir que os usuários nesse servidor recebam compartilhamentos de outros servidores" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/pt_BR.php b/apps/files_sharing/l10n/pt_BR.php deleted file mode 100644 index c190c6fbc894e446e8977ba52421c34c87335295..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/pt_BR.php +++ /dev/null @@ -1,40 +0,0 @@ - "Compartilhamento de servidor para servidor não está habilitado no servidor", -"The mountpoint name contains invalid characters." => "O nome do ponto de montagem contém caracteres inválidos.", -"Invalid or untrusted SSL certificate" => "Certificado SSL inválido ou não confiável", -"Couldn't add remote share" => "Não foi possível adicionar compartilhamento remoto", -"Shared with you" => "Compartilhado com você", -"Shared with others" => "Compartilhado com outros", -"Shared by link" => "Compartilhado por link", -"No files have been shared with you yet." => "Nenhum arquivo ainda foi compartilhado com você.", -"You haven't shared any files yet." => "Você ainda não compartilhou nenhum arquivo.", -"You haven't shared any files by link yet." => "Você ainda não compartilhou nenhum arquivo por link.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Você quer adicionar o compartilhamento remoto {name} de {owner}@{remote}?", -"Remote share" => "Compartilhamento remoto", -"Remote share password" => "Senha do compartilhamento remoto", -"Cancel" => "Cancelar", -"Add remote share" => "Adicionar compartilhamento remoto", -"No ownCloud installation found at {remote}" => "Nenhuma instalação ownCloud encontrada em {remote}", -"Invalid ownCloud url" => "Url invalida para ownCloud", -"Shared by" => "Compartilhado por", -"This share is password-protected" => "Este compartilhamento esta protegido por senha", -"The password is wrong. Try again." => "Senha incorreta. Tente novamente.", -"Password" => "Senha", -"Name" => "Nome", -"Share time" => "Tempo de compartilhamento", -"Sorry, this link doesn’t seem to work anymore." => "Desculpe, este link parece não mais funcionar.", -"Reasons might be:" => "As razões podem ser:", -"the item was removed" => "o item foi removido", -"the link expired" => "o link expirou", -"sharing is disabled" => "o compartilhamento está desativado", -"For more info, please ask the person who sent this link." => "Para mais informações, por favor, pergunte a pessoa que enviou este link.", -"Add to your ownCloud" => "Adiconar ao seu ownCloud", -"Download" => "Baixar", -"Download %s" => "Baixar %s", -"Direct link" => "Link direto", -"Remote Shares" => "Compartilhamentos Remoto", -"Allow other instances to mount public links shared from this server" => "Permitir que outras instâncias montem links de compartilhamentos públicos a partir desde servidor", -"Allow users to mount public link shares" => "Permitir aos usuários montar links públicos de compartilhamentos" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js new file mode 100644 index 0000000000000000000000000000000000000000..9df977ef41d249f2855074ea4036a75e59379032 --- /dev/null +++ b/apps/files_sharing/l10n/pt_PT.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "A partilha entre servidores não se encontra disponível neste servidor", + "The mountpoint name contains invalid characters." : "O nome do ponto de montagem contém carateres inválidos.", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido ou não confiável", + "Couldn't add remote share" : "Não foi possível adicionar a partilha remota", + "Shared with you" : "Partilhado consigo ", + "Shared with others" : "Partilhado com outros", + "Shared by link" : "Partilhado pela hiperligação", + "No files have been shared with you yet." : "Ainda não foram partilhados quaisquer ficheiros consigo.", + "You haven't shared any files yet." : "Ainda não partilhou quaisquer ficheiros.", + "You haven't shared any files by link yet." : "Ainda não partilhou quaisquer ficheiros através de hiperligação.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Deseja adicionar a partilha remota {nome} de {proprietário}@{remoto}?", + "Remote share" : "Partilha remota", + "Remote share password" : "Senha da partilha remota", + "Cancel" : "Cancelar", + "Add remote share" : "Adicionar partilha remota", + "No ownCloud installation found at {remote}" : "Não foi encontrada uma instalação ownCloud em {remote}", + "Invalid ownCloud url" : "Url ownCloud inválido", + "Shared by" : "Partilhado por", + "This share is password-protected" : "Esta partilha está protegida por senha", + "The password is wrong. Try again." : "A senha está errada. Por favor, tente de novo.", + "Password" : "Senha", + "Name" : "Nome", + "Share time" : "Hora da Partilha", + "Sorry, this link doesn’t seem to work anymore." : "Desculpe, mas esta hiperligação parece já não estar a funcionar.", + "Reasons might be:" : "As razões poderão ser:", + "the item was removed" : "o item foi removido", + "the link expired" : "A hiperligação expirou", + "sharing is disabled" : "a partilha está desativada", + "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.", + "Add to your ownCloud" : "Adicionar à sua ownCloud", + "Download" : "Transferir", + "Download %s" : "Transferir %s", + "Direct link" : "Hiperligação direta", + "Server-to-Server Sharing" : "Servidor-para-Servidor de Partilha", + "Allow users on this server to send shares to other servers" : "Permitir utilizadores neste servidor para enviar as partilhas para outros servidores", + "Allow users on this server to receive shares from other servers" : "Permitir utilizadores neste servidor para receber as partilhas de outros servidores" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json new file mode 100644 index 0000000000000000000000000000000000000000..a1500f4d827851757baf7ed970e9bfb3c3849214 --- /dev/null +++ b/apps/files_sharing/l10n/pt_PT.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "A partilha entre servidores não se encontra disponível neste servidor", + "The mountpoint name contains invalid characters." : "O nome do ponto de montagem contém carateres inválidos.", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido ou não confiável", + "Couldn't add remote share" : "Não foi possível adicionar a partilha remota", + "Shared with you" : "Partilhado consigo ", + "Shared with others" : "Partilhado com outros", + "Shared by link" : "Partilhado pela hiperligação", + "No files have been shared with you yet." : "Ainda não foram partilhados quaisquer ficheiros consigo.", + "You haven't shared any files yet." : "Ainda não partilhou quaisquer ficheiros.", + "You haven't shared any files by link yet." : "Ainda não partilhou quaisquer ficheiros através de hiperligação.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Deseja adicionar a partilha remota {nome} de {proprietário}@{remoto}?", + "Remote share" : "Partilha remota", + "Remote share password" : "Senha da partilha remota", + "Cancel" : "Cancelar", + "Add remote share" : "Adicionar partilha remota", + "No ownCloud installation found at {remote}" : "Não foi encontrada uma instalação ownCloud em {remote}", + "Invalid ownCloud url" : "Url ownCloud inválido", + "Shared by" : "Partilhado por", + "This share is password-protected" : "Esta partilha está protegida por senha", + "The password is wrong. Try again." : "A senha está errada. Por favor, tente de novo.", + "Password" : "Senha", + "Name" : "Nome", + "Share time" : "Hora da Partilha", + "Sorry, this link doesn’t seem to work anymore." : "Desculpe, mas esta hiperligação parece já não estar a funcionar.", + "Reasons might be:" : "As razões poderão ser:", + "the item was removed" : "o item foi removido", + "the link expired" : "A hiperligação expirou", + "sharing is disabled" : "a partilha está desativada", + "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.", + "Add to your ownCloud" : "Adicionar à sua ownCloud", + "Download" : "Transferir", + "Download %s" : "Transferir %s", + "Direct link" : "Hiperligação direta", + "Server-to-Server Sharing" : "Servidor-para-Servidor de Partilha", + "Allow users on this server to send shares to other servers" : "Permitir utilizadores neste servidor para enviar as partilhas para outros servidores", + "Allow users on this server to receive shares from other servers" : "Permitir utilizadores neste servidor para receber as partilhas de outros servidores" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/pt_PT.php b/apps/files_sharing/l10n/pt_PT.php deleted file mode 100644 index fc5c7cabec50d8d8bde1581286b5b9826eab73c5..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/pt_PT.php +++ /dev/null @@ -1,39 +0,0 @@ - "A partilha entre servidores não se encontra disponível", -"Invalid or untrusted SSL certificate" => "Certificado SSL inválido ou não confiável", -"Couldn't add remote share" => "Ocorreu um erro ao adicionar a partilha remota", -"Shared with you" => "Partilhado consigo ", -"Shared with others" => "Partilhado com outros", -"Shared by link" => "Partilhado pela hiperligação", -"No files have been shared with you yet." => "Ainda não partilhados quaisquer ficheuiros consigo.", -"You haven't shared any files yet." => "Ainda não partilhou quaisquer ficheiros.", -"You haven't shared any files by link yet." => "Ainda não partilhou quaisquer ficheiros por hiperligação.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Deseja adicionar a partilha remota {nome} de {proprietário}@{remoto}?", -"Remote share" => "Partilha remota", -"Remote share password" => "Password da partilha remota", -"Cancel" => "Cancelar", -"Add remote share" => "Adicionar partilha remota", -"No ownCloud installation found at {remote}" => "Não foi encontrada uma instalação em {remote}", -"Invalid ownCloud url" => "Endereço errado", -"Shared by" => "Partilhado por", -"This share is password-protected" => "Esta partilha está protegida por senha", -"The password is wrong. Try again." => "A senha está errada. Por favor, tente de novo.", -"Password" => "Senha", -"Name" => "Nome", -"Share time" => "Hora da Partilha", -"Sorry, this link doesn’t seem to work anymore." => "Desculpe, mas esta hiperligação parece já não estar a funcionar.", -"Reasons might be:" => "As razões poderão ser:", -"the item was removed" => "o item foi removido", -"the link expired" => "A hiperligação expirou", -"sharing is disabled" => "a partilha está desativada", -"For more info, please ask the person who sent this link." => "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.", -"Add to your ownCloud" => "Adicionar á sua ownCloud", -"Download" => "Transferir", -"Download %s" => "Transferir %s", -"Direct link" => "Hiperligação direta", -"Remote Shares" => "Partilhas Remotas", -"Allow other instances to mount public links shared from this server" => "Permitir que outras instâncias mapeiem endereços partilhados deste servidor", -"Allow users to mount public link shares" => "Permitir mapeamentos de endereços partilhados aos utilizadores" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/ro.js b/apps/files_sharing/l10n/ro.js new file mode 100644 index 0000000000000000000000000000000000000000..48957ec9fbcd85daee9f7c02252d07686e5c313c --- /dev/null +++ b/apps/files_sharing/l10n/ro.js @@ -0,0 +1,22 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server", + "Shared with you" : "Partajat cu tine", + "Shared with others" : "Partajat cu alții", + "No files have been shared with you yet." : "Nu sunt încă fișiere partajate cu tine.", + "You haven't shared any files yet." : "Nu ai partajat încă nici un fișier.", + "Cancel" : "Anulare", + "Shared by" : "impartite in ", + "This share is password-protected" : "Această partajare este protejată cu parolă", + "The password is wrong. Try again." : "Parola este incorectă. Încercaţi din nou.", + "Password" : "Parolă", + "Name" : "Nume", + "Reasons might be:" : "Motive posibile ar fi:", + "the item was removed" : "acest articol a fost șters", + "sharing is disabled" : "Partajare este oprită", + "Add to your ownCloud" : "Adaugă propriul tău ownCloud", + "Download" : "Descarcă", + "Download %s" : "Descarcă %s" +}, +"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files_sharing/l10n/ro.json b/apps/files_sharing/l10n/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..c0ab9e366e2b96723fdb195ac106b607f2945a6d --- /dev/null +++ b/apps/files_sharing/l10n/ro.json @@ -0,0 +1,20 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server", + "Shared with you" : "Partajat cu tine", + "Shared with others" : "Partajat cu alții", + "No files have been shared with you yet." : "Nu sunt încă fișiere partajate cu tine.", + "You haven't shared any files yet." : "Nu ai partajat încă nici un fișier.", + "Cancel" : "Anulare", + "Shared by" : "impartite in ", + "This share is password-protected" : "Această partajare este protejată cu parolă", + "The password is wrong. Try again." : "Parola este incorectă. Încercaţi din nou.", + "Password" : "Parolă", + "Name" : "Nume", + "Reasons might be:" : "Motive posibile ar fi:", + "the item was removed" : "acest articol a fost șters", + "sharing is disabled" : "Partajare este oprită", + "Add to your ownCloud" : "Adaugă propriul tău ownCloud", + "Download" : "Descarcă", + "Download %s" : "Descarcă %s" +},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ro.php b/apps/files_sharing/l10n/ro.php deleted file mode 100644 index 423f0ee38a01db315c1ba6a73d9602d962229a8c..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ro.php +++ /dev/null @@ -1,21 +0,0 @@ - "Partajare server-server nu este activată pe acest server", -"Shared with you" => "Partajat cu tine", -"Shared with others" => "Partajat cu alții", -"No files have been shared with you yet." => "Nu sunt încă fișiere partajate cu tine.", -"You haven't shared any files yet." => "Nu ai partajat încă nici un fișier.", -"Cancel" => "Anulare", -"Shared by" => "impartite in ", -"This share is password-protected" => "Această partajare este protejată cu parolă", -"The password is wrong. Try again." => "Parola este incorectă. Încercaţi din nou.", -"Password" => "Parolă", -"Name" => "Nume", -"Reasons might be:" => "Motive posibile ar fi:", -"sharing is disabled" => "Partajare este oprită", -"Add to your ownCloud" => "Adaugă propriul tău ownCloud", -"Download" => "Descarcă", -"Download %s" => "Descarcă %s", -"Remote Shares" => "Partajări de la distanță" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"; diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js new file mode 100644 index 0000000000000000000000000000000000000000..f8a73755cd1a4d9e177982716b7150eb49beaf5b --- /dev/null +++ b/apps/files_sharing/l10n/ru.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "На данном сервере выключено межсерверное предоставление общих папок", + "The mountpoint name contains invalid characters." : "Имя точки монтирования содержит недопустимые символы.", + "Invalid or untrusted SSL certificate" : "Недействительный или недоверенный сертификат SSL", + "Couldn't add remote share" : "Невозможно добавить удалённую общую папку", + "Shared with you" : "Доступные для Вас", + "Shared with others" : "Доступные для других", + "Shared by link" : "Доступные по ссылке", + "No files have been shared with you yet." : "Отсутствуют доступные для вас файлы.", + "You haven't shared any files yet." : "У вас нет общедоступных файлов", + "You haven't shared any files by link yet." : "Вы ещё не открыли доступ по ссылке ни к одному файлу.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Добавить удалённую общую папку {name} из {owner}@{remote}?", + "Remote share" : "Удалённая общая папка", + "Remote share password" : "Пароль для удалённой общей папки", + "Cancel" : "Отменить", + "Add remote share" : "Добавить удалённую общую папку", + "No ownCloud installation found at {remote}" : "Не найдено ownCloud на {remote}", + "Invalid ownCloud url" : "Неверный адрес ownCloud", + "Shared by" : "Опубликовано", + "This share is password-protected" : "Для доступа к информации необходимо ввести пароль", + "The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.", + "Password" : "Пароль", + "Name" : "Имя", + "Share time" : "Дата публикации", + "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", + "Reasons might be:" : "Причиной может быть:", + "the item was removed" : "объект был удалён", + "the link expired" : "срок действия ссылки истёк", + "sharing is disabled" : "общий доступ отключён", + "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, пожалуйста, свяжитесь с тем, кто отправил Вам эту ссылку.", + "Add to your ownCloud" : "Добавить в свой ownCloud", + "Download" : "Скачать", + "Download %s" : "Скачать %s", + "Direct link" : "Прямая ссылка", + "Server-to-Server Sharing" : "Общий доступ Сервер-Сервер", + "Allow users on this server to send shares to other servers" : "Разрешить пользователям на этом сервере отправлять файлы на другие сервера", + "Allow users on this server to receive shares from other servers" : "Разрешить пользователям на том сервере получать файлы с других серверов" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..ab20e0c3e9294ba960868c18362eec8e7a9907dc --- /dev/null +++ b/apps/files_sharing/l10n/ru.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "На данном сервере выключено межсерверное предоставление общих папок", + "The mountpoint name contains invalid characters." : "Имя точки монтирования содержит недопустимые символы.", + "Invalid or untrusted SSL certificate" : "Недействительный или недоверенный сертификат SSL", + "Couldn't add remote share" : "Невозможно добавить удалённую общую папку", + "Shared with you" : "Доступные для Вас", + "Shared with others" : "Доступные для других", + "Shared by link" : "Доступные по ссылке", + "No files have been shared with you yet." : "Отсутствуют доступные для вас файлы.", + "You haven't shared any files yet." : "У вас нет общедоступных файлов", + "You haven't shared any files by link yet." : "Вы ещё не открыли доступ по ссылке ни к одному файлу.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Добавить удалённую общую папку {name} из {owner}@{remote}?", + "Remote share" : "Удалённая общая папка", + "Remote share password" : "Пароль для удалённой общей папки", + "Cancel" : "Отменить", + "Add remote share" : "Добавить удалённую общую папку", + "No ownCloud installation found at {remote}" : "Не найдено ownCloud на {remote}", + "Invalid ownCloud url" : "Неверный адрес ownCloud", + "Shared by" : "Опубликовано", + "This share is password-protected" : "Для доступа к информации необходимо ввести пароль", + "The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.", + "Password" : "Пароль", + "Name" : "Имя", + "Share time" : "Дата публикации", + "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", + "Reasons might be:" : "Причиной может быть:", + "the item was removed" : "объект был удалён", + "the link expired" : "срок действия ссылки истёк", + "sharing is disabled" : "общий доступ отключён", + "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, пожалуйста, свяжитесь с тем, кто отправил Вам эту ссылку.", + "Add to your ownCloud" : "Добавить в свой ownCloud", + "Download" : "Скачать", + "Download %s" : "Скачать %s", + "Direct link" : "Прямая ссылка", + "Server-to-Server Sharing" : "Общий доступ Сервер-Сервер", + "Allow users on this server to send shares to other servers" : "Разрешить пользователям на этом сервере отправлять файлы на другие сервера", + "Allow users on this server to receive shares from other servers" : "Разрешить пользователям на том сервере получать файлы с других серверов" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ru.php b/apps/files_sharing/l10n/ru.php deleted file mode 100644 index 6d08aff040f34ae608328ace51b786c76bf46b71..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ru.php +++ /dev/null @@ -1,40 +0,0 @@ - "На данном сервере выключено межсерверное предоставление общих папок", -"The mountpoint name contains invalid characters." => "Имя точки монтирования содержит недопустимые символы.", -"Invalid or untrusted SSL certificate" => "Недействительный или недоверенный сертификат SSL", -"Couldn't add remote share" => "Невозможно добавить удалённую общую папку", -"Shared with you" => "Доступные для Вас", -"Shared with others" => "Доступные для других", -"Shared by link" => "Доступные по ссылке", -"No files have been shared with you yet." => "Отсутствуют доступные для вас файлы.", -"You haven't shared any files yet." => "У вас нет общедоступных файлов", -"You haven't shared any files by link yet." => "Вы ещё не открыли доступ по ссылке ни к одному файлу.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Добавить удалённую общую папку {name} из {owner}@{remote}?", -"Remote share" => "Удалённая общая папка", -"Remote share password" => "Пароль для удалённой общей папки", -"Cancel" => "Отменить", -"Add remote share" => "Добавить удалённую общую папку", -"No ownCloud installation found at {remote}" => "Не найдено ownCloud на {remote}", -"Invalid ownCloud url" => "Неверный адрес ownCloud", -"Shared by" => "Опубликовано", -"This share is password-protected" => "Для доступа к информации необходимо ввести пароль", -"The password is wrong. Try again." => "Неверный пароль. Попробуйте еще раз.", -"Password" => "Пароль", -"Name" => "Имя", -"Share time" => "Дата публикации", -"Sorry, this link doesn’t seem to work anymore." => "Эта ссылка устарела и более не действительна.", -"Reasons might be:" => "Причиной может быть:", -"the item was removed" => "объект был удалён", -"the link expired" => "срок действия ссылки истёк", -"sharing is disabled" => "общий доступ отключён", -"For more info, please ask the person who sent this link." => "Для получения дополнительной информации, пожалуйста, свяжитесь с тем, кто отправил Вам эту ссылку.", -"Add to your ownCloud" => "Добавить в свой ownCloud", -"Download" => "Скачать", -"Download %s" => "Скачать %s", -"Direct link" => "Прямая ссылка", -"Remote Shares" => "Удалённые общие папки", -"Allow other instances to mount public links shared from this server" => "Разрешить другим экземплярам Owncloud монтировать ссылки, опубликованные на этом сервере", -"Allow users to mount public link shares" => "Разрешить пользователям монтировать ссылки на общие папки" -); -$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);"; diff --git a/apps/files_sharing/l10n/si_LK.js b/apps/files_sharing/l10n/si_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..f55e8fc6d507173de0c86e9da624a73fda51e56a --- /dev/null +++ b/apps/files_sharing/l10n/si_LK.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "එපා", + "Password" : "මුර පදය", + "Name" : "නම", + "Download" : "බාන්න" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/si_LK.json b/apps/files_sharing/l10n/si_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..528b13cd6e49e0dd65184fad7b017b272162ef5f --- /dev/null +++ b/apps/files_sharing/l10n/si_LK.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "එපා", + "Password" : "මුර පදය", + "Name" : "නම", + "Download" : "බාන්න" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/si_LK.php b/apps/files_sharing/l10n/si_LK.php deleted file mode 100644 index f3919e97b11d4e28af12aad665b14ae61ea54249..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/si_LK.php +++ /dev/null @@ -1,8 +0,0 @@ - "එපා", -"Password" => "මුර පදය", -"Name" => "නම", -"Download" => "බාන්න" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js new file mode 100644 index 0000000000000000000000000000000000000000..aa3858514974926cbb891d2bc0938a39c1c77491 --- /dev/null +++ b/apps/files_sharing/l10n/sk.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Zrušiť", + "Download" : "Stiahnuť" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json new file mode 100644 index 0000000000000000000000000000000000000000..65bbffa41917fa56afbae60548b9b640d1037114 --- /dev/null +++ b/apps/files_sharing/l10n/sk.json @@ -0,0 +1,5 @@ +{ "translations": { + "Cancel" : "Zrušiť", + "Download" : "Stiahnuť" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sk.php b/apps/files_sharing/l10n/sk.php deleted file mode 100644 index bc251c7fd59abaeb4560858b8cc4963cefb1ba2c..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sk.php +++ /dev/null @@ -1,6 +0,0 @@ - "Zrušiť", -"Download" => "Stiahnuť" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_sharing/l10n/sk_SK.js b/apps/files_sharing/l10n/sk_SK.js new file mode 100644 index 0000000000000000000000000000000000000000..a68ce01a721077f9041e790cbccd5833a272ea9f --- /dev/null +++ b/apps/files_sharing/l10n/sk_SK.js @@ -0,0 +1,37 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Zdieľanie server-server nie je na tomto serveri povolené", + "Invalid or untrusted SSL certificate" : "Neplatný alebo nedôveryhodný certifikát SSL", + "Couldn't add remote share" : "Nemožno pridať vzdialené zdieľanie", + "Shared with you" : "Zdieľané s vami", + "Shared with others" : "Zdieľané s ostanými", + "Shared by link" : "Zdieľané pomocou odkazu", + "No files have been shared with you yet." : "Zatiaľ s vami nikto žiadne súbory nezdieľal.", + "You haven't shared any files yet." : "Zatiaľ ste nezdieľali žiadne súbory.", + "You haven't shared any files by link yet." : "Zatiaľ ste pomocou odkazu nezdieľali žiaden súbor.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?", + "Remote share" : "Vzdialené úložisko", + "Remote share password" : "Heslo k vzdialenému úložisku", + "Cancel" : "Zrušiť", + "Add remote share" : "Pridať vzdialené úložisko", + "No ownCloud installation found at {remote}" : "Žiadna ownCloud inštancia na {remote}", + "Invalid ownCloud url" : "Chybná ownCloud url", + "Shared by" : "Zdieľa", + "This share is password-protected" : "Toto zdieľanie je chránené heslom", + "The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.", + "Password" : "Heslo", + "Name" : "Názov", + "Share time" : "Čas zdieľania", + "Sorry, this link doesn’t seem to work anymore." : "To je nepríjemné, ale tento odkaz už nie je funkčný.", + "Reasons might be:" : "Možné dôvody:", + "the item was removed" : "položka bola presunutá", + "the link expired" : "linke vypršala platnosť", + "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.", + "Add to your ownCloud" : "Pridať do svojho ownCloudu", + "Download" : "Sťahovanie", + "Download %s" : "Stiahnuť %s", + "Direct link" : "Priama linka" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/sk_SK.json b/apps/files_sharing/l10n/sk_SK.json new file mode 100644 index 0000000000000000000000000000000000000000..29470388f0ffce9139b134bd79da12639ba47778 --- /dev/null +++ b/apps/files_sharing/l10n/sk_SK.json @@ -0,0 +1,35 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Zdieľanie server-server nie je na tomto serveri povolené", + "Invalid or untrusted SSL certificate" : "Neplatný alebo nedôveryhodný certifikát SSL", + "Couldn't add remote share" : "Nemožno pridať vzdialené zdieľanie", + "Shared with you" : "Zdieľané s vami", + "Shared with others" : "Zdieľané s ostanými", + "Shared by link" : "Zdieľané pomocou odkazu", + "No files have been shared with you yet." : "Zatiaľ s vami nikto žiadne súbory nezdieľal.", + "You haven't shared any files yet." : "Zatiaľ ste nezdieľali žiadne súbory.", + "You haven't shared any files by link yet." : "Zatiaľ ste pomocou odkazu nezdieľali žiaden súbor.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?", + "Remote share" : "Vzdialené úložisko", + "Remote share password" : "Heslo k vzdialenému úložisku", + "Cancel" : "Zrušiť", + "Add remote share" : "Pridať vzdialené úložisko", + "No ownCloud installation found at {remote}" : "Žiadna ownCloud inštancia na {remote}", + "Invalid ownCloud url" : "Chybná ownCloud url", + "Shared by" : "Zdieľa", + "This share is password-protected" : "Toto zdieľanie je chránené heslom", + "The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.", + "Password" : "Heslo", + "Name" : "Názov", + "Share time" : "Čas zdieľania", + "Sorry, this link doesn’t seem to work anymore." : "To je nepríjemné, ale tento odkaz už nie je funkčný.", + "Reasons might be:" : "Možné dôvody:", + "the item was removed" : "položka bola presunutá", + "the link expired" : "linke vypršala platnosť", + "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.", + "Add to your ownCloud" : "Pridať do svojho ownCloudu", + "Download" : "Sťahovanie", + "Download %s" : "Stiahnuť %s", + "Direct link" : "Priama linka" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sk_SK.php b/apps/files_sharing/l10n/sk_SK.php deleted file mode 100644 index f3231cb102105d2bb58bf752d7a19bf042d8aba0..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sk_SK.php +++ /dev/null @@ -1,39 +0,0 @@ - "Zdieľanie server-server nie je na tomto serveri povolené", -"Invalid or untrusted SSL certificate" => "Neplatný alebo nedôveryhodný certifikát SSL", -"Couldn't add remote share" => "Nemožno pridať vzdialené zdieľanie", -"Shared with you" => "Zdieľané s vami", -"Shared with others" => "Zdieľané s ostanými", -"Shared by link" => "Zdieľané pomocou odkazu", -"No files have been shared with you yet." => "Zatiaľ s vami nikto žiadne súbory nezdieľal.", -"You haven't shared any files yet." => "Zatiaľ ste nezdieľali žiadne súbory.", -"You haven't shared any files by link yet." => "Zatiaľ ste pomocou odkazu nezdieľali žiaden súbor.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?", -"Remote share" => "Vzdialené úložisko", -"Remote share password" => "Heslo k vzdialenému úložisku", -"Cancel" => "Zrušiť", -"Add remote share" => "Pridať vzdialené úložisko", -"No ownCloud installation found at {remote}" => "Žiadna ownCloud inštancia na {remote}", -"Invalid ownCloud url" => "Chybná ownCloud url", -"Shared by" => "Zdieľa", -"This share is password-protected" => "Toto zdieľanie je chránené heslom", -"The password is wrong. Try again." => "Heslo je chybné. Skúste to znova.", -"Password" => "Heslo", -"Name" => "Názov", -"Share time" => "Čas zdieľania", -"Sorry, this link doesn’t seem to work anymore." => "To je nepríjemné, ale tento odkaz už nie je funkčný.", -"Reasons might be:" => "Možné dôvody:", -"the item was removed" => "položka bola presunutá", -"the link expired" => "linke vypršala platnosť", -"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.", -"Add to your ownCloud" => "Pridať do svojho ownCloudu", -"Download" => "Sťahovanie", -"Download %s" => "Stiahnuť %s", -"Direct link" => "Priama linka", -"Remote Shares" => "Vzdialené úložiská", -"Allow other instances to mount public links shared from this server" => "Povoliť ďalším inštanciám pripojiť verejné odkazy zdieľané z tohto servera", -"Allow users to mount public link shares" => "Povoliť používateľom pripojiť sa na zdieľané verejné odkazy" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js new file mode 100644 index 0000000000000000000000000000000000000000..b9a3a00585ccfb6f2d09f66a49f610fd0b09593f --- /dev/null +++ b/apps/files_sharing/l10n/sl.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Na tem strežniku ni omogočena možnost souporabe strežnika s strežnikom.", + "The mountpoint name contains invalid characters." : "Ime točke priklopa vsebuje neveljavne znake.", + "Invalid or untrusted SSL certificate" : "Neveljavno oziroma nepotrjeno potrdilo SSL", + "Couldn't add remote share" : "Ni mogoče dodati oddaljenega mesta za souporabo", + "Shared with you" : "V souporabi z vami", + "Shared with others" : "V souporabi z drugimi", + "Shared by link" : "Souporaba s povezavo", + "No files have been shared with you yet." : "Ni datotek, ki bi jih drugi omogočili za souporabo z vami.", + "You haven't shared any files yet." : "Ni datotek, ki bi jih omogočili za souporabo.", + "You haven't shared any files by link yet." : "Ni datotek, ki bi jih omogočili za souporabo s povezavo.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ali želite dodati oddaljeno mesto souporabe {name} na {owner}@{remote}?", + "Remote share" : "Oddaljeno mesto za souporabo", + "Remote share password" : "Geslo za mesto za oddaljeno souporabo", + "Cancel" : "Prekliči", + "Add remote share" : "Dodaj oddaljeno mesto za souporabo", + "No ownCloud installation found at {remote}" : "Na mestu {remote} ni namestitve ownCloud", + "Invalid ownCloud url" : "Naveden je neveljaven naslov URL strežnika ownCloud", + "Shared by" : "V souporabi z", + "This share is password-protected" : "To mesto je zaščiteno z geslom.", + "The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.", + "Password" : "Geslo", + "Name" : "Ime", + "Share time" : "Čas souporabe", + "Sorry, this link doesn’t seem to work anymore." : "Povezava očitno ni več v uporabi.", + "Reasons might be:" : "Vzrok je lahko:", + "the item was removed" : "predmet je odstranjen,", + "the link expired" : "povezava je pretekla,", + "sharing is disabled" : "souporaba je onemogočena.", + "For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.", + "Add to your ownCloud" : "Dodaj v svoj oblak ownCloud", + "Download" : "Prejmi", + "Download %s" : "Prejmi %s", + "Direct link" : "Neposredna povezava", + "Server-to-Server Sharing" : "Souporaba strežnik-na-strežnik", + "Allow users on this server to send shares to other servers" : "Dovoli uporabnikom tega strežnika pošiljanje map za souporabo na druge strežnike.", + "Allow users on this server to receive shares from other servers" : "Dovoli uporabnikom tega strežnika sprejemanje map za souporabo z drugih strežnikov." +}, +"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..5e9290df487527e66a6a7422264e427d34261c31 --- /dev/null +++ b/apps/files_sharing/l10n/sl.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Na tem strežniku ni omogočena možnost souporabe strežnika s strežnikom.", + "The mountpoint name contains invalid characters." : "Ime točke priklopa vsebuje neveljavne znake.", + "Invalid or untrusted SSL certificate" : "Neveljavno oziroma nepotrjeno potrdilo SSL", + "Couldn't add remote share" : "Ni mogoče dodati oddaljenega mesta za souporabo", + "Shared with you" : "V souporabi z vami", + "Shared with others" : "V souporabi z drugimi", + "Shared by link" : "Souporaba s povezavo", + "No files have been shared with you yet." : "Ni datotek, ki bi jih drugi omogočili za souporabo z vami.", + "You haven't shared any files yet." : "Ni datotek, ki bi jih omogočili za souporabo.", + "You haven't shared any files by link yet." : "Ni datotek, ki bi jih omogočili za souporabo s povezavo.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ali želite dodati oddaljeno mesto souporabe {name} na {owner}@{remote}?", + "Remote share" : "Oddaljeno mesto za souporabo", + "Remote share password" : "Geslo za mesto za oddaljeno souporabo", + "Cancel" : "Prekliči", + "Add remote share" : "Dodaj oddaljeno mesto za souporabo", + "No ownCloud installation found at {remote}" : "Na mestu {remote} ni namestitve ownCloud", + "Invalid ownCloud url" : "Naveden je neveljaven naslov URL strežnika ownCloud", + "Shared by" : "V souporabi z", + "This share is password-protected" : "To mesto je zaščiteno z geslom.", + "The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.", + "Password" : "Geslo", + "Name" : "Ime", + "Share time" : "Čas souporabe", + "Sorry, this link doesn’t seem to work anymore." : "Povezava očitno ni več v uporabi.", + "Reasons might be:" : "Vzrok je lahko:", + "the item was removed" : "predmet je odstranjen,", + "the link expired" : "povezava je pretekla,", + "sharing is disabled" : "souporaba je onemogočena.", + "For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.", + "Add to your ownCloud" : "Dodaj v svoj oblak ownCloud", + "Download" : "Prejmi", + "Download %s" : "Prejmi %s", + "Direct link" : "Neposredna povezava", + "Server-to-Server Sharing" : "Souporaba strežnik-na-strežnik", + "Allow users on this server to send shares to other servers" : "Dovoli uporabnikom tega strežnika pošiljanje map za souporabo na druge strežnike.", + "Allow users on this server to receive shares from other servers" : "Dovoli uporabnikom tega strežnika sprejemanje map za souporabo z drugih strežnikov." +},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sl.php b/apps/files_sharing/l10n/sl.php deleted file mode 100644 index a7aea4d49d661e5432a69847c89fde45b1c2216a..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sl.php +++ /dev/null @@ -1,40 +0,0 @@ - "Na tem strežniku ni omogočena možnost souporabe strežnika s strežnikom.", -"The mountpoint name contains invalid characters." => "Ime točke priklopa vsebuje neveljavne znake.", -"Invalid or untrusted SSL certificate" => "Neveljavno oziroma nepotrjeno potrdilo SSL", -"Couldn't add remote share" => "Ni mogoče dodati oddaljenega mesta za souporabo", -"Shared with you" => "V souporabi z vami", -"Shared with others" => "V souporabi z drugimi", -"Shared by link" => "Souporaba s povezavo", -"No files have been shared with you yet." => "Ni datotek, ki bi jih drugi omogočili za souporabo z vami.", -"You haven't shared any files yet." => "Ni datotek, ki bi jih omogočili za souporabo.", -"You haven't shared any files by link yet." => "Ni datotek, ki bi jih omogočili za souporabo s povezavo.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "Ali želite dodati oddaljeno mesto souporabe {name} na {owner}@{remote}?", -"Remote share" => "Oddaljeno mesto za souporabo", -"Remote share password" => "Geslo za mesto za oddaljeno souporabo", -"Cancel" => "Prekliči", -"Add remote share" => "Dodaj oddaljeno mesto za souporabo", -"No ownCloud installation found at {remote}" => "Na mestu {remote} ni namestitve ownCloud", -"Invalid ownCloud url" => "Naveden je neveljaven naslov URL strežnika ownCloud", -"Shared by" => "V souporabi z", -"This share is password-protected" => "To mesto je zaščiteno z geslom.", -"The password is wrong. Try again." => "Geslo je napačno. Poskusite znova.", -"Password" => "Geslo", -"Name" => "Ime", -"Share time" => "Čas souporabe", -"Sorry, this link doesn’t seem to work anymore." => "Povezava očitno ni več v uporabi.", -"Reasons might be:" => "Vzrok je lahko:", -"the item was removed" => "predmet je odstranjen,", -"the link expired" => "povezava je pretekla,", -"sharing is disabled" => "souporaba je onemogočena.", -"For more info, please ask the person who sent this link." => "Za več podrobnosti stopite v stik s pošiljateljem te povezave.", -"Add to your ownCloud" => "Dodaj v svoj oblak ownCloud", -"Download" => "Prejmi", -"Download %s" => "Prejmi %s", -"Direct link" => "Neposredna povezava", -"Remote Shares" => "Oddaljena souporaba", -"Allow other instances to mount public links shared from this server" => "Dovoli drugim primerkom priklop javnih povezav s tega strežnika", -"Allow users to mount public link shares" => "Dovoli uporabnikom priklop javnih povezav med mapami za souporabo" -); -$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js new file mode 100644 index 0000000000000000000000000000000000000000..5f11b75039f5f92434a56c45d2465139c2a68dbd --- /dev/null +++ b/apps/files_sharing/l10n/sq.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Anullo", + "Shared by" : "Ndarë nga", + "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", + "The password is wrong. Try again." : "Kodi është i gabuar. Provojeni përsëri.", + "Password" : "Kodi", + "Name" : "Emri", + "Sorry, this link doesn’t seem to work anymore." : "Ju kërkojmë ndjesë, kjo lidhje duket sikur nuk punon më.", + "Reasons might be:" : "Arsyet mund të jenë:", + "the item was removed" : "elementi është eliminuar", + "the link expired" : "lidhja ka skaduar", + "sharing is disabled" : "ndarja është çaktivizuar", + "For more info, please ask the person who sent this link." : "Për më shumë informacione, ju lutem pyesni personin që iu dërgoi këtë lidhje.", + "Download" : "Shkarko", + "Direct link" : "Lidhje direkte" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json new file mode 100644 index 0000000000000000000000000000000000000000..491c0bfc7a923be58bda76df87f0c56aac4bd9e8 --- /dev/null +++ b/apps/files_sharing/l10n/sq.json @@ -0,0 +1,17 @@ +{ "translations": { + "Cancel" : "Anullo", + "Shared by" : "Ndarë nga", + "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", + "The password is wrong. Try again." : "Kodi është i gabuar. Provojeni përsëri.", + "Password" : "Kodi", + "Name" : "Emri", + "Sorry, this link doesn’t seem to work anymore." : "Ju kërkojmë ndjesë, kjo lidhje duket sikur nuk punon më.", + "Reasons might be:" : "Arsyet mund të jenë:", + "the item was removed" : "elementi është eliminuar", + "the link expired" : "lidhja ka skaduar", + "sharing is disabled" : "ndarja është çaktivizuar", + "For more info, please ask the person who sent this link." : "Për më shumë informacione, ju lutem pyesni personin që iu dërgoi këtë lidhje.", + "Download" : "Shkarko", + "Direct link" : "Lidhje direkte" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sq.php b/apps/files_sharing/l10n/sq.php deleted file mode 100644 index 56b3816da32a4e0b269200ad15de96d68bfb1174..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sq.php +++ /dev/null @@ -1,18 +0,0 @@ - "Anullo", -"Shared by" => "Ndarë nga", -"This share is password-protected" => "Kjo pjesë është e mbrojtur me fjalëkalim", -"The password is wrong. Try again." => "Kodi është i gabuar. Provojeni përsëri.", -"Password" => "Kodi", -"Name" => "Emri", -"Sorry, this link doesn’t seem to work anymore." => "Ju kërkojmë ndjesë, kjo lidhje duket sikur nuk punon më.", -"Reasons might be:" => "Arsyet mund të jenë:", -"the item was removed" => "elementi është eliminuar", -"the link expired" => "lidhja ka skaduar", -"sharing is disabled" => "ndarja është çaktivizuar", -"For more info, please ask the person who sent this link." => "Për më shumë informacione, ju lutem pyesni personin që iu dërgoi këtë lidhje.", -"Download" => "Shkarko", -"Direct link" => "Lidhje direkte" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js new file mode 100644 index 0000000000000000000000000000000000000000..6e8100375f1e6e25e761a9ab1d23cfc93ea8f46b --- /dev/null +++ b/apps/files_sharing/l10n/sr.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Откажи", + "Shared by" : "Делио", + "Password" : "Лозинка", + "Name" : "Име", + "Download" : "Преузми" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json new file mode 100644 index 0000000000000000000000000000000000000000..53642f3f3492df2c9bde5040d04f77ed74c5d87f --- /dev/null +++ b/apps/files_sharing/l10n/sr.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "Откажи", + "Shared by" : "Делио", + "Password" : "Лозинка", + "Name" : "Име", + "Download" : "Преузми" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sr.php b/apps/files_sharing/l10n/sr.php deleted file mode 100644 index 2f5a996bba5df999ca23981c7280d653f9953c6a..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sr.php +++ /dev/null @@ -1,9 +0,0 @@ - "Откажи", -"Shared by" => "Делио", -"Password" => "Лозинка", -"Name" => "Име", -"Download" => "Преузми" -); -$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);"; diff --git a/apps/files_sharing/l10n/sr@latin.js b/apps/files_sharing/l10n/sr@latin.js new file mode 100644 index 0000000000000000000000000000000000000000..6e13a919b1bc0698bd309bf7fa38031a81d73596 --- /dev/null +++ b/apps/files_sharing/l10n/sr@latin.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Otkaži", + "Password" : "Lozinka", + "Name" : "Ime", + "Download" : "Preuzmi" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/sr@latin.json b/apps/files_sharing/l10n/sr@latin.json new file mode 100644 index 0000000000000000000000000000000000000000..9aebf35fc82f9d5d523519f11de9006267543d84 --- /dev/null +++ b/apps/files_sharing/l10n/sr@latin.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "Otkaži", + "Password" : "Lozinka", + "Name" : "Ime", + "Download" : "Preuzmi" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sr@latin.php b/apps/files_sharing/l10n/sr@latin.php deleted file mode 100644 index 168005c1e39931403bf52f1b6da96849f7067b17..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sr@latin.php +++ /dev/null @@ -1,8 +0,0 @@ - "Otkaži", -"Password" => "Lozinka", -"Name" => "Ime", -"Download" => "Preuzmi" -); -$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);"; diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js new file mode 100644 index 0000000000000000000000000000000000000000..ba1ecda864f7f2743f389ac60f399155a2eab912 --- /dev/null +++ b/apps/files_sharing/l10n/sv.js @@ -0,0 +1,32 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Server-till-server-delning är inte aktiverat på denna server", + "Couldn't add remote share" : "Kunde inte lägga till fjärrutdelning", + "Shared with you" : "Delat med dig", + "Shared with others" : "Delat med andra", + "Shared by link" : "Delad som länk", + "No files have been shared with you yet." : "Inga filer har ännu delats med dig.", + "You haven't shared any files yet." : "Du har inte delat några filer ännu.", + "You haven't shared any files by link yet." : "Du har inte delat några filer som länk ännu.", + "Cancel" : "Avbryt", + "No ownCloud installation found at {remote}" : "Ingen ownCloudinstallation funnen på {remote}", + "Invalid ownCloud url" : "Felaktig ownCloud url", + "Shared by" : "Delad av", + "This share is password-protected" : "Den här delningen är lösenordsskyddad", + "The password is wrong. Try again." : "Lösenordet är fel. Försök igen.", + "Password" : "Lösenord", + "Name" : "Namn", + "Share time" : "Delningstid", + "Sorry, this link doesn’t seem to work anymore." : "Tyvärr, denna länk verkar inte fungera längre.", + "Reasons might be:" : "Orsaker kan vara:", + "the item was removed" : "objektet togs bort", + "the link expired" : "giltighet för länken har gått ut", + "sharing is disabled" : "delning är inaktiverat", + "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.", + "Add to your ownCloud" : "Lägg till i din ownCloud", + "Download" : "Ladda ner", + "Download %s" : "Ladda ner %s", + "Direct link" : "Direkt länk" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json new file mode 100644 index 0000000000000000000000000000000000000000..fecdfd2bed83da1cbd494733f76483b8089b692c --- /dev/null +++ b/apps/files_sharing/l10n/sv.json @@ -0,0 +1,30 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Server-till-server-delning är inte aktiverat på denna server", + "Couldn't add remote share" : "Kunde inte lägga till fjärrutdelning", + "Shared with you" : "Delat med dig", + "Shared with others" : "Delat med andra", + "Shared by link" : "Delad som länk", + "No files have been shared with you yet." : "Inga filer har ännu delats med dig.", + "You haven't shared any files yet." : "Du har inte delat några filer ännu.", + "You haven't shared any files by link yet." : "Du har inte delat några filer som länk ännu.", + "Cancel" : "Avbryt", + "No ownCloud installation found at {remote}" : "Ingen ownCloudinstallation funnen på {remote}", + "Invalid ownCloud url" : "Felaktig ownCloud url", + "Shared by" : "Delad av", + "This share is password-protected" : "Den här delningen är lösenordsskyddad", + "The password is wrong. Try again." : "Lösenordet är fel. Försök igen.", + "Password" : "Lösenord", + "Name" : "Namn", + "Share time" : "Delningstid", + "Sorry, this link doesn’t seem to work anymore." : "Tyvärr, denna länk verkar inte fungera längre.", + "Reasons might be:" : "Orsaker kan vara:", + "the item was removed" : "objektet togs bort", + "the link expired" : "giltighet för länken har gått ut", + "sharing is disabled" : "delning är inaktiverat", + "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.", + "Add to your ownCloud" : "Lägg till i din ownCloud", + "Download" : "Ladda ner", + "Download %s" : "Ladda ner %s", + "Direct link" : "Direkt länk" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/sv.php b/apps/files_sharing/l10n/sv.php deleted file mode 100644 index 4bb1f207ba8b5416e2958e0e813d255d34ff9f48..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/sv.php +++ /dev/null @@ -1,34 +0,0 @@ - "Server-till-server-delning är inte aktiverat på denna server", -"Couldn't add remote share" => "Kunde inte lägga till fjärrutdelning", -"Shared with you" => "Delat med dig", -"Shared with others" => "Delat med andra", -"Shared by link" => "Delad som länk", -"No files have been shared with you yet." => "Inga filer har ännu delats med dig.", -"You haven't shared any files yet." => "Du har inte delat några filer ännu.", -"You haven't shared any files by link yet." => "Du har inte delat några filer som länk ännu.", -"Cancel" => "Avbryt", -"No ownCloud installation found at {remote}" => "Ingen ownCloudinstallation funnen på {remote}", -"Invalid ownCloud url" => "Felaktig ownCloud url", -"Shared by" => "Delad av", -"This share is password-protected" => "Den här delningen är lösenordsskyddad", -"The password is wrong. Try again." => "Lösenordet är fel. Försök igen.", -"Password" => "Lösenord", -"Name" => "Namn", -"Share time" => "Delningstid", -"Sorry, this link doesn’t seem to work anymore." => "Tyvärr, denna länk verkar inte fungera längre.", -"Reasons might be:" => "Orsaker kan vara:", -"the item was removed" => "objektet togs bort", -"the link expired" => "giltighet för länken har gått ut", -"sharing is disabled" => "delning är inaktiverat", -"For more info, please ask the person who sent this link." => "För mer information, kontakta den person som skickade den här länken.", -"Add to your ownCloud" => "Lägg till i din ownCloud", -"Download" => "Ladda ner", -"Download %s" => "Ladda ner %s", -"Direct link" => "Direkt länk", -"Remote Shares" => "Fjärrutdelningar Server-Server", -"Allow other instances to mount public links shared from this server" => "Tillåt andra instanser vidaredelning utav publika länkar delade från denna servern", -"Allow users to mount public link shares" => "Tillåt användare att montera publika länkar" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/ta_LK.js b/apps/files_sharing/l10n/ta_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..846ed1b4f84c90c4851cc569bca22717b0ce06b1 --- /dev/null +++ b/apps/files_sharing/l10n/ta_LK.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "இரத்து செய்க", + "Password" : "கடவுச்சொல்", + "Name" : "பெயர்", + "Download" : "பதிவிறக்குக" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ta_LK.json b/apps/files_sharing/l10n/ta_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..8e722a9388914a4b2e058b954c9df1a2ba739511 --- /dev/null +++ b/apps/files_sharing/l10n/ta_LK.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "இரத்து செய்க", + "Password" : "கடவுச்சொல்", + "Name" : "பெயர்", + "Download" : "பதிவிறக்குக" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ta_LK.php b/apps/files_sharing/l10n/ta_LK.php deleted file mode 100644 index 7303c07f7b3c5dbb61aa185aa06c42f10aa75dbf..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ta_LK.php +++ /dev/null @@ -1,8 +0,0 @@ - "இரத்து செய்க", -"Password" => "கடவுச்சொல்", -"Name" => "பெயர்", -"Download" => "பதிவிறக்குக" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/te.js b/apps/files_sharing/l10n/te.js new file mode 100644 index 0000000000000000000000000000000000000000..16f1ba1ee2888f2f894b30e4193c2490f538eebf --- /dev/null +++ b/apps/files_sharing/l10n/te.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "రద్దుచేయి", + "Password" : "సంకేతపదం", + "Name" : "పేరు" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/te.json b/apps/files_sharing/l10n/te.json new file mode 100644 index 0000000000000000000000000000000000000000..1992a126415daee168eb0a103a75112e49f09da5 --- /dev/null +++ b/apps/files_sharing/l10n/te.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "రద్దుచేయి", + "Password" : "సంకేతపదం", + "Name" : "పేరు" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/te.php b/apps/files_sharing/l10n/te.php deleted file mode 100644 index 249e121cdbf465be90d950547ab3d9bf76cff038..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/te.php +++ /dev/null @@ -1,7 +0,0 @@ - "రద్దుచేయి", -"Password" => "సంకేతపదం", -"Name" => "పేరు" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/th_TH.js b/apps/files_sharing/l10n/th_TH.js new file mode 100644 index 0000000000000000000000000000000000000000..153f7e222c65bdf897d2d0cc5aeb5c3a90b0407b --- /dev/null +++ b/apps/files_sharing/l10n/th_TH.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "ยกเลิก", + "Shared by" : "ถูกแชร์โดย", + "Password" : "รหัสผ่าน", + "Name" : "ชื่อ", + "Download" : "ดาวน์โหลด" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/th_TH.json b/apps/files_sharing/l10n/th_TH.json new file mode 100644 index 0000000000000000000000000000000000000000..05757834e536487a012e8f843069b2fbf04113e3 --- /dev/null +++ b/apps/files_sharing/l10n/th_TH.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "ยกเลิก", + "Shared by" : "ถูกแชร์โดย", + "Password" : "รหัสผ่าน", + "Name" : "ชื่อ", + "Download" : "ดาวน์โหลด" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/th_TH.php b/apps/files_sharing/l10n/th_TH.php deleted file mode 100644 index 1594037396f7523496204722b411e2cd2ed0a91e..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/th_TH.php +++ /dev/null @@ -1,9 +0,0 @@ - "ยกเลิก", -"Shared by" => "ถูกแชร์โดย", -"Password" => "รหัสผ่าน", -"Name" => "ชื่อ", -"Download" => "ดาวน์โหลด" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js new file mode 100644 index 0000000000000000000000000000000000000000..7bbeefc96226c443a0de98e4a602029f3097e9bb --- /dev/null +++ b/apps/files_sharing/l10n/tr.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "Sunucudan sunucuya paylaşım bu sunucuda etkin değil", + "The mountpoint name contains invalid characters." : "Bağlama noktası adı geçersiz karakterler içeriyor.", + "Invalid or untrusted SSL certificate" : "Geçersiz veya güvenilmeyen SSL sertifikası", + "Couldn't add remote share" : "Uzak paylaşım eklenemedi", + "Shared with you" : "Sizinle paylaşılmış", + "Shared with others" : "Diğerleri ile paylaşılmış", + "Shared by link" : "Bağlantı ile paylaşılmış", + "No files have been shared with you yet." : "Henüz sizinle paylaşılan bir dosya yok.", + "You haven't shared any files yet." : "Henüz hiçbir dosya paylaşmadınız.", + "You haven't shared any files by link yet." : "Bağlantı ile henüz hiçbir dosya paylaşmadınız.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?", + "Remote share" : "Uzak paylaşım", + "Remote share password" : "Uzak paylaşım parolası", + "Cancel" : "İptal", + "Add remote share" : "Uzak paylaşım ekle", + "No ownCloud installation found at {remote}" : "{remote} üzerinde ownCloud kurulumu bulunamadı", + "Invalid ownCloud url" : "Geçersiz ownCloud adresi", + "Shared by" : "Paylaşan", + "This share is password-protected" : "Bu paylaşım parola korumalı", + "The password is wrong. Try again." : "Parola hatalı. Yeniden deneyin.", + "Password" : "Parola", + "Name" : "Ad", + "Share time" : "Paylaşma zamanı", + "Sorry, this link doesn’t seem to work anymore." : "Üzgünüz, bu bağlantı artık çalışıyor gibi görünmüyor.", + "Reasons might be:" : "Sebepleri şunlar olabilir:", + "the item was removed" : "öge kaldırılmış", + "the link expired" : "bağlantı süresi dolmuş", + "sharing is disabled" : "paylaşım devre dışı", + "For more info, please ask the person who sent this link." : "Daha fazla bilgi için bu bağlantıyı aldığınız kişi ile iletişime geçin.", + "Add to your ownCloud" : "ownCloud'ınıza Ekleyin", + "Download" : "İndir", + "Download %s" : "İndir: %s", + "Direct link" : "Doğrudan bağlantı", + "Server-to-Server Sharing" : "Sunucu-Sunucu Paylaşımı", + "Allow users on this server to send shares to other servers" : "Bu sunucudaki kullanıcıların diğer sunuculara paylaşım göndermelerine izin ver", + "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunucularda paylaşım almalarına izin ver" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..f91ab02288b33889afa3e3d6d40dbce08fba7cb8 --- /dev/null +++ b/apps/files_sharing/l10n/tr.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "Sunucudan sunucuya paylaşım bu sunucuda etkin değil", + "The mountpoint name contains invalid characters." : "Bağlama noktası adı geçersiz karakterler içeriyor.", + "Invalid or untrusted SSL certificate" : "Geçersiz veya güvenilmeyen SSL sertifikası", + "Couldn't add remote share" : "Uzak paylaşım eklenemedi", + "Shared with you" : "Sizinle paylaşılmış", + "Shared with others" : "Diğerleri ile paylaşılmış", + "Shared by link" : "Bağlantı ile paylaşılmış", + "No files have been shared with you yet." : "Henüz sizinle paylaşılan bir dosya yok.", + "You haven't shared any files yet." : "Henüz hiçbir dosya paylaşmadınız.", + "You haven't shared any files by link yet." : "Bağlantı ile henüz hiçbir dosya paylaşmadınız.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?", + "Remote share" : "Uzak paylaşım", + "Remote share password" : "Uzak paylaşım parolası", + "Cancel" : "İptal", + "Add remote share" : "Uzak paylaşım ekle", + "No ownCloud installation found at {remote}" : "{remote} üzerinde ownCloud kurulumu bulunamadı", + "Invalid ownCloud url" : "Geçersiz ownCloud adresi", + "Shared by" : "Paylaşan", + "This share is password-protected" : "Bu paylaşım parola korumalı", + "The password is wrong. Try again." : "Parola hatalı. Yeniden deneyin.", + "Password" : "Parola", + "Name" : "Ad", + "Share time" : "Paylaşma zamanı", + "Sorry, this link doesn’t seem to work anymore." : "Üzgünüz, bu bağlantı artık çalışıyor gibi görünmüyor.", + "Reasons might be:" : "Sebepleri şunlar olabilir:", + "the item was removed" : "öge kaldırılmış", + "the link expired" : "bağlantı süresi dolmuş", + "sharing is disabled" : "paylaşım devre dışı", + "For more info, please ask the person who sent this link." : "Daha fazla bilgi için bu bağlantıyı aldığınız kişi ile iletişime geçin.", + "Add to your ownCloud" : "ownCloud'ınıza Ekleyin", + "Download" : "İndir", + "Download %s" : "İndir: %s", + "Direct link" : "Doğrudan bağlantı", + "Server-to-Server Sharing" : "Sunucu-Sunucu Paylaşımı", + "Allow users on this server to send shares to other servers" : "Bu sunucudaki kullanıcıların diğer sunuculara paylaşım göndermelerine izin ver", + "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunucularda paylaşım almalarına izin ver" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/tr.php b/apps/files_sharing/l10n/tr.php deleted file mode 100644 index 018851657d40a72220bad85f8f93351544a97160..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/tr.php +++ /dev/null @@ -1,40 +0,0 @@ - "Sunucudan sunucuya paylaşım bu sunucuda etkin değil", -"The mountpoint name contains invalid characters." => "Bağlama noktası adı geçersiz karakterler içeriyor.", -"Invalid or untrusted SSL certificate" => "Geçersiz veya güvenilmeyen SSL sertifikası", -"Couldn't add remote share" => "Uzak paylaşım eklenemedi", -"Shared with you" => "Sizinle paylaşılmış", -"Shared with others" => "Diğerleri ile paylaşılmış", -"Shared by link" => "Bağlantı ile paylaşılmış", -"No files have been shared with you yet." => "Henüz sizinle paylaşılan bir dosya yok.", -"You haven't shared any files yet." => "Henüz hiçbir dosya paylaşmadınız.", -"You haven't shared any files by link yet." => "Bağlantı ile henüz hiçbir dosya paylaşmadınız.", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?", -"Remote share" => "Uzak paylaşım", -"Remote share password" => "Uzak paylaşım parolası", -"Cancel" => "İptal", -"Add remote share" => "Uzak paylaşım ekle", -"No ownCloud installation found at {remote}" => "{remote} üzerinde ownCloud kurulumu bulunamadı", -"Invalid ownCloud url" => "Geçersiz ownCloud adresi", -"Shared by" => "Paylaşan", -"This share is password-protected" => "Bu paylaşım parola korumalı", -"The password is wrong. Try again." => "Parola hatalı. Yeniden deneyin.", -"Password" => "Parola", -"Name" => "Ad", -"Share time" => "Paylaşma zamanı", -"Sorry, this link doesn’t seem to work anymore." => "Üzgünüz, bu bağlantı artık çalışıyor gibi görünmüyor.", -"Reasons might be:" => "Sebepleri şunlar olabilir:", -"the item was removed" => "öge kaldırılmış", -"the link expired" => "bağlantı süresi dolmuş", -"sharing is disabled" => "paylaşım devre dışı", -"For more info, please ask the person who sent this link." => "Daha fazla bilgi için bu bağlantıyı aldığınız kişi ile iletişime geçin.", -"Add to your ownCloud" => "ownCloud'ınıza Ekleyin", -"Download" => "İndir", -"Download %s" => "İndir: %s", -"Direct link" => "Doğrudan bağlantı", -"Remote Shares" => "Uzak Paylaşımlar", -"Allow other instances to mount public links shared from this server" => "Diğer örneklerin, bu sunucudan paylaşılmış herkese açık bağlantıları bağlamasına izin ver", -"Allow users to mount public link shares" => "Kullanıcıların herkese açık bağlantı paylaşımlarını bağlamasına izin ver" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/files_sharing/l10n/ug.js b/apps/files_sharing/l10n/ug.js new file mode 100644 index 0000000000000000000000000000000000000000..2e1fcc17441c7cc682e6c31a4e6f87475baa0ad5 --- /dev/null +++ b/apps/files_sharing/l10n/ug.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "ۋاز كەچ", + "Shared by" : "ھەمبەھىرلىگۈچى", + "Password" : "ئىم", + "Name" : "ئاتى", + "Download" : "چۈشۈر" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ug.json b/apps/files_sharing/l10n/ug.json new file mode 100644 index 0000000000000000000000000000000000000000..da37c17a5795e5ba5137d9e10a1a63432fa8d9dd --- /dev/null +++ b/apps/files_sharing/l10n/ug.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "ۋاز كەچ", + "Shared by" : "ھەمبەھىرلىگۈچى", + "Password" : "ئىم", + "Name" : "ئاتى", + "Download" : "چۈشۈر" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ug.php b/apps/files_sharing/l10n/ug.php deleted file mode 100644 index f15cda0e497db5e080f26d824fa3ec70f42c092f..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ug.php +++ /dev/null @@ -1,9 +0,0 @@ - "ۋاز كەچ", -"Shared by" => "ھەمبەھىرلىگۈچى", -"Password" => "ئىم", -"Name" => "ئاتى", -"Download" => "چۈشۈر" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js new file mode 100644 index 0000000000000000000000000000000000000000..e4506d34c62cb2025ce593a7dfba1e030e85d47f --- /dev/null +++ b/apps/files_sharing/l10n/uk.js @@ -0,0 +1,41 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "На даному сервері вимкнута можливість передачі даних між серверами", + "The mountpoint name contains invalid characters." : "Ім'я точки монтування містить неприпустимі символи.", + "Invalid or untrusted SSL certificate" : "Недійсній або не довірений SSL-сертифікат", + "Couldn't add remote share" : "Неможливо додати віддалену загальну теку", + "Shared with you" : "Доступне для вас", + "Shared with others" : "Доступне для інших", + "Shared by link" : "Доступне за посиланням", + "No files have been shared with you yet." : "Доступні для вас файли відсутні.", + "You haven't shared any files yet." : "Ви не маєте загальнодоступних файлів.", + "You haven't shared any files by link yet." : "Ви ще не відкрили доступ за посиланням для жодного з файлів.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Додати віддалену загальну теку {name} з {owner}@{remote}?", + "Remote share" : "Віддалена загальна тека", + "Remote share password" : "Пароль для віддаленої загальної теки", + "Cancel" : "Відмінити", + "Add remote share" : "Додати віддалену загальну теку", + "No ownCloud installation found at {remote}" : "Не знайдено ownCloud на {remote}", + "Invalid ownCloud url" : "Невірний ownCloud URL", + "Shared by" : "Опубліковано", + "This share is password-protected" : "Цей ресурс обміну захищений паролем", + "The password is wrong. Try again." : "Невірний пароль. Спробуйте ще раз.", + "Password" : "Пароль", + "Name" : "Ім'я", + "Share time" : "Дата публікації", + "Sorry, this link doesn’t seem to work anymore." : "На жаль, посилання більше не працює.", + "Reasons might be:" : "Можливі причини:", + "the item was removed" : "цей пункт був вилучений", + "the link expired" : "посилання застаріло", + "sharing is disabled" : "обмін заборонений", + "For more info, please ask the person who sent this link." : "Для отримання додаткової інформації, будь ласка, зверніться до особи, яка надіслала це посилання.", + "Add to your ownCloud" : "Додати до вашого ownCloud", + "Download" : "Завантажити", + "Download %s" : "Завантажити %s", + "Direct link" : "Пряме посилання", + "Server-to-Server Sharing" : "Публікація між серверами", + "Allow users on this server to send shares to other servers" : "Дозволити користувачам цього сервера публікувати на інших серверах", + "Allow users on this server to receive shares from other servers" : "Дозволити користувачам на цьому сервері отримувати публікації з інших серверів" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json new file mode 100644 index 0000000000000000000000000000000000000000..4e85a0a459ca4963bc1ef9b954aab4861cd71f6b --- /dev/null +++ b/apps/files_sharing/l10n/uk.json @@ -0,0 +1,39 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "На даному сервері вимкнута можливість передачі даних між серверами", + "The mountpoint name contains invalid characters." : "Ім'я точки монтування містить неприпустимі символи.", + "Invalid or untrusted SSL certificate" : "Недійсній або не довірений SSL-сертифікат", + "Couldn't add remote share" : "Неможливо додати віддалену загальну теку", + "Shared with you" : "Доступне для вас", + "Shared with others" : "Доступне для інших", + "Shared by link" : "Доступне за посиланням", + "No files have been shared with you yet." : "Доступні для вас файли відсутні.", + "You haven't shared any files yet." : "Ви не маєте загальнодоступних файлів.", + "You haven't shared any files by link yet." : "Ви ще не відкрили доступ за посиланням для жодного з файлів.", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Додати віддалену загальну теку {name} з {owner}@{remote}?", + "Remote share" : "Віддалена загальна тека", + "Remote share password" : "Пароль для віддаленої загальної теки", + "Cancel" : "Відмінити", + "Add remote share" : "Додати віддалену загальну теку", + "No ownCloud installation found at {remote}" : "Не знайдено ownCloud на {remote}", + "Invalid ownCloud url" : "Невірний ownCloud URL", + "Shared by" : "Опубліковано", + "This share is password-protected" : "Цей ресурс обміну захищений паролем", + "The password is wrong. Try again." : "Невірний пароль. Спробуйте ще раз.", + "Password" : "Пароль", + "Name" : "Ім'я", + "Share time" : "Дата публікації", + "Sorry, this link doesn’t seem to work anymore." : "На жаль, посилання більше не працює.", + "Reasons might be:" : "Можливі причини:", + "the item was removed" : "цей пункт був вилучений", + "the link expired" : "посилання застаріло", + "sharing is disabled" : "обмін заборонений", + "For more info, please ask the person who sent this link." : "Для отримання додаткової інформації, будь ласка, зверніться до особи, яка надіслала це посилання.", + "Add to your ownCloud" : "Додати до вашого ownCloud", + "Download" : "Завантажити", + "Download %s" : "Завантажити %s", + "Direct link" : "Пряме посилання", + "Server-to-Server Sharing" : "Публікація між серверами", + "Allow users on this server to send shares to other servers" : "Дозволити користувачам цього сервера публікувати на інших серверах", + "Allow users on this server to receive shares from other servers" : "Дозволити користувачам на цьому сервері отримувати публікації з інших серверів" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/uk.php b/apps/files_sharing/l10n/uk.php deleted file mode 100644 index 48297bcf2b35db36e4e4a8df26c0b9bb9eca3621..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/uk.php +++ /dev/null @@ -1,19 +0,0 @@ - "Відмінити", -"Shared by" => "Опубліковано", -"This share is password-protected" => "Цей ресурс обміну захищений паролем", -"The password is wrong. Try again." => "Невірний пароль. Спробуйте ще раз.", -"Password" => "Пароль", -"Name" => "Ім'я", -"Sorry, this link doesn’t seem to work anymore." => "На жаль, посилання більше не працює.", -"Reasons might be:" => "Можливі причини:", -"the item was removed" => "цей пункт був вилучений", -"the link expired" => "посилання застаріло", -"sharing is disabled" => "обмін заборонений", -"For more info, please ask the person who sent this link." => "Для отримання додаткової інформації, будь ласка, зверніться до особи, яка надіслала це посилання.", -"Download" => "Завантажити", -"Download %s" => "Завантажити %s", -"Direct link" => "Пряме посилання" -); -$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);"; diff --git a/apps/files_sharing/l10n/ur_PK.js b/apps/files_sharing/l10n/ur_PK.js new file mode 100644 index 0000000000000000000000000000000000000000..2e9b145d789b1a3e6058e71f13c8a40a112124c6 --- /dev/null +++ b/apps/files_sharing/l10n/ur_PK.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "منسوخ کریں", + "Shared by" : "سے اشتراک شدہ", + "Password" : "پاسورڈ", + "Name" : "اسم", + "Download" : "ڈاؤن لوڈ،" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ur_PK.json b/apps/files_sharing/l10n/ur_PK.json new file mode 100644 index 0000000000000000000000000000000000000000..b0ac6d244b855948691d1ec3eaec410b12cd1754 --- /dev/null +++ b/apps/files_sharing/l10n/ur_PK.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "منسوخ کریں", + "Shared by" : "سے اشتراک شدہ", + "Password" : "پاسورڈ", + "Name" : "اسم", + "Download" : "ڈاؤن لوڈ،" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/ur_PK.php b/apps/files_sharing/l10n/ur_PK.php deleted file mode 100644 index 428feb5fbb946f7b1c6e20e7cbb5dced7a141995..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/ur_PK.php +++ /dev/null @@ -1,9 +0,0 @@ - "منسوخ کریں", -"Shared by" => "سے اشتراک شدہ", -"Password" => "پاسورڈ", -"Name" => "اسم", -"Download" => "ڈاؤن لوڈ،" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_sharing/l10n/vi.js b/apps/files_sharing/l10n/vi.js new file mode 100644 index 0000000000000000000000000000000000000000..3b73c2c9ec49f73212b67ffe6b97a35654dd6769 --- /dev/null +++ b/apps/files_sharing/l10n/vi.js @@ -0,0 +1,10 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "Hủy", + "Shared by" : "Chia sẻ bởi", + "Password" : "Mật khẩu", + "Name" : "Tên", + "Download" : "Tải về" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/vi.json b/apps/files_sharing/l10n/vi.json new file mode 100644 index 0000000000000000000000000000000000000000..149509fa91e784c458a276f131ad9cabeeca6328 --- /dev/null +++ b/apps/files_sharing/l10n/vi.json @@ -0,0 +1,8 @@ +{ "translations": { + "Cancel" : "Hủy", + "Shared by" : "Chia sẻ bởi", + "Password" : "Mật khẩu", + "Name" : "Tên", + "Download" : "Tải về" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/vi.php b/apps/files_sharing/l10n/vi.php deleted file mode 100644 index d7eeebd9a1086ac752d156b2fc41d5d52afd27eb..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/vi.php +++ /dev/null @@ -1,9 +0,0 @@ - "Hủy", -"Shared by" => "Chia sẻ bởi", -"Password" => "Mật khẩu", -"Name" => "Tên", -"Download" => "Tải về" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js new file mode 100644 index 0000000000000000000000000000000000000000..66c400d0cf0cdeb509c5a9347a7c1cef952be0a5 --- /dev/null +++ b/apps/files_sharing/l10n/zh_CN.js @@ -0,0 +1,36 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "此服务器未启用服务器到服务器分享功能", + "Couldn't add remote share" : "无法添加远程分享", + "Shared with you" : "分享给您的文件", + "Shared with others" : "您分享的文件", + "Shared by link" : "分享链接的文件", + "No files have been shared with you yet." : "目前没有文件向您分享。", + "You haven't shared any files yet." : "您还未分享过文件。", + "You haven't shared any files by link yet." : "您还没通过链接分享文件。", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "您要添加 {name} 来自 {owner}@{remote} 的远程分享吗?", + "Remote share" : "远程分享", + "Remote share password" : "远程分享密码", + "Cancel" : "取消", + "Add remote share" : "添加远程分享", + "No ownCloud installation found at {remote}" : "未能在 {remote} 找到 ownCloud 服务", + "Invalid ownCloud url" : "无效的 ownCloud 网址", + "Shared by" : "共享人", + "This share is password-protected" : "这是一个密码保护的共享", + "The password is wrong. Try again." : "用户名或密码错误!请重试", + "Password" : "密码", + "Name" : "名称", + "Share time" : "分享时间", + "Sorry, this link doesn’t seem to work anymore." : "抱歉,此链接已失效", + "Reasons might be:" : "可能原因是:", + "the item was removed" : "此项已移除", + "the link expired" : "链接过期", + "sharing is disabled" : "分享已禁用", + "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。", + "Add to your ownCloud" : "添加到您的 ownCloud", + "Download" : "下载", + "Download %s" : "下载 %s", + "Direct link" : "直接链接" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json new file mode 100644 index 0000000000000000000000000000000000000000..9169b33998b9bc69982b808177a8eadeb23f8f6f --- /dev/null +++ b/apps/files_sharing/l10n/zh_CN.json @@ -0,0 +1,34 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "此服务器未启用服务器到服务器分享功能", + "Couldn't add remote share" : "无法添加远程分享", + "Shared with you" : "分享给您的文件", + "Shared with others" : "您分享的文件", + "Shared by link" : "分享链接的文件", + "No files have been shared with you yet." : "目前没有文件向您分享。", + "You haven't shared any files yet." : "您还未分享过文件。", + "You haven't shared any files by link yet." : "您还没通过链接分享文件。", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "您要添加 {name} 来自 {owner}@{remote} 的远程分享吗?", + "Remote share" : "远程分享", + "Remote share password" : "远程分享密码", + "Cancel" : "取消", + "Add remote share" : "添加远程分享", + "No ownCloud installation found at {remote}" : "未能在 {remote} 找到 ownCloud 服务", + "Invalid ownCloud url" : "无效的 ownCloud 网址", + "Shared by" : "共享人", + "This share is password-protected" : "这是一个密码保护的共享", + "The password is wrong. Try again." : "用户名或密码错误!请重试", + "Password" : "密码", + "Name" : "名称", + "Share time" : "分享时间", + "Sorry, this link doesn’t seem to work anymore." : "抱歉,此链接已失效", + "Reasons might be:" : "可能原因是:", + "the item was removed" : "此项已移除", + "the link expired" : "链接过期", + "sharing is disabled" : "分享已禁用", + "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。", + "Add to your ownCloud" : "添加到您的 ownCloud", + "Download" : "下载", + "Download %s" : "下载 %s", + "Direct link" : "直接链接" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_CN.php b/apps/files_sharing/l10n/zh_CN.php deleted file mode 100644 index a873793446af4ef595effb007197354745e37055..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/zh_CN.php +++ /dev/null @@ -1,38 +0,0 @@ - "此服务器未启用服务器到服务器分享功能", -"Couldn't add remote share" => "无法添加远程分享", -"Shared with you" => "分享给您的文件", -"Shared with others" => "您分享的文件", -"Shared by link" => "分享链接的文件", -"No files have been shared with you yet." => "目前没有文件向您分享。", -"You haven't shared any files yet." => "您还未分享过文件。", -"You haven't shared any files by link yet." => "您还没通过链接分享文件。", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "您要添加 {name} 来自 {owner}@{remote} 的远程分享吗?", -"Remote share" => "远程分享", -"Remote share password" => "远程分享密码", -"Cancel" => "取消", -"Add remote share" => "添加远程分享", -"No ownCloud installation found at {remote}" => "未能在 {remote} 找到 ownCloud 服务", -"Invalid ownCloud url" => "无效的 ownCloud 网址", -"Shared by" => "共享人", -"This share is password-protected" => "这是一个密码保护的共享", -"The password is wrong. Try again." => "用户名或密码错误!请重试", -"Password" => "密码", -"Name" => "名称", -"Share time" => "分享时间", -"Sorry, this link doesn’t seem to work anymore." => "抱歉,此链接已失效", -"Reasons might be:" => "可能原因是:", -"the item was removed" => "此项已移除", -"the link expired" => "链接过期", -"sharing is disabled" => "分享已禁用", -"For more info, please ask the person who sent this link." => "欲知详情,请联系发给你链接的人。", -"Add to your ownCloud" => "添加到您的 ownCloud", -"Download" => "下载", -"Download %s" => "下载 %s", -"Direct link" => "直接链接", -"Remote Shares" => "远程分享", -"Allow other instances to mount public links shared from this server" => "允许其他实例挂载由此服务器分享的公共链接", -"Allow users to mount public link shares" => "允许用户挂载公共链接分享" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js new file mode 100644 index 0000000000000000000000000000000000000000..02246228f3c9cebaa4249ef17cb7c43ba1acfac0 --- /dev/null +++ b/apps/files_sharing/l10n/zh_HK.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "files_sharing", + { + "Cancel" : "取消", + "Password" : "密碼", + "Name" : "名稱", + "Download" : "下載" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json new file mode 100644 index 0000000000000000000000000000000000000000..dedf9d2e9eeeaaa4eb0f1e681be3f2629513f856 --- /dev/null +++ b/apps/files_sharing/l10n/zh_HK.json @@ -0,0 +1,7 @@ +{ "translations": { + "Cancel" : "取消", + "Password" : "密碼", + "Name" : "名稱", + "Download" : "下載" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_HK.php b/apps/files_sharing/l10n/zh_HK.php deleted file mode 100644 index 00a2620cb1834494c646807b118e4edbe8a53d0c..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/zh_HK.php +++ /dev/null @@ -1,8 +0,0 @@ - "取消", -"Password" => "密碼", -"Name" => "名稱", -"Download" => "下載" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js new file mode 100644 index 0000000000000000000000000000000000000000..9512b0ab87eda768e315e4de13d5aa60d5a136f3 --- /dev/null +++ b/apps/files_sharing/l10n/zh_TW.js @@ -0,0 +1,36 @@ +OC.L10N.register( + "files_sharing", + { + "Server to server sharing is not enabled on this server" : "伺服器對伺服器共享在這台伺服器上面並未啟用", + "Couldn't add remote share" : "無法加入遠端分享", + "Shared with you" : "與你分享", + "Shared with others" : "與其他人分享", + "Shared by link" : "由連結分享", + "No files have been shared with you yet." : "目前沒有任何與你分享的檔案", + "You haven't shared any files yet." : "你尚未分享任何檔案", + "You haven't shared any files by link yet." : "你尚未使用連結分享任何檔案", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "是否要加入來自 {owner}@{remote} 的遠端分享 {name} ?", + "Remote share" : "遠端分享", + "Remote share password" : "遠端分享密碼", + "Cancel" : "取消", + "Add remote share" : "加入遠端分享", + "No ownCloud installation found at {remote}" : "沒有在 {remote} 找到 ownCloud", + "Invalid ownCloud url" : "無效的 ownCloud URL", + "Shared by" : "由...分享", + "This share is password-protected" : "這個分享有密碼保護", + "The password is wrong. Try again." : "請檢查您的密碼並再試一次", + "Password" : "密碼", + "Name" : "名稱", + "Share time" : "分享時間", + "Sorry, this link doesn’t seem to work anymore." : "抱歉,此連結已經失效", + "Reasons might be:" : "可能的原因:", + "the item was removed" : "項目已經移除", + "the link expired" : "連結過期", + "sharing is disabled" : "分享功能已停用", + "For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多", + "Add to your ownCloud" : "加入到你的 ownCloud", + "Download" : "下載", + "Download %s" : "下載 %s", + "Direct link" : "直接連結" +}, +"nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json new file mode 100644 index 0000000000000000000000000000000000000000..2065c00ff6d4d15d72542bc78c632f7fb1cfe6cc --- /dev/null +++ b/apps/files_sharing/l10n/zh_TW.json @@ -0,0 +1,34 @@ +{ "translations": { + "Server to server sharing is not enabled on this server" : "伺服器對伺服器共享在這台伺服器上面並未啟用", + "Couldn't add remote share" : "無法加入遠端分享", + "Shared with you" : "與你分享", + "Shared with others" : "與其他人分享", + "Shared by link" : "由連結分享", + "No files have been shared with you yet." : "目前沒有任何與你分享的檔案", + "You haven't shared any files yet." : "你尚未分享任何檔案", + "You haven't shared any files by link yet." : "你尚未使用連結分享任何檔案", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "是否要加入來自 {owner}@{remote} 的遠端分享 {name} ?", + "Remote share" : "遠端分享", + "Remote share password" : "遠端分享密碼", + "Cancel" : "取消", + "Add remote share" : "加入遠端分享", + "No ownCloud installation found at {remote}" : "沒有在 {remote} 找到 ownCloud", + "Invalid ownCloud url" : "無效的 ownCloud URL", + "Shared by" : "由...分享", + "This share is password-protected" : "這個分享有密碼保護", + "The password is wrong. Try again." : "請檢查您的密碼並再試一次", + "Password" : "密碼", + "Name" : "名稱", + "Share time" : "分享時間", + "Sorry, this link doesn’t seem to work anymore." : "抱歉,此連結已經失效", + "Reasons might be:" : "可能的原因:", + "the item was removed" : "項目已經移除", + "the link expired" : "連結過期", + "sharing is disabled" : "分享功能已停用", + "For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多", + "Add to your ownCloud" : "加入到你的 ownCloud", + "Download" : "下載", + "Download %s" : "下載 %s", + "Direct link" : "直接連結" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_TW.php b/apps/files_sharing/l10n/zh_TW.php deleted file mode 100644 index 0b6f6d9e11e200fb5f93f54396f422ef32d18219..0000000000000000000000000000000000000000 --- a/apps/files_sharing/l10n/zh_TW.php +++ /dev/null @@ -1,38 +0,0 @@ - "伺服器對伺服器共享在這台伺服器上面並未啟用", -"Couldn't add remote share" => "無法加入遠端分享", -"Shared with you" => "與你分享", -"Shared with others" => "與其他人分享", -"Shared by link" => "由連結分享", -"No files have been shared with you yet." => "目前沒有任何與你分享的檔案", -"You haven't shared any files yet." => "你尚未分享任何檔案", -"You haven't shared any files by link yet." => "你尚未使用連結分享任何檔案", -"Do you want to add the remote share {name} from {owner}@{remote}?" => "是否要加入來自 {owner}@{remote} 的遠端分享 {name} ?", -"Remote share" => "遠端分享", -"Remote share password" => "遠端分享密碼", -"Cancel" => "取消", -"Add remote share" => "加入遠端分享", -"No ownCloud installation found at {remote}" => "沒有在 {remote} 找到 ownCloud", -"Invalid ownCloud url" => "無效的 ownCloud URL", -"Shared by" => "由...分享", -"This share is password-protected" => "這個分享有密碼保護", -"The password is wrong. Try again." => "請檢查您的密碼並再試一次", -"Password" => "密碼", -"Name" => "名稱", -"Share time" => "分享時間", -"Sorry, this link doesn’t seem to work anymore." => "抱歉,此連結已經失效", -"Reasons might be:" => "可能的原因:", -"the item was removed" => "項目已經移除", -"the link expired" => "連結過期", -"sharing is disabled" => "分享功能已停用", -"For more info, please ask the person who sent this link." => "請詢問告訴您此連結的人以瞭解更多", -"Add to your ownCloud" => "加入到你的 ownCloud", -"Download" => "下載", -"Download %s" => "下載 %s", -"Direct link" => "直接連結", -"Remote Shares" => "遠端分享", -"Allow other instances to mount public links shared from this server" => "允許其他伺服器掛載本地的公開分享", -"Allow users to mount public link shares" => "允許使用者掛載公開分享" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index e4fd85fd2a7251ab42482ba9350502ea00c16b96..270ed704bbd15c2e682c66cf670aaffe9d35d1da 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -145,26 +145,23 @@ class Shared_Cache extends Cache { /** * get the metadata of all files stored in $folder * - * @param string $folder + * @param string $folderId * @return array */ - public function getFolderContents($folder) { - - if ($folder === false) { - $folder = ''; - } - - $dir = ($folder !== '') ? $folder . '/' : ''; - - $cache = $this->getSourceCache($folder); + public function getFolderContentsById($folderId) { + $cache = $this->getSourceCache(''); if ($cache) { - $parent = $this->storage->getFile($folder); - $sourceFolderContent = $cache->getFolderContents($this->files[$folder]); - foreach ($sourceFolderContent as $key => $c) { - $sourceFolderContent[$key]['path'] = $dir . $c['name']; - $sourceFolderContent[$key]['uid_owner'] = $parent['uid_owner']; - $sourceFolderContent[$key]['displayname_owner'] = \OC_User::getDisplayName($parent['uid_owner']); - $sourceFolderContent[$key]['permissions'] = $sourceFolderContent[$key]['permissions'] & $this->storage->getPermissions($dir . $c['name']); + $owner = $this->storage->getSharedFrom(); + $parentPath = $this->getPathById($folderId); + if ($parentPath !== '') { + $parentPath .= '/'; + } + $sourceFolderContent = $cache->getFolderContentsById($folderId); + foreach ($sourceFolderContent as &$c) { + $c['path'] = ltrim($parentPath . $c['name'], '/'); + $c['uid_owner'] = $owner; + $c['displayname_owner'] = \OC_User::getDisplayName($owner); + $c['permissions'] = $c['permissions'] & $this->storage->getPermissions(false); } return $sourceFolderContent; diff --git a/apps/files_sharing/lib/connector/publicauth.php b/apps/files_sharing/lib/connector/publicauth.php index c9d545180b31c239501d377c9eba0c51370ab18c..4144dafa3794e0c92ff16c294b12eda41d5c3011 100644 --- a/apps/files_sharing/lib/connector/publicauth.php +++ b/apps/files_sharing/lib/connector/publicauth.php @@ -48,12 +48,26 @@ class PublicAuth extends \Sabre\DAV\Auth\Backend\AbstractBasic { if (isset($linkItem['share_with'])) { if ($linkItem['share_type'] == \OCP\Share::SHARE_TYPE_LINK) { // Check Password - $forcePortable = (CRYPT_BLOWFISH != 1); - $hasher = new \PasswordHash(8, $forcePortable); - if (!$hasher->CheckPassword($password . $this->config->getSystemValue('passwordsalt', ''), $linkItem['share_with'])) { - return false; - } else { + $newHash = ''; + if(\OC::$server->getHasher()->verify($password, $linkItem['share_with'], $newHash)) { + /** + * FIXME: Migrate old hashes to new hash format + * Due to the fact that there is no reasonable functionality to update the password + * of an existing share no migration is yet performed there. + * The only possibility is to update the existing share which will result in a new + * share ID and is a major hack. + * + * In the future the migration should be performed once there is a proper method + * to update the share's password. (for example `$share->updatePassword($password)` + * + * @link https://github.com/owncloud/core/issues/10671 + */ + if(!empty($newHash)) { + + } return true; + } else { + return false; } } else { return false; diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php new file mode 100644 index 0000000000000000000000000000000000000000..0a0594ed8ff4e5cc2b826512c9af4cc6abd4c938 --- /dev/null +++ b/apps/files_sharing/lib/controllers/sharecontroller.php @@ -0,0 +1,270 @@ + + * @author Lukas Reschke + * @copyright 2014 Clark Tomlinson & Lukas Reschke + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\Files_Sharing\Controllers; + +use OC; +use OC\Files\Filesystem; +use OC_Files; +use OC_Util; +use OCP; +use OCP\Template; +use OCP\JSON; +use OCP\Share; +use OCP\AppFramework\Controller; +use OCP\IRequest; +use OCP\AppFramework\Http\TemplateResponse; +use OCP\AppFramework\Http\RedirectResponse; +use OC\URLGenerator; +use OC\AppConfig; +use OCP\ILogger; +use OCA\Files_Sharing\Helper; +use OCP\User; +use OCP\Util; + +/** + * Class ShareController + * + * @package OCA\Files_Sharing\Controllers + */ +class ShareController extends Controller { + + /** @var \OC\User\Session */ + protected $userSession; + /** @var \OC\AppConfig */ + protected $appConfig; + /** @var \OCP\IConfig */ + protected $config; + /** @var \OC\URLGenerator */ + protected $urlGenerator; + /** @var \OC\User\Manager */ + protected $userManager; + /** @var \OCP\ILogger */ + protected $logger; + + /** + * @param string $appName + * @param IRequest $request + * @param OC\User\Session $userSession + * @param AppConfig $appConfig + * @param OCP\IConfig $config + * @param URLGenerator $urlGenerator + * @param OC\User\Manager $userManager + * @param ILogger $logger + */ + public function __construct($appName, + IRequest $request, + OC\User\Session $userSession, + AppConfig $appConfig, + OCP\IConfig $config, + URLGenerator $urlGenerator, + OC\User\Manager $userManager, + ILogger $logger) { + parent::__construct($appName, $request); + + $this->userSession = $userSession; + $this->appConfig = $appConfig; + $this->config = $config; + $this->urlGenerator = $urlGenerator; + $this->userManager = $userManager; + $this->logger = $logger; + } + + /** + * @PublicPage + * @NoCSRFRequired + * + * @param string $token + * @return TemplateResponse|RedirectResponse + */ + public function showAuthenticate($token) { + $linkItem = Share::getShareByToken($token, false); + + if(Helper::authenticate($linkItem)) { + return new RedirectResponse($this->urlGenerator->linkToRoute('files_sharing.sharecontroller.showShare', array('token' => $token))); + } + + return new TemplateResponse($this->appName, 'authenticate', array(), 'guest'); + } + + /** + * @PublicPage + * @UseSession + * + * Authenticates against password-protected shares + * @param $token + * @param string $password + * @return RedirectResponse|TemplateResponse + */ + public function authenticate($token, $password = '') { + $linkItem = Share::getShareByToken($token, false); + if($linkItem === false) { + return new TemplateResponse('core', '404', array(), 'guest'); + } + + $authenticate = Helper::authenticate($linkItem, $password); + + if($authenticate === true) { + return new RedirectResponse($this->urlGenerator->linkToRoute('files_sharing.sharecontroller.showShare', array('token' => $token))); + } + + return new TemplateResponse($this->appName, 'authenticate', array('wrongpw' => true), 'guest'); + } + + /** + * @PublicPage + * @NoCSRFRequired + * + * @param string $token + * @param string $path + * @return TemplateResponse + */ + public function showShare($token, $path = '') { + \OC_User::setIncognitoMode(true); + + // Check whether share exists + $linkItem = Share::getShareByToken($token, false); + if($linkItem === false) { + return new TemplateResponse('core', '404', array(), 'guest'); + } + + $linkItem = OCP\Share::getShareByToken($token, false); + $shareOwner = $linkItem['uid_owner']; + $originalSharePath = null; + $rootLinkItem = OCP\Share::resolveReShare($linkItem); + if (isset($rootLinkItem['uid_owner'])) { + OCP\JSON::checkUserExists($rootLinkItem['uid_owner']); + OC_Util::tearDownFS(); + OC_Util::setupFS($rootLinkItem['uid_owner']); + $originalSharePath = Filesystem::getPath($linkItem['file_source']); + } + + // Share is password protected - check whether the user is permitted to access the share + if (isset($linkItem['share_with']) && !Helper::authenticate($linkItem)) { + return new RedirectResponse($this->urlGenerator->linkToRoute('files_sharing.sharecontroller.authenticate', + array('token' => $token))); + } + + if (Filesystem::isReadable($originalSharePath . $path)) { + $getPath = Filesystem::normalizePath($path); + $originalSharePath .= $path; + } + + $file = basename($originalSharePath); + + $shareTmpl = array(); + $shareTmpl['displayName'] = User::getDisplayName($shareOwner); + $shareTmpl['filename'] = $file; + $shareTmpl['directory_path'] = $linkItem['file_target']; + $shareTmpl['mimetype'] = Filesystem::getMimeType($originalSharePath); + $shareTmpl['dirToken'] = $linkItem['token']; + $shareTmpl['sharingToken'] = $token; + $shareTmpl['server2serversharing'] = Helper::isOutgoingServer2serverShareEnabled(); + $shareTmpl['protected'] = isset($linkItem['share_with']) ? 'true' : 'false'; + $shareTmpl['dir'] = ''; + $shareTmpl['fileSize'] = \OCP\Util::humanFileSize(\OC\Files\Filesystem::filesize($originalSharePath)); + + // Show file list + if (Filesystem::is_dir($originalSharePath)) { + $shareTmpl['dir'] = $getPath; + $files = array(); + $maxUploadFilesize = Util::maxUploadFilesize($originalSharePath); + $freeSpace = Util::freeSpace($originalSharePath); + $uploadLimit = Util::uploadLimit(); + $folder = new Template('files', 'list', ''); + $folder->assign('dir', $getPath); + $folder->assign('dirToken', $linkItem['token']); + $folder->assign('permissions', \OCP\Constants::PERMISSION_READ); + $folder->assign('isPublic', true); + $folder->assign('publicUploadEnabled', 'no'); + $folder->assign('files', $files); + $folder->assign('uploadMaxFilesize', $maxUploadFilesize); + $folder->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); + $folder->assign('freeSpace', $freeSpace); + $folder->assign('uploadLimit', $uploadLimit); // PHP upload limit + $folder->assign('usedSpacePercent', 0); + $folder->assign('trash', false); + $shareTmpl['folder'] = $folder->fetchPage(); + } + + $shareTmpl['downloadURL'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadShare', array('token' => $token)); + + return new TemplateResponse($this->appName, 'public', $shareTmpl, 'base'); + } + + /** + * @PublicPage + * @NoCSRFRequired + * + * @param string $token + * @param string $files + * @param string $path + * @return void|RedirectResponse + */ + public function downloadShare($token, $files = null, $path = '') { + \OC_User::setIncognitoMode(true); + + $linkItem = OCP\Share::getShareByToken($token, false); + + // Share is password protected - check whether the user is permitted to access the share + if (isset($linkItem['share_with'])) { + if(!Helper::authenticate($linkItem)) { + return new RedirectResponse($this->urlGenerator->linkToRoute('files_sharing.sharecontroller.authenticate', + array('token' => $token))); + } + } + + $originalSharePath = self::getPath($token); + + if (isset($originalSharePath) && Filesystem::isReadable($originalSharePath . $path)) { + $getPath = Filesystem::normalizePath($path); + $originalSharePath .= $getPath; + } + + if (!is_null($files)) { // download selected files + $files_list = json_decode($files); + // in case we get only a single file + if ($files_list === NULL ) { + $files_list = array($files); + } + + // FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well + // after dispatching the request which results in a "Cannot modify header information" notice. + OC_Files::get($originalSharePath, $files_list, $_SERVER['REQUEST_METHOD'] == 'HEAD'); + exit(); + } else { + // FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well + // after dispatching the request which results in a "Cannot modify header information" notice. + OC_Files::get(dirname($originalSharePath), basename($originalSharePath), $_SERVER['REQUEST_METHOD'] == 'HEAD'); + exit(); + } + } + + /** + * @param $token + * @return null|string + */ + private function getPath($token) { + $linkItem = Share::getShareByToken($token, false); + $path = null; + if (is_array($linkItem) && isset($linkItem['uid_owner'])) { + // seems to be a valid share + $rootLinkItem = Share::resolveReShare($linkItem); + if (isset($rootLinkItem['uid_owner'])) { + JSON::checkUserExists($rootLinkItem['uid_owner']); + OC_Util::tearDownFS(); + OC_Util::setupFS($rootLinkItem['uid_owner']); + $path = Filesystem::getPath($linkItem['file_source']); + } + } + return $path; + } +} diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php index 92d8f92b380100ce3ae52bf807b7a09153b83f35..3f1d631a35f6fce103c6ffbb6ccae2fb0175f4ed 100644 --- a/apps/files_sharing/lib/external/storage.php +++ b/apps/files_sharing/lib/external/storage.php @@ -198,12 +198,19 @@ class Storage extends DAV implements ISharedStorage { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); - curl_setopt($ch, CURLOPT_CAINFO, $this->certificateManager->getCertificateBundle()); + $path = $this->certificateManager->getCertificateBundle(); + if (is_readable($path)) { + curl_setopt($ch, CURLOPT_CAINFO, $path); + } $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $errorMessage = curl_error($ch); curl_close($ch); + if (!empty($errorMessage)) { + throw new \Exception($errorMessage); + } switch ($status) { case 401: diff --git a/apps/files_sharing/lib/helper.php b/apps/files_sharing/lib/helper.php index e7ca4fcccd4e25f9e765af3ba561b0b2ffd36f1a..f7204a8db8f6af560726e5eb63064e8fee2a284a 100644 --- a/apps/files_sharing/lib/helper.php +++ b/apps/files_sharing/lib/helper.php @@ -3,7 +3,6 @@ namespace OCA\Files_Sharing; use OC_Config; -use PasswordHash; class Helper { @@ -95,18 +94,32 @@ class Helper { * * @return boolean true if authorized, false otherwise */ - public static function authenticate($linkItem, $password) { + public static function authenticate($linkItem, $password = null) { if ($password !== null) { if ($linkItem['share_type'] == \OCP\Share::SHARE_TYPE_LINK) { // Check Password - $forcePortable = (CRYPT_BLOWFISH != 1); - $hasher = new PasswordHash(8, $forcePortable); - if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), - $linkItem['share_with']))) { - return false; - } else { + $newHash = ''; + if(\OC::$server->getHasher()->verify($password, $linkItem['share_with'], $newHash)) { // Save item id in session for future requests \OC::$server->getSession()->set('public_link_authenticated', $linkItem['id']); + + /** + * FIXME: Migrate old hashes to new hash format + * Due to the fact that there is no reasonable functionality to update the password + * of an existing share no migration is yet performed there. + * The only possibility is to update the existing share which will result in a new + * share ID and is a major hack. + * + * In the future the migration should be performed once there is a proper method + * to update the share's password. (for example `$share->updatePassword($password)` + * + * @link https://github.com/owncloud/core/issues/10671 + */ + if(!empty($newHash)) { + + } + } else { + return false; } } else { \OCP\Util::writeLog('share', 'Unknown share type '.$linkItem['share_type'] diff --git a/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php b/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php new file mode 100644 index 0000000000000000000000000000000000000000..af79cd9e94aa4ca397a9bad86bcd94e075a4686f --- /dev/null +++ b/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php @@ -0,0 +1,84 @@ +appName = $appName; + $this->appConfig = $appConfig; + $this->api = $api; + } + + /** + * Check if sharing is enabled before the controllers is executed + */ + public function beforeController($controller, $methodName) { + if(!$this->isSharingEnabled()) { + throw new \Exception('Sharing is disabled.'); + } + } + + /** + * Return 404 page in case of an exception + * @param \OCP\AppFramework\Controller $controller + * @param string $methodName + * @param \Exception $exception + * @return TemplateResponse + */ + public function afterException($controller, $methodName, \Exception $exception){ + return new TemplateResponse('core', '404', array(), 'guest'); + } + + /** + * Check whether sharing is enabled + * @return bool + */ + private function isSharingEnabled() { + // FIXME: This check is done here since the route is globally defined and not inside the files_sharing app + // Check whether the sharing application is enabled + if(!$this->api->isAppEnabled($this->appName)) { + return false; + } + + // Check whether public sharing is enabled + if($this->appConfig->getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') { + return false; + } + + return true; + } + +} diff --git a/apps/files_sharing/lib/readonlycache.php b/apps/files_sharing/lib/readonlycache.php index f129ca49433e4ecb3769d6ecc0146e6083f7e0ab..6dd3b9cf61d51fadeb31d7fd11cde56bc46e8426 100644 --- a/apps/files_sharing/lib/readonlycache.php +++ b/apps/files_sharing/lib/readonlycache.php @@ -13,14 +13,14 @@ use OC\Files\Cache\Cache; class ReadOnlyCache extends Cache { public function get($path) { $data = parent::get($path); - $data['permissions'] &= (\OCP\PERMISSION_READ | \OCP\PERMISSION_SHARE); + $data['permissions'] &= (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE); return $data; } public function getFolderContents($path) { $content = parent::getFolderContents($path); foreach ($content as &$data) { - $data['permissions'] &= (\OCP\PERMISSION_READ | \OCP\PERMISSION_SHARE); + $data['permissions'] &= (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE); } return $content; } diff --git a/apps/files_sharing/lib/readonlywrapper.php b/apps/files_sharing/lib/readonlywrapper.php index 45ed3fd68bb72f7a36b2753e6f2c77a8f3307ca9..58a5695aff8c990cdecaad3ed25fdce55e52f8e3 100644 --- a/apps/files_sharing/lib/readonlywrapper.php +++ b/apps/files_sharing/lib/readonlywrapper.php @@ -24,7 +24,7 @@ class ReadOnlyWrapper extends Wrapper { } public function getPermissions($path) { - return $this->storage->getPermissions($path) & (\OCP\PERMISSION_READ | \OCP\PERMISSION_SHARE); + return $this->storage->getPermissions($path) & (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE); } public function rename($path1, $path2) { diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php index dacdb9308be7b72298aa3b953f8cc5d4ec52ebd2..a5b4e75bcebb89efcbea1bd2cb71eca7e9a103c0 100644 --- a/apps/files_sharing/lib/share/file.php +++ b/apps/files_sharing/lib/share/file.php @@ -49,6 +49,11 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { $path = $this->path; $this->path = null; return $path; + } else { + $path = \OC\Files\Filesystem::getPath($itemSource); + if ($path) { + return $path; + } } return false; } diff --git a/apps/files_sharing/lib/share/folder.php b/apps/files_sharing/lib/share/folder.php index 4426beec6368fa34e17b60f3d114ca6a5b47e2e6..f86e96244320d81a60c069f3a6e92d53432742a6 100644 --- a/apps/files_sharing/lib/share/folder.php +++ b/apps/files_sharing/lib/share/folder.php @@ -21,6 +21,54 @@ class OC_Share_Backend_Folder extends OC_Share_Backend_File implements OCP\Share_Backend_Collection { + /** + * get shared parents + * + * @param int $itemSource item source ID + * @param string $shareWith with whom should the item be shared + * @param string $owner owner of the item + * @return array with shares + */ + public function getParents($itemSource, $shareWith = null, $owner = null) { + $result = array(); + $parent = $this->getParentId($itemSource); + while ($parent) { + $shares = \OCP\Share::getItemSharedWithUser('folder', $parent, $shareWith, $owner); + if ($shares) { + foreach ($shares as $share) { + $name = substr($share['path'], strrpos($share['path'], '/') + 1); + $share['collection']['path'] = $name; + $share['collection']['item_type'] = 'folder'; + $share['file_path'] = $name; + $displayNameOwner = \OCP\User::getDisplayName($share['uid_owner']); + $displayNameShareWith = \OCP\User::getDisplayName($share['share_with']); + $share['displayname_owner'] = ($displayNameOwner) ? $displayNameOwner : $share['uid_owner']; + $share['share_with_displayname'] = ($displayNameShareWith) ? $displayNameShareWith : $share['uid_owner']; + + $result[] = $share; + } + } + $parent = $this->getParentId($parent); + } + + return $result; + } + + /** + * get file cache ID of parent + * + * @param int $child file cache ID of child + * @return mixed parent ID or null + */ + private function getParentId($child) { + $query = \OC_DB::prepare('SELECT `parent` FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + $result = $query->execute(array($child)); + $row = $result->fetchRow(); + $parent = ($row) ? $row['parent'] : null; + + return $parent; + } + public function getChildren($itemSource) { $children = array(); $parents = array($itemSource); diff --git a/apps/files_sharing/lib/sharedmount.php b/apps/files_sharing/lib/sharedmount.php index 4ad2d4e6b3e205648e9bccb11fce7b4867013741..a93ecfb3b1b767375eac50715eb6145c5e2db2ee 100644 --- a/apps/files_sharing/lib/sharedmount.php +++ b/apps/files_sharing/lib/sharedmount.php @@ -22,15 +22,15 @@ class SharedMount extends Mount implements MoveableMount { public function __construct($storage, $mountpoint, $arguments = null, $loader = null) { // first update the mount point before creating the parent - $newMountPoint = self::verifyMountPoint($arguments['share']); - $absMountPoint = '/' . \OCP\User::getUser() . '/files' . $newMountPoint; + $newMountPoint = $this->verifyMountPoint($arguments['share'], $arguments['user']); + $absMountPoint = '/' . $arguments['user'] . '/files' . $newMountPoint; parent::__construct($storage, $absMountPoint, $arguments, $loader); } /** * check if the parent folder exists otherwise move the mount point up */ - private static function verifyMountPoint(&$share) { + private function verifyMountPoint(&$share, $user) { $mountPoint = basename($share['file_target']); $parent = dirname($share['file_target']); @@ -42,7 +42,7 @@ class SharedMount extends Mount implements MoveableMount { $newMountPoint = \OCA\Files_Sharing\Helper::generateUniqueTarget( \OC\Files\Filesystem::normalizePath($parent . '/' . $mountPoint), array(), - new \OC\Files\View('/' . \OCP\User::getUser() . '/files') + new \OC\Files\View('/' . $user . '/files') ); if($newMountPoint !== $share['file_target']) { diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index a2b485a2ca11388a074ccb141294ff7f2e708151..1ac57053e250b00b5dcf2ea3566aeeabbe41aaa2 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -67,7 +67,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { if ($source) { $source['path'] .= '.part'; // All partial files have delete permission - $source['permissions'] |= \OCP\PERMISSION_DELETE; + $source['permissions'] |= \OCP\Constants::PERMISSION_DELETE; } } else { $source = \OC_Share_Backend_File::getSource($target, $this->getMountPoint(), $this->getItemType()); @@ -109,11 +109,11 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { $permissions = $this->share['permissions']; // part files and the mount point always have delete permissions if ($target === '' || pathinfo($target, PATHINFO_EXTENSION) === 'part') { - $permissions |= \OCP\PERMISSION_DELETE; + $permissions |= \OCP\Constants::PERMISSION_DELETE; } if (\OC_Util::isSharingDisabledForUser()) { - $permissions &= ~\OCP\PERMISSION_SHARE; + $permissions &= ~\OCP\Constants::PERMISSION_SHARE; } return $permissions; @@ -197,7 +197,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } public function isCreatable($path) { - return ($this->getPermissions($path) & \OCP\PERMISSION_CREATE); + return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE); } public function isReadable($path) { @@ -205,18 +205,18 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } public function isUpdatable($path) { - return ($this->getPermissions($path) & \OCP\PERMISSION_UPDATE); + return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE); } public function isDeletable($path) { - return ($this->getPermissions($path) & \OCP\PERMISSION_DELETE); + return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE); } public function isSharable($path) { if (\OCP\Util::isSharingDisabledForUser()) { return false; } - return ($this->getPermissions($path) & \OCP\PERMISSION_SHARE); + return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE); } public function file_exists($path) { @@ -300,7 +300,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { $pathinfo = pathinfo($relPath1); // for part files we need to ask for the owner and path from the parent directory because // the file cache doesn't return any results for part files - if ($pathinfo['extension'] === 'part') { + if (isset($pathinfo['extension']) && $pathinfo['extension'] === 'part') { list($user1, $path1) = \OCA\Files_Sharing\Helper::getUidAndFilename($pathinfo['dirname']); $path1 = $path1 . '/' . $pathinfo['basename']; } else { @@ -397,7 +397,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } public static function setup($options) { - $shares = \OCP\Share::getItemsSharedWith('file'); + $shares = \OCP\Share::getItemsSharedWithUser('file', $options['user']); $manager = Filesystem::getMountManager(); $loader = Filesystem::getLoader(); if (!\OCP\User::isLoggedIn() || \OCP\User::getUser() != $options['user'] @@ -411,7 +411,8 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { $options['user_dir'] . '/' . $share['file_target'], array( 'share' => $share, - ), + 'user' => $options['user'] + ), $loader ); $manager->addMount($mount); diff --git a/apps/files_sharing/lib/watcher.php b/apps/files_sharing/lib/watcher.php index 11d3ce1cabd9c840dd4287ea6a3cd2a7c1450b2a..5357119ab6c2de61f5d0c51b7328a8f7482093b8 100644 --- a/apps/files_sharing/lib/watcher.php +++ b/apps/files_sharing/lib/watcher.php @@ -30,9 +30,11 @@ class Shared_Watcher extends Watcher { * check $path for updates * * @param string $path + * @param array $cachedEntry + * @return boolean true if path was updated */ - public function checkUpdate($path) { - if (parent::checkUpdate($path) === true) { + public function checkUpdate($path, $cachedEntry = null) { + if (parent::checkUpdate($path, $cachedEntry) === true) { // since checkUpdate() has already updated the size of the subdirs, // only apply the update to the owner's parent dirs diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 5c75168d9a9854c38b0db7146834818b337a0c96..d9d14f67c3364868a514731b0f7d198bba8f14f6 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -1,205 +1,17 @@ getAppConfig(); - -if ($appConfig->getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') { - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); -} - -// Legacy sharing links via public.php have the token in $GET['t'] -if (isset($_GET['t'])) { - $token = $_GET['t']; -} - -if (isset($token)) { - $linkItem = OCP\Share::getShareByToken($token, false); - if (is_array($linkItem) && isset($linkItem['uid_owner'])) { - // seems to be a valid share - $type = $linkItem['item_type']; - $fileSource = $linkItem['file_source']; - $shareOwner = $linkItem['uid_owner']; - $path = null; - $rootLinkItem = OCP\Share::resolveReShare($linkItem); - if (isset($rootLinkItem['uid_owner'])) { - OCP\JSON::checkUserExists($rootLinkItem['uid_owner']); - OC_Util::tearDownFS(); - OC_Util::setupFS($rootLinkItem['uid_owner']); - $path = \OC\Files\Filesystem::getPath($linkItem['file_source']); - } - } -} -if (isset($path)) { - if (!isset($linkItem['item_type'])) { - OCP\Util::writeLog('share', 'No item type set for share id: ' . $linkItem['id'], \OCP\Util::ERROR); - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); - } - if (isset($linkItem['share_with'])) { - // Authenticate share_with - $url = OCP\Util::linkToPublic('files') . '&t=' . $token; - if (isset($_GET['file'])) { - $url .= '&file=' . urlencode($_GET['file']); - } else { - if (isset($_GET['dir'])) { - $url .= '&dir=' . urlencode($_GET['dir']); - } - } - if (isset($_POST['password'])) { - $password = $_POST['password']; - if ($linkItem['share_type'] == OCP\Share::SHARE_TYPE_LINK) { - // Check Password - $forcePortable = (CRYPT_BLOWFISH != 1); - $hasher = new PasswordHash(8, $forcePortable); - if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), - $linkItem['share_with']))) { - OCP\Util::addStyle('files_sharing', 'authenticate'); - $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest'); - $tmpl->assign('URL', $url); - $tmpl->assign('wrongpw', true); - $tmpl->printPage(); - exit(); - } else { - // Save item id in session for future requests - \OC::$server->getSession()->set('public_link_authenticated', $linkItem['id']); - } - } else { - OCP\Util::writeLog('share', 'Unknown share type '.$linkItem['share_type'] - .' for share id '.$linkItem['id'], \OCP\Util::ERROR); - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); - } - - } else { - // Check if item id is set in session - if ( ! \OC::$server->getSession()->exists('public_link_authenticated') - || \OC::$server->getSession()->get('public_link_authenticated') !== $linkItem['id'] - ) { - // Prompt for password - OCP\Util::addStyle('files_sharing', 'authenticate'); - $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest'); - $tmpl->assign('URL', $url); - $tmpl->printPage(); - exit(); - } - } - } - $basePath = $path; - $rootName = \OC_Util::basename($path); - if (isset($_GET['path']) && \OC\Files\Filesystem::isReadable($basePath . $_GET['path'])) { - $getPath = \OC\Files\Filesystem::normalizePath($_GET['path']); - $path .= $getPath; - } else { - $getPath = ''; - } - $dir = dirname($path); - $file = basename($path); - // Download the file - if (isset($_GET['download'])) { - if (!\OCP\App::isEnabled('files_encryption')) { - // encryption app requires the session to store the keys in - \OC::$server->getSession()->close(); - } - if (isset($_GET['files'])) { // download selected files - $files = $_GET['files']; - $files_list = json_decode($files); - // in case we get only a single file - if ($files_list === NULL ) { - $files_list = array($files); - } - OC_Files::get($path, $files_list, $_SERVER['REQUEST_METHOD'] == 'HEAD'); - } else { - OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD'); - } - exit(); - } else { - OCP\Util::addScript('files', 'file-upload'); - OCP\Util::addStyle('files_sharing', 'public'); - OCP\Util::addStyle('files_sharing', 'mobile'); - OCP\Util::addScript('files_sharing', 'public'); - OCP\Util::addScript('files', 'fileactions'); - OCP\Util::addScript('files', 'jquery.iframe-transport'); - OCP\Util::addScript('files', 'jquery.fileupload'); - $maxUploadFilesize=OCP\Util::maxUploadFilesize($path); - $tmpl = new OCP\Template('files_sharing', 'public', 'base'); - $tmpl->assign('displayName', \OCP\User::getDisplayName($shareOwner)); - $tmpl->assign('filename', $file); - $tmpl->assign('directory_path', $linkItem['file_target']); - $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); - $tmpl->assign('dirToken', $linkItem['token']); - $tmpl->assign('sharingToken', $token); - $tmpl->assign('server2serversharing', Helper::isOutgoingServer2serverShareEnabled()); - $tmpl->assign('protected', isset($linkItem['share_with']) ? 'true' : 'false'); - - $urlLinkIdentifiers= (isset($token)?'&t='.$token:'') - .(isset($_GET['dir'])?'&dir='.$_GET['dir']:'') - .(isset($_GET['file'])?'&file='.$_GET['file']:''); - // Show file list - if (\OC\Files\Filesystem::is_dir($path)) { - $tmpl->assign('dir', $getPath); - - OCP\Util::addStyle('files', 'files'); - OCP\Util::addStyle('files', 'upload'); - OCP\Util::addScript('files', 'filesummary'); - OCP\Util::addScript('files', 'breadcrumb'); - OCP\Util::addScript('files', 'files'); - OCP\Util::addScript('files', 'filelist'); - OCP\Util::addscript('files', 'keyboardshortcuts'); - $files = array(); - $rootLength = strlen($basePath) + 1; - $maxUploadFilesize=OCP\Util::maxUploadFilesize($path); - - $freeSpace=OCP\Util::freeSpace($path); - $uploadLimit=OCP\Util::uploadLimit(); - $folder = new OCP\Template('files', 'list', ''); - $folder->assign('dir', $getPath); - $folder->assign('dirToken', $linkItem['token']); - $folder->assign('permissions', OCP\PERMISSION_READ); - $folder->assign('isPublic', true); - $folder->assign('publicUploadEnabled', 'no'); - $folder->assign('files', $files); - $folder->assign('uploadMaxFilesize', $maxUploadFilesize); - $folder->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); - $folder->assign('freeSpace', $freeSpace); - $folder->assign('uploadLimit', $uploadLimit); // PHP upload limit - $folder->assign('usedSpacePercent', 0); - $folder->assign('trash', false); - $tmpl->assign('folder', $folder->fetchPage()); - $tmpl->assign('downloadURL', - OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=' . urlencode($getPath)); - } else { - $tmpl->assign('dir', $dir); - - // Show file preview if viewer is available - if ($type == 'file') { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download'); - } else { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') - .$urlLinkIdentifiers.'&download&path='.urlencode($getPath)); - } - } - $tmpl->printPage(); - } - exit(); -} else { - OCP\Util::writeLog('share', 'could not resolve linkItem', \OCP\Util::DEBUG); -} - -$errorTemplate = new OCP\Template('files_sharing', 'part.404', ''); -$errorContent = $errorTemplate->fetchPage(); - -header('HTTP/1.0 404 Not Found'); -OCP\Util::addStyle('files_sharing', '404'); -$tmpl = new OCP\Template('', '404', 'guest'); -$tmpl->assign('content', $errorContent); -$tmpl->printPage(); +/** + * @author Lukas Reschke + * @copyright 2014 Lukas Reschke lukas@owncloud.com + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +// This file is just used to redirect the legacy sharing URLs (< ownCloud 8) to the new ones + +$urlGenerator = new \OC\URLGenerator(\OC::$server->getConfig()); +$token = isset($_GET['t']) ? $_GET['t'] : ''; +$route = isset($_GET['download']) ? 'files_sharing.sharecontroller.downloadShare' : 'files_sharing.sharecontroller.showShare'; + +OC_Response::redirect($urlGenerator->linkToRoute($route, array('token' => $token))); diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php index 03e43967a4042873901aa855be8eb7db327d5179..2c7ccf8d92cdb9fa1fae2696adbb2ae137247da1 100644 --- a/apps/files_sharing/publicwebdav.php +++ b/apps/files_sharing/publicwebdav.php @@ -41,7 +41,7 @@ $server->addPlugin(new OC_Connector_Sabre_ExceptionLoggerPlugin('webdav')); $server->subscribeEvent('beforeMethod', function () use ($server, $objectTree, $authBackend) { $share = $authBackend->getShare(); $owner = $share['uid_owner']; - $isWritable = $share['permissions'] & (\OCP\PERMISSION_UPDATE | \OCP\PERMISSION_CREATE); + $isWritable = $share['permissions'] & (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_CREATE); $fileId = $share['file_source']; if (!$isWritable) { diff --git a/apps/files_sharing/templates/authenticate.php b/apps/files_sharing/templates/authenticate.php index 0c4ac6ca44537975961f459f8d9250ee0834a1ab..e3aa62b9eced716b8ac338be40ecec7b5d4cf255 100644 --- a/apps/files_sharing/templates/authenticate.php +++ b/apps/files_sharing/templates/authenticate.php @@ -1,4 +1,9 @@ -
+ +
t('This share is password-protected')); ?>
@@ -8,6 +13,7 @@

+ + @@ -24,7 +44,7 @@ $previewSupported = OC\Preview::isMimeSupported($_['mimetype']) ? 'true' : 'fals

-
+
@@ -67,7 +87,7 @@ $previewSupported = OC\Preview::isMimeSupported($_['mimetype']) ? 'true' : 'fals
\ No newline at end of file + diff --git a/apps/user_ldap/templates/part.wizard-server.php b/apps/user_ldap/templates/part.wizard-server.php index 422faad028b0679b401e76439603c85ac35d4983..c1744143f98b0a006a6abb4b0293f34cebbdb131 100644 --- a/apps/user_ldap/templates/part.wizard-server.php +++ b/apps/user_ldap/templates/part.wizard-server.php @@ -24,7 +24,7 @@ ?> -

@@ -69,6 +69,16 @@ +
+ + +
+
diff --git a/apps/user_ldap/templates/part.wizard-userfilter.php b/apps/user_ldap/templates/part.wizard-userfilter.php index eff9f89ce2cf1f33840f4a7c0b9905c1d0af36aa..99a6e75370b4a4443d9bedf0cb3315ca5e945b92 100644 --- a/apps/user_ldap/templates/part.wizard-userfilter.php +++ b/apps/user_ldap/templates/part.wizard-userfilter.php @@ -30,13 +30,16 @@ placeholder="t('Raw LDAP filter'));?>" title="t('The filter specifies which LDAP users shall have access to the %s instance.', $theme->getName()));?>" /> +

-

+

0 t('users found'));?>

- \ No newline at end of file + diff --git a/apps/user_ldap/templates/part.wizardcontrols.php b/apps/user_ldap/templates/part.wizardcontrols.php index 33e1614c9c64253411fc1a8525422b4c999e9135..90d558e72d1fe9dd5dff8dcdec97d8a34a847ef8 100644 --- a/apps/user_ldap/templates/part.wizardcontrols.php +++ b/apps/user_ldap/templates/part.wizardcontrols.php @@ -1,4 +1,5 @@
+

+


diff --git a/apps/user_ldap/tests/access.php b/apps/user_ldap/tests/access.php index f436784675dcff53bb71cc23f1366efdea327590..85849229152054b738659463947b6d52a9632452 100644 --- a/apps/user_ldap/tests/access.php +++ b/apps/user_ldap/tests/access.php @@ -26,7 +26,7 @@ use \OCA\user_ldap\lib\Access; use \OCA\user_ldap\lib\Connection; use \OCA\user_ldap\lib\ILDAPWrapper; -class Test_Access extends \PHPUnit_Framework_TestCase { +class Test_Access extends \Test\TestCase { private function getConnecterAndLdapMock() { static $conMethods; static $accMethods; @@ -78,55 +78,52 @@ class Test_Access extends \PHPUnit_Framework_TestCase { $this->assertTrue($expected === $access->escapeFilterPart($input)); } - public function testConvertSID2StrSuccess() { + /** @dataProvider convertSID2StrSuccessData */ + public function testConvertSID2StrSuccess(array $sidArray, $sidExpected) { list($lw, $con, $um) = $this->getConnecterAndLdapMock(); $access = new Access($con, $lw, $um); - if(!function_exists('\bcadd')) { - $this->markTestSkipped('bcmath not available'); - } - - $sidBinary = file_get_contents(__DIR__ . '/data/sid.dat'); - $sidExpected = 'S-1-5-21-249921958-728525901-1594176202'; - + $sidBinary = implode('', $sidArray); $this->assertSame($sidExpected, $access->convertSID2Str($sidBinary)); } + public function convertSID2StrSuccessData() { + return array( + array( + array( + "\x01", + "\x04", + "\x00\x00\x00\x00\x00\x05", + "\x15\x00\x00\x00", + "\xa6\x81\xe5\x0e", + "\x4d\x6c\x6c\x2b", + "\xca\x32\x05\x5f", + ), + 'S-1-5-21-249921958-728525901-1594176202', + ), + array( + array( + "\x01", + "\x02", + "\xFF\xFF\xFF\xFF\xFF\xFF", + "\xFF\xFF\xFF\xFF", + "\xFF\xFF\xFF\xFF", + ), + 'S-1-281474976710655-4294967295-4294967295', + ), + ); + } + public function testConvertSID2StrInputError() { list($lw, $con, $um) = $this->getConnecterAndLdapMock(); $access = new Access($con, $lw, $um); - if(!function_exists('\bcadd')) { - $this->markTestSkipped('bcmath not available'); - } - $sidIllegal = 'foobar'; $sidExpected = ''; $this->assertSame($sidExpected, $access->convertSID2Str($sidIllegal)); } - public function testConvertSID2StrNoBCMath() { - if(function_exists('\bcadd')) { - $removed = false; - if(function_exists('runkit_function_remove')) { - $removed = !runkit_function_remove('\bcadd'); - } - if(!$removed) { - $this->markTestSkipped('bcadd could not be removed for ' . - 'testing without bcmath'); - } - } - - list($lw, $con, $um) = $this->getConnecterAndLdapMock(); - $access = new Access($con, $lw, $um); - - $sidBinary = file_get_contents(__DIR__ . '/data/sid.dat'); - $sidExpected = ''; - - $this->assertSame($sidExpected, $access->convertSID2Str($sidBinary)); - } - public function testGetDomainDNFromDNSuccess() { list($lw, $con, $um) = $this->getConnecterAndLdapMock(); $access = new Access($con, $lw, $um); diff --git a/apps/user_ldap/tests/connection.php b/apps/user_ldap/tests/connection.php index f51b0c830173361ff70da5e6a7f81a1bfc72e811..e3f29cec982c06661fa6c79b51cd6a460d01469b 100644 --- a/apps/user_ldap/tests/connection.php +++ b/apps/user_ldap/tests/connection.php @@ -22,7 +22,7 @@ namespace OCA\user_ldap\tests; -class Test_Connection extends \PHPUnit_Framework_TestCase { +class Test_Connection extends \Test\TestCase { public function testOriginalAgentUnchangedOnClone() { //background: upon login a bind is done with the user credentials diff --git a/apps/user_ldap/tests/data/sid.dat b/apps/user_ldap/tests/data/sid.dat deleted file mode 100644 index 3d500c6a872f3c8904df6fe85af623dbce42b0b2..0000000000000000000000000000000000000000 Binary files a/apps/user_ldap/tests/data/sid.dat and /dev/null differ diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php index c4aed25a1cc00fa6de4b539b9f402141c3180272..0e01eb3ba6fe027877a8a14fa87fee8bba2e66d8 100644 --- a/apps/user_ldap/tests/group_ldap.php +++ b/apps/user_ldap/tests/group_ldap.php @@ -22,14 +22,12 @@ namespace OCA\user_ldap\tests; -namespace OCA\user_ldap\tests; - use \OCA\user_ldap\GROUP_LDAP as GroupLDAP; use \OCA\user_ldap\lib\Access; use \OCA\user_ldap\lib\Connection; use \OCA\user_ldap\lib\ILDAPWrapper; -class Test_Group_Ldap extends \PHPUnit_Framework_TestCase { +class Test_Group_Ldap extends \Test\TestCase { private function getAccessMock() { static $conMethods; static $accMethods; @@ -59,10 +57,7 @@ class Test_Group_Ldap extends \PHPUnit_Framework_TestCase { private function enableGroups($access) { $access->connection->expects($this->any()) ->method('__get') - ->will($this->returnCallback(function($name) { -// if($name === 'ldapLoginFilter') { -// return '%uid'; -// } + ->will($this->returnCallback(function() { return 1; })); } @@ -269,4 +264,32 @@ class Test_Group_Ldap extends \PHPUnit_Framework_TestCase { $this->assertSame(false, $gid); } + /** + * tests whether Group Backend behaves correctly when cache with uid and gid + * is hit + */ + public function testInGroupHitsUidGidCache() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $uid = 'someUser'; + $gid = 'someGroup'; + $cacheKey = 'inGroup'.$uid.':'.$gid; + $access->connection->expects($this->once()) + ->method('isCached') + ->with($cacheKey) + ->will($this->returnValue(true)); + + $access->connection->expects($this->once()) + ->method('getFromCache') + ->with($cacheKey) + ->will($this->returnValue(true)); + + $access->expects($this->never()) + ->method('username2dn'); + + $groupBackend = new GroupLDAP($access); + $groupBackend->inGroup($uid, $gid); + } + } diff --git a/apps/user_ldap/tests/helper.php b/apps/user_ldap/tests/helper.php index 07c24d644992acb91d30c76273c8fbcf54a6a838..a70a57051c8248349b0c543f6dd65311a1c053fb 100644 --- a/apps/user_ldap/tests/helper.php +++ b/apps/user_ldap/tests/helper.php @@ -11,7 +11,7 @@ namespace OCA\user_ldap\tests; use OCA\user_ldap\lib\Helper; -class Test_Helper extends \PHPUnit_Framework_TestCase { +class Test_Helper extends \Test\TestCase { public function testTableTruncate() { diff --git a/apps/user_ldap/tests/user/manager.php b/apps/user_ldap/tests/user/manager.php index 7d687867213629eefaf480a43c9d805b2ef481fc..b3e52084dba6377e361b7f29ed597eaae8f41334 100644 --- a/apps/user_ldap/tests/user/manager.php +++ b/apps/user_ldap/tests/user/manager.php @@ -24,7 +24,7 @@ namespace OCA\user_ldap\tests; use OCA\user_ldap\lib\user\Manager; -class Test_User_Manager extends \PHPUnit_Framework_TestCase { +class Test_User_Manager extends \Test\TestCase { private function getTestInstances() { $access = $this->getMock('\OCA\user_ldap\lib\user\IUserTools'); diff --git a/apps/user_ldap/tests/user/user.php b/apps/user_ldap/tests/user/user.php index b66a92372667ff2eab0e8427a563304b78f63447..e110921d2d3cd61e52d4f20efb21b4a7d8094125 100644 --- a/apps/user_ldap/tests/user/user.php +++ b/apps/user_ldap/tests/user/user.php @@ -24,7 +24,7 @@ namespace OCA\user_ldap\tests; use OCA\user_ldap\lib\user\User; -class Test_User_User extends \PHPUnit_Framework_TestCase { +class Test_User_User extends \Test\TestCase { private function getTestInstances() { $access = $this->getMock('\OCA\user_ldap\lib\user\IUserTools'); diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php index e51f6cb5bb9e8c205190d9494c8bae63cc1db4a5..33cec0247b6f5d3f8a67f24d2035d1760856e1f2 100644 --- a/apps/user_ldap/tests/user_ldap.php +++ b/apps/user_ldap/tests/user_ldap.php @@ -27,11 +27,13 @@ use \OCA\user_ldap\lib\Access; use \OCA\user_ldap\lib\Connection; use \OCA\user_ldap\lib\ILDAPWrapper; -class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { +class Test_User_Ldap_Direct extends \Test\TestCase { protected $backend; protected $access; - public function setUp() { + protected function setUp() { + parent::setUp(); + \OC_User::clearBackends(); \OC_Group::clearBackends(); } @@ -98,9 +100,10 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { /** * Prepares the Access mock for checkPassword tests * @param \OCA\user_ldap\lib\Access $access mock + * @param bool noDisplayName * @return void */ - private function prepareAccessForCheckPassword(&$access) { + private function prepareAccessForCheckPassword(&$access, $noDisplayName = false) { $access->expects($this->once()) ->method('escapeFilterPart') ->will($this->returnCallback(function($uid) { @@ -125,10 +128,14 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { return array(); })); + $retVal = 'gunslinger'; + if($noDisplayName === true) { + $retVal = false; + } $access->expects($this->any()) ->method('dn2username') ->with($this->equalTo('dnOfRoland,dc=test')) - ->will($this->returnValue('gunslinger')); + ->will($this->returnValue($retVal)); $access->expects($this->any()) ->method('stringResemblesDN') @@ -178,6 +185,21 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { $this->assertFalse($result); } + public function testCheckPasswordNoDisplayName() { + $access = $this->getAccessMock(); + + $this->prepareAccessForCheckPassword($access, true); + $access->expects($this->once()) + ->method('username2dn') + ->will($this->returnValue(false)); + + $backend = new UserLDAP($access); + \OC_User::useBackend($backend); + + $result = $backend->checkPassword('roland', 'dt19'); + $this->assertFalse($result); + } + public function testCheckPasswordPublicAPI() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); @@ -530,23 +552,9 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { public function testCountUsers() { $access = $this->getAccessMock(); - $access->connection->expects($this->once()) - ->method('__get') - ->will($this->returnCallback(function($name) { - if($name === 'ldapLoginFilter') { - return 'uid=%uid'; - } - return null; - })); - $access->expects($this->once()) ->method('countUsers') - ->will($this->returnCallback(function($filter, $a, $b, $c) { - if($filter !== 'uid=*') { - return false; - } - return 5; - })); + ->will($this->returnValue(5)); $backend = new UserLDAP($access); @@ -557,23 +565,9 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { public function testCountUsersFailing() { $access = $this->getAccessMock(); - $access->connection->expects($this->once()) - ->method('__get') - ->will($this->returnCallback(function($name) { - if($name === 'ldapLoginFilter') { - return 'invalidFilter'; - } - return null; - })); - $access->expects($this->once()) ->method('countUsers') - ->will($this->returnCallback(function($filter, $a, $b, $c) { - if($filter !== 'uid=*') { - return false; - } - return 5; - })); + ->will($this->returnValue(false)); $backend = new UserLDAP($access); diff --git a/apps/user_ldap/tests/wizard.php b/apps/user_ldap/tests/wizard.php index 1f420f9ee8a7c59f815b17e8a311f7307fd24260..7284e4665363df35b6bcc0d921cfe7311aa6ca92 100644 --- a/apps/user_ldap/tests/wizard.php +++ b/apps/user_ldap/tests/wizard.php @@ -29,8 +29,9 @@ use \OCA\user_ldap\lib\Wizard; // use \OCA\user_ldap\lib\Configuration; // use \OCA\user_ldap\lib\ILDAPWrapper; -class Test_Wizard extends \PHPUnit_Framework_TestCase { - public function setUp() { +class Test_Wizard extends \Test\TestCase { + protected function setUp() { + parent::setUp(); //we need to make sure the consts are defined, otherwise tests will fail //on systems without php5_ldap $ldapConsts = array('LDAP_OPT_PROTOCOL_VERSION', diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index ae4dfec51181f8923936d23c15d40433b100a9ab..c2f87ebeb22569397d5ab2b17eaa180b8f89f5a6 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -64,8 +64,14 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { return false; } $dn = $ldap_users[0]; - $user = $this->access->userManager->get($dn); + if(is_null($user)) { + \OCP\Util::writeLog('user_ldap', + 'LDAP Login: Could not get user object for DN ' . $dn . + '. Maybe the LDAP entry has no set display name attribute?', + \OCP\Util::WARN); + return false; + } if($user->getUsername() !== false) { //are the credentials OK? if(!$this->access->areCredentialsValid($dn, $password)) { @@ -284,8 +290,7 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { * @return int|bool */ public function countUsers() { - $filter = \OCP\Util::mb_str_replace( - '%uid', '*', $this->access->connection->ldapLoginFilter, 'UTF-8'); + $filter = $this->access->getFilterForUserCount(); $entries = $this->access->countUsers($filter); return $entries; } diff --git a/apps/user_ldap/vendor/ui-multiselect/MIT-LICENSE b/apps/user_ldap/vendor/ui-multiselect/MIT-LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..2dc8e79e3ad1162a4a6973953e75a003d1c20374 --- /dev/null +++ b/apps/user_ldap/vendor/ui-multiselect/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2011 Eric Hynds + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/core/css/jquery.multiselect.css b/apps/user_ldap/vendor/ui-multiselect/jquery.multiselect.css similarity index 100% rename from core/css/jquery.multiselect.css rename to apps/user_ldap/vendor/ui-multiselect/jquery.multiselect.css diff --git a/core/js/jquery.multiselect.js b/apps/user_ldap/vendor/ui-multiselect/src/jquery.multiselect.js similarity index 100% rename from core/js/jquery.multiselect.js rename to apps/user_ldap/vendor/ui-multiselect/src/jquery.multiselect.js diff --git a/apps/user_webdavauth/appinfo/app.php b/apps/user_webdavauth/appinfo/app.php old mode 100755 new mode 100644 index 3cd227bddbefa4bbe7b1005f992d0ed54c64fd3e..125f5f406547df42fa636890c376f9589985d414 --- a/apps/user_webdavauth/appinfo/app.php +++ b/apps/user_webdavauth/appinfo/app.php @@ -28,6 +28,8 @@ OC_APP::registerAdmin('user_webdavauth', 'settings'); OC_User::registerBackend("WEBDAVAUTH"); OC_User::useBackend( "WEBDAVAUTH" ); +OCP\Util::addTranslations('user_webdavauth'); + // add settings page to navigation $entry = array( 'id' => "user_webdavauth_settings", diff --git a/apps/user_webdavauth/appinfo/info.xml b/apps/user_webdavauth/appinfo/info.xml old mode 100755 new mode 100644 diff --git a/apps/user_webdavauth/img/app.svg b/apps/user_webdavauth/img/app.svg new file mode 100644 index 0000000000000000000000000000000000000000..63a065afdc7425be4036160978461c63722646c8 --- /dev/null +++ b/apps/user_webdavauth/img/app.svg @@ -0,0 +1,61 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/apps/user_webdavauth/l10n/ar.js b/apps/user_webdavauth/l10n/ar.js new file mode 100644 index 0000000000000000000000000000000000000000..4b78f99ec6fc738e1649f1b223ebc92197f530cf --- /dev/null +++ b/apps/user_webdavauth/l10n/ar.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "تأكد شخصية ال WebDAV", + "Address:" : "العنوان:", + "Save" : "حفظ", + "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." : "سيتم إرسال معلومات المستخدم إلى هذا العنوان. يقوم هذا البرنامج بالتحقق من البيانات ويقوم بإعتبار رودود حالة HTTP برقم 401 و403 كمعلومات غير صحيحة, أما غيرها فسيعتبر صحيح." +}, +"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/user_webdavauth/l10n/ar.json b/apps/user_webdavauth/l10n/ar.json new file mode 100644 index 0000000000000000000000000000000000000000..d424faf0abc7f5c12091eaa608aac28372fd0b03 --- /dev/null +++ b/apps/user_webdavauth/l10n/ar.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "تأكد شخصية ال WebDAV", + "Address:" : "العنوان:", + "Save" : "حفظ", + "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." : "سيتم إرسال معلومات المستخدم إلى هذا العنوان. يقوم هذا البرنامج بالتحقق من البيانات ويقوم بإعتبار رودود حالة HTTP برقم 401 و403 كمعلومات غير صحيحة, أما غيرها فسيعتبر صحيح." +},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ar.php b/apps/user_webdavauth/l10n/ar.php deleted file mode 100644 index b9717a4c0345d582cb2a8417871cc73983a22a10..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ar.php +++ /dev/null @@ -1,8 +0,0 @@ - "تأكد شخصية ال WebDAV", -"Address:" => "العنوان:", -"Save" => "حفظ", -"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." => "سيتم إرسال معلومات المستخدم إلى هذا العنوان. يقوم هذا البرنامج بالتحقق من البيانات ويقوم بإعتبار رودود حالة HTTP برقم 401 و403 كمعلومات غير صحيحة, أما غيرها فسيعتبر صحيح." -); -$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"; diff --git a/apps/user_webdavauth/l10n/ast.js b/apps/user_webdavauth/l10n/ast.js new file mode 100644 index 0000000000000000000000000000000000000000..87a890666cbca7b2805e1260e5d1d7615abf3949 --- /dev/null +++ b/apps/user_webdavauth/l10n/ast.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticación per aciu de WevDAV", + "Address:" : "Direición:", + "Save" : "Guardar", + "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." : "Les credenciales d'usuariu van unviase a esta direición. Esti complementu verifica la rempuesta y va interpretar los códigos de rempuesta HTTP 401 y 403 como credenciales inválides y toles otres rempuestes como credenciales válides." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/ast.json b/apps/user_webdavauth/l10n/ast.json new file mode 100644 index 0000000000000000000000000000000000000000..52172d5afb946d61a598694cb5cb7da711f7f284 --- /dev/null +++ b/apps/user_webdavauth/l10n/ast.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticación per aciu de WevDAV", + "Address:" : "Direición:", + "Save" : "Guardar", + "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." : "Les credenciales d'usuariu van unviase a esta direición. Esti complementu verifica la rempuesta y va interpretar los códigos de rempuesta HTTP 401 y 403 como credenciales inválides y toles otres rempuestes como credenciales válides." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ast.php b/apps/user_webdavauth/l10n/ast.php deleted file mode 100644 index fbc8eb7ad2391aaae620dc5ff1d1230582939613..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ast.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticación per aciu de WevDAV", -"Address:" => "Direición:", -"Save" => "Guardar", -"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." => "Les credenciales d'usuariu van unviase a esta direición. Esti complementu verifica la rempuesta y va interpretar los códigos de rempuesta HTTP 401 y 403 como credenciales inválides y toles otres rempuestes como credenciales válides." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/az.js b/apps/user_webdavauth/l10n/az.js new file mode 100644 index 0000000000000000000000000000000000000000..e39b9a160e01ff20fd123d6a78e4949c586940d3 --- /dev/null +++ b/apps/user_webdavauth/l10n/az.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV qeydiyyatı", + "Address:" : "Ünvan: ", + "Save" : "Saxla", + "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." : "İstifadəçi verilənləri bu ünvana göndəriləcək. Bu əlavə imkan cavabı yoxlayır və HTTP status code-lari 401,403-ü yalnış verilənlər kimi interpretasiya edir. Bütün digər cavablar isə dügün verilənlərdir." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/az.json b/apps/user_webdavauth/l10n/az.json new file mode 100644 index 0000000000000000000000000000000000000000..cd63759e75c93270b5968c73a86d815c9217533f --- /dev/null +++ b/apps/user_webdavauth/l10n/az.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV qeydiyyatı", + "Address:" : "Ünvan: ", + "Save" : "Saxla", + "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." : "İstifadəçi verilənləri bu ünvana göndəriləcək. Bu əlavə imkan cavabı yoxlayır və HTTP status code-lari 401,403-ü yalnış verilənlər kimi interpretasiya edir. Bütün digər cavablar isə dügün verilənlərdir." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/az.php b/apps/user_webdavauth/l10n/az.php deleted file mode 100644 index 4d6530245e25294b48344e1ea4a7546524b05b84..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/az.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV qeydiyyatı", -"Address:" => "Ünvan: ", -"Save" => "Saxla", -"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." => "İstifadəçi verilənləri bu ünvana göndəriləcək. Bu əlavə imkan cavabı yoxlayır və HTTP status code-lari 401,403-ü yalnış verilənlər kimi interpretasiya edir. Bütün digər cavablar isə dügün verilənlərdir." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/bg_BG.js b/apps/user_webdavauth/l10n/bg_BG.js new file mode 100644 index 0000000000000000000000000000000000000000..7a1272be90c5062a86f2985e9ca9b6526f7f8e67 --- /dev/null +++ b/apps/user_webdavauth/l10n/bg_BG.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Идентификация", + "Address:" : "Адрес:", + "Save" : "Запиши", + "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." : "Потребителското име и парола ще да бъдат изптатени до този адрес. Добавката ще провери отговора и ще интрепретира HTTP кодове 401 и 403 като невалидни, а всички останали като потвърдена идентификация." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/bg_BG.json b/apps/user_webdavauth/l10n/bg_BG.json new file mode 100644 index 0000000000000000000000000000000000000000..4ab9458e8e43535aaceab0dde5285f751f66433f --- /dev/null +++ b/apps/user_webdavauth/l10n/bg_BG.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Идентификация", + "Address:" : "Адрес:", + "Save" : "Запиши", + "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." : "Потребителското име и парола ще да бъдат изптатени до този адрес. Добавката ще провери отговора и ще интрепретира HTTP кодове 401 и 403 като невалидни, а всички останали като потвърдена идентификация." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/bg_BG.php b/apps/user_webdavauth/l10n/bg_BG.php deleted file mode 100644 index 8b47194fc28a9c4cca969d80179edd596e67cf25..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/bg_BG.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV Идентификация", -"Address:" => "Адрес:", -"Save" => "Запиши", -"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." => "Потребителското име и парола ще да бъдат изптатени до този адрес. Добавката ще провери отговора и ще интрепретира HTTP кодове 401 и 403 като невалидни, а всички останали като потвърдена идентификация." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/bn_BD.js b/apps/user_webdavauth/l10n/bn_BD.js new file mode 100644 index 0000000000000000000000000000000000000000..9773db8bef68d7525e49227a6ef4b7cd1297c792 --- /dev/null +++ b/apps/user_webdavauth/l10n/bn_BD.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV অনুমোদন", + "Address:" : "ঠিকানা", + "Save" : "সংরক্ষণ", + "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." : "ব্যবহারকারীর তথ্যাদি এই ঠিকানায় পাঠানো হবে। এই প্লাগইন প্রত্যুত্তর পরীক্ষা করে দেখবে এবং HTTP statuscodes 401 and 403 কে অবৈধ তথ্যাদিরূপে অনুবাদ করে অন্য সকল প্রত্যুত্তরকে বৈধতা দেবে। " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/bn_BD.json b/apps/user_webdavauth/l10n/bn_BD.json new file mode 100644 index 0000000000000000000000000000000000000000..cda6cf08e3118853c8e8e265d8d47366c1557e72 --- /dev/null +++ b/apps/user_webdavauth/l10n/bn_BD.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV অনুমোদন", + "Address:" : "ঠিকানা", + "Save" : "সংরক্ষণ", + "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." : "ব্যবহারকারীর তথ্যাদি এই ঠিকানায় পাঠানো হবে। এই প্লাগইন প্রত্যুত্তর পরীক্ষা করে দেখবে এবং HTTP statuscodes 401 and 403 কে অবৈধ তথ্যাদিরূপে অনুবাদ করে অন্য সকল প্রত্যুত্তরকে বৈধতা দেবে। " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/bn_BD.php b/apps/user_webdavauth/l10n/bn_BD.php deleted file mode 100644 index e182e26e9f5da121d019cfb4b168988f0a43dbdf..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/bn_BD.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV অনুমোদন", -"Address:" => "ঠিকানা", -"Save" => "সংরক্ষণ", -"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." => "ব্যবহারকারীর তথ্যাদি এই ঠিকানায় পাঠানো হবে। এই প্লাগইন প্রত্যুত্তর পরীক্ষা করে দেখবে এবং HTTP statuscodes 401 and 403 কে অবৈধ তথ্যাদিরূপে অনুবাদ করে অন্য সকল প্রত্যুত্তরকে বৈধতা দেবে। " -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/bn_IN.js b/apps/user_webdavauth/l10n/bn_IN.js new file mode 100644 index 0000000000000000000000000000000000000000..6790de245202843885f9a9abfb2faf5fd0b74691 --- /dev/null +++ b/apps/user_webdavauth/l10n/bn_IN.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV প্রমাণীকরণ", + "Address:" : "ঠিকানা", + "Save" : "সেভ", + "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." : "ব্যবহারকারীর শংসাপত্র এই ঠিকানায় পাঠানো হবে।এই প্লাগিন প্রতিক্রিয়া পরীক্ষা করে এবং HTTP-statuscodes 401 এবং 403 কে অবৈধ প্রমাণপত্রাদি হিসাবে ব্যাখা করে,এবং সমস্ত অন্যান্য প্রত্যুত্তর বৈধ প্রমাণপত্রাদি হিসেবে ব্যাখ্যা করে।" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/bn_IN.json b/apps/user_webdavauth/l10n/bn_IN.json new file mode 100644 index 0000000000000000000000000000000000000000..3542f14a7b198ff38e79fb6771c9b07bda60cf94 --- /dev/null +++ b/apps/user_webdavauth/l10n/bn_IN.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV প্রমাণীকরণ", + "Address:" : "ঠিকানা", + "Save" : "সেভ", + "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." : "ব্যবহারকারীর শংসাপত্র এই ঠিকানায় পাঠানো হবে।এই প্লাগিন প্রতিক্রিয়া পরীক্ষা করে এবং HTTP-statuscodes 401 এবং 403 কে অবৈধ প্রমাণপত্রাদি হিসাবে ব্যাখা করে,এবং সমস্ত অন্যান্য প্রত্যুত্তর বৈধ প্রমাণপত্রাদি হিসেবে ব্যাখ্যা করে।" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/bn_IN.php b/apps/user_webdavauth/l10n/bn_IN.php deleted file mode 100644 index 965b0aaa6e301bdc87f93b6bc3e6c4131fc76127..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/bn_IN.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV প্রমাণীকরণ", -"Address:" => "ঠিকানা", -"Save" => "সেভ", -"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." => "ব্যবহারকারীর শংসাপত্র এই ঠিকানায় পাঠানো হবে।এই প্লাগিন প্রতিক্রিয়া পরীক্ষা করে এবং HTTP-statuscodes 401 এবং 403 কে অবৈধ প্রমাণপত্রাদি হিসাবে ব্যাখা করে,এবং সমস্ত অন্যান্য প্রত্যুত্তর বৈধ প্রমাণপত্রাদি হিসেবে ব্যাখ্যা করে।" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/bs.js b/apps/user_webdavauth/l10n/bs.js new file mode 100644 index 0000000000000000000000000000000000000000..becf43aa7f42633504e8c912fccaa43d64a1151c --- /dev/null +++ b/apps/user_webdavauth/l10n/bs.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Spasi" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/bs.json b/apps/user_webdavauth/l10n/bs.json new file mode 100644 index 0000000000000000000000000000000000000000..18aa0254d19ede0c340d6b1bc713c177f9d834c0 --- /dev/null +++ b/apps/user_webdavauth/l10n/bs.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Spasi" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/bs.php b/apps/user_webdavauth/l10n/bs.php deleted file mode 100644 index 2624f90daa8e1f581ca64eb4c40f296c320ae31c..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/bs.php +++ /dev/null @@ -1,5 +0,0 @@ - "Spasi" -); -$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);"; diff --git a/apps/user_webdavauth/l10n/ca.js b/apps/user_webdavauth/l10n/ca.js new file mode 100644 index 0000000000000000000000000000000000000000..baaa239098f9f264547d57045632be56b737f947 --- /dev/null +++ b/apps/user_webdavauth/l10n/ca.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticació WebDAV", + "Address:" : "Adreça:", + "Save" : "Desa", + "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." : "Les credencials d'usuari s'enviaran a aquesta adreça. Aquest connector comprova la resposta i interpreta els codis d'estat 401 i 403 com a credencials no vàlides, i qualsevol altra resposta com a credencials vàlides." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/ca.json b/apps/user_webdavauth/l10n/ca.json new file mode 100644 index 0000000000000000000000000000000000000000..715c286af48051b3090e23d5243bc619d1c3f5e8 --- /dev/null +++ b/apps/user_webdavauth/l10n/ca.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticació WebDAV", + "Address:" : "Adreça:", + "Save" : "Desa", + "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." : "Les credencials d'usuari s'enviaran a aquesta adreça. Aquest connector comprova la resposta i interpreta els codis d'estat 401 i 403 com a credencials no vàlides, i qualsevol altra resposta com a credencials vàlides." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ca.php b/apps/user_webdavauth/l10n/ca.php deleted file mode 100644 index 968b3f2b6b8aab54c261d0d3081ddce249284b32..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ca.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticació WebDAV", -"Address:" => "Adreça:", -"Save" => "Desa", -"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." => "Les credencials d'usuari s'enviaran a aquesta adreça. Aquest connector comprova la resposta i interpreta els codis d'estat 401 i 403 com a credencials no vàlides, i qualsevol altra resposta com a credencials vàlides." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/cs_CZ.js b/apps/user_webdavauth/l10n/cs_CZ.js new file mode 100644 index 0000000000000000000000000000000000000000..0fbf38d53ef82765b3cd733ade39825fa833cb90 --- /dev/null +++ b/apps/user_webdavauth/l10n/cs_CZ.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Ověření WebDAV", + "Address:" : "Adresa:", + "Save" : "Uložit", + "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." : "Uživatelské přihlašovací údaje budou odeslány na tuto adresu. Tento plugin zkontroluje odpověď serveru a interpretuje návratový kód HTTP 401 a 403 jako neplatné přihlašovací údaje a jakýkoli jiný jako platné přihlašovací údaje." +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/user_webdavauth/l10n/cs_CZ.json b/apps/user_webdavauth/l10n/cs_CZ.json new file mode 100644 index 0000000000000000000000000000000000000000..0ee73e9a9dd5f6ef81ba71a79af018123299ef29 --- /dev/null +++ b/apps/user_webdavauth/l10n/cs_CZ.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Ověření WebDAV", + "Address:" : "Adresa:", + "Save" : "Uložit", + "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." : "Uživatelské přihlašovací údaje budou odeslány na tuto adresu. Tento plugin zkontroluje odpověď serveru a interpretuje návratový kód HTTP 401 a 403 jako neplatné přihlašovací údaje a jakýkoli jiný jako platné přihlašovací údaje." +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/cs_CZ.php b/apps/user_webdavauth/l10n/cs_CZ.php deleted file mode 100644 index 760349def7260b605972bb35a50efbf0eb2a1eb1..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/cs_CZ.php +++ /dev/null @@ -1,8 +0,0 @@ - "Ověření WebDAV", -"Address:" => "Adresa:", -"Save" => "Uložit", -"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." => "Uživatelské přihlašovací údaje budou odeslány na tuto adresu. Tento plugin zkontroluje odpověď serveru a interpretuje návratový kód HTTP 401 a 403 jako neplatné přihlašovací údaje a jakýkoli jiný jako platné přihlašovací údaje." -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/user_webdavauth/l10n/cy_GB.js b/apps/user_webdavauth/l10n/cy_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..739908abf4b251d361154910077319f70e2cd947 --- /dev/null +++ b/apps/user_webdavauth/l10n/cy_GB.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Cadw" +}, +"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/user_webdavauth/l10n/cy_GB.json b/apps/user_webdavauth/l10n/cy_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..e0ec790857f5379b838c83ef8a73266b462dc660 --- /dev/null +++ b/apps/user_webdavauth/l10n/cy_GB.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Cadw" +},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/cy_GB.php b/apps/user_webdavauth/l10n/cy_GB.php deleted file mode 100644 index 765f844a90c6ef068dfcecf5126d8a63e1e977bb..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/cy_GB.php +++ /dev/null @@ -1,5 +0,0 @@ - "Cadw" -); -$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"; diff --git a/apps/user_webdavauth/l10n/da.js b/apps/user_webdavauth/l10n/da.js new file mode 100644 index 0000000000000000000000000000000000000000..9fc6a4e161f84d70de4ffc40fb3ce72906335d4b --- /dev/null +++ b/apps/user_webdavauth/l10n/da.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-godkendelse", + "Address:" : "Adresse:", + "Save" : "Gem", + "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." : "Bruger oplysningerne vil blive sendt til denne adresse. Plugin'et registrerer responsen og fortolker HTTP-statuskode 401 og 403 som ugyldige oplysninger, men alle andre besvarelser som gyldige oplysninger." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/da.json b/apps/user_webdavauth/l10n/da.json new file mode 100644 index 0000000000000000000000000000000000000000..9e967eb3158ff8c8a4d47ca2b703aa632490b087 --- /dev/null +++ b/apps/user_webdavauth/l10n/da.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-godkendelse", + "Address:" : "Adresse:", + "Save" : "Gem", + "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." : "Bruger oplysningerne vil blive sendt til denne adresse. Plugin'et registrerer responsen og fortolker HTTP-statuskode 401 og 403 som ugyldige oplysninger, men alle andre besvarelser som gyldige oplysninger." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/da.php b/apps/user_webdavauth/l10n/da.php deleted file mode 100644 index da23d6ddd66b77aa0b70de81e23a5bdf4a8ca5ec..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/da.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV-godkendelse", -"Address:" => "Adresse:", -"Save" => "Gem", -"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." => "Bruger oplysningerne vil blive sendt til denne adresse. Plugin'et registrerer responsen og fortolker HTTP-statuskode 401 og 403 som ugyldige oplysninger, men alle andre besvarelser som gyldige oplysninger." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/de.js b/apps/user_webdavauth/l10n/de.js new file mode 100644 index 0000000000000000000000000000000000000000..aead50e2b72db1a2b77be5de2fbf4759c979a1f7 --- /dev/null +++ b/apps/user_webdavauth/l10n/de.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Authentifikation", + "Address:" : "Adresse:", + "Save" : "Speichern", + "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." : "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/de.json b/apps/user_webdavauth/l10n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..6a9a9520dce1239e6c9736b87527dba2b0821cac --- /dev/null +++ b/apps/user_webdavauth/l10n/de.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Authentifikation", + "Address:" : "Adresse:", + "Save" : "Speichern", + "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." : "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/de.php b/apps/user_webdavauth/l10n/de.php deleted file mode 100644 index 86b2da8d9efda6242584118916230cb28f0fb4bb..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/de.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV Authentifikation", -"Address:" => "Adresse:", -"Save" => "Speichern", -"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." => "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/de_AT.js b/apps/user_webdavauth/l10n/de_AT.js new file mode 100644 index 0000000000000000000000000000000000000000..61b244f4ae4dd52d6e102dcf9e2057cfc4993016 --- /dev/null +++ b/apps/user_webdavauth/l10n/de_AT.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Speichern" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/de_AT.json b/apps/user_webdavauth/l10n/de_AT.json new file mode 100644 index 0000000000000000000000000000000000000000..a61814a097814c47ad58ecbb0b0c38897c224a7d --- /dev/null +++ b/apps/user_webdavauth/l10n/de_AT.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Speichern" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/de_AT.php b/apps/user_webdavauth/l10n/de_AT.php deleted file mode 100644 index 60e8abdbf26425e23592c6bcd1ea1069b5db9f8f..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/de_AT.php +++ /dev/null @@ -1,5 +0,0 @@ - "Speichern" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/de_CH.js b/apps/user_webdavauth/l10n/de_CH.js new file mode 100644 index 0000000000000000000000000000000000000000..84bcb9d4efb3c629ef233f3a033e3660f58c88be --- /dev/null +++ b/apps/user_webdavauth/l10n/de_CH.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-Authentifizierung", + "Save" : "Speichern", + "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." : "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/de_CH.json b/apps/user_webdavauth/l10n/de_CH.json new file mode 100644 index 0000000000000000000000000000000000000000..1c47d57a349dfa9d43d72d46964678d64790de5b --- /dev/null +++ b/apps/user_webdavauth/l10n/de_CH.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-Authentifizierung", + "Save" : "Speichern", + "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." : "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/de_CH.php b/apps/user_webdavauth/l10n/de_CH.php deleted file mode 100644 index 1683c56e4da7ee95b7844c1b4f0be8768e2b8fbf..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/de_CH.php +++ /dev/null @@ -1,7 +0,0 @@ - "WebDAV-Authentifizierung", -"Save" => "Speichern", -"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." => "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/de_DE.js b/apps/user_webdavauth/l10n/de_DE.js new file mode 100644 index 0000000000000000000000000000000000000000..6e667dca0b74d61ba456be93739e866f3c2abd1f --- /dev/null +++ b/apps/user_webdavauth/l10n/de_DE.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-Authentifizierung", + "Address:" : "Adresse:", + "Save" : "Speichern", + "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." : "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/de_DE.json b/apps/user_webdavauth/l10n/de_DE.json new file mode 100644 index 0000000000000000000000000000000000000000..f347f7724e58071c3535020f19c45da5378353eb --- /dev/null +++ b/apps/user_webdavauth/l10n/de_DE.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-Authentifizierung", + "Address:" : "Adresse:", + "Save" : "Speichern", + "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." : "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/de_DE.php b/apps/user_webdavauth/l10n/de_DE.php deleted file mode 100644 index 5888529624dd912262a0f041ec3dee06b9097b0d..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV-Authentifizierung", -"Address:" => "Adresse:", -"Save" => "Speichern", -"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." => "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/el.js b/apps/user_webdavauth/l10n/el.js new file mode 100644 index 0000000000000000000000000000000000000000..81a2cea52fdc34b7a14d1fe683346be7980dc680 --- /dev/null +++ b/apps/user_webdavauth/l10n/el.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Πιστοποίηση μέσω WebDAV ", + "Address:" : "Διεύθυνση:", + "Save" : "Αποθήκευση", + "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." : "Τα διαπιστευτήρια του χρήστη θα σταλούν σε αυτή την διεύθυνση. Αυτό το πρόσθετο ελέγχει την απόκριση και θα ερμηνεύσει τους κωδικούς κατάστασης HTTP 401 και 402 ως μη έγκυρα διαπιστευτήρια και όλες τις άλλες αποκρίσεις ως έγκυρα διαπιστευτήρια." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/el.json b/apps/user_webdavauth/l10n/el.json new file mode 100644 index 0000000000000000000000000000000000000000..2335801c723ac5ce47ed1f5a53d2eb2ecdfb7cbb --- /dev/null +++ b/apps/user_webdavauth/l10n/el.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Πιστοποίηση μέσω WebDAV ", + "Address:" : "Διεύθυνση:", + "Save" : "Αποθήκευση", + "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." : "Τα διαπιστευτήρια του χρήστη θα σταλούν σε αυτή την διεύθυνση. Αυτό το πρόσθετο ελέγχει την απόκριση και θα ερμηνεύσει τους κωδικούς κατάστασης HTTP 401 και 402 ως μη έγκυρα διαπιστευτήρια και όλες τις άλλες αποκρίσεις ως έγκυρα διαπιστευτήρια." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/el.php b/apps/user_webdavauth/l10n/el.php deleted file mode 100644 index ad610ae7d61850d5deb1383c616b2afffad7bfcb..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/el.php +++ /dev/null @@ -1,8 +0,0 @@ - "Πιστοποίηση μέσω WebDAV ", -"Address:" => "Διεύθυνση:", -"Save" => "Αποθήκευση", -"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." => "Τα διαπιστευτήρια του χρήστη θα σταλούν σε αυτή την διεύθυνση. Αυτό το πρόσθετο ελέγχει την απόκριση και θα ερμηνεύσει τους κωδικούς κατάστασης HTTP 401 και 402 ως μη έγκυρα διαπιστευτήρια και όλες τις άλλες αποκρίσεις ως έγκυρα διαπιστευτήρια." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/en_GB.js b/apps/user_webdavauth/l10n/en_GB.js new file mode 100644 index 0000000000000000000000000000000000000000..5eaa8449d4df0ad4a0ab19d590c6ca84f67c25ef --- /dev/null +++ b/apps/user_webdavauth/l10n/en_GB.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Authentication", + "Address:" : "Address:", + "Save" : "Save", + "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." : "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." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/en_GB.json b/apps/user_webdavauth/l10n/en_GB.json new file mode 100644 index 0000000000000000000000000000000000000000..12957ea2b02896499cc3c8a34094764b07bec0d4 --- /dev/null +++ b/apps/user_webdavauth/l10n/en_GB.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Authentication", + "Address:" : "Address:", + "Save" : "Save", + "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." : "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." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/en_GB.php b/apps/user_webdavauth/l10n/en_GB.php deleted file mode 100644 index a751b1fa25c17d8b86ff62043bde7139669c0725..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/en_GB.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV Authentication", -"Address:" => "Address:", -"Save" => "Save", -"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." => "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." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/eo.js b/apps/user_webdavauth/l10n/eo.js new file mode 100644 index 0000000000000000000000000000000000000000..657042a08f60fed9d9c0968d736826ffcf4a3b23 --- /dev/null +++ b/apps/user_webdavauth/l10n/eo.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-aŭtentigo", + "Save" : "Konservi" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/eo.json b/apps/user_webdavauth/l10n/eo.json new file mode 100644 index 0000000000000000000000000000000000000000..17bb6935824ebe1f72e898b3dab61ef23923a7f1 --- /dev/null +++ b/apps/user_webdavauth/l10n/eo.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-aŭtentigo", + "Save" : "Konservi" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/eo.php b/apps/user_webdavauth/l10n/eo.php deleted file mode 100644 index b5d824fdc996337a0ec32121ed8617db17b62163..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/eo.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV-aŭtentigo", -"Save" => "Konservi" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/es.js b/apps/user_webdavauth/l10n/es.js new file mode 100644 index 0000000000000000000000000000000000000000..107e7332e4e1bf4f0e2d92d45f4704230634421d --- /dev/null +++ b/apps/user_webdavauth/l10n/es.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticación mediante WevDAV", + "Address:" : "Dirección:", + "Save" : "Guardar", + "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." : "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/es.json b/apps/user_webdavauth/l10n/es.json new file mode 100644 index 0000000000000000000000000000000000000000..57d2c4f7027a0d32bb5d9193e0aaeb83da552154 --- /dev/null +++ b/apps/user_webdavauth/l10n/es.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticación mediante WevDAV", + "Address:" : "Dirección:", + "Save" : "Guardar", + "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." : "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/es.php b/apps/user_webdavauth/l10n/es.php deleted file mode 100644 index 3e11ba378e634b05e77124b6f1c6dc2690d7894f..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/es.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticación mediante WevDAV", -"Address:" => "Dirección:", -"Save" => "Guardar", -"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." => "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/es_AR.js b/apps/user_webdavauth/l10n/es_AR.js new file mode 100644 index 0000000000000000000000000000000000000000..ab1e59432bad85dc3645d8be6d3033689b70752e --- /dev/null +++ b/apps/user_webdavauth/l10n/es_AR.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticación de WebDAV", + "Save" : "Guardar", + "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." : "Las credenciales del usuario serán enviadas a esta dirección. Este plug-in verificará la respuesta e interpretará los códigos de estado HTTP 401 y 403 como credenciales inválidas y cualquier otra respuesta como válida." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/es_AR.json b/apps/user_webdavauth/l10n/es_AR.json new file mode 100644 index 0000000000000000000000000000000000000000..36947d9c1a61dcf438c8db984b51215a51e73869 --- /dev/null +++ b/apps/user_webdavauth/l10n/es_AR.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticación de WebDAV", + "Save" : "Guardar", + "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." : "Las credenciales del usuario serán enviadas a esta dirección. Este plug-in verificará la respuesta e interpretará los códigos de estado HTTP 401 y 403 como credenciales inválidas y cualquier otra respuesta como válida." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/es_AR.php b/apps/user_webdavauth/l10n/es_AR.php deleted file mode 100644 index 38164f9fba41194c72b58f0efd0f16fd12f21bf6..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/es_AR.php +++ /dev/null @@ -1,7 +0,0 @@ - "Autenticación de WebDAV", -"Save" => "Guardar", -"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." => "Las credenciales del usuario serán enviadas a esta dirección. Este plug-in verificará la respuesta e interpretará los códigos de estado HTTP 401 y 403 como credenciales inválidas y cualquier otra respuesta como válida." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/es_MX.js b/apps/user_webdavauth/l10n/es_MX.js new file mode 100644 index 0000000000000000000000000000000000000000..57412d0c2305607b95b3d792a0de0166a0b500af --- /dev/null +++ b/apps/user_webdavauth/l10n/es_MX.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticación mediante WevDAV", + "Save" : "Guardar", + "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." : "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/es_MX.json b/apps/user_webdavauth/l10n/es_MX.json new file mode 100644 index 0000000000000000000000000000000000000000..26b45a98600a6ef1e8b73c07c03cc00d86ea22a8 --- /dev/null +++ b/apps/user_webdavauth/l10n/es_MX.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticación mediante WevDAV", + "Save" : "Guardar", + "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." : "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/es_MX.php b/apps/user_webdavauth/l10n/es_MX.php deleted file mode 100644 index 360724f89862ee56adf95f8e142596130178d1ca..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/es_MX.php +++ /dev/null @@ -1,7 +0,0 @@ - "Autenticación mediante WevDAV", -"Save" => "Guardar", -"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." => "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/et_EE.js b/apps/user_webdavauth/l10n/et_EE.js new file mode 100644 index 0000000000000000000000000000000000000000..3644bb8cd8da312075e14b72d28cbd27187b8095 --- /dev/null +++ b/apps/user_webdavauth/l10n/et_EE.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV autentimine", + "Address:" : "Aadress:", + "Save" : "Salvesta", + "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." : "ownCloud saadab kasutajatunnused sellel aadressil. See vidin kontrollib vastust ning tuvastab ning tõlgendab HTTP olekukoodid 401 ja 403 valedeks andmeteks ning kõik teised vastused korrektseteks andmeteks." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/et_EE.json b/apps/user_webdavauth/l10n/et_EE.json new file mode 100644 index 0000000000000000000000000000000000000000..5893006b4a57622c35db6522546936e8d898cd5b --- /dev/null +++ b/apps/user_webdavauth/l10n/et_EE.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV autentimine", + "Address:" : "Aadress:", + "Save" : "Salvesta", + "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." : "ownCloud saadab kasutajatunnused sellel aadressil. See vidin kontrollib vastust ning tuvastab ning tõlgendab HTTP olekukoodid 401 ja 403 valedeks andmeteks ning kõik teised vastused korrektseteks andmeteks." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/et_EE.php b/apps/user_webdavauth/l10n/et_EE.php deleted file mode 100644 index 76b5cd4a8641baf81f2d5f3816409d02e5528649..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/et_EE.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV autentimine", -"Address:" => "Aadress:", -"Save" => "Salvesta", -"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." => "ownCloud saadab kasutajatunnused sellel aadressil. See vidin kontrollib vastust ning tuvastab ning tõlgendab HTTP olekukoodid 401 ja 403 valedeks andmeteks ning kõik teised vastused korrektseteks andmeteks." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/eu.js b/apps/user_webdavauth/l10n/eu.js new file mode 100644 index 0000000000000000000000000000000000000000..abc45c1adf3ce461e1551ee9784871b1202c4df1 --- /dev/null +++ b/apps/user_webdavauth/l10n/eu.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Autentikazioa", + "Address:" : "Helbidea:", + "Save" : "Gorde", + "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." : "Erabiltzailearen kredentzialak helbide honetara bidaliko dira. Plugin honek erantzuna aztertu eta HTTP 401 eta 403 egoera-kodeak kredentzial ez-egokitzat hartuko ditu, eta beste edozein erantzun, aldiz, kredentzial egokitzat." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/eu.json b/apps/user_webdavauth/l10n/eu.json new file mode 100644 index 0000000000000000000000000000000000000000..83763ecaaff72d3da1aab36f01888f904d3af693 --- /dev/null +++ b/apps/user_webdavauth/l10n/eu.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Autentikazioa", + "Address:" : "Helbidea:", + "Save" : "Gorde", + "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." : "Erabiltzailearen kredentzialak helbide honetara bidaliko dira. Plugin honek erantzuna aztertu eta HTTP 401 eta 403 egoera-kodeak kredentzial ez-egokitzat hartuko ditu, eta beste edozein erantzun, aldiz, kredentzial egokitzat." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/eu.php b/apps/user_webdavauth/l10n/eu.php deleted file mode 100644 index dcf9e0d3ef0da93eff4d6a605161850ce6a1f73e..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/eu.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV Autentikazioa", -"Address:" => "Helbidea:", -"Save" => "Gorde", -"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." => "Erabiltzailearen kredentzialak helbide honetara bidaliko dira. Plugin honek erantzuna aztertu eta HTTP 401 eta 403 egoera-kodeak kredentzial ez-egokitzat hartuko ditu, eta beste edozein erantzun, aldiz, kredentzial egokitzat." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/eu_ES.js b/apps/user_webdavauth/l10n/eu_ES.js new file mode 100644 index 0000000000000000000000000000000000000000..68ab406f8341e3f14eaae009a3da6c2800875937 --- /dev/null +++ b/apps/user_webdavauth/l10n/eu_ES.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Gorde" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/eu_ES.json b/apps/user_webdavauth/l10n/eu_ES.json new file mode 100644 index 0000000000000000000000000000000000000000..7a78f4beceed8b5a5cc882975be63987007abadb --- /dev/null +++ b/apps/user_webdavauth/l10n/eu_ES.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Gorde" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/eu_ES.php b/apps/user_webdavauth/l10n/eu_ES.php deleted file mode 100644 index a1d57a93b5265d0830f56a91aefba574106b1303..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/eu_ES.php +++ /dev/null @@ -1,5 +0,0 @@ - "Gorde" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/fa.js b/apps/user_webdavauth/l10n/fa.js new file mode 100644 index 0000000000000000000000000000000000000000..13f994c5520041a4d16e59cc3dfb143157863662 --- /dev/null +++ b/apps/user_webdavauth/l10n/fa.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "اعتبار سنجی WebDAV ", + "Address:" : "آدرس:", + "Save" : "ذخیره", + "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." : "جزئیات کاربر به این آدرس ارسال خواهد شد. این پلاگین پاسخ را بررسی خواهد کرد و کدهای حالت HTTP شماره 401 و 403 را به عنوان اعتبارات غیر معتبر ترجمه می کند، و باقی موارد را به عنوان موارد معتبر تشخیص می دهد." +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/fa.json b/apps/user_webdavauth/l10n/fa.json new file mode 100644 index 0000000000000000000000000000000000000000..e200dc4698619fe23009ec85ccdad13aed5806bd --- /dev/null +++ b/apps/user_webdavauth/l10n/fa.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "اعتبار سنجی WebDAV ", + "Address:" : "آدرس:", + "Save" : "ذخیره", + "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." : "جزئیات کاربر به این آدرس ارسال خواهد شد. این پلاگین پاسخ را بررسی خواهد کرد و کدهای حالت HTTP شماره 401 و 403 را به عنوان اعتبارات غیر معتبر ترجمه می کند، و باقی موارد را به عنوان موارد معتبر تشخیص می دهد." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/fa.php b/apps/user_webdavauth/l10n/fa.php deleted file mode 100644 index cfaf8ce1a07258627ae5b1fdcd0a0ce791dc7742..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/fa.php +++ /dev/null @@ -1,8 +0,0 @@ - "اعتبار سنجی WebDAV ", -"Address:" => "آدرس:", -"Save" => "ذخیره", -"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." => "جزئیات کاربر به این آدرس ارسال خواهد شد. این پلاگین پاسخ را بررسی خواهد کرد و کدهای حالت HTTP شماره 401 و 403 را به عنوان اعتبارات غیر معتبر ترجمه می کند، و باقی موارد را به عنوان موارد معتبر تشخیص می دهد." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/fi_FI.js b/apps/user_webdavauth/l10n/fi_FI.js new file mode 100644 index 0000000000000000000000000000000000000000..4d98c51d778d87bdf2944cad8a4fff53802f6d5b --- /dev/null +++ b/apps/user_webdavauth/l10n/fi_FI.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-todennus", + "Address:" : "Osoite:", + "Save" : "Tallenna", + "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." : "Käyttäjätiedot lähetetään tähän osoitteeseen. Liitännäinen tarkistaa vastauksen, ja tulkitsee HTTP-tilakoodit 401 ja 403 vääriksi käyttäjätiedoiksi. Kaikki muut vastaukset tulkitaan kelvollisiksi käyttäjätiedoiksi." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/fi_FI.json b/apps/user_webdavauth/l10n/fi_FI.json new file mode 100644 index 0000000000000000000000000000000000000000..412813eea4a577598258c6a617febcd28f2c40f7 --- /dev/null +++ b/apps/user_webdavauth/l10n/fi_FI.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-todennus", + "Address:" : "Osoite:", + "Save" : "Tallenna", + "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." : "Käyttäjätiedot lähetetään tähän osoitteeseen. Liitännäinen tarkistaa vastauksen, ja tulkitsee HTTP-tilakoodit 401 ja 403 vääriksi käyttäjätiedoiksi. Kaikki muut vastaukset tulkitaan kelvollisiksi käyttäjätiedoiksi." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/fi_FI.php b/apps/user_webdavauth/l10n/fi_FI.php deleted file mode 100644 index 7209a889f1b274bb296eea6e1da2191b65b867c5..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/fi_FI.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV-todennus", -"Address:" => "Osoite:", -"Save" => "Tallenna", -"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." => "Käyttäjätiedot lähetetään tähän osoitteeseen. Liitännäinen tarkistaa vastauksen, ja tulkitsee HTTP-tilakoodit 401 ja 403 vääriksi käyttäjätiedoiksi. Kaikki muut vastaukset tulkitaan kelvollisiksi käyttäjätiedoiksi." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/fr.js b/apps/user_webdavauth/l10n/fr.js new file mode 100644 index 0000000000000000000000000000000000000000..5b36d5aa5b1d784885d5dbf89e3bd8a273c7bffe --- /dev/null +++ b/apps/user_webdavauth/l10n/fr.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Authentification WebDAV", + "Address:" : "Adresse :", + "Save" : "Sauvegarder", + "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." : "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide." +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_webdavauth/l10n/fr.json b/apps/user_webdavauth/l10n/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..fe8c4b521ade7aa7cd92b762db62f2f146da5591 --- /dev/null +++ b/apps/user_webdavauth/l10n/fr.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Authentification WebDAV", + "Address:" : "Adresse :", + "Save" : "Sauvegarder", + "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." : "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide." +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/fr.php b/apps/user_webdavauth/l10n/fr.php deleted file mode 100644 index efa6f2ea3d3bdc1d9bed7f98500002de705314cf..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/fr.php +++ /dev/null @@ -1,8 +0,0 @@ - "Authentification WebDAV", -"Address:" => "Adresse :", -"Save" => "Sauvegarder", -"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." => "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide." -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_webdavauth/l10n/gl.js b/apps/user_webdavauth/l10n/gl.js new file mode 100644 index 0000000000000000000000000000000000000000..cd561a4ee562d1d72a255777ccd7d982c9401324 --- /dev/null +++ b/apps/user_webdavauth/l10n/gl.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticación WebDAV", + "Address:" : "Enderezo:", + "Save" : "Gardar", + "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." : "As credenciais do usuario serán enviadas a este enderezo. Este engadido comproba a resposta e interpretará os códigos de estado 401 e 403 como credenciais incorrectas, e todas as outras respostas como credenciais correctas." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/gl.json b/apps/user_webdavauth/l10n/gl.json new file mode 100644 index 0000000000000000000000000000000000000000..54a2af908673f9501f2ae42efd57d1e5d5b0ea8b --- /dev/null +++ b/apps/user_webdavauth/l10n/gl.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticación WebDAV", + "Address:" : "Enderezo:", + "Save" : "Gardar", + "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." : "As credenciais do usuario serán enviadas a este enderezo. Este engadido comproba a resposta e interpretará os códigos de estado 401 e 403 como credenciais incorrectas, e todas as outras respostas como credenciais correctas." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/gl.php b/apps/user_webdavauth/l10n/gl.php deleted file mode 100644 index 93ea1773cb1549e57f5e0892849ea77daa713677..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/gl.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticación WebDAV", -"Address:" => "Enderezo:", -"Save" => "Gardar", -"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." => "As credenciais do usuario serán enviadas a este enderezo. Este engadido comproba a resposta e interpretará os códigos de estado 401 e 403 como credenciais incorrectas, e todas as outras respostas como credenciais correctas." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/he.js b/apps/user_webdavauth/l10n/he.js new file mode 100644 index 0000000000000000000000000000000000000000..b88c6b72aaca182f724c0c826423d5fa219de533 --- /dev/null +++ b/apps/user_webdavauth/l10n/he.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "הזדהות מול WebDAV", + "Save" : "שמירה" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/he.json b/apps/user_webdavauth/l10n/he.json new file mode 100644 index 0000000000000000000000000000000000000000..fc168aae3d66ad609513b93607c538c764ad10f0 --- /dev/null +++ b/apps/user_webdavauth/l10n/he.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "הזדהות מול WebDAV", + "Save" : "שמירה" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/he.php b/apps/user_webdavauth/l10n/he.php deleted file mode 100644 index 4b037cc537f3ac6fcdf4836e25b151d79fc35f1f..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/he.php +++ /dev/null @@ -1,6 +0,0 @@ - "הזדהות מול WebDAV", -"Save" => "שמירה" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/hi.js b/apps/user_webdavauth/l10n/hi.js new file mode 100644 index 0000000000000000000000000000000000000000..840317d290689968e8ee62c77474f81d0a44c734 --- /dev/null +++ b/apps/user_webdavauth/l10n/hi.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "सहेजें" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/hi.json b/apps/user_webdavauth/l10n/hi.json new file mode 100644 index 0000000000000000000000000000000000000000..8ddb046ec639caf69bf438ccb8dffbe1dd06d040 --- /dev/null +++ b/apps/user_webdavauth/l10n/hi.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "सहेजें" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/hi.php b/apps/user_webdavauth/l10n/hi.php deleted file mode 100644 index d373ff080cbfec8c9577dc40c36c0fbcc33a886c..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/hi.php +++ /dev/null @@ -1,5 +0,0 @@ - "सहेजें" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/hr.js b/apps/user_webdavauth/l10n/hr.js new file mode 100644 index 0000000000000000000000000000000000000000..041fea254dcc03ec2e2728483ef5d5796c7c43af --- /dev/null +++ b/apps/user_webdavauth/l10n/hr.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Snimi" +}, +"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/user_webdavauth/l10n/hr.json b/apps/user_webdavauth/l10n/hr.json new file mode 100644 index 0000000000000000000000000000000000000000..d7da18a7a9645b203e96adda41f0b76391e50a72 --- /dev/null +++ b/apps/user_webdavauth/l10n/hr.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Snimi" +},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/hr.php b/apps/user_webdavauth/l10n/hr.php deleted file mode 100644 index 5df22b34400a8f21df0af1a7e675a9ff5e29ba5b..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/hr.php +++ /dev/null @@ -1,5 +0,0 @@ - "Snimi" -); -$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;"; diff --git a/apps/user_webdavauth/l10n/hu_HU.js b/apps/user_webdavauth/l10n/hu_HU.js new file mode 100644 index 0000000000000000000000000000000000000000..354283be7b98e1eaa2dcc7e40f60ce4723768894 --- /dev/null +++ b/apps/user_webdavauth/l10n/hu_HU.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV hitelesítés", + "Address:" : "Cím:", + "Save" : "Mentés", + "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." : "A felhasználói hitelesítő adatai el lesznek küldve erre a címre. Ez a bővítőmodul leellenőrzi a választ és ha a HTTP hibakód nem 401 vagy 403 azaz érvénytelen a hitelesítő adat, akkor minden más válasz érvényes lesz." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/hu_HU.json b/apps/user_webdavauth/l10n/hu_HU.json new file mode 100644 index 0000000000000000000000000000000000000000..6631ee61c63e70ef99fe9744e88868ea04adb28e --- /dev/null +++ b/apps/user_webdavauth/l10n/hu_HU.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV hitelesítés", + "Address:" : "Cím:", + "Save" : "Mentés", + "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." : "A felhasználói hitelesítő adatai el lesznek küldve erre a címre. Ez a bővítőmodul leellenőrzi a választ és ha a HTTP hibakód nem 401 vagy 403 azaz érvénytelen a hitelesítő adat, akkor minden más válasz érvényes lesz." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/hu_HU.php b/apps/user_webdavauth/l10n/hu_HU.php deleted file mode 100644 index 4cd053fecdbe6d9a5c52c88fcaa8c354e6b4a7c1..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/hu_HU.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV hitelesítés", -"Address:" => "Cím:", -"Save" => "Mentés", -"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." => "A felhasználói hitelesítő adatai el lesznek küldve erre a címre. Ez a bővítőmodul leellenőrzi a választ és ha a HTTP hibakód nem 401 vagy 403 azaz érvénytelen a hitelesítő adat, akkor minden más válasz érvényes lesz." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/hy.js b/apps/user_webdavauth/l10n/hy.js new file mode 100644 index 0000000000000000000000000000000000000000..5d509b1c664b9731b30a3966f6fd4a6d8be536b4 --- /dev/null +++ b/apps/user_webdavauth/l10n/hy.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "Address:" : "Հասցե՝", + "Save" : "Պահպանել" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/hy.json b/apps/user_webdavauth/l10n/hy.json new file mode 100644 index 0000000000000000000000000000000000000000..ac0399d5cf8842a1df6dabe99b7df65f35fcc808 --- /dev/null +++ b/apps/user_webdavauth/l10n/hy.json @@ -0,0 +1,5 @@ +{ "translations": { + "Address:" : "Հասցե՝", + "Save" : "Պահպանել" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/hy.php b/apps/user_webdavauth/l10n/hy.php deleted file mode 100644 index 3f79bc37ffa2dd86577d8a42e383e964640fe9b3..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/hy.php +++ /dev/null @@ -1,5 +0,0 @@ - "Պահպանել" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/ia.js b/apps/user_webdavauth/l10n/ia.js new file mode 100644 index 0000000000000000000000000000000000000000..651840bf0c129b23b77a8be2776cb4cb67a25d6c --- /dev/null +++ b/apps/user_webdavauth/l10n/ia.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Salveguardar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/ia.json b/apps/user_webdavauth/l10n/ia.json new file mode 100644 index 0000000000000000000000000000000000000000..91d310a33b7470be572693dda835c2f65a499c99 --- /dev/null +++ b/apps/user_webdavauth/l10n/ia.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Salveguardar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ia.php b/apps/user_webdavauth/l10n/ia.php deleted file mode 100644 index 413d8990659ad044bf9ada09ad0e5cfe35f7e0d9..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ia.php +++ /dev/null @@ -1,5 +0,0 @@ - "Salveguardar" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/id.js b/apps/user_webdavauth/l10n/id.js new file mode 100644 index 0000000000000000000000000000000000000000..d71da240e27007dd4bebb04d947798dbe7e89116 --- /dev/null +++ b/apps/user_webdavauth/l10n/id.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Otentikasi WebDAV", + "Address:" : "Alamat:", + "Save" : "Simpan", + "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." : "Kredensial pengguna akan dikirim ke alamat ini. Pengaya ini memeriksa respon dan akan mengartikan kode status HTTP 401 dan 403 sebagai kredensial yang tidak valid, dan semua tanggapan lain akan dianggap sebagai kredensial yang valid." +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/id.json b/apps/user_webdavauth/l10n/id.json new file mode 100644 index 0000000000000000000000000000000000000000..ba327c72dda1bdd3d1bd94273f0b27f8bac27984 --- /dev/null +++ b/apps/user_webdavauth/l10n/id.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Otentikasi WebDAV", + "Address:" : "Alamat:", + "Save" : "Simpan", + "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." : "Kredensial pengguna akan dikirim ke alamat ini. Pengaya ini memeriksa respon dan akan mengartikan kode status HTTP 401 dan 403 sebagai kredensial yang tidak valid, dan semua tanggapan lain akan dianggap sebagai kredensial yang valid." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/id.php b/apps/user_webdavauth/l10n/id.php deleted file mode 100644 index 25d5d6cac02629d33028f439fa74fa3149f8e417..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/id.php +++ /dev/null @@ -1,7 +0,0 @@ - "Otentikasi WebDAV", -"Save" => "Simpan", -"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." => "Kredensial pengguna akan dikirim ke alamat ini. Pengaya ini memeriksa respon dan akan menafsirkan kode status HTTP 401 dan 403 sebagai kredensial yang tidak valid, dan semua tanggapan lain akan dianggap sebagai kredensial yang valid." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/is.js b/apps/user_webdavauth/l10n/is.js new file mode 100644 index 0000000000000000000000000000000000000000..c6580e434b5eebff040be5324b6b25f88daeb447 --- /dev/null +++ b/apps/user_webdavauth/l10n/is.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Auðkenni", + "Save" : "Vista" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/is.json b/apps/user_webdavauth/l10n/is.json new file mode 100644 index 0000000000000000000000000000000000000000..a9ab8d7246cd43225b6a7a579e3a637b7c1a9549 --- /dev/null +++ b/apps/user_webdavauth/l10n/is.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Auðkenni", + "Save" : "Vista" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/is.php b/apps/user_webdavauth/l10n/is.php deleted file mode 100644 index c583862c31138583eb723c01766aa62bc8536fc7..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/is.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV Auðkenni", -"Save" => "Vista" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/it.js b/apps/user_webdavauth/l10n/it.js new file mode 100644 index 0000000000000000000000000000000000000000..cd129949e0b5299d3f7853ebe82271ef413ad87b --- /dev/null +++ b/apps/user_webdavauth/l10n/it.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticazione WebDAV", + "Address:" : "Indirizzo:", + "Save" : "Salva", + "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." : "Le credenziali dell'utente saranno inviate a questo indirizzo. Questa estensione controlla la risposta e interpreterà i codici di stato HTTP 401 e 403 come credenziali non valide, e tutte le altre risposte come credenziali valide." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/it.json b/apps/user_webdavauth/l10n/it.json new file mode 100644 index 0000000000000000000000000000000000000000..c842c6c19e69178798dbbcf116dd512402005c66 --- /dev/null +++ b/apps/user_webdavauth/l10n/it.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticazione WebDAV", + "Address:" : "Indirizzo:", + "Save" : "Salva", + "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." : "Le credenziali dell'utente saranno inviate a questo indirizzo. Questa estensione controlla la risposta e interpreterà i codici di stato HTTP 401 e 403 come credenziali non valide, e tutte le altre risposte come credenziali valide." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/it.php b/apps/user_webdavauth/l10n/it.php deleted file mode 100644 index f068209d3fc3a8b569fcc19ae47cabda1b80ea08..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/it.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticazione WebDAV", -"Address:" => "Indirizzo:", -"Save" => "Salva", -"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." => "Le credenziali dell'utente saranno inviate a questo indirizzo. Questa estensione controlla la risposta e interpreterà i codici di stato HTTP 401 e 403 come credenziali non valide, e tutte le altre risposte come credenziali valide." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/ja.js b/apps/user_webdavauth/l10n/ja.js new file mode 100644 index 0000000000000000000000000000000000000000..52e8445ff00de9253406301e7317295ddb62dd60 --- /dev/null +++ b/apps/user_webdavauth/l10n/ja.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV認証", + "Address:" : "アドレス:", + "Save" : "保存", + "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." : "ユーザー資格情報をこのアドレスに送信します。このプラグインは応答をチェックし、HTTPステータスコードが 401 と 403 の場合は無効な資格情報とし、他の応答はすべて有効な資格情報として処理します。" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/ja.json b/apps/user_webdavauth/l10n/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..dbf17d776e009e51664bc767c0a44e8070f55156 --- /dev/null +++ b/apps/user_webdavauth/l10n/ja.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV認証", + "Address:" : "アドレス:", + "Save" : "保存", + "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." : "ユーザー資格情報をこのアドレスに送信します。このプラグインは応答をチェックし、HTTPステータスコードが 401 と 403 の場合は無効な資格情報とし、他の応答はすべて有効な資格情報として処理します。" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ja.php b/apps/user_webdavauth/l10n/ja.php deleted file mode 100644 index 057971766266d9203bc557324bd6d1f6da4438a5..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ja.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV認証", -"Address:" => "アドレス:", -"Save" => "保存", -"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." => "ユーザー資格情報をこのアドレスに送信します。このプラグインは応答をチェックし、HTTPステータスコードが 401 と 403 の場合は無効な資格情報とし、他の応答はすべて有効な資格情報として処理します。" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/ka_GE.js b/apps/user_webdavauth/l10n/ka_GE.js new file mode 100644 index 0000000000000000000000000000000000000000..c8eb069dc21cc8812e9adfb8c084dbb5acb2dd5a --- /dev/null +++ b/apps/user_webdavauth/l10n/ka_GE.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV აუთენთიფიკაცია", + "Save" : "შენახვა" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/ka_GE.json b/apps/user_webdavauth/l10n/ka_GE.json new file mode 100644 index 0000000000000000000000000000000000000000..05851e83eed00c9adf9c4f4f6c42ee84ee04a501 --- /dev/null +++ b/apps/user_webdavauth/l10n/ka_GE.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV აუთენთიფიკაცია", + "Save" : "შენახვა" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ka_GE.php b/apps/user_webdavauth/l10n/ka_GE.php deleted file mode 100644 index e5deb0ea67d39f4a151a40f0855e264bcfee4c30..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ka_GE.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV აუთენთიფიკაცია", -"Save" => "შენახვა" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/km.js b/apps/user_webdavauth/l10n/km.js new file mode 100644 index 0000000000000000000000000000000000000000..118d2c483d922f7d4d8d709db8c7c951427e78cc --- /dev/null +++ b/apps/user_webdavauth/l10n/km.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "ការ​ផ្ទៀង​ផ្ទាត់​ភាព​ត្រឹម​ត្រូវ WebDAV", + "Save" : "រក្សាទុក", + "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." : "អត្តសញ្ញាណ​អ្នក​ប្រើ​នឹង​ត្រូវ​ផ្ញើ​ទៅ​អាសយដ្ឋាន​នេះ។ កម្មវិធី​បន្ថែម​នេះ​ពិនិត្យ​ចម្លើយ​តប ហើយ​នឹង​បក​ស្រាយ​កូដ​ស្ថានភាព HTTP ដូច​ជា 401 និង 403 ថា​ជា​អត្តសញ្ញាណ​មិន​ត្រឹម​ត្រូវ ហើយ​និង​ចម្លើយ​តប​ផ្សេងៗ​ថា​ត្រឹម​ត្រូវ។" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/km.json b/apps/user_webdavauth/l10n/km.json new file mode 100644 index 0000000000000000000000000000000000000000..a93f04a0e317f0f0c2e51237ace932a1a3ea48dc --- /dev/null +++ b/apps/user_webdavauth/l10n/km.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "ការ​ផ្ទៀង​ផ្ទាត់​ភាព​ត្រឹម​ត្រូវ WebDAV", + "Save" : "រក្សាទុក", + "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." : "អត្តសញ្ញាណ​អ្នក​ប្រើ​នឹង​ត្រូវ​ផ្ញើ​ទៅ​អាសយដ្ឋាន​នេះ។ កម្មវិធី​បន្ថែម​នេះ​ពិនិត្យ​ចម្លើយ​តប ហើយ​នឹង​បក​ស្រាយ​កូដ​ស្ថានភាព HTTP ដូច​ជា 401 និង 403 ថា​ជា​អត្តសញ្ញាណ​មិន​ត្រឹម​ត្រូវ ហើយ​និង​ចម្លើយ​តប​ផ្សេងៗ​ថា​ត្រឹម​ត្រូវ។" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/km.php b/apps/user_webdavauth/l10n/km.php deleted file mode 100644 index eee76d0821461ec741a81964e38f8978463d946a..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/km.php +++ /dev/null @@ -1,7 +0,0 @@ - "ការ​ផ្ទៀង​ផ្ទាត់​ភាព​ត្រឹម​ត្រូវ WebDAV", -"Save" => "រក្សាទុក", -"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." => "អត្តសញ្ញាណ​អ្នក​ប្រើ​នឹង​ត្រូវ​ផ្ញើ​ទៅ​អាសយដ្ឋាន​នេះ។ កម្មវិធី​បន្ថែម​នេះ​ពិនិត្យ​ចម្លើយ​តប ហើយ​នឹង​បក​ស្រាយ​កូដ​ស្ថានភាព HTTP ដូច​ជា 401 និង 403 ថា​ជា​អត្តសញ្ញាណ​មិន​ត្រឹម​ត្រូវ ហើយ​និង​ចម្លើយ​តប​ផ្សេងៗ​ថា​ត្រឹម​ត្រូវ។" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/ko.js b/apps/user_webdavauth/l10n/ko.js new file mode 100644 index 0000000000000000000000000000000000000000..e8b5ee698161a4c1b8c13526386d8792f6b8ef75 --- /dev/null +++ b/apps/user_webdavauth/l10n/ko.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV 인증", + "Save" : "저장", + "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." : "ownCloud에서 이 URL로 사용자 인증 정보를 보냅니다. 이 플러그인은 응답을 확인하여 HTTP 상태 코드 401이나 403이 돌아온 경우에 잘못된 인증 정보로 간주합니다. 다른 모든 상태 코드는 올바른 인증 정보로 간주합니다." +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/ko.json b/apps/user_webdavauth/l10n/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..90fde9abd6219f4e3d5e33b7015ceaa482ab1159 --- /dev/null +++ b/apps/user_webdavauth/l10n/ko.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV 인증", + "Save" : "저장", + "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." : "ownCloud에서 이 URL로 사용자 인증 정보를 보냅니다. 이 플러그인은 응답을 확인하여 HTTP 상태 코드 401이나 403이 돌아온 경우에 잘못된 인증 정보로 간주합니다. 다른 모든 상태 코드는 올바른 인증 정보로 간주합니다." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ko.php b/apps/user_webdavauth/l10n/ko.php deleted file mode 100644 index 68a113025b27eece68571b7202807f3189ef0e3f..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ko.php +++ /dev/null @@ -1,7 +0,0 @@ - "WebDAV 인증", -"Save" => "저장", -"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." => "ownCloud에서 이 URL로 사용자 인증 정보를 보냅니다. 이 플러그인은 응답을 확인하여 HTTP 상태 코드 401이나 403이 돌아온 경우에 잘못된 인증 정보로 간주합니다. 다른 모든 상태 코드는 올바른 인증 정보로 간주합니다." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/ku_IQ.js b/apps/user_webdavauth/l10n/ku_IQ.js new file mode 100644 index 0000000000000000000000000000000000000000..cdfe62f14ba74eccbe83b3a80ec98146d5ea8a6d --- /dev/null +++ b/apps/user_webdavauth/l10n/ku_IQ.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "پاشکه‌وتکردن" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/ku_IQ.json b/apps/user_webdavauth/l10n/ku_IQ.json new file mode 100644 index 0000000000000000000000000000000000000000..63f5aac1d283ce567c377c3bb69b993b0348f106 --- /dev/null +++ b/apps/user_webdavauth/l10n/ku_IQ.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "پاشکه‌وتکردن" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ku_IQ.php b/apps/user_webdavauth/l10n/ku_IQ.php deleted file mode 100644 index 4e2be8ad0d68bd262364071885f7dde698d96b20..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ku_IQ.php +++ /dev/null @@ -1,5 +0,0 @@ - "پاشکه‌وتکردن" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/lb.js b/apps/user_webdavauth/l10n/lb.js new file mode 100644 index 0000000000000000000000000000000000000000..b358220a86746c4c2ee9527d99414949e8c727b9 --- /dev/null +++ b/apps/user_webdavauth/l10n/lb.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Späicheren" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/lb.json b/apps/user_webdavauth/l10n/lb.json new file mode 100644 index 0000000000000000000000000000000000000000..e6ae53e962582675318b3f8e3c2f82ba7b1785b4 --- /dev/null +++ b/apps/user_webdavauth/l10n/lb.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Späicheren" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/lb.php b/apps/user_webdavauth/l10n/lb.php deleted file mode 100644 index 053c7e747d50837580efb98bcfc24fd25926f30f..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/lb.php +++ /dev/null @@ -1,5 +0,0 @@ - "Späicheren" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/lt_LT.js b/apps/user_webdavauth/l10n/lt_LT.js new file mode 100644 index 0000000000000000000000000000000000000000..33b674d7a736e3511761e3237f066d2fce091a13 --- /dev/null +++ b/apps/user_webdavauth/l10n/lt_LT.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV autentikacija", + "Address:" : "Adresas:", + "Save" : "Išsaugoti", + "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." : "Naudotojo duomenys bus nusiųsti šiuo adresu. Šis įskiepis patikrins gautą atsakymą ir interpretuos HTTP būsenos kodą 401 ir 403 kaip negaliojančius duomenis, ir visus kitus gautus atsakymus kaip galiojančius duomenis. " +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/lt_LT.json b/apps/user_webdavauth/l10n/lt_LT.json new file mode 100644 index 0000000000000000000000000000000000000000..0d43b99518dd900b10b692c50e06885a31c71703 --- /dev/null +++ b/apps/user_webdavauth/l10n/lt_LT.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV autentikacija", + "Address:" : "Adresas:", + "Save" : "Išsaugoti", + "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." : "Naudotojo duomenys bus nusiųsti šiuo adresu. Šis įskiepis patikrins gautą atsakymą ir interpretuos HTTP būsenos kodą 401 ir 403 kaip negaliojančius duomenis, ir visus kitus gautus atsakymus kaip galiojančius duomenis. " +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/lt_LT.php b/apps/user_webdavauth/l10n/lt_LT.php deleted file mode 100644 index 921f62b82bfd2fd11cc0c73b3da5c4868caa98bc..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/lt_LT.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV autentikacija", -"Address:" => "Adresas:", -"Save" => "Išsaugoti", -"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." => "Naudotojo duomenys bus nusiųsti šiuo adresu. Šis įskiepis patikrins gautą atsakymą ir interpretuos HTTP būsenos kodą 401 ir 403 kaip negaliojančius duomenis, ir visus kitus gautus atsakymus kaip galiojančius duomenis. " -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_webdavauth/l10n/lv.js b/apps/user_webdavauth/l10n/lv.js new file mode 100644 index 0000000000000000000000000000000000000000..4fe05c1e1f39354593141a1f8829c1d21cdaf8b0 --- /dev/null +++ b/apps/user_webdavauth/l10n/lv.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV autentifikācija", + "Save" : "Saglabāt" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/lv.json b/apps/user_webdavauth/l10n/lv.json new file mode 100644 index 0000000000000000000000000000000000000000..5887d845d79770df4565bebecfed65895abd446f --- /dev/null +++ b/apps/user_webdavauth/l10n/lv.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV autentifikācija", + "Save" : "Saglabāt" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/lv.php b/apps/user_webdavauth/l10n/lv.php deleted file mode 100644 index a55bb24ee8d10e0c7fd32ade1bce876201a78e65..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/lv.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV autentifikācija", -"Save" => "Saglabāt" -); -$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"; diff --git a/apps/user_webdavauth/l10n/mk.js b/apps/user_webdavauth/l10n/mk.js new file mode 100644 index 0000000000000000000000000000000000000000..6a853ecbd9eeaa28f7a049cfa35b561f996d4aaf --- /dev/null +++ b/apps/user_webdavauth/l10n/mk.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Сними" +}, +"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/user_webdavauth/l10n/mk.json b/apps/user_webdavauth/l10n/mk.json new file mode 100644 index 0000000000000000000000000000000000000000..2960717f448401d7e0c18c01e0a78a6a60b0bd9a --- /dev/null +++ b/apps/user_webdavauth/l10n/mk.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Сними" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/mk.php b/apps/user_webdavauth/l10n/mk.php deleted file mode 100644 index 2146b81745252fa8735b02ff2542e2114b4b86bd..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/mk.php +++ /dev/null @@ -1,5 +0,0 @@ - "Сними" -); -$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/apps/user_webdavauth/l10n/ms_MY.js b/apps/user_webdavauth/l10n/ms_MY.js new file mode 100644 index 0000000000000000000000000000000000000000..50d5a443e6a2dc9409c6ad0615ceae882d51f97d --- /dev/null +++ b/apps/user_webdavauth/l10n/ms_MY.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Pengesahan WebDAV", + "Address:" : "Alamat:", + "Save" : "Simpan", + "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." : "Butiran pengguna akan dihantar ke alamat ini. Plugin ini memeriksa maklum balas dan akan mentafsir kod status HTTP 401 dan 403 sebagai butiran tidak sah, dan semua maklum balas lain sebagai butiran yang sah." +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/ms_MY.json b/apps/user_webdavauth/l10n/ms_MY.json new file mode 100644 index 0000000000000000000000000000000000000000..875c2f6c28879733fffd2437bcb333a533aac831 --- /dev/null +++ b/apps/user_webdavauth/l10n/ms_MY.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Pengesahan WebDAV", + "Address:" : "Alamat:", + "Save" : "Simpan", + "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." : "Butiran pengguna akan dihantar ke alamat ini. Plugin ini memeriksa maklum balas dan akan mentafsir kod status HTTP 401 dan 403 sebagai butiran tidak sah, dan semua maklum balas lain sebagai butiran yang sah." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ms_MY.php b/apps/user_webdavauth/l10n/ms_MY.php deleted file mode 100644 index b7f947fc5cdff558b0a18de3cc7558111a9eacf8..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ms_MY.php +++ /dev/null @@ -1,8 +0,0 @@ - "Pengesahan WebDAV", -"Address:" => "Alamat:", -"Save" => "Simpan", -"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." => "Butiran pengguna akan dihantar ke alamat ini. Plugin ini memeriksa maklum balas dan akan mentafsir kod status HTTP 401 dan 403 sebagai butiran tidak sah, dan semua maklum balas lain sebagai butiran yang sah." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/nb_NO.js b/apps/user_webdavauth/l10n/nb_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..72a099875e9feec86455d327fe4c1dcaff6b806e --- /dev/null +++ b/apps/user_webdavauth/l10n/nb_NO.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-autentisering", + "Address:" : "Adresse:", + "Save" : "Lagre", + "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." : "Brukerens påloggingsinformasjon vil bli sendt til denne adressen. Denne utvidelsen sjekker svaret og vil tolke HTTP-statuskodene 401 og 403 som ugyldig bruker eller passord, og alle andre svar tolkes som gyldig påloggings." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/nb_NO.json b/apps/user_webdavauth/l10n/nb_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..0ef46124f931d668096a548e18d57a91daf28730 --- /dev/null +++ b/apps/user_webdavauth/l10n/nb_NO.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-autentisering", + "Address:" : "Adresse:", + "Save" : "Lagre", + "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." : "Brukerens påloggingsinformasjon vil bli sendt til denne adressen. Denne utvidelsen sjekker svaret og vil tolke HTTP-statuskodene 401 og 403 som ugyldig bruker eller passord, og alle andre svar tolkes som gyldig påloggings." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/nb_NO.php b/apps/user_webdavauth/l10n/nb_NO.php deleted file mode 100644 index d151e2bf3082c6d0110a405e5aa9f8cbb60dfe67..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/nb_NO.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV-autentisering", -"Address:" => "Adresse:", -"Save" => "Lagre", -"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." => "Brukerens påloggingsinformasjon vil bli sendt til denne adressen. Denne utvidelsen sjekker svaret og vil tolke HTTP-statuskodene 401 og 403 som ugyldig bruker eller passord, og alle andre svar tolkes som gyldig påloggings." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/nl.js b/apps/user_webdavauth/l10n/nl.js new file mode 100644 index 0000000000000000000000000000000000000000..8633c851fbc21bfc0e39eb83bbf6f25e0542474e --- /dev/null +++ b/apps/user_webdavauth/l10n/nl.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV authenticatie", + "Address:" : "Adres:", + "Save" : "Bewaren", + "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." : "De inloggegevens worden opgestuurd naar dit adres. Deze plugin controleert de terugkoppeling en interpreteert HTTP statuscodes 401 en 403 als ongeldige inloggegevens en alle andere terugkoppelingen als valide inloggegevens." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/nl.json b/apps/user_webdavauth/l10n/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..73bb6f40e518bda7c7f9daaca6b7d61befd84762 --- /dev/null +++ b/apps/user_webdavauth/l10n/nl.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV authenticatie", + "Address:" : "Adres:", + "Save" : "Bewaren", + "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." : "De inloggegevens worden opgestuurd naar dit adres. Deze plugin controleert de terugkoppeling en interpreteert HTTP statuscodes 401 en 403 als ongeldige inloggegevens en alle andere terugkoppelingen als valide inloggegevens." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/nl.php b/apps/user_webdavauth/l10n/nl.php deleted file mode 100644 index 8b015bf7ae666b424e908217a33429ce42167158..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/nl.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV authenticatie", -"Address:" => "Adres:", -"Save" => "Bewaren", -"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." => "De inloggegevens worden opgestuurd naar dit adres. Deze plugin controleert de terugkoppeling en interpreteert HTTP statuscodes 401 en 403 als ongeldige inloggegevens en alle andere terugkoppelingen als valide inloggegevens." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/nn_NO.js b/apps/user_webdavauth/l10n/nn_NO.js new file mode 100644 index 0000000000000000000000000000000000000000..4777921772f6e87be4185fb416a4fdd54827dc5e --- /dev/null +++ b/apps/user_webdavauth/l10n/nn_NO.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV-autentisering", + "Save" : "Lagra", + "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." : "Innloggingsinformasjon blir sendt til denne nettadressa. Dette programtillegget kontrollerer svaret og tolkar HTTP-statuskodane 401 og 403 som ugyldige, og alle andre svar som gyldige." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/nn_NO.json b/apps/user_webdavauth/l10n/nn_NO.json new file mode 100644 index 0000000000000000000000000000000000000000..2ad0b5b644842ebd032fdace16fdd78602814f11 --- /dev/null +++ b/apps/user_webdavauth/l10n/nn_NO.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV-autentisering", + "Save" : "Lagra", + "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." : "Innloggingsinformasjon blir sendt til denne nettadressa. Dette programtillegget kontrollerer svaret og tolkar HTTP-statuskodane 401 og 403 som ugyldige, og alle andre svar som gyldige." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/nn_NO.php b/apps/user_webdavauth/l10n/nn_NO.php deleted file mode 100644 index e52c6c653fc2869ff79f222902573862d0ff5a8d..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/nn_NO.php +++ /dev/null @@ -1,7 +0,0 @@ - "WebDAV-autentisering", -"Save" => "Lagra", -"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." => "Innloggingsinformasjon blir sendt til denne nettadressa. Dette programtillegget kontrollerer svaret og tolkar HTTP-statuskodane 401 og 403 som ugyldige, og alle andre svar som gyldige." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/oc.js b/apps/user_webdavauth/l10n/oc.js new file mode 100644 index 0000000000000000000000000000000000000000..0191f0de88364f59742dab469dffa325dce0bad9 --- /dev/null +++ b/apps/user_webdavauth/l10n/oc.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Enregistra" +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_webdavauth/l10n/oc.json b/apps/user_webdavauth/l10n/oc.json new file mode 100644 index 0000000000000000000000000000000000000000..de8f9ed6d9621b64d17c3877d2fe58e6bb6d620a --- /dev/null +++ b/apps/user_webdavauth/l10n/oc.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Enregistra" +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/oc.php b/apps/user_webdavauth/l10n/oc.php deleted file mode 100644 index 42ef978066ee5d64a848e20e7d7495a8f82747ec..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/oc.php +++ /dev/null @@ -1,5 +0,0 @@ - "Enregistra" -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_webdavauth/l10n/pl.js b/apps/user_webdavauth/l10n/pl.js new file mode 100644 index 0000000000000000000000000000000000000000..4104adfa6b09664acb4ca53f71b7bfcb24e3ed1d --- /dev/null +++ b/apps/user_webdavauth/l10n/pl.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Uwierzytelnienie WebDAV", + "Address:" : "Adres:", + "Save" : "Zapisz", + "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." : "Dane uwierzytelniające użytkownika zostaną wysłane na ten adres. Ta wtyczka sprawdza odpowiedź i będzie interpretować kody 401 i 403 statusów HTTP jako nieprawidłowe dane uwierzytelniające, a wszystkie inne odpowiedzi jako prawidłowe uwierzytelnienie." +}, +"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/pl.json b/apps/user_webdavauth/l10n/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..64cc4899d0716f5775f2d859a9a262b9979404dd --- /dev/null +++ b/apps/user_webdavauth/l10n/pl.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Uwierzytelnienie WebDAV", + "Address:" : "Adres:", + "Save" : "Zapisz", + "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." : "Dane uwierzytelniające użytkownika zostaną wysłane na ten adres. Ta wtyczka sprawdza odpowiedź i będzie interpretować kody 401 i 403 statusów HTTP jako nieprawidłowe dane uwierzytelniające, a wszystkie inne odpowiedzi jako prawidłowe uwierzytelnienie." +},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/pl.php b/apps/user_webdavauth/l10n/pl.php deleted file mode 100644 index 66e685243de7c5772b916459ab313eb4fa6e08d4..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/pl.php +++ /dev/null @@ -1,8 +0,0 @@ - "Uwierzytelnienie WebDAV", -"Address:" => "Adres:", -"Save" => "Zapisz", -"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." => "Dane uwierzytelniające użytkownika zostaną wysłane na ten adres. Ta wtyczka sprawdza odpowiedź i będzie interpretować kody 401 i 403 statusów HTTP jako nieprawidłowe dane uwierzytelniające, a wszystkie inne odpowiedzi jako prawidłowe uwierzytelnienie." -); -$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/user_webdavauth/l10n/pt_BR.js b/apps/user_webdavauth/l10n/pt_BR.js new file mode 100644 index 0000000000000000000000000000000000000000..b553c1b50fc9227839878d06195615366986359c --- /dev/null +++ b/apps/user_webdavauth/l10n/pt_BR.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticação WebDAV", + "Address:" : "Endereço:", + "Save" : "Guardar", + "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." : "As credenciais de usuário serão enviadas para este endereço. Este plugin verifica a resposta e interpretará os códigos de status HTTP 401 e 403 como \"credenciais inválidas\", e todas as outras respostas como \"credenciais válidas\"." +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_webdavauth/l10n/pt_BR.json b/apps/user_webdavauth/l10n/pt_BR.json new file mode 100644 index 0000000000000000000000000000000000000000..b42d7a6b5142798f571c5ee10f42dde726d66df0 --- /dev/null +++ b/apps/user_webdavauth/l10n/pt_BR.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticação WebDAV", + "Address:" : "Endereço:", + "Save" : "Guardar", + "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." : "As credenciais de usuário serão enviadas para este endereço. Este plugin verifica a resposta e interpretará os códigos de status HTTP 401 e 403 como \"credenciais inválidas\", e todas as outras respostas como \"credenciais válidas\"." +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/pt_BR.php b/apps/user_webdavauth/l10n/pt_BR.php deleted file mode 100644 index 37f17df4c61ce76b70b1c2eb800010e09f73341b..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/pt_BR.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticação WebDAV", -"Address:" => "Endereço:", -"Save" => "Guardar", -"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." => "As credenciais de usuário serão enviadas para este endereço. Este plugin verifica a resposta e interpretará os códigos de status HTTP 401 e 403 como \"credenciais inválidas\", e todas as outras respostas como \"credenciais válidas\"." -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_webdavauth/l10n/pt_PT.js b/apps/user_webdavauth/l10n/pt_PT.js new file mode 100644 index 0000000000000000000000000000000000000000..c06d80a3e7d11163f9f83c8931dfad56daf0659b --- /dev/null +++ b/apps/user_webdavauth/l10n/pt_PT.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autenticação WebDAV", + "Address:" : "Endereço:", + "Save" : "Guardar", + "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." : "As credenciais do utilizador vão ser enviadas para endereço URL. Este plugin verifica a resposta e vai interpretar os códigos de estado HTTP 401 e 403 como credenciais inválidas, e todas as outras respostas como válidas." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/pt_PT.json b/apps/user_webdavauth/l10n/pt_PT.json new file mode 100644 index 0000000000000000000000000000000000000000..c2a7ebf3685fa2acc33add7774de1940442afb96 --- /dev/null +++ b/apps/user_webdavauth/l10n/pt_PT.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Autenticação WebDAV", + "Address:" : "Endereço:", + "Save" : "Guardar", + "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." : "As credenciais do utilizador vão ser enviadas para endereço URL. Este plugin verifica a resposta e vai interpretar os códigos de estado HTTP 401 e 403 como credenciais inválidas, e todas as outras respostas como válidas." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/pt_PT.php b/apps/user_webdavauth/l10n/pt_PT.php deleted file mode 100644 index f9e63bf2af55862b1db0a4623d0e149dda4028eb..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/pt_PT.php +++ /dev/null @@ -1,8 +0,0 @@ - "Autenticação WebDAV", -"Address:" => "Endereço:", -"Save" => "Guardar", -"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." => "As credenciais do utilizador vão ser enviadas para endereço URL. Este plugin verifica a resposta e vai interpretar os códigos de estado HTTP 401 e 403 como credenciais inválidas, e todas as outras respostas como válidas." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/ro.js b/apps/user_webdavauth/l10n/ro.js new file mode 100644 index 0000000000000000000000000000000000000000..4bc803850dc4255cf5c683855f6c420c4e2123c2 --- /dev/null +++ b/apps/user_webdavauth/l10n/ro.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Autentificare WebDAV", + "Save" : "Salvează" +}, +"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/user_webdavauth/l10n/ro.json b/apps/user_webdavauth/l10n/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..74666c22a5e0a951626042e63f0a4d8c260e77ce --- /dev/null +++ b/apps/user_webdavauth/l10n/ro.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "Autentificare WebDAV", + "Save" : "Salvează" +},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ro.php b/apps/user_webdavauth/l10n/ro.php deleted file mode 100644 index 8fafe932ad0d79d1e963cf904f6717edb924e22a..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ro.php +++ /dev/null @@ -1,6 +0,0 @@ - "Autentificare WebDAV", -"Save" => "Salvează" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"; diff --git a/apps/user_webdavauth/l10n/ru.js b/apps/user_webdavauth/l10n/ru.js new file mode 100644 index 0000000000000000000000000000000000000000..b52d1ed81be3b511ee573b4ef28f3331431d6b02 --- /dev/null +++ b/apps/user_webdavauth/l10n/ru.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Аутентификация WebDAV", + "Address:" : "Адрес:", + "Save" : "Сохранить", + "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." : "Учётные данные пользователя будут отправлены на этот адрес. Плагин проверит ответ и будет рассматривать HTTP коды 401 и 403 как неверные учётные данные, при любом другом ответе - учётные данные пользователя верны." +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/ru.json b/apps/user_webdavauth/l10n/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..e265fc80ed4d41d109084ee1db3bad65bfedf24d --- /dev/null +++ b/apps/user_webdavauth/l10n/ru.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Аутентификация WebDAV", + "Address:" : "Адрес:", + "Save" : "Сохранить", + "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." : "Учётные данные пользователя будут отправлены на этот адрес. Плагин проверит ответ и будет рассматривать HTTP коды 401 и 403 как неверные учётные данные, при любом другом ответе - учётные данные пользователя верны." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ru.php b/apps/user_webdavauth/l10n/ru.php deleted file mode 100644 index 2b3726c246c38ec965e59a4665b851dd8a971f52..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ru.php +++ /dev/null @@ -1,8 +0,0 @@ - "Аутентификация WebDAV", -"Address:" => "Адрес:", -"Save" => "Сохранить", -"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." => "Учётные данные пользователя будут отправлены на этот адрес. Плагин проверит ответ и будет рассматривать HTTP коды 401 и 403 как неверные учётные данные, при любом другом ответе - учётные данные пользователя верны." -); -$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);"; diff --git a/apps/user_webdavauth/l10n/si_LK.js b/apps/user_webdavauth/l10n/si_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..4a408625e4f18025c66865efded0797a43a393b8 --- /dev/null +++ b/apps/user_webdavauth/l10n/si_LK.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "සුරකින්න" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/si_LK.json b/apps/user_webdavauth/l10n/si_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..cf286f67edff711194dd4efde4bc2ddeb675782f --- /dev/null +++ b/apps/user_webdavauth/l10n/si_LK.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "සුරකින්න" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/si_LK.php b/apps/user_webdavauth/l10n/si_LK.php deleted file mode 100644 index 661a8495c3058c093327dcd6c51741a439e70745..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/si_LK.php +++ /dev/null @@ -1,5 +0,0 @@ - "සුරකින්න" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/sk.js b/apps/user_webdavauth/l10n/sk.js new file mode 100644 index 0000000000000000000000000000000000000000..299b57be67062df8a88ff774d22154b9f90a1636 --- /dev/null +++ b/apps/user_webdavauth/l10n/sk.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Uložiť" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/user_webdavauth/l10n/sk.json b/apps/user_webdavauth/l10n/sk.json new file mode 100644 index 0000000000000000000000000000000000000000..48cd128194ec9c93b2b8abc44548f36ff10b9fde --- /dev/null +++ b/apps/user_webdavauth/l10n/sk.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Uložiť" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sk.php b/apps/user_webdavauth/l10n/sk.php deleted file mode 100644 index 9efe9fe65497e248d1c3eabedec3c6b7fd62f44b..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sk.php +++ /dev/null @@ -1,5 +0,0 @@ - "Uložiť" -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/user_webdavauth/l10n/sk_SK.js b/apps/user_webdavauth/l10n/sk_SK.js new file mode 100644 index 0000000000000000000000000000000000000000..455d18213e3ebdb824ea5c7957e305509a742c24 --- /dev/null +++ b/apps/user_webdavauth/l10n/sk_SK.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV overenie", + "Address:" : "Adresa:", + "Save" : "Uložiť", + "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." : "Používateľské prihlasovacie údaje budú odoslané na túto adresu. Tento plugin skontroluje odpoveď servera a interpretuje návratový kód HTTP 401 a 403 ako neplatné prihlasovacie údaje a akýkoľvek iný ako platné prihlasovacie údaje." +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/user_webdavauth/l10n/sk_SK.json b/apps/user_webdavauth/l10n/sk_SK.json new file mode 100644 index 0000000000000000000000000000000000000000..bffebf3f25387ea2d627137a2ce0b75552a020c1 --- /dev/null +++ b/apps/user_webdavauth/l10n/sk_SK.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV overenie", + "Address:" : "Adresa:", + "Save" : "Uložiť", + "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." : "Používateľské prihlasovacie údaje budú odoslané na túto adresu. Tento plugin skontroluje odpoveď servera a interpretuje návratový kód HTTP 401 a 403 ako neplatné prihlasovacie údaje a akýkoľvek iný ako platné prihlasovacie údaje." +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sk_SK.php b/apps/user_webdavauth/l10n/sk_SK.php deleted file mode 100644 index 029c3171e7be9a03bb1aa8efb8f79da3ff16e40e..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sk_SK.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV overenie", -"Address:" => "Adresa:", -"Save" => "Uložiť", -"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." => "Používateľské prihlasovacie údaje budú odoslané na túto adresu. Tento plugin skontroluje odpoveď servera a interpretuje návratový kód HTTP 401 a 403 ako neplatné prihlasovacie údaje a akýkoľvek iný ako platné prihlasovacie údaje." -); -$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/user_webdavauth/l10n/sl.js b/apps/user_webdavauth/l10n/sl.js new file mode 100644 index 0000000000000000000000000000000000000000..e175c9b3c0c08a03db26839145f25108d7491df6 --- /dev/null +++ b/apps/user_webdavauth/l10n/sl.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Overitev WebDAV", + "Address:" : "Naslov:", + "Save" : "Shrani", + "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." : "Uporabniška poverila bodo poslana na naveden naslov. Vstavek preveri odziv in kodi stanja 401 in 403 obravnava kot neveljavna poverila, vse ostale odzive pa kot veljavna." +}, +"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/user_webdavauth/l10n/sl.json b/apps/user_webdavauth/l10n/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..184d2df74b2b9222553b0f612dba6683d4be030f --- /dev/null +++ b/apps/user_webdavauth/l10n/sl.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Overitev WebDAV", + "Address:" : "Naslov:", + "Save" : "Shrani", + "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." : "Uporabniška poverila bodo poslana na naveden naslov. Vstavek preveri odziv in kodi stanja 401 in 403 obravnava kot neveljavna poverila, vse ostale odzive pa kot veljavna." +},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sl.php b/apps/user_webdavauth/l10n/sl.php deleted file mode 100644 index b14a2204c8335cc2204b4b73e6633ef37bf381e2..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sl.php +++ /dev/null @@ -1,8 +0,0 @@ - "Overitev WebDAV", -"Address:" => "Naslov:", -"Save" => "Shrani", -"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." => "Uporabniška poverila bodo poslana na naveden naslov. Vstavek preveri odziv in kodi stanja 401 in 403 obravnava kot neveljavna poverila, vse ostale odzive pa kot veljavna." -); -$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/apps/user_webdavauth/l10n/sq.js b/apps/user_webdavauth/l10n/sq.js new file mode 100644 index 0000000000000000000000000000000000000000..73b3024dce2f3ab1e84ad57cca53e852591a9d2d --- /dev/null +++ b/apps/user_webdavauth/l10n/sq.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Ruaj" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/sq.json b/apps/user_webdavauth/l10n/sq.json new file mode 100644 index 0000000000000000000000000000000000000000..c3290a31319785775e2ed18c09a87cc254b09604 --- /dev/null +++ b/apps/user_webdavauth/l10n/sq.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Ruaj" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sq.php b/apps/user_webdavauth/l10n/sq.php deleted file mode 100644 index 66d3b2fb102a864b1ea385783aface41aded6ce0..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sq.php +++ /dev/null @@ -1,5 +0,0 @@ - "Ruaj" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/sr.js b/apps/user_webdavauth/l10n/sr.js new file mode 100644 index 0000000000000000000000000000000000000000..9413d934a2c1824b92a4fdf08192aff93818a896 --- /dev/null +++ b/apps/user_webdavauth/l10n/sr.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV провера идентитета", + "Save" : "Сачувај" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/sr.json b/apps/user_webdavauth/l10n/sr.json new file mode 100644 index 0000000000000000000000000000000000000000..7e50e7c413287ba0e6e3846ac695fa3142e158b8 --- /dev/null +++ b/apps/user_webdavauth/l10n/sr.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV провера идентитета", + "Save" : "Сачувај" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sr.php b/apps/user_webdavauth/l10n/sr.php deleted file mode 100644 index 78f24013e5e04d94593da2cc0fab2f25a67a17eb..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sr.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV провера идентитета", -"Save" => "Сачувај" -); -$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);"; diff --git a/apps/user_webdavauth/l10n/sr@latin.js b/apps/user_webdavauth/l10n/sr@latin.js new file mode 100644 index 0000000000000000000000000000000000000000..c6b89e58319fa954fffad5d2d64364251d68083f --- /dev/null +++ b/apps/user_webdavauth/l10n/sr@latin.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "Snimi" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/sr@latin.json b/apps/user_webdavauth/l10n/sr@latin.json new file mode 100644 index 0000000000000000000000000000000000000000..5cca2be8eec1cd760368efbe3d6c6141ce18c4a0 --- /dev/null +++ b/apps/user_webdavauth/l10n/sr@latin.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "Snimi" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sr@latin.php b/apps/user_webdavauth/l10n/sr@latin.php deleted file mode 100644 index 3eb281117694071d0563b1002ace4871a6ead569..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sr@latin.php +++ /dev/null @@ -1,5 +0,0 @@ - "Snimi" -); -$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);"; diff --git a/apps/user_webdavauth/l10n/sv.js b/apps/user_webdavauth/l10n/sv.js new file mode 100644 index 0000000000000000000000000000000000000000..d80f3c22307c52831b1f79327ef73b8924825de0 --- /dev/null +++ b/apps/user_webdavauth/l10n/sv.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Autentisering", + "Address:" : "Adress:", + "Save" : "Spara", + "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." : "ownCloud kommer skicka användaruppgifterna till denna URL. Denna plugin kontrollerar svaret och tolkar HTTP-statuskoderna 401 och 403 som felaktiga uppgifter, och alla andra svar som giltiga uppgifter." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/sv.json b/apps/user_webdavauth/l10n/sv.json new file mode 100644 index 0000000000000000000000000000000000000000..f11a1610ec3d1e17b71475e101533346911de118 --- /dev/null +++ b/apps/user_webdavauth/l10n/sv.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Autentisering", + "Address:" : "Adress:", + "Save" : "Spara", + "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." : "ownCloud kommer skicka användaruppgifterna till denna URL. Denna plugin kontrollerar svaret och tolkar HTTP-statuskoderna 401 och 403 som felaktiga uppgifter, och alla andra svar som giltiga uppgifter." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/sv.php b/apps/user_webdavauth/l10n/sv.php deleted file mode 100644 index ed9b19db315ba5945f8c2ad625ea6263031da1a0..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/sv.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV Autentisering", -"Address:" => "Adress:", -"Save" => "Spara", -"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." => "ownCloud kommer skicka användaruppgifterna till denna URL. Denna plugin kontrollerar svaret och tolkar HTTP-statuskoderna 401 och 403 som felaktiga uppgifter, och alla andra svar som giltiga uppgifter." -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/ta_LK.js b/apps/user_webdavauth/l10n/ta_LK.js new file mode 100644 index 0000000000000000000000000000000000000000..d71f18fe198eebfdf1af65644231883fae507861 --- /dev/null +++ b/apps/user_webdavauth/l10n/ta_LK.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "சேமிக்க " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/ta_LK.json b/apps/user_webdavauth/l10n/ta_LK.json new file mode 100644 index 0000000000000000000000000000000000000000..e881e682241b4d076c67aa8c472f40b77ccba53c --- /dev/null +++ b/apps/user_webdavauth/l10n/ta_LK.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "சேமிக்க " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ta_LK.php b/apps/user_webdavauth/l10n/ta_LK.php deleted file mode 100644 index fdf3ac7b15e0a2ca04fcf808426c1904a0a6b479..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ta_LK.php +++ /dev/null @@ -1,5 +0,0 @@ - "சேமிக்க " -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/te.js b/apps/user_webdavauth/l10n/te.js new file mode 100644 index 0000000000000000000000000000000000000000..e632cc07e4f72cbbc44ac013b1f8f77ddee60811 --- /dev/null +++ b/apps/user_webdavauth/l10n/te.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "భద్రపరచు" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/te.json b/apps/user_webdavauth/l10n/te.json new file mode 100644 index 0000000000000000000000000000000000000000..d250e26411e0c9471e4c27a78bf8c58587a26091 --- /dev/null +++ b/apps/user_webdavauth/l10n/te.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "భద్రపరచు" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/te.php b/apps/user_webdavauth/l10n/te.php deleted file mode 100644 index f3bf5e83cdebdf3d20ef2d6dba342ddb0d61b01c..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/te.php +++ /dev/null @@ -1,5 +0,0 @@ - "భద్రపరచు" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/th_TH.js b/apps/user_webdavauth/l10n/th_TH.js new file mode 100644 index 0000000000000000000000000000000000000000..303af82311227b0b2132a405588449c728d4cc77 --- /dev/null +++ b/apps/user_webdavauth/l10n/th_TH.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Authentication", + "Save" : "บันทึก" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/th_TH.json b/apps/user_webdavauth/l10n/th_TH.json new file mode 100644 index 0000000000000000000000000000000000000000..da4e255d6e198e3af82288c8a96adc69567b5668 --- /dev/null +++ b/apps/user_webdavauth/l10n/th_TH.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Authentication", + "Save" : "บันทึก" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/th_TH.php b/apps/user_webdavauth/l10n/th_TH.php deleted file mode 100644 index c6120ba3090ad920c18679a1bc07b0edbad12961..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/th_TH.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV Authentication", -"Save" => "บันทึก" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/tr.js b/apps/user_webdavauth/l10n/tr.js new file mode 100644 index 0000000000000000000000000000000000000000..dd0a66a45ef7f98f49ccd0c5cb9f1e93e58a183c --- /dev/null +++ b/apps/user_webdavauth/l10n/tr.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV Kimlik Doğrulaması", + "Address:" : "Adres:", + "Save" : "Kaydet", + "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." : "Kullanıcı kimlik bilgileri bu adrese gönderilecek. Bu eklenti yanıtı kontrol edecek ve 401 ile 403 HTTP durum kodlarını geçersiz kimlik bilgileri olarak, diğer yanıtları ise doğru kimlik bilgileri olarak algılayacaktır." +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_webdavauth/l10n/tr.json b/apps/user_webdavauth/l10n/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..3c8845256c3fa68f1cd05da69134c289f9b327a7 --- /dev/null +++ b/apps/user_webdavauth/l10n/tr.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV Kimlik Doğrulaması", + "Address:" : "Adres:", + "Save" : "Kaydet", + "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." : "Kullanıcı kimlik bilgileri bu adrese gönderilecek. Bu eklenti yanıtı kontrol edecek ve 401 ile 403 HTTP durum kodlarını geçersiz kimlik bilgileri olarak, diğer yanıtları ise doğru kimlik bilgileri olarak algılayacaktır." +},"pluralForm" :"nplurals=2; plural=(n > 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/tr.php b/apps/user_webdavauth/l10n/tr.php deleted file mode 100644 index f07b3d8174664cdd96cafb5e8203e095165fdeee..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/tr.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV Kimlik Doğrulaması", -"Address:" => "Adres:", -"Save" => "Kaydet", -"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." => "Kullanıcı kimlik bilgileri bu adrese gönderilecek. Bu eklenti yanıtı kontrol edecek ve 401 ile 403 HTTP durum kodlarını geçersiz kimlik bilgileri olarak, diğer yanıtları ise doğru kimlik bilgileri olarak algılayacaktır." -); -$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_webdavauth/l10n/ug.js b/apps/user_webdavauth/l10n/ug.js new file mode 100644 index 0000000000000000000000000000000000000000..2fe5c26fe236989cea8805069f3a3c2e51d63b8c --- /dev/null +++ b/apps/user_webdavauth/l10n/ug.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV سالاھىيەت دەلىللەش", + "Save" : "ساقلا" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/ug.json b/apps/user_webdavauth/l10n/ug.json new file mode 100644 index 0000000000000000000000000000000000000000..a897a27d54ab6b559594ae213e122402242e1ca3 --- /dev/null +++ b/apps/user_webdavauth/l10n/ug.json @@ -0,0 +1,5 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV سالاھىيەت دەلىللەش", + "Save" : "ساقلا" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ug.php b/apps/user_webdavauth/l10n/ug.php deleted file mode 100644 index f4e736952c4bfd4850b102f1c12b51b9cda75122..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ug.php +++ /dev/null @@ -1,6 +0,0 @@ - "WebDAV سالاھىيەت دەلىللەش", -"Save" => "ساقلا" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/uk.js b/apps/user_webdavauth/l10n/uk.js new file mode 100644 index 0000000000000000000000000000000000000000..f0febc1d21c7eaeaa5cf72221781e16c3a4a2449 --- /dev/null +++ b/apps/user_webdavauth/l10n/uk.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Аутентифікація WebDAV", + "Address:" : "Адреси:", + "Save" : "Зберегти", + "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." : "Облікові дані користувача буде надіслано на цю адресу. Цей плагін перевіряє відповідь і буде інтерпретувати коди статусу HTTP 401 і 403, як неправильні облікові дані, а всі інші відповіді, вважатимуться правильними." +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_webdavauth/l10n/uk.json b/apps/user_webdavauth/l10n/uk.json new file mode 100644 index 0000000000000000000000000000000000000000..1bec19cbbddf2b1a56698cf82c255bd0481d6bcc --- /dev/null +++ b/apps/user_webdavauth/l10n/uk.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "Аутентифікація WebDAV", + "Address:" : "Адреси:", + "Save" : "Зберегти", + "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." : "Облікові дані користувача буде надіслано на цю адресу. Цей плагін перевіряє відповідь і буде інтерпретувати коди статусу HTTP 401 і 403, як неправильні облікові дані, а всі інші відповіді, вважатимуться правильними." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/uk.php b/apps/user_webdavauth/l10n/uk.php deleted file mode 100644 index b548b01951b1e31fe054b3063e1ef7dffb499bf7..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/uk.php +++ /dev/null @@ -1,7 +0,0 @@ - "Аутентифікація WebDAV", -"Save" => "Зберегти", -"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." => "Облікові дані користувача буде надіслано на цю адресу. Цей плагін перевіряє відповідь і буде інтерпретувати коди статусу HTTP 401 і 403, як неправильні облікові дані, а всі інші відповіді, вважатимуться правильними." -); -$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);"; diff --git a/apps/user_webdavauth/l10n/ur_PK.js b/apps/user_webdavauth/l10n/ur_PK.js new file mode 100644 index 0000000000000000000000000000000000000000..45493bf7bf310baae4a7d6b4dfac3f6ebdb9c8ac --- /dev/null +++ b/apps/user_webdavauth/l10n/ur_PK.js @@ -0,0 +1,6 @@ +OC.L10N.register( + "user_webdavauth", + { + "Save" : "حفظ" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_webdavauth/l10n/ur_PK.json b/apps/user_webdavauth/l10n/ur_PK.json new file mode 100644 index 0000000000000000000000000000000000000000..2c8f5af7ae5fec9903a5a90ef169673210018265 --- /dev/null +++ b/apps/user_webdavauth/l10n/ur_PK.json @@ -0,0 +1,4 @@ +{ "translations": { + "Save" : "حفظ" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/ur_PK.php b/apps/user_webdavauth/l10n/ur_PK.php deleted file mode 100644 index 3546754a0d2e4954dea2ef90fb55207fb87e1ec5..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/ur_PK.php +++ /dev/null @@ -1,5 +0,0 @@ - "حفظ" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_webdavauth/l10n/vi.js b/apps/user_webdavauth/l10n/vi.js new file mode 100644 index 0000000000000000000000000000000000000000..60ce096e7b2a6a4175b6b5dd1b967051146eb363 --- /dev/null +++ b/apps/user_webdavauth/l10n/vi.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "Xác thực WebDAV", + "Save" : "Lưu", + "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." : "Các thông tin người dùng sẽ được gửi đến địa chỉ này. Plugin này sẽ kiểm tra các phản hồi và các statuscodes HTTP 401 và 403 không hợp lệ, và tất cả những phản h khác như thông tin hợp lệ." +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/vi.json b/apps/user_webdavauth/l10n/vi.json new file mode 100644 index 0000000000000000000000000000000000000000..53163ca5310306758aab47f77fcf7c910203442e --- /dev/null +++ b/apps/user_webdavauth/l10n/vi.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "Xác thực WebDAV", + "Save" : "Lưu", + "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." : "Các thông tin người dùng sẽ được gửi đến địa chỉ này. Plugin này sẽ kiểm tra các phản hồi và các statuscodes HTTP 401 và 403 không hợp lệ, và tất cả những phản h khác như thông tin hợp lệ." +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/vi.php b/apps/user_webdavauth/l10n/vi.php deleted file mode 100644 index ee8a47151cec53dd0211580c04ecc902a34149e5..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/vi.php +++ /dev/null @@ -1,7 +0,0 @@ - "Xác thực WebDAV", -"Save" => "Lưu", -"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." => "Các thông tin người dùng sẽ được gửi đến địa chỉ này. Plugin này sẽ kiểm tra các phản hồi và các statuscodes HTTP 401 và 403 không hợp lệ, và tất cả những phản h khác như thông tin hợp lệ." -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/zh_CN.js b/apps/user_webdavauth/l10n/zh_CN.js new file mode 100644 index 0000000000000000000000000000000000000000..9cca337fd6dc647875d003e5b0b2dbec7e588477 --- /dev/null +++ b/apps/user_webdavauth/l10n/zh_CN.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV 认证", + "Address:" : "地址:", + "Save" : "保存", + "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." : "用户的身份将会被发送到此 URL。这个插件检查返回值并且将 HTTP 状态编码 401 和 403 解释为非法身份,其他所有返回值为合法身份。" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/zh_CN.json b/apps/user_webdavauth/l10n/zh_CN.json new file mode 100644 index 0000000000000000000000000000000000000000..5bd8489403d3385a5e430334a99332186204e13f --- /dev/null +++ b/apps/user_webdavauth/l10n/zh_CN.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV 认证", + "Address:" : "地址:", + "Save" : "保存", + "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." : "用户的身份将会被发送到此 URL。这个插件检查返回值并且将 HTTP 状态编码 401 和 403 解释为非法身份,其他所有返回值为合法身份。" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/zh_CN.php b/apps/user_webdavauth/l10n/zh_CN.php deleted file mode 100644 index 56569f1448baa1a1b026dc60d1b9322459e38d47..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/zh_CN.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV 认证", -"Address:" => "地址:", -"Save" => "保存", -"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." => "用户的身份将会被发送到此 URL。这个插件检查返回值并且将 HTTP 状态编码 401 和 403 解释为非法身份,其他所有返回值为合法身份。" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/zh_HK.js b/apps/user_webdavauth/l10n/zh_HK.js new file mode 100644 index 0000000000000000000000000000000000000000..87e29b7432f6f99288e07fc9e58a49676d2d2c42 --- /dev/null +++ b/apps/user_webdavauth/l10n/zh_HK.js @@ -0,0 +1,9 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV 認證", + "Address:" : "地址:", + "Save" : "儲存", + "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." : "使用者憑證將會被傳送到此位址。此外掛程式將會檢查回應,HTTP狀態碼 401與403將會被理解為無效憑證,而所有其他的回應將會被理解為有效憑證。" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/zh_HK.json b/apps/user_webdavauth/l10n/zh_HK.json new file mode 100644 index 0000000000000000000000000000000000000000..a2108b738be542617e8cc6d895efe485fec3c908 --- /dev/null +++ b/apps/user_webdavauth/l10n/zh_HK.json @@ -0,0 +1,7 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV 認證", + "Address:" : "地址:", + "Save" : "儲存", + "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." : "使用者憑證將會被傳送到此位址。此外掛程式將會檢查回應,HTTP狀態碼 401與403將會被理解為無效憑證,而所有其他的回應將會被理解為有效憑證。" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/zh_HK.php b/apps/user_webdavauth/l10n/zh_HK.php deleted file mode 100644 index 993a253fc3d292c140f77ce02b595795a25bba49..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/zh_HK.php +++ /dev/null @@ -1,8 +0,0 @@ - "WebDAV 認證", -"Address:" => "地址:", -"Save" => "儲存", -"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." => "使用者憑證將會被傳送到此位址。此外掛程式將會檢查回應,HTTP狀態碼 401與403將會被理解為無效憑證,而所有其他的回應將會被理解為有效憑證。" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/l10n/zh_TW.js b/apps/user_webdavauth/l10n/zh_TW.js new file mode 100644 index 0000000000000000000000000000000000000000..a4de3acc4061f264cffd7ad6d577262365ee8f22 --- /dev/null +++ b/apps/user_webdavauth/l10n/zh_TW.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "user_webdavauth", + { + "WebDAV Authentication" : "WebDAV 認證", + "Save" : "儲存", + "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." : "使用者憑證將會被傳送到此位址。此外掛程式將會檢查回應,HTTP狀態碼 401與403將會被理解為無效憑證,而所有其他的回應將會被理解為有效憑證。" +}, +"nplurals=1; plural=0;"); diff --git a/apps/user_webdavauth/l10n/zh_TW.json b/apps/user_webdavauth/l10n/zh_TW.json new file mode 100644 index 0000000000000000000000000000000000000000..aca5151be0805a749a07bda6db3dafb960a5c64f --- /dev/null +++ b/apps/user_webdavauth/l10n/zh_TW.json @@ -0,0 +1,6 @@ +{ "translations": { + "WebDAV Authentication" : "WebDAV 認證", + "Save" : "儲存", + "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." : "使用者憑證將會被傳送到此位址。此外掛程式將會檢查回應,HTTP狀態碼 401與403將會被理解為無效憑證,而所有其他的回應將會被理解為有效憑證。" +},"pluralForm" :"nplurals=1; plural=0;" +} \ No newline at end of file diff --git a/apps/user_webdavauth/l10n/zh_TW.php b/apps/user_webdavauth/l10n/zh_TW.php deleted file mode 100644 index fa0e987fa3c7ee22b4b5a15f42d681421ec773ab..0000000000000000000000000000000000000000 --- a/apps/user_webdavauth/l10n/zh_TW.php +++ /dev/null @@ -1,7 +0,0 @@ - "WebDAV 認證", -"Save" => "儲存", -"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." => "使用者憑證將會被傳送到此位址。此外掛程式將會檢查回應,HTTP狀態碼 401與403將會被理解為無效憑證,而所有其他的回應將會被理解為有效憑證。" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php old mode 100755 new mode 100644 diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php old mode 100755 new mode 100644 diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php old mode 100755 new mode 100644 diff --git a/autotest.cmd b/autotest.cmd index 5f1b1ae3a1d296a76f0e9444254e569a58628422..2129e2d30d650be37125f07c42cf9a1c694b13d6 100644 --- a/autotest.cmd +++ b/autotest.cmd @@ -7,8 +7,10 @@ :: @copyright 2012, 2013 Thomas Müller thomas.mueller@tmit.eu :: -set DATADIR=data-autotest +@echo off + set BASEDIR=%~dp0 +set DATADIR=%BASEDIR%data-autotest :: create autoconfig for sqlite, mysql, postgresql and mssql echo ^ .\tests\autoconfig-sqlite.php @@ -18,7 +20,7 @@ echo 'dbtype' ^=^> 'sqlite'^, >> .\tests\autoconfig-sqlite.ph echo 'dbtableprefix' ^=^> 'oc_'^, >> .\tests\autoconfig-sqlite.php echo 'adminlogin' ^=^> 'admin'^, >> .\tests\autoconfig-sqlite.php echo 'adminpass' ^=^> 'admin'^, >> .\tests\autoconfig-sqlite.php -echo 'directory' ^=^> '%BASEDIR%%DATADIR%'^, >> .\tests\autoconfig-sqlite.php +echo 'directory' ^=^> '%DATADIR%'^, >> .\tests\autoconfig-sqlite.php echo ^)^; >> .\tests\autoconfig-sqlite.php echo ^ .\tests\autoconfig-mysql.php @@ -28,7 +30,7 @@ echo 'dbtype' ^=^> 'mysql'^, >> .\tests\autoconfig-mysql.php echo 'dbtableprefix' ^=^> 'oc_'^, >> .\tests\autoconfig-mysql.php echo 'adminlogin' ^=^> 'admin'^, >> .\tests\autoconfig-mysql.php echo 'adminpass' ^=^> 'admin'^, >> .\tests\autoconfig-mysql.php -echo 'directory' ^=^> '%BASEDIR%%DATADIR%'^, >> .\tests\autoconfig-mysql.php +echo 'directory' ^=^> '%DATADIR%'^, >> .\tests\autoconfig-mysql.php echo 'dbuser' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-mysql.php echo 'dbname' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-mysql.php echo 'dbhost' ^=^> 'localhost'^, >> .\tests\autoconfig-mysql.php @@ -42,7 +44,7 @@ echo 'dbtype' ^=^> 'pgsql'^, >> .\tests\autoconfig-pgsql.php echo 'dbtableprefix' ^=^> 'oc_'^, >> .\tests\autoconfig-pgsql.php echo 'adminlogin' ^=^> 'admin'^, >> .\tests\autoconfig-pgsql.php echo 'adminpass' ^=^> 'admin'^, >> .\tests\autoconfig-pgsql.php -echo 'directory' ^=^> '%BASEDIR%%DATADIR%'^, >> .\tests\autoconfig-pgsql.php +echo 'directory' ^=^> '%DATADIR%'^, >> .\tests\autoconfig-pgsql.php echo 'dbuser' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-pgsql.php echo 'dbname' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-pgsql.php echo 'dbhost' ^=^> 'localhost'^, >> .\tests\autoconfig-pgsql.php @@ -56,7 +58,7 @@ echo 'dbtype' ^=^> 'mssql'^, >> .\tests\autoconfig-mssql.php echo 'dbtableprefix' ^=^> 'oc_'^, >> .\tests\autoconfig-mssql.php echo 'adminlogin' ^=^> 'admin'^, >> .\tests\autoconfig-mssql.php echo 'adminpass' ^=^> 'admin'^, >> .\tests\autoconfig-mssql.php -echo 'directory' ^=^> '%BASEDIR%%DATADIR%'^, >> .\tests\autoconfig-mssql.php +echo 'directory' ^=^> '%DATADIR%'^, >> .\tests\autoconfig-mssql.php echo 'dbuser' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-mssql.php echo 'dbname' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-mssql.php echo 'dbhost' ^=^> 'localhost\sqlexpress'^, >> .\tests\autoconfig-mssql.php @@ -65,24 +67,40 @@ echo ^)^; >> .\tests\autoconfig-mssql.php echo localhost:5432:*:oc_autotest:owncloud > %APPDATA%\postgresql\pgpass.conf +@echo on + +:: Back up existing (dev) config if one exists +if exist config\config.php ( + copy /y config\config.php config\config-autotest-backup.php +) + :: :: start test execution :: if [%1] == [] ( - echo "Running on all database backends" - call:execute_tests "sqlite" - call:execute_tests "mysql" - call:execute_tests "mssql" - ::call:execute_tests "ora" - call:execute_tests "pgsql" + @echo "Running on all database backends" + call:execute_tests "sqlite" "%2" + call:execute_tests "mysql" "%2" + call:execute_tests "mssql" "%2" + ::call:execute_tests "ora" "%2" + call:execute_tests "pgsql" "%2" ) else ( - call:execute_tests "%1" + call:execute_tests "%1" "%2" ) +goto:restore_config + +goto:eof + +:restore_config + :: Restore existing config + if exist config\config-autotest-backup.php ( + copy /y config\config-autotest-backup.php config\config.php + ) goto:eof :execute_tests - echo "Setup environment for %~1 testing ..." + @echo "Setup environment for %~1 testing ..." :: back to root folder cd %BASEDIR% @@ -109,22 +127,25 @@ goto:eof copy /y %BASEDIR%\tests\autoconfig-%~1.php %BASEDIR%\config\autoconfig.php :: trigger installation - php -f index.php + @echo INDEX + call php -f index.php + @echo END INDEX ::test execution - echo "Testing with %~1 ..." + @echo "Testing with %~1 ..." cd tests rmdir /s /q coverage-html-%~1 md coverage-html-%~1 php -f enable_all.php + :: no external files on windows for now cd .. php occ app:disable files_external cd tests - call phpunit --bootstrap bootstrap.php --configuration phpunit-autotest.xml --log-junit autotest-results-%~1.xml --coverage-clover autotest-clover-%~1.xml --coverage-html coverage-html-%~1 + call phpunit --bootstrap bootstrap.php --configuration phpunit-autotest.xml --log-junit autotest-results-%~1.xml --coverage-clover autotest-clover-%~1.xml --coverage-html coverage-html-%~1 %~2 - echo "Done with testing %~1 ..." + @echo "Done with testing %~1 ..." cd %BASEDIR% goto:eof diff --git a/autotest.sh b/autotest.sh index 8edb5f3915a9f1ce09fc82bfab5636c9180fe935..83a20699d0162befae329a54d8ee9c4a2dcdc471 100755 --- a/autotest.sh +++ b/autotest.sh @@ -40,7 +40,7 @@ if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUN exit 4 fi -if ! [ -w config -a -w config/config.php ]; then +if ! [ \( -w config -a ! -f config/config.php \) -o \( -f config/config.php -a -w config/config.php \) ]; then echo "Please enable write permissions on config and config/config.php" >&2 exit 1 fi diff --git a/bower.json b/bower.json new file mode 100644 index 0000000000000000000000000000000000000000..b18078f6fc4413a529033d4f374133bced957450 --- /dev/null +++ b/bower.json @@ -0,0 +1,27 @@ +{ + "name": "ownCloud", + "version": "8.0 pre alpha", + "homepage": "https://www.owncloud.org", + "license": "AGPL", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "core/vendor", + "test", + "tests" + ], + "dependencies": { + "blueimp-md5": "1.0.1", + "handlebars": "1.3.0", + "jcrop": "~0.9.12", + "jquery": "~1.10.0", + "moment": "~2.8.3", + "select2": "3.4.8", + "zxcvbn": "*", + "snapjs": "2.0.0-rc1", + "strengthify": "*", + "underscore": "1.6.0" + } +} diff --git a/buildjsdocs.sh b/buildjsdocs.sh new file mode 100755 index 0000000000000000000000000000000000000000..ef18dc8c9a9dbb0a8bb4a223d2385a56463215c8 --- /dev/null +++ b/buildjsdocs.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# +# ownCloud +# +# Run JS tests +# +# @author Vincent Petry +# @copyright 2014 Vincent Petry +# +NPM="$(which npm 2>/dev/null)" +PREFIX="build" +OUTPUT_DIR="build/jsdocs" + +JS_FILES="core/js/*.js apps/*/js/*.js" + +if test -z "$NPM" +then + echo 'Node JS >= 0.8 is required to build the documentation' >&2 + exit 1 +fi + +# update/install test packages +mkdir -p "$PREFIX" && $NPM install --link --prefix "$PREFIX" jsdoc || exit 3 + +JSDOC_BIN="$(which jsdoc 2>/dev/null)" + +# If not installed globally, try local version +if test -z "$JSDOC_BIN" +then + JSDOC_BIN="$PREFIX/node_modules/jsdoc/jsdoc.js" +fi + +if test -z "$JSDOC_BIN" +then + echo 'jsdoc executable not found' >&2 + exit 2 +fi + +mkdir -p "$OUTPUT_DIR" + +NODE_PATH="$PREFIX/node_modules" $JSDOC_BIN -d "$OUTPUT_DIR" $JS_FILES + diff --git a/config/.htaccess b/config/.htaccess old mode 100755 new mode 100644 diff --git a/config/config.sample.php b/config/config.sample.php old mode 100755 new mode 100644 index 5a3c07886f94b83cd3525e45f113fc5299ad1837..791ffa3df905c7e45abdc913325a902a88539ee7 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -5,8 +5,9 @@ * configuration options and their usage. * * DO NOT COMPLETELY BASE YOUR CONFIGURATION FILE ON THIS SAMPLE. THIS MAY BREAK - * YOUR INSTANCE. Instead, manually copy configurations switches that you - * consider important for your instance to your configuration. + * YOUR INSTANCE. Instead, manually copy configuration switches that you + * consider important for your instance to your working ``config.php``, and + * apply configuration options that are pertinent for your instance. * * This file is used to generate the config documentation. Please consider * following requirements of the current parser: @@ -16,10 +17,11 @@ * also to this line * * everything between the ` *\/` and the next `/**` will be treated as the * config option + * * use RST syntax */ /** - * Only enable this for local development and not in productive environments + * Only enable this for local development and not in production environments * This will disable the minifier and outputs some additional debug informations */ define('DEBUG', true); @@ -37,61 +39,121 @@ $CONFIG = array( /** * This is a unique identifier for your ownCloud installation, created - * automatically by the installer. + * automatically by the installer. This example is for documentation only, + * and you should never use it because it will not work. A valid ``instanceid`` + * is created when you install ownCloud. + * + * 'instanceid' => 'd3c944a9a', */ 'instanceid' => '', -/** - * Define the salt used to hash the user passwords. All your user passwords are - * lost if you lose this string. + /** + * The salt used to hash all passwords, auto-generated by the ownCloud + * installer. (There are also per-user salts.) If you lose this salt you lose + * all your passwords. This example is for documentation only, + * and you should never use it. + * + * @deprecated This salt is deprecated and only used for legacy-compatibility, developers + * should *NOT* use this value for anything nowadays. + * + *'passwordsalt' => 'd3c944a9af095aa08f', */ 'passwordsalt' => '', /** - * List of trusted domains, to prevent host header poisoning ownCloud is only - * using these Host headers + * The hashing cost used by hashes generated by ownCloud + * Using a higher value requires more time and CPU power to calculate the hashes + */ +'hashingCost' => 10, + +/** + * Your list of trusted domains that users can log into. Specifying trusted + * domains prevents host header poisoning. Do not remove this, as it performs + * necessary security checks. + */ +'trusted_domains' => + array ( + 'demo.example.org', + 'otherdomain.example.org', + ), + + +/** + * Where user files are stored; this defaults to ``data/`` in the ownCloud + * directory. The SQLite database is also stored here, when you use SQLite. (SQLite is + * available only in ownCloud Community Edition) */ -'trusted_domains' => array('demo.example.org', 'otherdomain.example.org:8080'), +'datadirectory' => '/var/www/owncloud/data', /** - * The directory where the user data is stored, default to data in the ownCloud - * directory. The sqlite database is also stored here, when sqlite is used. + * The current version number of your ownCloud installation. This is set up + * during installation and update, so you shouldn't need to change it. */ -'datadirectory' => '', +'version' => '', /** - * Type of database, can be sqlite, mysql or pgsql + * Identifies the database used with this installation. See also config option + * ``supportedDatabases`` + * + * Available: + * - sqlite (SQLite3 - Community Edition Only) + * - mysql (MySQL) + * - pgsql (PostgreSQL) + * - oci (Oracle - Enterprise Edition Only) + * - mssql (Microsoft SQL Server - Enterprise Edition Only) */ 'dbtype' => 'sqlite', /** - * Host running the ownCloud database. To specify a port use 'HOSTNAME:####'; to - * specify a unix sockets use 'localhost:/path/to/socket'. + * Your host server name, for example ``localhost``, ``hostname``, + * ``hostname.example.com``, or the IP address. To specify a port use + * ``hostname:####``; to specify a Unix socket use + * ``localhost:/path/to/socket``. */ 'dbhost' => '', /** - * Name of the ownCloud database + * The name of the ownCloud database, which is set during installation. You + * should not need to change this. */ 'dbname' => 'owncloud', /** - * User to access the ownCloud database + * The user that ownCloud uses to write to the database. This must be unique + * across ownCloud instances using the same SQL database. This is set up during + * installation, so you shouldn't need to change it. */ 'dbuser' => '', /** - * Password to access the ownCloud database + * The password for the database user. This is set up during installation, so + * you shouldn't need to change it. */ 'dbpassword' => '', /** - * Prefix for the ownCloud tables in the database + * Prefix for the ownCloud tables in the database. */ 'dbtableprefix' => '', /** - * Flag to indicate ownCloud is successfully installed (true = installed) + * Additional driver options for the database connection, eg. to enable SSL + * encryption in MySQL. + */ +'dbdriveroptions' => array( + PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem', +), + +/** + * sqlite3 journal mode can be specified using this config parameter - can be 'WAL' or 'DELETE' + * see for more details https://www.sqlite.org/wal.html + */ +'sqlite.journal_mode' => 'DELETE', + +/** + * Indicates whether the ownCloud instance was installed successfully; ``true`` + * indicates a successful installation, and ``false`` indicates an unsuccessful + * installation. */ 'installed' => false, @@ -104,51 +166,58 @@ $CONFIG = array( */ /** - * Optional ownCloud default language - overrides automatic language detection - * on public pages like login or shared items. This has no effect on the user's - * language preference configured under 'personal -> language' once they have - * logged in + * This sets the default language on your ownCloud server, using ISO_639-1 + * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for + * French. It overrides automatic language detection on public pages like login + * or shared items. User's language preferences configured under "personal -> + * language" override this setting after they have logged in. */ 'default_language' => 'en', /** - * Default app to open on login. - * - * This can be a comma-separated list of app ids. If the first app is not - * enabled for the current user, it will try with the second one and so on. If - * no enabled app could be found, the 'files' app will be displayed instead. + * Set the default app to open on login. Use the app names as they appear in the + * URL after clicking them in the Apps menu, such as documents, calendar, and + * gallery. You can use a comma-separated list of app names, so if the first + * app is not enabled for a user then ownCloud will try the second one, and so + * on. If no enabled apps are found it defaults to the Files app. */ 'defaultapp' => 'files', /** - * Enable the help menu item in the settings + * ``true`` enables the Help menu item in the user menu (top right of the + * ownCloud Web interface). ``false`` removes the Help item. */ 'knowledgebaseenabled' => true, /** - * Specifies whether avatars should be enabled + * ``true`` enables avatars, or user profile photos. These appear on the User + * page, on user's Personal pages and are used by some apps (contacts, mail, + * etc). ``false`` disables them. */ 'enable_avatars' => true, /** - * Allow user to change his display name, if it is supported by the back-end + * ``true`` allows users to change their display names (on their Personal + * pages), and ``false`` prevents them from changing their display names. */ 'allow_user_to_change_display_name' => true, /** - * Lifetime of the remember login cookie, default is 15 days + * Lifetime of the remember login cookie, which is set when the user clicks the + * ``remember`` checkbox on the login screen. The default is 15 days, expressed + * in seconds. */ 'remember_login_cookie_lifetime' => 60*60*24*15, /** - * Life time of a session after inactivity + * The lifetime of a session after inactivity; the default is 24 hours, + * expressed in seconds. */ 'session_lifetime' => 60 * 60 * 24, /** - * Enable/disable session keep alive when a user is logged in in the Web UI. - * This is achieved by sending a 'heartbeat' to the server to prevent the - * session timing out. + * Enable or disable session keep-alive when a user is logged in to the Web UI. + * Enabling this sends a "heartbeat" to the server to keep it from timing out. */ 'session_keepalive' => true, @@ -160,7 +229,9 @@ $CONFIG = array( 'skeletondirectory' => '', /** - * TODO + * The ``user_backends`` app allows you to configure alternate authentication + * backends. Supported backends are IMAP (OC_User_IMAP), SMB (OC_User_SMB), and + * FTP (OC_User_FTP). */ 'user_backends' => array( array( @@ -178,72 +249,88 @@ $CONFIG = array( */ /** - * Domain name used by ownCloud for the sender mail address, e.g. - * no-reply@example.com + * The return address that you want to appear on emails sent by the ownCloud + * server, for example ``oc-admin@example.com``, substituting your own domain, + * of course. */ 'mail_domain' => 'example.com', /** - * FROM address used by ownCloud for the sender mail address, e.g. - * owncloud@example.com - * - * This setting overwrites the built in 'sharing-noreply' and - * 'lostpassword-noreply' FROM addresses, that ownCloud uses + * FROM address that overrides the built-in ``sharing-noreply`` and + * ``lostpassword-noreply`` FROM addresses. */ 'mail_from_address' => 'owncloud', /** - * Enable SMTP class debugging + * Enable SMTP class debugging. */ 'mail_smtpdebug' => false, /** - * Mode to use for sending mail, can be sendmail, smtp, qmail or php, see - * PHPMailer docs + * Which mode to use for sending mail: ``sendmail``, ``smtp``, ``qmail`` or + * ``php``. + * + * If you are using local or remote SMTP, set this to ``smtp``. + * + * If you are using PHP mail you must have an installed and working email system + * on the server. The program used to send email is defined in the ``php.ini`` + * file. + * + * For the ``sendmail`` option you need an installed and working email system on + * the server, with ``/usr/sbin/sendmail`` installed on your Unix system. + * + * For ``qmail`` the binary is /var/qmail/bin/sendmail, and it must be installed + * on your Unix system. */ 'mail_smtpmode' => 'sendmail', /** - * Host to use for sending mail, depends on mail_smtpmode if this is used + * This depends on ``mail_smtpmode``. Specified the IP address of your mail + * server host. This may contain multiple hosts separated by a semi-colon. If + * you need to specify the port number append it to the IP address separated by + * a colon, like this: ``127.0.0.1:24``. */ 'mail_smtphost' => '127.0.0.1', /** - * Port to use for sending mail, depends on mail_smtpmode if this is used + * This depends on ``mail_smtpmode``. Specify the port for sending mail. */ 'mail_smtpport' => 25, /** - * SMTP server timeout in seconds for sending mail, depends on mail_smtpmode if - * this is used + * This depends on ``mail_smtpmode``. This set an SMTP server timeout, in + * seconds. You may need to increase this if you are running an anti-malware or + * spam scanner. */ 'mail_smtptimeout' => 10, /** - * SMTP connection prefix or sending mail, depends on mail_smtpmode if this is - * used. Can be '', 'ssl' or 'tls' + * This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` or + * ``tls``, or leave empty for no encryption. */ 'mail_smtpsecure' => '', /** - * Authentication needed to send mail, depends on mail_smtpmode if this is used - * (false = disable authentication) + * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail + * server requires authentication. */ 'mail_smtpauth' => false, /** - * Authentication type needed to send mail, depends on mail_smtpmode if this is - * used Can be LOGIN (default), PLAIN or NTLM + * This depends on ``mail_smtpmode``. If SMTP authentication is required, choose + * the authentication type as ``LOGIN`` (default) or ``PLAIN``. */ 'mail_smtpauthtype' => 'LOGIN', /** - * Username to use for sendmail mail, depends on mail_smtpauth if this is used + * This depends on ``mail_smtpauth``. Specify the username for authenticating to + * the SMTP server. */ 'mail_smtpname' => '', /** - * Password to use for sendmail mail, depends on mail_smtpauth if this is used + * This depends on ``mail_smtpauth``. Specify the password for authenticating to + * the SMTP server. */ 'mail_smtppassword' => '', @@ -254,56 +341,73 @@ $CONFIG = array( /** * The automatic hostname detection of ownCloud can fail in certain reverse - * proxy and CLI/cron situations. This option allows to manually override the - * automatic detection. You can also add a port. For example - * 'www.example.com:88' + * proxy and CLI/cron situations. This option allows you to manually override + * the automatic detection; for example ``www.example.com``, or specify the port + * ``www.example.com:8080``. */ 'overwritehost' => '', /** - * The automatic protocol detection of ownCloud can fail in certain reverse - * proxy and CLI/cron situations. This option allows to manually override the - * protocol detection. For example 'https' + * When generating URLs, ownCloud attempts to detect whether the server is + * accessed via ``https`` or ``http``. However, if ownCloud is behind a proxy + * and the proxy handles the ``https`` calls, ownCloud would not know that + * ``ssl`` is in use, which would result in incorrect URLs being generated. + * Valid values are ``http`` and ``https``. */ 'overwriteprotocol' => '', /** - * The automatic webroot detection of ownCloud can fail in certain reverse proxy - * and CLI/cron situations. This option allows to manually override the - * automatic detection. For example '/domain.tld/ownCloud'. The value '/' can be - * used to remove the root. + * ownCloud attempts to detect the webroot for generating URLs automatically. + * For example, if ``www.example.com/owncloud`` is the URL pointing to the + * ownCloud instance, the webroot is ``/owncloud``. When proxies are in use, it + * may be difficult for ownCloud to detect this parameter, resulting in invalid + * URLs. */ 'overwritewebroot' => '', /** - * The automatic detection of ownCloud can fail in certain reverse proxy and - * CLI/cron situations. This option allows to define a manually override - * condition as regular expression for the remote ip address. For example - * '^10\.0\.0\.[1-3]$' + * This option allows you to define a manual override condition as a regular + * expression for the remote IP address. For example, defining a range of IP + * addresses starting with ``10.0.0.`` and ending with 1 to 3: + * ``^10\.0\.0\.[1-3]$`` */ 'overwritecondaddr' => '', /** - * A proxy to use to connect to the internet. For example 'myproxy.org:88' + * Use this configuration parameter to specify the base url for any urls which + * are generated within ownCloud using any kind of command line tools (cron or + * occ). The value should contain the full base URL: + * ``https://www.example.com/owncloud`` + */ +'overwrite.cli.url' => '', + +/** + * The URL of your proxy server, for example ``proxy.example.com:8081``. */ 'proxy' => '', +/** + * The optional authentication for the proxy to use to connect to the internet. + * The format is: ``username:password``. + */ +'proxyuserpwd' => '', + /** - * Deleted Items + * Deleted Items (trash bin) * * These parameters control the Deleted files app. */ /** - * How long should ownCloud keep deleted files in the trash bin, default value: - * 30 days + * When the trash bin app is enabled (default), this is the number of days a + * file will be kept in the trash bin. Default is 30 days. */ 'trashbin_retention_obligation' => 30, /** - * Disable/Enable auto expire for the trash bin, by default auto expire is - * enabled + * Disable or enable auto-expiration for the trash bin. By default + * auto-expiration is enabled. */ 'trashbin_auto_expire' => true, @@ -311,92 +415,104 @@ $CONFIG = array( /** * ownCloud Verifications * - * ownCloud performs several verification checks. There are two options, 'true' - * and 'false'. + * ownCloud performs several verification checks. There are two options, + * ``true`` and ``false``. */ /** - * Ensure that 3rdparty applications follows coding guidelines + * Check 3rd party apps to make sure they are using the private API and not the + * public API. If the app uses the private API it cannot be installed. */ 'appcodechecker' => true, /** - * Check if ownCloud is up to date and shows a notification if a new version is - * available + * Check if ownCloud is up-to-date and shows a notification if a new version is + * available. */ 'updatechecker' => true, /** - * Are we connected to the internet or are we running in a closed network? + * Is ownCloud connected to the Internet or running in a closed network? */ 'has_internet_connection' => true, /** - * Check if the ownCloud WebDAV server is working correctly. Can be disabled if - * not needed in special situations + * Allows ownCloud to verify a working WebDAV connection. This is done by + * attempting to make a WebDAV request from PHP. */ 'check_for_working_webdav' => true, /** - * Check if .htaccess protection of data is working correctly. Can be disabled - * if not needed in special situations + * This is a crucial security check on Apache servers that should always be set + * to ``true``. This verifies that the ``.htaccess`` file is writable and works. + * If it is not, then any options controlled by ``.htaccess``, such as large + * file uploads, will not work. It also runs checks on the ``data/`` directory, + * which verifies that it can't be accessed directly through the web server. */ 'check_for_working_htaccess' => true, +/** + * In certain environments it is desired to have a read-only config file. + * When this switch is set to ``true`` ownCloud will not verify whether the + * configuration is writable. However, it will not be possible to configure + * all options via the web-interface. Furthermore, when updating ownCloud + * it is required to make the config file writable again for the update + * process. + */ +'config_is_read_only' => false, /** * Logging */ /** - * Place to log to, can be 'owncloud' and 'syslog' (owncloud is log menu item in - * admin menu) + * By default the ownCloud logs are sent to the ``owncloud.log`` file in the + * default ownCloud data directory. + * If syslogging is desired, set this parameter to ``syslog``. + * Setting this parameter to ``errorlog`` will use the PHP error_log function + * for logging. */ 'log_type' => 'owncloud', /** - * File for the ownCloud logger to log to, (default is owncloud.log in the data - * dir) + * Change the ownCloud logfile name from ``owncloud.log`` to something else. */ 'logfile' => 'owncloud.log', /** - * Loglevel to start logging at. 0 = DEBUG, 1 = INFO, 2 = WARN, 3 = ERROR - * (default is WARN) + * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 = + * Warning, 3 = Error. The default value is Warning. */ 'loglevel' => 2, /** - * date format to be used while writing to the ownCloud logfile + * This uses PHP.date formatting; see http://php.net/manual/en/function.date.php */ 'logdateformat' => 'F d, Y H:i:s', /** - * timezone used while writing to the ownCloud logfile (default: UTC) + * The default timezone for logfiles is UTC. You may change this; see + * http://php.net/manual/en/timezones.php */ 'logtimezone' => 'Europe/Berlin', /** - * Append all database queries and parameters to the log file. (watch out, this - * option can increase the size of your log file) + * Append all database queries and parameters to the log file. Use this only for + * debugging, as your logfile will become huge. */ 'log_query' => false, /** - * Whether ownCloud should log the last successfull cron exec + * Log successful cron runs. */ 'cron_log' => true, /** - * Configure the size in bytes log rotation should happen, 0 or false disables - * the rotation. This rotates the current ownCloud logfile to a new name, this - * way the total log usage will stay limited and older entries are available for - * a while longer. The total disk usage is twice the configured size. - * - * WARNING: When you use this, the log entries will eventually be lost. - * - * Example: To set this to 100 MiB, use the value: 104857600 (1024*1024*100 - * bytes). + * Enables log rotation and limits the total size of logfiles. The default is 0, + * or no rotation. Specify a size in bytes, for example 104857600 (100 megabytes + * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the + * old logfile reaches your limit. The total size of all logfiles is double the + * ``log_rotate_sizerotation`` value. */ 'log_rotate_size' => false, @@ -408,17 +524,21 @@ $CONFIG = array( */ /** - * Path to the parent directory of the 3rdparty directory + * ownCloud uses some 3rd party PHP components to provide certain functionality. + * These components are shipped as part of the software package and reside in + * ``owncloud/3rdparty``. Use this option to configure a different location. */ '3rdpartyroot' => '', /** - * URL to the parent directory of the 3rdparty directory, as seen by the browser + * If you have an alternate ``3rdpartyroot``, you must also configure the URL as + * seen by a Web browser. */ '3rdpartyurl' => '', /** - * links to custom clients + * This section is for configuring the download links for ownCloud clients, as + * seen in the first-run wizard and on Personal pages. */ 'customclient_desktop' => 'http://owncloud.org/sync-clients/', @@ -434,25 +554,25 @@ $CONFIG = array( */ /** - * Enable installing apps from the appstore + * When enabled, admins may install apps from the ownCloud app store. + * The app store is disabled by default for ownCloud Enterprise Edition */ 'appstoreenabled' => true, /** - * URL of the appstore to use, server should understand OCS + * The URL of the appstore to use. */ 'appstoreurl' => 'https://api.owncloud.com/v1', /** - * Set an array of path for your apps directories - * - * key 'path' is for the fs path and the key 'url' is for the http path to your - * applications paths. 'writable' indicates whether the user can install apps in - * this folder. You must have at least 1 app folder writable or you must set the - * parameter 'appstoreenabled' to false + * Use the ``apps_paths`` parameter to set the location of the Apps directory, + * which should be scanned for available apps, and where user-specific apps + * should be installed from the Apps store. The ``path`` defines the absolute + * file system path to the app folder. The key ``url`` defines the HTTP web path + * to that folder, starting from the ownCloud web root. The key ``writable`` + * indicates if a web server can write files to that folder. */ 'apps_paths' => array( - array( 'path'=> '/var/www/owncloud/apps', 'url' => '/apps', @@ -474,27 +594,39 @@ $CONFIG = array( */ /** - * TODO + * By default, ownCloud can generate previews for the following filetypes: + * + * - Images files + * - Covers of MP3 files + * - Text documents + * + * Valid values are ``true``, to enable previews, or + * ``false``, to disable previews */ 'enable_previews' => true, /** - * the max width of a generated preview, if value is null, there is no limit + * The maximum width, in pixels, of a preview. A value of ``null`` means there + * is no limit. */ 'preview_max_x' => null, /** - * the max height of a generated preview, if value is null, there is no limit + * The maximum height, in pixels, of a preview. A value of ``null`` means there + * is no limit. */ 'preview_max_y' => null, /** - * the max factor to scale a preview, default is set to 10 + * If a lot of small pictures are stored on the ownCloud instance and the + * preview system generates blurry previews, you might want to consider setting + * a maximum scale factor. By default, pictures are upscaled to 10 times the + * original size. A value of ``1`` or ``null`` disables scaling. */ 'preview_max_scale_factor' => 10, /** - * custom path for libreoffice / openoffice binary + * custom path for LibreOffice/OpenOffice binary */ 'preview_libreoffice_path' => '/usr/bin/libreoffice', /** - * cl parameters for libreoffice / openoffice + * Use this if LibreOffice/OpenOffice requires additional arguments. */ 'preview_office_cl_parameters' => ' --headless --nologo --nofirststartwizard --invisible --norestore '. @@ -514,7 +646,7 @@ $CONFIG = array( * concerns: * * - OC\Preview\Illustrator - * - OC\Preview\Movies + * - OC\Preview\Movie * - OC\Preview\MSOffice2003 * - OC\Preview\MSOffice2007 * - OC\Preview\MSOfficeDoc @@ -552,7 +684,8 @@ $CONFIG = array( 'maintenance' => false, /** - * whether usage of the instance should be restricted to admin users only + * When set to ``true``, the ownCloud instance will be unavailable for all users + * who are not in the ``admin`` group. */ 'singleuser' => false, @@ -562,12 +695,19 @@ $CONFIG = array( */ /** - * Force use of HTTPS connection (true = use HTTPS) + * Change this to ``true`` to require HTTPS for all connections, and to reject + * HTTP requests. */ 'forcessl' => false, /** - * Extra SSL options to be used for configuration + * Change this to ``true`` to require HTTPS connections also for all subdomains. + * Works only together when `forcessl` is set to true. + */ +'forceSSLforSubdomains' => false, + +/** + * Extra SSL options to be used for configuration. */ 'openssl' => array( 'config' => '/absolute/location/of/openssl.cnf', @@ -579,36 +719,40 @@ $CONFIG = array( */ /** - * Blacklist a specific file and disallow the upload of files with this name + * Blacklist a specific file or files and disallow the upload of files + * with this name. ``.htaccess`` is blocked by default. * WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. */ 'blacklisted_files' => array('.htaccess'), /** - * define default folder for shared files and folders + * Define a default folder for shared files and folders other than root. */ 'share_folder' => '/', /** - * Theme to use for ownCloud + * If you are applying a theme to ownCloud, enter the name of the theme here. + * The default location for themes is ``owncloud/themes/``. */ 'theme' => '', /** - * Enable/disable X-Frame-Restriction - * - * HIGH SECURITY RISK IF DISABLED + * X-Frame-Restriction is a header which prevents browsers from showing the site + * inside an iframe. This is be used to prevent clickjacking. It is risky to + * disable this, so leave it set at ``true``. */ 'xframe_restriction' => true, /** - * default cipher used for file encryption, currently we support AES-128-CFB and - * AES-256-CFB + * The default cipher for encrypting files. Currently AES-128-CFB and + * AES-256-CFB are supported. */ 'cipher' => 'AES-256-CFB', /** - * memcached servers (Only used when xCache, APC and APCu are absent.) + * Server details for one or more memcached servers to use for memory caching. + * Memcache is only used if other memory cache options (xcache, apc, apcu) are + * not available. */ 'memcached_servers' => array( // hostname, port and optional weight. Also see: @@ -619,50 +763,55 @@ $CONFIG = array( ), /** - * 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. + * 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' => '', /** * EXPERIMENTAL: option whether to include external storage in quota - * calculation, defaults to false + * calculation, defaults to false. */ 'quota_include_external_storage' => false, /** - * specifies how often the filesystem is checked for changes made outside - * ownCloud + * Specifies how often the filesystem is checked for changes made outside + * ownCloud. * - * 0 -> never check the filesystem for outside changes, provides a performance + * 0 -> Never check the filesystem for outside changes, provides a performance * increase when it's certain that no changes are made directly to the * filesystem * - * 1 -> check each file or folder at most once per request, recommended for - * general use if outside changes might happen + * 1 -> Check each file or folder at most once per request, recommended for + * general use if outside changes might happen. * - * 2 -> check every time the filesystem is used, causes a performance hit when - * using external storages, not recommended for regular use + * 2 -> Check every time the filesystem is used, causes a performance hit when + * using external storages, not recommended for regular use. */ 'filesystem_check_changes' => 1, /** - * where mount.json file should be stored + * All css and js files will be served by the web server statically in one js + * file and one css file if this is set to ``true``. + */ +'asset-pipeline.enabled' => false, + +/** + * Where ``mount.json`` file should be stored, defaults to ``data/mount.json`` */ 'mount_file' => 'data/mount.json', /** - * If true, prevent ownCloud from changing the cache due to changes in the - * filesystem for all storage + * When ``true``, prevent ownCloud from changing the cache due to changes in the + * filesystem for all storage. */ 'filesystem_cache_readonly' => false, /** * The example below shows how to configure ownCloud to store all files in a - * swift object storage + * swift object storage. * * It is important to note that ownCloud in object store mode will expect * exclusive access to the object store container because it only stores the @@ -701,17 +850,35 @@ $CONFIG = array( ), ), +/** + * Database types that are supported for installation. + * + * Available: + * - sqlite (SQLite3 - Community Edition Only) + * - mysql (MySQL) + * - pgsql (PostgreSQL) + * - oci (Oracle - Enterprise Edition Only) + * - mssql (Microsoft SQL Server - Enterprise Edition Only) + */ +'supportedDatabases' => array( + 'sqlite', + 'mysql', + 'pgsql', + 'oci', + 'mssql' +), + /** * Custom CSP policy, changing this will overwrite the standard policy */ 'custom_csp_policy' => "default-src 'self'; script-src 'self' 'unsafe-eval'; ". "style-src 'self' 'unsafe-inline'; frame-src *; img-src *; ". - "font-src 'self' data:; media-src *", + "font-src 'self' data:; media-src *; connect-src *", /** - * Forgotten ones + * All other config options */ /** @@ -720,12 +887,6 @@ $CONFIG = array( */ 'secret' => '', -/** - * The optional authentication for the proxy to use to connect to the internet. - * The format is: [username]:[password] - */ -'proxyuserpwd' => '', - /** * List of trusted proxy servers */ @@ -742,14 +903,8 @@ $CONFIG = array( * configuration. DO NOT ADD THIS SWITCH TO YOUR CONFIGURATION! * * If you, brave person, have read until here be aware that you should not - * modify *ANY* settings in this file without reading the documentation + * modify *ANY* settings in this file without reading the documentation. */ 'copied_sample_config' => true, -/** - * 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, - ); diff --git a/core/ajax/appconfig.php b/core/ajax/appconfig.php index 05b7572c6d76c5d9abb8725e4cf7451cf7bd771f..7d73185dae6a3320ae6f6020981210b3abc0dab4 100644 --- a/core/ajax/appconfig.php +++ b/core/ajax/appconfig.php @@ -24,27 +24,28 @@ if($app === 'core' && isset($_POST['key']) &&(substr($_POST['key'],0,7) === 'rem } $result=false; +$appConfig = \OC::$server->getAppConfig(); switch($action) { case 'getValue': - $result=OC_Appconfig::getValue($app, $_GET['key'], $_GET['defaultValue']); + $result=$appConfig->getValue($app, $_GET['key'], $_GET['defaultValue']); break; case 'setValue': - $result=OC_Appconfig::setValue($app, $_POST['key'], $_POST['value']); + $result=$appConfig->setValue($app, $_POST['key'], $_POST['value']); break; case 'getApps': - $result=OC_Appconfig::getApps(); + $result=$appConfig->getApps(); break; case 'getKeys': - $result=OC_Appconfig::getKeys($app); + $result=$appConfig->getKeys($app); break; case 'hasKey': - $result=OC_Appconfig::hasKey($app, $_GET['key']); + $result=$appConfig->hasKey($app, $_GET['key']); break; case 'deleteKey': - $result=OC_Appconfig::deleteKey($app, $_POST['key']); + $result=$appConfig->deleteKey($app, $_POST['key']); break; case 'deleteApp': - $result=OC_Appconfig::deleteApp($app); + $result=$appConfig->deleteApp($app); break; } OC_JSON::success(array('data'=>$result)); diff --git a/core/ajax/translations.php b/core/ajax/translations.php deleted file mode 100644 index c296cea572a3dbaa964ca4a2453294748aaf3808..0000000000000000000000000000000000000000 --- a/core/ajax/translations.php +++ /dev/null @@ -1,30 +0,0 @@ -. -* -*/ - -$app = isset($_POST["app"]) ? $_POST["app"] : ""; - -$app = OC_App::cleanAppId($app); - -$l = \OC::$server->getL10N($app); - -OC_JSON::success(array('data' => $l->getTranslations(), 'plural_form' => $l->getPluralFormString())); diff --git a/core/application.php b/core/application.php index 3380184775831cd62c5a56125f7651188da74a36..c36ab559c2725489f46a10bb355725ff02f1875c 100644 --- a/core/application.php +++ b/core/application.php @@ -10,13 +10,22 @@ namespace OC\Core; +use OC\AppFramework\Utility\SimpleContainer; use \OCP\AppFramework\App; use OC\Core\LostPassword\Controller\LostController; use OC\Core\User\UserController; +use \OCP\Util; +/** + * Class Application + * + * @package OC\Core + */ class Application extends App { - + /** + * @param array $urlParams + */ public function __construct(array $urlParams=array()){ parent::__construct('core', $urlParams); @@ -25,29 +34,56 @@ class Application extends App { /** * Controllers */ - $container->registerService('LostController', function($c) { + $container->registerService('LostController', function(SimpleContainer $c) { return new LostController( $c->query('AppName'), $c->query('Request'), - $c->query('ServerContainer')->getURLGenerator(), - $c->query('ServerContainer')->getUserManager(), - new \OC_Defaults(), - $c->query('ServerContainer')->getL10N('core'), - $c->query('ServerContainer')->getConfig(), - $c->query('ServerContainer')->getUserSession(), - \OCP\Util::getDefaultEmailAddress('lostpassword-noreply'), - \OC_App::isEnabled('files_encryption') + $c->query('URLGenerator'), + $c->query('UserManager'), + $c->query('Defaults'), + $c->query('L10N'), + $c->query('Config'), + $c->query('SecureRandom'), + $c->query('DefaultEmailAddress'), + $c->query('IsEncryptionEnabled') ); }); - $container->registerService('UserController', function($c) { + $container->registerService('UserController', function(SimpleContainer $c) { return new UserController( $c->query('AppName'), $c->query('Request'), - $c->query('ServerContainer')->getUserManager(), - new \OC_Defaults() + $c->query('UserManager'), + $c->query('Defaults') ); }); - } + /** + * Core class wrappers + */ + $container->registerService('IsEncryptionEnabled', function() { + return \OC_App::isEnabled('files_encryption'); + }); + $container->registerService('URLGenerator', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getURLGenerator(); + }); + $container->registerService('UserManager', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getUserManager(); + }); + $container->registerService('Config', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getConfig(); + }); + $container->registerService('L10N', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getL10N('core'); + }); + $container->registerService('SecureRandom', function(SimpleContainer $c) { + return $c->query('ServerContainer')->getSecureRandom(); + }); + $container->registerService('Defaults', function() { + return new \OC_Defaults; + }); + $container->registerService('DefaultEmailAddress', function() { + return Util::getDefaultEmailAddress('lostpassword-noreply'); + }); + } } diff --git a/core/avatar/controller.php b/core/avatar/controller.php index 03eb9da1dc575dd7963073fc4f01877dd6569862..ca055f5fd753e11fda8bd95a80738426f61806b2 100644 --- a/core/avatar/controller.php +++ b/core/avatar/controller.php @@ -12,6 +12,7 @@ class Controller { public static function getAvatar($args) { \OC_JSON::checkLoggedIn(); \OC_JSON::callCheck(); + \OC::$server->getSession()->close(); $user = stripslashes($args['user']); $size = (int)$args['size']; diff --git a/core/command/db/converttype.php b/core/command/db/converttype.php index 39e87853d607dc37a5e4eb3b754f85bdeb995fb6..617910b3a9051825584f09a5dc4d9f907323fc29 100644 --- a/core/command/db/converttype.php +++ b/core/command/db/converttype.php @@ -10,7 +10,7 @@ namespace OC\Core\Command\Db; -use OC\Config; +use \OCP\IConfig; use OC\DB\Connection; use OC\DB\ConnectionFactory; @@ -22,7 +22,7 @@ use Symfony\Component\Console\Output\OutputInterface; class ConvertType extends Command { /** - * @var \OC\Config + * @var \OCP\IConfig */ protected $config; @@ -32,10 +32,10 @@ class ConvertType extends Command { protected $connectionFactory; /** - * @param \OC\Config $config + * @param \OCP\IConfig $config * @param \OC\DB\ConnectionFactory $connectionFactory */ - public function __construct(Config $config, ConnectionFactory $connectionFactory) { + public function __construct(IConfig $config, ConnectionFactory $connectionFactory) { $this->config = $config; $this->connectionFactory = $connectionFactory; parent::__construct(); @@ -104,7 +104,7 @@ class ConvertType extends Command { 'Converting to Microsoft SQL Server (mssql) is currently not supported.' ); } - if ($type === $this->config->getValue('dbtype', '')) { + if ($type === $this->config->getSystemValue('dbtype', '')) { throw new \InvalidArgumentException(sprintf( 'Can not convert from %1$s to %1$s.', $type @@ -180,7 +180,7 @@ class ConvertType extends Command { $dialog = $this->getHelperSet()->get('dialog'); if (!$dialog->askConfirmation( $output, - 'Continue with the conversion?', + 'Continue with the conversion (y/n)? [n] ', false )) { return; @@ -209,7 +209,7 @@ class ConvertType extends Command { 'user' => $input->getArgument('username'), 'password' => $input->getOption('password'), 'dbname' => $input->getArgument('database'), - 'tablePrefix' => $this->config->getValue('dbtableprefix', 'oc_'), + 'tablePrefix' => $this->config->getSystemValue('dbtableprefix', 'oc_'), ); if ($input->getOption('port')) { $connectionParams['port'] = $input->getOption('port'); @@ -256,7 +256,7 @@ class ConvertType extends Command { } protected function convertDB(Connection $fromDB, Connection $toDB, array $tables, InputInterface $input, OutputInterface $output) { - $this->config->setValue('maintenance', true); + $this->config->setSystemValue('maintenance', true); try { // copy table rows foreach($tables as $table) { @@ -270,10 +270,10 @@ class ConvertType extends Command { // save new database config $this->saveDBInfo($input); } catch(\Exception $e) { - $this->config->setValue('maintenance', false); + $this->config->setSystemValue('maintenance', false); throw $e; } - $this->config->setValue('maintenance', false); + $this->config->setSystemValue('maintenance', false); } protected function saveDBInfo(InputInterface $input) { @@ -286,10 +286,10 @@ class ConvertType extends Command { $dbhost .= ':'.$input->getOption('port'); } - $this->config->setValue('dbtype', $type); - $this->config->setValue('dbname', $dbname); - $this->config->setValue('dbhost', $dbhost); - $this->config->setValue('dbuser', $username); - $this->config->setValue('dbpassword', $password); + $this->config->setSystemValue('dbtype', $type); + $this->config->setSystemValue('dbname', $dbname); + $this->config->setSystemValue('dbhost', $dbhost); + $this->config->setSystemValue('dbuser', $username); + $this->config->setSystemValue('dbpassword', $password); } } diff --git a/core/command/l10n/createjs.php b/core/command/l10n/createjs.php new file mode 100644 index 0000000000000000000000000000000000000000..f7d232bcc375caab0275d0321e90a23ffc851a7c --- /dev/null +++ b/core/command/l10n/createjs.php @@ -0,0 +1,120 @@ + and + * Copyright (c) 2014 Stephen Colebrook + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Command\L10n; + +use DirectoryIterator; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class CreateJs extends Command { + + protected function configure() { + $this + ->setName('l10n:createjs') + ->setDescription('Create javascript translation files for a given app') + ->addArgument( + 'app', + InputOption::VALUE_REQUIRED, + 'name of the app' + ) + ->addArgument( + 'lang', + InputOption::VALUE_OPTIONAL, + 'name of the language' + ); + } + + protected function execute(InputInterface $input, OutputInterface $output) { + $app = $input->getArgument('app'); + $lang = $input->getArgument('lang'); + + $path = \OC_App::getAppPath($app); + if ($path === false) { + $output->writeln("The app <$app> is unknown."); + return; + } + $languages = $lang; + if (empty($lang)) { + $languages= $this->getAllLanguages($path); + } + + foreach($languages as $lang) { + $this->writeFiles($app, $path, $lang, $output); + } + } + + private function getAllLanguages($path) { + $result = array(); + foreach (new DirectoryIterator("$path/l10n") as $fileInfo) { + if($fileInfo->isDot()) { + continue; + } + if($fileInfo->isDir()) { + continue; + } + if($fileInfo->getExtension() !== 'php') { + continue; + } + $result[]= substr($fileInfo->getBasename(), 0, -4); + } + + return $result; + } + + private function writeFiles($app, $path, $lang, OutputInterface $output) { + list($translations, $plurals) = $this->loadTranslations($path, $lang); + $this->writeJsFile($app, $path, $lang, $output, $translations, $plurals); + $this->writeJsonFile($path, $lang, $output, $translations, $plurals); + } + + private function writeJsFile($app, $path, $lang, OutputInterface $output, $translations, $plurals) { + $jsFile = "$path/l10n/$lang.js"; + if (file_exists($jsFile)) { + $output->writeln("File already exists: $jsFile"); + return; + } + $content = "OC.L10N.register(\n \"$app\",\n {\n "; + $jsTrans = array(); + foreach ($translations as $id => $val) { + if (is_array($val)) { + $val = '[ ' . join(',', $val) . ']'; + } + $jsTrans[] = "\"$id\" : \"$val\""; + } + $content .= join(",\n ", $jsTrans); + $content .= "\n},\n\"$plurals\");\n"; + + file_put_contents($jsFile, $content); + $output->writeln("Javascript translation file generated: $jsFile"); + } + + private function writeJsonFile($path, $lang, OutputInterface $output, $translations, $plurals) { + $jsFile = "$path/l10n/$lang.json"; + if (file_exists($jsFile)) { + $output->writeln("File already exists: $jsFile"); + return; + } + $content = array('translations' => $translations, 'pluralForm' => $plurals); + file_put_contents($jsFile, json_encode($content)); + $output->writeln("Json translation file generated: $jsFile"); + } + + private function loadTranslations($path, $lang) { + $phpFile = "$path/l10n/$lang.php"; + $TRANSLATIONS = array(); + $PLURAL_FORMS = ''; + require $phpFile; + + return array($TRANSLATIONS, $PLURAL_FORMS); + } +} diff --git a/core/command/maintenance/mode.php b/core/command/maintenance/mode.php index f26a11384a88a2c39c893ffc188118cb28f24add..f48a9d012c4cab5f77cb1122356211c7a285c2f6 100644 --- a/core/command/maintenance/mode.php +++ b/core/command/maintenance/mode.php @@ -9,7 +9,7 @@ namespace OC\Core\Command\Maintenance; -use OC\Config; +use \OCP\IConfig; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; @@ -18,9 +18,10 @@ use Symfony\Component\Console\Output\OutputInterface; class Mode extends Command { + /** @var IConfig */ protected $config; - public function __construct(Config $config) { + public function __construct(IConfig $config) { $this->config = $config; parent::__construct(); } @@ -45,13 +46,13 @@ class Mode extends Command { protected function execute(InputInterface $input, OutputInterface $output) { if ($input->getOption('on')) { - $this->config->setValue('maintenance', true); + $this->config->setSystemValue('maintenance', true); $output->writeln('Maintenance mode enabled'); } elseif ($input->getOption('off')) { - $this->config->setValue('maintenance', false); + $this->config->setSystemValue('maintenance', false); $output->writeln('Maintenance mode disabled'); } else { - if ($this->config->getValue('maintenance', false)) { + if ($this->config->getSystemValue('maintenance', false)) { $output->writeln('Maintenance mode is currently enabled'); } else { $output->writeln('Maintenance mode is currently disabled'); diff --git a/core/command/maintenance/repair.php b/core/command/maintenance/repair.php index 9af5996b2e1899424475cf5af7dc66e7077cd842..bf94b2647ceb6349e6ed931d5b06a5403f756ed2 100644 --- a/core/command/maintenance/repair.php +++ b/core/command/maintenance/repair.php @@ -17,12 +17,14 @@ class Repair extends Command { * @var \OC\Repair $repair */ protected $repair; + /** @var \OCP\IConfig */ + protected $config; /** * @param \OC\Repair $repair - * @param \OC\Config $config + * @param \OCP\IConfig $config */ - public function __construct(\OC\Repair $repair, \OC\Config $config) { + public function __construct(\OC\Repair $repair, \OCP\IConfig $config) { $this->repair = $repair; $this->config = $config; parent::__construct(); @@ -35,12 +37,8 @@ class Repair extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { - // TODO: inject DB connection/factory when possible - $connection = \OC_DB::getConnection(); - $connection->disableQueryStatementCaching(); - - $maintenanceMode = $this->config->getValue('maintenance', false); - $this->config->setValue('maintenance', true); + $maintenanceMode = $this->config->getSystemValue('maintenance', false); + $this->config->setSystemValue('maintenance', true); $this->repair->listen('\OC\Repair', 'step', function ($description) use ($output) { $output->writeln(' - ' . $description); @@ -54,6 +52,6 @@ class Repair extends Command { $this->repair->run(); - $this->config->setValue('maintenance', $maintenanceMode); + $this->config->setSystemValue('maintenance', $maintenanceMode); } } diff --git a/core/command/upgrade.php b/core/command/upgrade.php index 5b9432d631ba194578c0a1cb3e3ff514c99df25d..aaeb63a31240e71522fea4199a6b11cc3cafe972 100644 --- a/core/command/upgrade.php +++ b/core/command/upgrade.php @@ -34,6 +34,7 @@ class Upgrade extends Command { * @param IConfig $config */ public function __construct(IConfig $config) { + parent::__construct(); $this->config = $config; } diff --git a/core/css/apps.css b/core/css/apps.css index 35487bee598345f5825e5529f87da1c7daf8532c..e5cf6201688236e37371b94a4d00f6a2d39a6c7d 100644 --- a/core/css/apps.css +++ b/core/css/apps.css @@ -55,6 +55,7 @@ } #app-navigation li:hover > a, +#app-navigation li:focus > a, #app-navigation .selected, #app-navigation .selected a { background-color: #ddd; @@ -96,10 +97,12 @@ outline: none !important; box-shadow: none; } -#app-navigation .collapsible:hover > a { +#app-navigation .collapsible:hover > a, +#app-navigation .collapsible:focus > a { background-image: none; } -#app-navigation .collapsible:hover > .collapse { +#app-navigation .collapsible:hover > .collapse, +#app-navigation .collapsible:focus > .collapse { display: block; } @@ -139,7 +142,8 @@ background-image: -ms-linear-gradient(top, rgb(238,238,238) 0%, rgb(245,245,245) 100%); } -#app-navigation > ul .collapsible.open:hover { +#app-navigation > ul .collapsible.open:hover, +#app-navigation > ul .collapsible.open:focus { box-shadow: inset 0 0 3px #ddd; } @@ -179,7 +183,8 @@ opacity: .5; } - #app-navigation .app-navigation-entry-deleted-button:hover { + #app-navigation .app-navigation-entry-deleted-button:hover, + #app-navigation .app-navigation-entry-deleted-button:focus { opacity: 1; } @@ -479,15 +484,17 @@ button.loading { border-top: 1px solid #ddd; } /* no top border for first settings item */ -.section:first-child { +#app-content > .section:first-child { border-top: none; } .section h2 { font-size: 20px; margin-bottom: 12px; + font-weight: normal; } .section h3 { font-size: 16px; + font-weight: normal; } /* slight position correction of checkboxes and radio buttons */ .section input[type="checkbox"], diff --git a/core/css/header.css b/core/css/header.css index f83ef451ce60a52b5411c4003c4656c4284f4661..02e47ad0966c12f8f86beb5fe1474169c32953aa 100644 --- a/core/css/header.css +++ b/core/css/header.css @@ -48,6 +48,9 @@ height: 120px; margin: 0 auto; } +#header .logo h1 { + display: none; +} #header .logo-wide { background-image: url(../img/logo-wide.svg); @@ -239,6 +242,8 @@ display: inline-block; margin-right: 5px; cursor: pointer; + height: 32px; + width: 32px; } #header .avatardiv img { opacity: 1; @@ -268,8 +273,8 @@ z-index: 2000; display: none; background-color: #383c43; - border-bottom-left-radius:7px; border-bottom:1px #333 solid; border-left:1px #333 solid; - box-shadow:0 0 7px rgb(29,45,68); + border-bottom-left-radius: 7px; + box-shadow: 0 0 7px rgb(29,45,68); -moz-box-sizing: border-box; box-sizing: border-box; } #expanddiv a { diff --git a/core/css/styles.css b/core/css/styles.css index 56688e01aee5f6d6fda666c2c556bdc090223a52..2859399b59e856f6c9f028569783e2f505c96f4b 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -353,10 +353,15 @@ input[type="submit"].enabled { filter: alpha(opacity=60); opacity: .6; } +/* overrides another !important statement that sets this to unreadable black */ +#body-login form .warning input[type="checkbox"]:hover+label, +#body-login form .warning input[type="checkbox"]:focus+label, +#body-login form .warning input[type="checkbox"]+label { + color: #fff !important; +} #body-login .update h2 { - font-weight: bold; - font-size: 18px; + font-size: 20px; margin-bottom: 30px; } @@ -390,7 +395,6 @@ input[type="submit"].enabled { #body-login form #adminaccount { margin-bottom:15px; } #body-login form fieldset legend, #datadirContent label { width: 100%; - font-weight: bold; } #body-login #datadirContent label { display: block; @@ -575,7 +579,7 @@ label.infield { #body-login form #selectDbType { text-align:center; white-space: nowrap; } #body-login form #selectDbType label { position:static; margin:0 -3px 5px; padding:.4em; - font-size:12px; font-weight:bold; background:#f8f8f8; color:#888; cursor:pointer; + font-size:12px; background:#f8f8f8; color:#888; cursor:pointer; border: 1px solid #ddd; } #body-login form #selectDbType label.ui-state-hover, #body-login form #selectDbType label.ui-state-active { color:#000; background-color:#e8e8e8; } @@ -730,16 +734,47 @@ label.infield { } #notification span, #update-notification span { cursor: pointer; - font-weight: bold; margin-left: 1em; } -tr .action:not(.permanent), .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; } -tr:hover .action, tr .action.permanent, .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter:alpha(opacity=50); opacity:.5; } -tr .action { width:16px; height:16px; } -.header-action { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; } -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; } +tr .action:not(.permanent), +.selectedActions a { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + opacity: 0; +} +tr:hover .action, +tr:focus .action, +tr .action.permanent, +.selectedActions a { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + filter: alpha(opacity=50); + opacity: .5; +} +tr .action { + width: 16px; + height: 16px; +} +.header-action { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; + filter: alpha(opacity=80); + opacity: .8; +} +tr:hover .action:hover, +tr:focus .action:focus, +.selectedActions a:hover, +.selectedActions a:focus, +.header-action:hover, +.header-action:focus { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + filter: alpha(opacity=100); + opacity: 1; +} +tbody tr:hover, +tbody tr:focus, +tbody tr:active { + background-color: #f8f8f8; +} code { font-family:"Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", monospace; } @@ -866,7 +901,7 @@ span.ui-icon {float: left; margin: 3px 7px 30px 0;} .popup.topright { top:7em; right:1em; } .popup.bottomleft { bottom:1em; left:33em; } .popup .close { position:absolute; top:0.2em; right:0.2em; height:20px; width:20px; background:url('../img/actions/close.svg') no-repeat center; } -.popup h2 { font-weight:bold; font-size:1.2em; } +.popup h2 { font-size:20px; } .arrow { border-bottom:10px solid white; border-left:10px solid transparent; border-right:10px solid transparent; display:block; height:0; position:absolute; width:0; z-index:201; } .arrow.left { left:-13px; bottom:1.2em; -webkit-transform:rotate(270deg); -moz-transform:rotate(270deg); -o-transform:rotate(270deg); -ms-transform:rotate(270deg); transform:rotate(270deg); } .arrow.up { top:-8px; right:6px; } diff --git a/core/img/rating/s0.png b/core/img/rating/s0.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5014106e5a6a966af40025839cc05180b53ee7 Binary files /dev/null and b/core/img/rating/s0.png differ diff --git a/core/img/rating/s1.png b/core/img/rating/s1.png index 9d5014106e5a6a966af40025839cc05180b53ee7..6846c8771f5036d485e913851f962582365fdd97 100644 Binary files a/core/img/rating/s1.png and b/core/img/rating/s1.png differ diff --git a/core/img/rating/s10.png b/core/img/rating/s10.png index b9c190f8ce79bda4534869080eaff7d689c5d387..c674569c3899f3d8a4e141fcfe08abb69fd19072 100644 Binary files a/core/img/rating/s10.png and b/core/img/rating/s10.png differ diff --git a/core/img/rating/s11.png b/core/img/rating/s11.png deleted file mode 100644 index c674569c3899f3d8a4e141fcfe08abb69fd19072..0000000000000000000000000000000000000000 Binary files a/core/img/rating/s11.png and /dev/null differ diff --git a/core/img/rating/s2.png b/core/img/rating/s2.png index 6846c8771f5036d485e913851f962582365fdd97..2f132cc5fa1e390131bab916c26b0c861799a228 100644 Binary files a/core/img/rating/s2.png and b/core/img/rating/s2.png differ diff --git a/core/img/rating/s3.png b/core/img/rating/s3.png index 2f132cc5fa1e390131bab916c26b0c861799a228..55e917f92e65d0c79f4f8e0c3c658274a91bc705 100644 Binary files a/core/img/rating/s3.png and b/core/img/rating/s3.png differ diff --git a/core/img/rating/s4.png b/core/img/rating/s4.png index 55e917f92e65d0c79f4f8e0c3c658274a91bc705..fa76c311c693e9a9ae27100dcb5584d798884224 100644 Binary files a/core/img/rating/s4.png and b/core/img/rating/s4.png differ diff --git a/core/img/rating/s5.png b/core/img/rating/s5.png index fa76c311c693e9a9ae27100dcb5584d798884224..8856309f8384e3a4c073f201232a3a74033a2c4c 100644 Binary files a/core/img/rating/s5.png and b/core/img/rating/s5.png differ diff --git a/core/img/rating/s6.png b/core/img/rating/s6.png index 8856309f8384e3a4c073f201232a3a74033a2c4c..4112e14fde236a03a0a2f6a22cbb3f543a101739 100644 Binary files a/core/img/rating/s6.png and b/core/img/rating/s6.png differ diff --git a/core/img/rating/s7.png b/core/img/rating/s7.png index 4112e14fde236a03a0a2f6a22cbb3f543a101739..ce25cf58df99412a628825ba56f841145d6f53e6 100644 Binary files a/core/img/rating/s7.png and b/core/img/rating/s7.png differ diff --git a/core/img/rating/s8.png b/core/img/rating/s8.png index ce25cf58df99412a628825ba56f841145d6f53e6..3197f23785f55472924cbc41bceb4ed7664896ec 100644 Binary files a/core/img/rating/s8.png and b/core/img/rating/s8.png differ diff --git a/core/img/rating/s9.png b/core/img/rating/s9.png index 3197f23785f55472924cbc41bceb4ed7664896ec..b9c190f8ce79bda4534869080eaff7d689c5d387 100644 Binary files a/core/img/rating/s9.png and b/core/img/rating/s9.png differ diff --git a/core/js/LICENSE.jquery.inview b/core/js/LICENSE.jquery.inview deleted file mode 100644 index 1ed340edbe5e6b970514688ebf26a170a122daf3..0000000000000000000000000000000000000000 --- a/core/js/LICENSE.jquery.inview +++ /dev/null @@ -1,41 +0,0 @@ -Attribution-Non-Commercial-Share Alike 2.0 UK: England & Wales - -http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - -You are free: - - * to copy, distribute, display, and perform the work - * to make derivative works - - -Under the following conditions: - - * Attribution — You must give the original author credit. - Attribute this work: - Information - What does "Attribute this work" mean? - The page you came from contained embedded licensing metadata, - including how the creator wishes to be attributed for re-use. - You can use the HTML here to cite the work. Doing so will - also include metadata on your page so that others can find the - original work as well. - - * Non-Commercial — You may not use this work for commercial - purposes. - * Share Alike — If you alter, transform, or build upon this - work, you may distribute the resulting work only under a - licence identical to this one. - -With the understanding that: - - * Waiver — Any of the above conditions can be waived if you get - permission from the copyright holder. - * Other Rights — In no way are any of the following rights - affected by the license: - o Your fair dealing or fair use rights; - o The author's moral rights; - o Rights other persons may have either in the work itself - or in how the work is used, such as publicity or privacy rights. - * Notice — For any reuse or distribution, you must make clear to - others the licence terms of this work. - diff --git a/core/js/avatar.js b/core/js/avatar.js index 6835f6ef0acac6ef799ffe50ac1c9fbe1c845577..8ff136d67ca9d4624492703857932e3053344281 100644 --- a/core/js/avatar.js +++ b/core/js/avatar.js @@ -1,15 +1,5 @@ $(document).ready(function(){ if (OC.currentUser) { - var callback = function() { - // do not show display name on mobile when profile picture is present - if($('#header .avatardiv').children().length > 0) { - $('#header .avatardiv').addClass('avatardiv-shown'); - } - }; - - $('#header .avatardiv').avatar( - OC.currentUser, 32, undefined, true, callback - ); // Personal settings $('#avatar .avatardiv').avatar(OC.currentUser, 128); } diff --git a/core/js/config.js b/core/js/config.js index 52d1c3aee2537b5f7c2395503c9c99ef930759fd..b034b7e8cd3efc1e20ad6d35dae225abad64d422 100644 --- a/core/js/config.js +++ b/core/js/config.js @@ -4,6 +4,9 @@ * See the COPYING-README file. */ +/** + * @namespace + */ OC.AppConfig={ url:OC.filePath('core','ajax','appconfig.php'), getCall:function(action,data,callback){ diff --git a/core/js/config.php b/core/js/config.php index 6994f2ed8a210065ebba5e9614737766f0e52ff2..52405725f23286097b6a6a1d91f07fb806417d22 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -39,7 +39,7 @@ $array = array( "oc_isadmin" => OC_User::isAdminUser(OC_User::getUser()) ? 'true' : 'false', "oc_webroot" => "\"".OC::$WEBROOT."\"", "oc_appswebroots" => str_replace('\\/', '/', json_encode($apps_paths)), // Ugly unescape slashes waiting for better solution - "datepickerFormatDate" => json_encode($l->l('jsdate', 'jsdate')), + "datepickerFormatDate" => json_encode($l->getDateFormat()), "dayNames" => json_encode( array( (string)$l->t('Sunday'), @@ -67,7 +67,7 @@ $array = array( (string)$l->t('December') ) ), - "firstDay" => json_encode($l->l('firstday', 'firstday')) , + "firstDay" => json_encode($l->getFirstWeekDay()) , "oc_config" => json_encode( array( 'session_lifetime' => min(\OCP\Config::getSystemValue('session_lifetime', ini_get('session.gc_maxlifetime')), ini_get('session.gc_maxlifetime')), diff --git a/core/js/core.json b/core/js/core.json index caff2b05252f5c18b0ccd12484b075744c5ffeea..ea79724dcc6bd364f98f8174b15a1d03ab1524d8 100644 --- a/core/js/core.json +++ b/core/js/core.json @@ -1,24 +1,26 @@ { + "vendor": [ + "jquery/jquery.min.js", + "jquery/jquery-migrate.min.js", + "underscore/underscore.js", + "moment/min/moment-with-locales.js" + ], "libraries": [ - "jquery-1.10.0.min.js", - "jquery-migrate-1.2.1.min.js", "jquery-ui-1.10.0.custom.js", "jquery-showpassword.js", - "jquery.placeholder.js", - "jquery-tipsy.js", - "underscore.js" + "jquery-tipsy.js" ], "modules": [ "compatibility.js", "jquery.ocdialog.js", "oc-dialogs.js", "js.js", + "l10n.js", "share.js", "octemplate.js", "eventsource.js", "config.js", "multiselect.js", - "oc-requesttoken.js", - "moment.js" + "oc-requesttoken.js" ] } diff --git a/core/js/eventsource.js b/core/js/eventsource.js index 46bd9f60bb5b07c630f98fe4398da246a8f4e5a2..6f23cebb685a3f517aec787e9d34267889c8d2f4 100644 --- a/core/js/eventsource.js +++ b/core/js/eventsource.js @@ -34,6 +34,8 @@ * Create a new event source * @param {string} src * @param {object} [data] to be send as GET + * + * @constructs OC.EventSource */ OC.EventSource=function(src,data){ var dataStr=''; @@ -92,6 +94,16 @@ OC.EventSource.prototype={ iframe:null, listeners:{},//only for fallback useFallBack:false, + /** + * Fallback callback for browsers that don't have the + * native EventSource object. + * + * Calls the registered listeners. + * + * @private + * @param {String} type event type + * @param {Object} data received data + */ fallBackCallBack:function(type,data){ var i; // ignore messages that might appear after closing @@ -111,6 +123,12 @@ OC.EventSource.prototype={ } }, lastLength:0,//for fallback + /** + * Listen to a given type of events. + * + * @param {String} type event type + * @param {Function} callback event callback + */ listen:function(type,callback){ if(callback && callback.call){ @@ -134,6 +152,9 @@ OC.EventSource.prototype={ } } }, + /** + * Closes this event source. + */ close:function(){ this.closed = true; if (typeof this.source !== 'undefined') { diff --git a/core/js/jquery-1.10.0.js b/core/js/jquery-1.10.0.js deleted file mode 100644 index f38148cf1258b921ea04f2f6fbf9637ce953b1ff..0000000000000000000000000000000000000000 --- a/core/js/jquery-1.10.0.js +++ /dev/null @@ -1,9800 +0,0 @@ -/*! - * jQuery JavaScript Library v1.10.0 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-05-24T18:39Z - */ -(function( window, undefined ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -//"use strict"; -var - // The deferred used on DOM ready - readyList, - - // A central reference to the root jQuery(document) - rootjQuery, - - // Support: IE<10 - // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` - core_strundefined = typeof undefined, - - // Use the correct document accordingly with window argument (sandbox) - location = window.location, - document = window.document, - docElem = document.documentElement, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // [[Class]] -> type pairs - class2type = {}, - - // List of deleted data cache ids, so we can reuse them - core_deletedIds = [], - - core_version = "1.10.0", - - // Save a reference to some core methods - core_concat = core_deletedIds.concat, - core_push = core_deletedIds.push, - core_slice = core_deletedIds.slice, - core_indexOf = core_deletedIds.indexOf, - core_toString = class2type.toString, - core_hasOwn = class2type.hasOwnProperty, - core_trim = core_version.trim, - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Used for matching numbers - core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - - // Used for splitting on whitespace - core_rnotwhite = /\S+/g, - - // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - - // The ready event handler - completed = function( event ) { - - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } - }, - // Clean-up method for dom ready events - detach = function() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: core_version, - - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return core_slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; - }, - - slice: function() { - return this.pushStack( core_slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: core_push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), - - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - /* jshint eqeqeq: false */ - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - if ( obj == null ) { - return String( obj ); - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ core_toString.call(obj) ] || "object" : - typeof obj; - }, - - isPlainObject: function( obj ) { - var key; - - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !core_hasOwn.call(obj, "constructor") && - !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Support: IE<9 - // Handle iteration over inherited properties before own properties. - if ( jQuery.support.ownLast ) { - for ( key in obj ) { - return core_hasOwn.call( obj, key ); - } - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - for ( key in obj ) {} - - return key === undefined || core_hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - // data: string of html - // context (optional): If specified, the fragment will be created in this context, defaults to document - // keepScripts (optional): If true, will include scripts passed in the html string - parseHTML: function( data, context, keepScripts ) { - if ( !data || typeof data !== "string" ) { - return null; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - context = context || document; - - var parsed = rsingleTag.exec( data ), - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[1] ) ]; - } - - parsed = jQuery.buildFragment( [ data ], context, scripts ); - if ( scripts ) { - jQuery( scripts ).remove(); - } - return jQuery.merge( [], parsed.childNodes ); - }, - - parseJSON: function( data ) { - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - if ( data === null ) { - return data; - } - - if ( typeof data === "string" ) { - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - if ( data ) { - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - } - } - } - - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - var xml, tmp; - if ( !data || typeof data !== "string" ) { - return null; - } - try { - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Use native String.trim function wherever possible - trim: core_trim && !core_trim.call("\uFEFF\xA0") ? - function( text ) { - return text == null ? - "" : - core_trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - core_push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( core_indexOf ) { - return core_indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var l = second.length, - i = first.length, - j = 0; - - if ( typeof l === "number" ) { - for ( ; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var retVal, - ret = [], - i = 0, - length = elems.length; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return core_concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = core_slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - // Multifunctional method to get and set values of a collection - // The value/s can optionally be executed if it's a function - access: function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; - }, - - now: function() { - return ( new Date() ).getTime(); - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations. - // Note: this method belongs to the css module but it's needed here for the support module. - // If support gets modularized, this method should be moved back to the css module. - swap: function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - } -}); - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || type !== "function" && - ( length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj ); -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); -/*! - * Sizzle CSS Selector Engine v1.9.4-pre - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-05-15 - */ -(function( window, undefined ) { - -var i, - support, - cachedruns, - Expr, - getText, - isXML, - compile, - outermostContext, - sortInput, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - hasDuplicate = false, - sortOrder = function() { return 0; }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + - "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - - // Prefer arguments quoted, - // then not containing pseudos/brackets, - // then attribute selectors/non-parenthetical expressions, - // then anything else - // These preferences are here to reduce the number of selectors - // needing tokenize in the PSEUDO preFilter - pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rsibling = new RegExp( whitespace + "*[+~]" ), - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - // BMP codepoint - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && context.parentNode || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * For feature detection - * @param {Function} fn The function to test for native support - */ -function isNative( fn ) { - return rnative.test( fn + "" ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key += " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied if the test fails - * @param {Boolean} test The result of a test. If true, null will be set as the handler in leiu of the specified handler - */ -function addHandle( attrs, handler, test ) { - attrs = attrs.split("|"); - var current, - i = attrs.length, - setHandle = test ? null : handler; - - while ( i-- ) { - // Don't override a user's handler - if ( !(current = Expr.attrHandle[ attrs[i] ]) || current === handler ) { - Expr.attrHandle[ attrs[i] ] = setHandle; - } - } -} - -/** - * Fetches boolean attributes by node - * @param {Element} elem - * @param {String} name - */ -function boolHandler( elem, name ) { - // XML does not need to be checked as this will not be assigned for XML documents - var val = elem.getAttributeNode( name ); - return val && val.specified ? - val.value : - elem[ name ] === true ? name.toLowerCase() : null; -} - -/** - * Fetches attributes without interpolation - * http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx - * @param {Element} elem - * @param {String} name - */ -function interpolationHandler( elem, name ) { - // XML does not need to be checked as this will not be assigned for XML documents - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); -} - -/** - * Uses defaultValue to retrieve value in IE6/7 - * @param {Element} elem - * @param {String} name - */ -function valueHandler( elem ) { - // Ignore the value *property* on inputs by using defaultValue - // Fallback to Sizzle.attr by returning undefined where appropriate - // XML does not need to be checked as this will not be assigned for XML documents - if ( elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns Returns -1 if a precedes b, 1 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Detect xml - * @param {Element|Object} elem An element or a document - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var doc = node ? node.ownerDocument || node : preferredDoc; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - - // Support: IE<8 - // Prevent attribute/property "interpolation" - div.innerHTML = ""; - addHandle( "type|href|height|width", interpolationHandler, div.firstChild.getAttribute("href") === "#" ); - - // Support: IE<9 - // Use getAttributeNode to fetch booleans when getAttribute lies - addHandle( booleans, boolHandler, div.getAttribute("disabled") == null ); - - div.className = "i"; - return !div.getAttribute("className"); - }); - - // Support: IE<9 - // Retrieving value should defer to defaultValue - support.input = assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; - }); - - // IE6/7 still return empty string for value, - // but are actually retrieving the property - addHandle( "value", valueHandler, support.attributes && support.input ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = assert(function( div ) { - div.innerHTML = "
"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = isNative(doc.querySelectorAll)) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - - // Support: Opera 10-12/IE8 - // ^= $= *= and empty values - // Should not select anything - // Support: Windows 8 Native Apps - // The type attribute is restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "t", "" ); - - if ( div.querySelectorAll("[t^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = isNative( (matches = docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) - // Detached nodes confoundingly follow *each other* - support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( doc.createElement("div") ) & 1; - }); - - // Document order sorting - sortOrder = docElem.compareDocumentPosition ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); - - if ( compare ) { - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } - - // Not directly comparable, sort on existence of method - return a.compareDocumentPosition ? -1 : 1; - } : - function( a, b ) { - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Parentless nodes are either documents or disconnected - } else if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [elem] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = ( fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined ); - - return val === undefined ? - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null : - val; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - for ( ; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (see #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[5] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] && match[4] !== undefined ) { - match[2] = match[4]; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), - // not comment, processing instructions, or others - // Thanks to Diego Perini for the nodeName shortcut - // Greater than "@" means alpha characters (specifically not starting with "#" or "?") - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -function tokenize( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( tokens = [] ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -} - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var data, cache, outerCache, - dirkey = dirruns + " " + doneName; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { - if ( (data = cache[1]) === true || data === cachedruns ) { - return data === true; - } - } else { - cache = outerCache[ dir ] = [ dirkey ]; - cache[1] = matcher( elem, context, xml ) || cachedruns; - if ( cache[1] === true ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - // A counter to specify which element is currently being matched - var matcherCachedRuns = 0, - bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, expandContext ) { - var elem, j, matcher, - setMatched = [], - matchedCount = 0, - i = "0", - unmatched = seed && [], - outermost = expandContext != null, - contextBackup = outermostContext, - // We must always have either seed elements or context - elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); - - if ( outermost ) { - outermostContext = context !== document && context; - cachedruns = matcherCachedRuns; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - for ( ; (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - cachedruns = ++matcherCachedRuns; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); - } - i = group.length; - while ( i-- ) { - cached = matcherFromTokens( group[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - } - return cached; -}; - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function select( selector, context, results, seed ) { - var i, tokens, token, type, find, - match = tokenize( selector ); - - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - } - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && context.parentNode || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - } - - // Compile and execute a filtering function - // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) - ); - return results; -} - -// Deprecated -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Initialize against the default document -setDocument(); - -// Support: Chrome<<14 -// Always assume duplicates if they aren't passed to the comparison function -[0, 0].sort( sortOrder ); -support.detectDuplicates = hasDuplicate; - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})( window ); -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( list && ( !fired || stack ) ) { - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var action = tuple[ 0 ], - fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = core_slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; - if( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); -jQuery.support = (function( support ) { - - var all, a, input, select, fragment, opt, eventName, isSupported, i, - div = document.createElement("div"); - - // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
a"; - - // Finish early in limited (non-browser) environments - all = div.getElementsByTagName("*") || []; - a = div.getElementsByTagName("a")[ 0 ]; - if ( !a || !a.style || !all.length ) { - return support; - } - - // First batch of tests - select = document.createElement("select"); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName("input")[ 0 ]; - - a.style.cssText = "top:1px;float:left;opacity:.5"; - - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - support.getSetAttribute = div.className !== "t"; - - // IE strips leading whitespace when .innerHTML is used - support.leadingWhitespace = div.firstChild.nodeType === 3; - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - support.tbody = !div.getElementsByTagName("tbody").length; - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - support.htmlSerialize = !!div.getElementsByTagName("link").length; - - // Get the style information from getAttribute - // (IE uses .cssText instead) - support.style = /top/.test( a.getAttribute("style") ); - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - support.hrefNormalized = a.getAttribute("href") === "/a"; - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - support.opacity = /^0.5/.test( a.style.opacity ); - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - support.cssFloat = !!a.style.cssFloat; - - // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) - support.checkOn = !!input.value; - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - support.optSelected = opt.selected; - - // Tests for enctype support on a form (#6743) - support.enctype = !!document.createElement("form").enctype; - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; - - // Will be defined later - support.inlineBlockNeedsLayout = false; - support.shrinkWrapBlocks = false; - support.pixelPosition = false; - support.deleteExpando = true; - support.noCloneEvent = true; - support.reliableMarginRight = true; - support.boxSizingReliable = true; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Support: IE<9 - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - // Check if we can trust getAttribute("value") - input = document.createElement("input"); - input.setAttribute( "value", "" ); - support.input = input.getAttribute( "value" ) === ""; - - // Check if an input maintains its value after becoming a radio - input.value = "t"; - input.setAttribute( "type", "radio" ); - support.radioValue = input.value === "t"; - - // #11217 - WebKit loses check when the name is after the checked attribute - input.setAttribute( "checked", "t" ); - input.setAttribute( "name", "t" ); - - fragment = document.createDocumentFragment(); - fragment.appendChild( input ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) - for ( i in { submit: true, change: true, focusin: true }) { - div.setAttribute( eventName = "on" + i, "t" ); - - support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; - } - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - // Support: IE<9 - // Iteration over object's inherited properties before its own. - for ( i in jQuery( support ) ) { - break; - } - support.ownLast = i !== "0"; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, marginDiv, tds, - divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - container = document.createElement("div"); - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; - - body.appendChild( container ).appendChild( div ); - - // Support: IE8 - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
t
"; - tds = div.getElementsByTagName("td"); - tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Support: IE8 - // Check if empty table cells still have offsetWidth/Height - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Check box-sizing and margin behavior. - div.innerHTML = ""; - div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; - - // Workaround failing boxSizing test due to offsetWidth returning wrong value - // with some non-1 values of body zoom, ticket #13543 - jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { - support.boxSizing = div.offsetWidth === 4; - }); - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; - support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - marginDiv = div.appendChild( document.createElement("div") ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - - support.reliableMarginRight = - !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); - } - - if ( typeof div.style.zoom !== core_strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.innerHTML = ""; - div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); - - // Support: IE6 - // Check if elements with layout shrink-wrap their children - div.style.display = "block"; - div.innerHTML = "
"; - div.firstChild.style.width = "5px"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - - if ( support.inlineBlockNeedsLayout ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); - - // Null elements to avoid leaks in IE - container = div = tds = marginDiv = null; - }); - - // Null elements to avoid leaks in IE - all = select = fragment = opt = a = input = null; - - return support; -})({}); - -var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rmultiDash = /([A-Z])/g; - -function internalData( elem, name, data, pvt /* Internal Use Only */ ){ - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var ret, thisCache, - internalKey = jQuery.expando, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - // Avoid exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( typeof name === "string" ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, i, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - i = name.length; - while ( i-- ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - /* jshint eqeqeq: false */ - } else if ( jQuery.support.deleteExpando || cache != cache.window ) { - /* jshint eqeqeq: true */ - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "applet": true, - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - // Do not set data on non-element because it will not be cleared (#8335). - if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { - return false; - } - - var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; - - // nodes accept data unless otherwise specified; rejection can be conditional - return !noData || noData !== true && elem.getAttribute("classid") === noData; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var attrs, name, - data = null, - i = 0, - elem = this[0]; - - // Special expections of .data basically thwart jQuery.access, - // so implement the relevant behavior ourselves - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - attrs = elem.attributes; - for ( ; i < attrs.length; i++ ) { - name = attrs[i].name; - - if ( name.indexOf("data-") === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - - dataAttr( elem, name, data[ name ] ); - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return arguments.length > 1 ? - - // Sets one value - this.each(function() { - jQuery.data( this, key, value ); - }) : - - // Gets one value - // Try to fetch any internally stored data first - elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - hooks.cur = fn; - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var nodeHook, boolHook, - rclass = /[\t\r\n\f]/g, - rreturn = /\r/g, - rfocusable = /^(?:input|select|textarea|button|object)$/i, - rclickable = /^(?:a|area)$/i, - ruseDefault = /^(?:checked|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - getSetInput = jQuery.support.input; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call( this, j, this.className ) ); - }); - } - - if ( proceed ) { - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - " " - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - elem.className = jQuery.trim( cur ); - - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = arguments.length === 0 || typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call( this, j, this.className ) ); - }); - } - if ( proceed ) { - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - "" - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - elem.className = value ? jQuery.trim( cur ) : ""; - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.match( core_rnotwhite ) || []; - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space separated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - // Toggle whole class name - } else if ( type === core_strundefined || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // If the element has a class name or if we're passed "false", - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var ret, hooks, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // Use proper attribute retrieval(#6932, #12072) - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - elem.text; - } - }, - select: { - get: function( elem ) { - var value, option, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? - max : - one ? index : 0; - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // oldIE doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - // Don't return options that are disabled or in a disabled optgroup - ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && - ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { - optionSet = true; - } - } - - // force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attr: function( elem, name, value ) { - var hooks, ret, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === core_strundefined ) { - return jQuery.prop( elem, name, value ); - } - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - - } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, value + "" ); - return value; - } - - } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var name, propName, - i = 0, - attrNames = value && value.match( core_rnotwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( (name = attrNames[i++]) ) { - propName = jQuery.propFix[ name ] || name; - - // Boolean attributes get special treatment (#10870) - if ( jQuery.expr.match.bool.test( name ) ) { - // Set corresponding property to false - if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { - elem[ propName ] = false; - // Support: IE<9 - // Also clear defaultChecked/defaultSelected (if appropriate) - } else { - elem[ jQuery.camelCase( "default-" + name ) ] = - elem[ propName ] = false; - } - - // See #9699 for explanation of this approach (setting first, then removal) - } else { - jQuery.attr( elem, name, "" ); - } - - elem.removeAttribute( getSetAttribute ? name : propName ); - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to default in case type is set after value during creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? - ret : - ( elem[ name ] = value ); - - } else { - return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? - ret : - elem[ name ]; - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - return tabindex ? - parseInt( tabindex, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - -1; - } - } - } -}); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { - // IE<8 needs the *property* name - elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); - - // Use defaultChecked and defaultSelected for oldIE - } else { - elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; - } - - return name; - } -}; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; - - jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? - function( elem, name, isXML ) { - var fn = jQuery.expr.attrHandle[ name ], - ret = isXML ? - undefined : - /* jshint eqeqeq: false */ - (jQuery.expr.attrHandle[ name ] = undefined) != - getter( elem, name, isXML ) ? - - name.toLowerCase() : - null; - jQuery.expr.attrHandle[ name ] = fn; - return ret; - } : - function( elem, name, isXML ) { - return isXML ? - undefined : - elem[ jQuery.camelCase( "default-" + name ) ] ? - name.toLowerCase() : - null; - }; -}); - -// fix oldIE attroperties -if ( !getSetInput || !getSetAttribute ) { - jQuery.attrHooks.value = { - set: function( elem, value, name ) { - if ( jQuery.nodeName( elem, "input" ) ) { - // Does not return so that setAttribute is also used - elem.defaultValue = value; - } else { - // Use nodeHook if defined (#1954); otherwise setAttribute is fine - return nodeHook && nodeHook.set( elem, value, name ); - } - } - }; -} - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !getSetAttribute ) { - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = { - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - elem.setAttributeNode( - (ret = elem.ownerDocument.createAttribute( name )) - ); - } - - ret.value = value += ""; - - // Break association with cloned elements by also using setAttribute (#9646) - return name === "value" || value === elem.getAttribute( name ) ? - value : - undefined; - } - }; - jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = - // Some attributes are constructed with empty-string values when not defined - function( elem, name, isXML ) { - var ret; - return isXML ? - undefined : - (ret = elem.getAttributeNode( name )) && ret.value !== "" ? - ret.value : - null; - }; - jQuery.valHooks.button = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return ret && ret.specified ? - ret.value : - undefined; - }, - set: nodeHook.set - }; - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - set: function( elem, value, name ) { - nodeHook.set( elem, value === "" ? false : value, name ); - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }; - }); -} - - -// Some attributes require a special call on IE -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !jQuery.support.hrefNormalized ) { - // href/src property should get the full normalized URL (#10299/#12915) - jQuery.each([ "href", "src" ], function( i, name ) { - jQuery.propHooks[ name ] = { - get: function( elem ) { - return elem.getAttribute( name, 4 ); - } - }; - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Note: IE uppercases css property names, but if we were to .toLowerCase() - // .cssText, that would destroy case senstitivity in URL's, like in "background" - return elem.style.cssText || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = value + "" ); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }; -} - -jQuery.each([ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -}); - -// IE6/7 call enctype encoding -if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; -} - -// Radios and checkboxes getter/setter -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }; - if ( !jQuery.support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - // Support: Webkit - // "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - }; - } -}); -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = core_hasOwn.call( event, "type" ) ? event.type : event, - namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = core_slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - /* jshint eqeqeq: false */ - for ( ; cur != this; cur = cur.parentNode || this ) { - /* jshint eqeqeq: true */ - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Even when returnValue equals to undefined Firefox will still show alert - if ( event.result !== undefined ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === core_strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); -var isSimple = /^.[^:#\[\.,]*$/, - rparentsprev = /^(?:parents|prev(?:Until|All))/, - rneedsContext = jQuery.expr.match.needsContext, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - ret = [], - self = this, - len = self.length; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - ret = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - cur = ret.push( cur ); - break; - } - } - } - - return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( jQuery.unique(all) ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - ret = jQuery.unique( ret ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - } - - return this.pushStack( ret ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( isSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; - }); -} -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
", "
" ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - col: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -jQuery.fn.extend({ - text: function( value ) { - return jQuery.access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return jQuery.access( this, function( value ) { - var elem = this[0] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var - // Snapshot the DOM in case .domManip sweeps something relevant into its fragment - args = jQuery.map( this, function( elem ) { - return [ elem.nextSibling, elem.parentNode ]; - }), - i = 0; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - var next = args[ i++ ], - parent = args[ i++ ]; - - if ( parent ) { - // Don't use the snapshot next if it has moved (#13810) - if ( next && next.parentNode !== parent ) { - next = this.nextSibling; - } - jQuery( this ).remove(); - parent.insertBefore( elem, next ); - } - // Allow new content to include elements from the context set - }, true ); - - // Force removal if there was no new content (e.g., from empty arguments) - return i ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback, allowIntersection ) { - - // Flatten any nested arrays - args = core_concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, self.html() ); - } - self.domManip( args, callback, allowIntersection ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[i], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Hope ajax is available... - jQuery._evalUrl( node.src ); - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -// Support: IE<8 -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - core_push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( manipulation_rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
" && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !jQuery.support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = jQuery.support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== core_strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - core_deletedIds.push( id ); - } - } - } - } - }, - - _evalUrl: function( url ) { - return jQuery.ajax({ - url: url, - type: "GET", - dataType: "script", - async: false, - global: false, - "throws": true - }); - } -}); -jQuery.fn.extend({ - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); - } - - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function(i) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - } -}); -var iframe, getStyles, curCSS, - ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity\s*=\s*([^)]*)/, - rposition = /^(top|right|bottom|left)$/, - // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" - // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rmargin = /^margin/, - rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), - rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), - elemdisplay = { BODY: "block" }, - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 - }, - - cssExpand = [ "Top", "Right", "Bottom", "Left" ], - cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - -// return a css property mapped to a potentially vendor prefixed property -function vendorPropName( style, name ) { - - // shortcut for names that are not vendor prefixed - if ( name in style ) { - return name; - } - - // check for vendor prefixed names - var capName = name.charAt(0).toUpperCase() + name.slice(1), - origName = name, - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in style ) { - return name; - } - } - - return origName; -} - -function isHidden( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); -} - -function showHide( elements, show ) { - var display, elem, hidden, - values = [], - index = 0, - length = elements.length; - - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - values[ index ] = jQuery._data( elem, "olddisplay" ); - display = elem.style.display; - if ( show ) { - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !values[ index ] && display === "none" ) { - elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( elem.style.display === "" && isHidden( elem ) ) { - values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); - } - } else { - - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); - } - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( index = 0; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - if ( !show || elem.style.display === "none" || elem.style.display === "" ) { - elem.style.display = show ? values[ index ] || "" : "none"; - } - } - - return elements; -} - -jQuery.fn.extend({ - css: function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - var len, styles, - map = {}, - i = 0; - - if ( jQuery.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - }, - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - var bool = typeof state === "boolean"; - - return this.each(function() { - if ( bool ? state : isHidden( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - }); - } -}); - -jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "columnCount": true, - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - style = elem.style; - - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that NaN and null values aren't set. See: #7116 - if ( value == null || type === "number" && isNaN( value ) ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, - // but it would mean to define eight (for every problematic property) identical functions - if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch(e) {} - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var num, val, hooks, - origName = jQuery.camelCase( name ); - - // Make sure that we're working with the right name - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - //convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Return, converting to number if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; - } - return val; - } -}); - -// NOTE: we've included the "window" in window.getComputedStyle -// because jsdom on node.js will break without it. -if ( window.getComputedStyle ) { - getStyles = function( elem ) { - return window.getComputedStyle( elem, null ); - }; - - curCSS = function( elem, name, _computed ) { - var width, minWidth, maxWidth, - computed = _computed || getStyles( elem ), - - // getPropertyValue is only needed for .css('filter') in IE9, see #12537 - ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, - style = elem.style; - - if ( computed ) { - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right - // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels - // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret; - }; -} else if ( document.documentElement.currentStyle ) { - getStyles = function( elem ) { - return elem.currentStyle; - }; - - curCSS = function( elem, name, _computed ) { - var left, rs, rsLeft, - computed = _computed || getStyles( elem ), - ret = computed ? computed[ name ] : undefined, - style = elem.style; - - // Avoid setting ret to empty string here - // so we don't default to auto - if ( ret == null && style && style[ name ] ) { - ret = style[ name ]; - } - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - // but not position css attributes, as those are proportional to the parent element instead - // and we can't measure the parent instead because it might trigger a "stacking dolls" problem - if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { - - // Remember the original values - left = style.left; - rs = elem.runtimeStyle; - rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : ret; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - } - - return ret === "" ? "auto" : ret; - }; -} - -function setPositiveNumber( elem, value, subtract ) { - var matches = rnumsplit.exec( value ); - return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : - value; -} - -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i = extra === ( isBorderBox ? "border" : "content" ) ? - // If we already have the right measurement, avoid augmentation - 4 : - // Otherwise initialize for horizontal or vertical properties - name === "width" ? 1 : 0, - - val = 0; - - for ( ; i < 4; i += 2 ) { - // both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // at this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - // at this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // at this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; -} - -function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property, which is equivalent to the border-box value - var valueIsBorderBox = true, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - styles = getStyles( elem ), - isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // some non-html elements return undefined for offsetWidth, so check for null/undefined - // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 - // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 - if ( val <= 0 || val == null ) { - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name, styles ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // we need the check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - } - - // use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; -} - -// Try to determine the default display value of an element -function css_defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - // Use the already-created iframe if possible - iframe = ( iframe || - jQuery("