diff options
Diffstat (limited to 'apps/files_versions')
228 files changed, 2195 insertions, 2219 deletions
diff --git a/apps/files_versions/appinfo/info.xml b/apps/files_versions/appinfo/info.xml index 7d0393883cf..7bd11e40cd8 100644 --- a/apps/files_versions/appinfo/info.xml +++ b/apps/files_versions/appinfo/info.xml @@ -13,7 +13,7 @@ This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions. In addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation. </description> - <version>1.23.0</version> + <version>1.25.0</version> <licence>agpl</licence> <author>Frank Karlitschek</author> <author>Bjoern Schiessle</author> @@ -28,7 +28,7 @@ <category>files</category> <bugs>https://github.com/nextcloud/server/issues</bugs> <dependencies> - <nextcloud min-version="30" max-version="30"/> + <nextcloud min-version="32" max-version="32"/> </dependencies> <background-jobs> diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php index bce2c8faead..22ded5e8723 100644 --- a/apps/files_versions/appinfo/routes.php +++ b/apps/files_versions/appinfo/routes.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -6,9 +7,7 @@ */ namespace OCA\Files_Versions\AppInfo; -/** @var Application $application */ -$application = \OC::$server->query(Application::class); -$application->registerRoutes($this, [ +return [ 'routes' => [ [ 'name' => 'Preview#getPreview', @@ -16,12 +15,4 @@ $application->registerRoutes($this, [ 'verb' => 'GET', ], ], -]); - -/** @var $this \OCP\Route\IRouter */ -$this->create('files_versions_download', 'apps/files_versions/download.php') - ->actionInclude('files_versions/download.php'); -$this->create('files_versions_ajax_getVersions', 'apps/files_versions/ajax/getVersions.php') - ->actionInclude('files_versions/ajax/getVersions.php'); -$this->create('files_versions_ajax_rollbackVersion', 'apps/files_versions/ajax/rollbackVersion.php') - ->actionInclude('files_versions/ajax/rollbackVersion.php'); +]; diff --git a/apps/files_versions/composer/composer/autoload_classmap.php b/apps/files_versions/composer/composer/autoload_classmap.php index 94256f79da1..27e68decdcc 100644 --- a/apps/files_versions/composer/composer/autoload_classmap.php +++ b/apps/files_versions/composer/composer/autoload_classmap.php @@ -17,8 +17,11 @@ return array( 'OCA\\Files_Versions\\Db\\VersionEntity' => $baseDir . '/../lib/Db/VersionEntity.php', 'OCA\\Files_Versions\\Db\\VersionsMapper' => $baseDir . '/../lib/Db/VersionsMapper.php', 'OCA\\Files_Versions\\Events\\CreateVersionEvent' => $baseDir . '/../lib/Events/CreateVersionEvent.php', + 'OCA\\Files_Versions\\Events\\VersionCreatedEvent' => $baseDir . '/../lib/Events/VersionCreatedEvent.php', + 'OCA\\Files_Versions\\Events\\VersionRestoredEvent' => $baseDir . '/../lib/Events/VersionRestoredEvent.php', 'OCA\\Files_Versions\\Expiration' => $baseDir . '/../lib/Expiration.php', 'OCA\\Files_Versions\\Listener\\FileEventsListener' => $baseDir . '/../lib/Listener/FileEventsListener.php', + 'OCA\\Files_Versions\\Listener\\LegacyRollbackListener' => $baseDir . '/../lib/Listener/LegacyRollbackListener.php', 'OCA\\Files_Versions\\Listener\\LoadAdditionalListener' => $baseDir . '/../lib/Listener/LoadAdditionalListener.php', 'OCA\\Files_Versions\\Listener\\LoadSidebarListener' => $baseDir . '/../lib/Listener/LoadSidebarListener.php', 'OCA\\Files_Versions\\Listener\\VersionAuthorListener' => $baseDir . '/../lib/Listener/VersionAuthorListener.php', diff --git a/apps/files_versions/composer/composer/autoload_static.php b/apps/files_versions/composer/composer/autoload_static.php index 1ac235d936d..8ecc1cb0137 100644 --- a/apps/files_versions/composer/composer/autoload_static.php +++ b/apps/files_versions/composer/composer/autoload_static.php @@ -32,8 +32,11 @@ class ComposerStaticInitFiles_Versions 'OCA\\Files_Versions\\Db\\VersionEntity' => __DIR__ . '/..' . '/../lib/Db/VersionEntity.php', 'OCA\\Files_Versions\\Db\\VersionsMapper' => __DIR__ . '/..' . '/../lib/Db/VersionsMapper.php', 'OCA\\Files_Versions\\Events\\CreateVersionEvent' => __DIR__ . '/..' . '/../lib/Events/CreateVersionEvent.php', + 'OCA\\Files_Versions\\Events\\VersionCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/VersionCreatedEvent.php', + 'OCA\\Files_Versions\\Events\\VersionRestoredEvent' => __DIR__ . '/..' . '/../lib/Events/VersionRestoredEvent.php', 'OCA\\Files_Versions\\Expiration' => __DIR__ . '/..' . '/../lib/Expiration.php', 'OCA\\Files_Versions\\Listener\\FileEventsListener' => __DIR__ . '/..' . '/../lib/Listener/FileEventsListener.php', + 'OCA\\Files_Versions\\Listener\\LegacyRollbackListener' => __DIR__ . '/..' . '/../lib/Listener/LegacyRollbackListener.php', 'OCA\\Files_Versions\\Listener\\LoadAdditionalListener' => __DIR__ . '/..' . '/../lib/Listener/LoadAdditionalListener.php', 'OCA\\Files_Versions\\Listener\\LoadSidebarListener' => __DIR__ . '/..' . '/../lib/Listener/LoadSidebarListener.php', 'OCA\\Files_Versions\\Listener\\VersionAuthorListener' => __DIR__ . '/..' . '/../lib/Listener/VersionAuthorListener.php', diff --git a/apps/files_versions/img/app-dark.svg b/apps/files_versions/img/app-dark.svg index 52659c4b1c5..ecddb64ce3a 100644 --- a/apps/files_versions/img/app-dark.svg +++ b/apps/files_versions/img/app-dark.svg @@ -1 +1 @@ -<svg viewBox="0 0 16 16" height="16" width="16" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M12 14c-.55 0-1.021-.196-1.412-.587A1.927 1.927 0 0 1 10 12c0-.55.196-1.021.588-1.413A1.926 1.926 0 0 1 12 10c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413a1.93 1.93 0 0 1-.587 1.413A1.93 1.93 0 0 1 12 14Zm0 7c-2.317 0-4.325-.762-6.025-2.287C4.275 17.188 3.3 15.283 3.05 13H5.1c.233 1.733 1.004 3.167 2.313 4.3C8.721 18.433 10.25 19 12 19c1.95 0 3.604-.679 4.963-2.037C18.321 15.604 19 13.95 19 12c0-1.95-.679-3.604-2.037-4.963C15.604 5.679 13.95 5 12 5c-1.15 0-2.225.267-3.225.8A7.428 7.428 0 0 0 6.25 8H9v2H3V4h2v2.35a8.726 8.726 0 0 1 3.113-2.475A8.932 8.932 0 0 1 12 3a8.71 8.71 0 0 1 3.513.712 9.187 9.187 0 0 1 2.85 1.925 9.17 9.17 0 0 1 1.925 2.85A8.71 8.71 0 0 1 21 12c0 1.25-.237 2.421-.712 3.512a9.162 9.162 0 0 1-1.925 2.851 9.17 9.17 0 0 1-2.85 1.925A8.71 8.71 0 0 1 12 21Z" style="fill-rule:nonzero" transform="matrix(.77778 0 0 .77778 -1.333 -1.333)"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px"><path d="M479.79-408Q450-408 429-429.21t-21-51Q408-510 429.21-531t51-21Q510-552 531-530.79t21 51Q552-450 530.79-429t-51 21Zm.21 264q-140 0-238.5-98T144-480h72q2 110 78.5 187T480-216q110.31 0 187.16-76.78 76.84-76.78 76.84-187T667.16-667Q590.31-744 480-744q-59 0-111.5 25.5T277-648h107v72H144v-240h72v130q47.91-62.09 116.95-96.04Q402-816 480-816q70 0 131.13 26.6 61.14 26.6 106.4 71.87 45.27 45.26 71.87 106.4Q816-550 816-480t-26.6 131.13q-26.6 61.14-71.87 106.4-45.26 45.27-106.4 71.87Q550-144 480-144Z"/></svg>
\ No newline at end of file diff --git a/apps/files_versions/img/app.svg b/apps/files_versions/img/app.svg index b493047c5ef..651ed400e32 100644 --- a/apps/files_versions/img/app.svg +++ b/apps/files_versions/img/app.svg @@ -1 +1 @@ -<svg viewBox="0 0 16 16" height="16" width="16" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M12 14c-.55 0-1.021-.196-1.412-.587A1.927 1.927 0 0 1 10 12c0-.55.196-1.021.588-1.413A1.926 1.926 0 0 1 12 10c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413a1.93 1.93 0 0 1-.587 1.413A1.93 1.93 0 0 1 12 14Zm0 7c-2.317 0-4.325-.762-6.025-2.287C4.275 17.188 3.3 15.283 3.05 13H5.1c.233 1.733 1.004 3.167 2.313 4.3C8.721 18.433 10.25 19 12 19c1.95 0 3.604-.679 4.963-2.037C18.321 15.604 19 13.95 19 12c0-1.95-.679-3.604-2.037-4.963C15.604 5.679 13.95 5 12 5c-1.15 0-2.225.267-3.225.8A7.428 7.428 0 0 0 6.25 8H9v2H3V4h2v2.35a8.726 8.726 0 0 1 3.113-2.475A8.932 8.932 0 0 1 12 3a8.71 8.71 0 0 1 3.513.712 9.187 9.187 0 0 1 2.85 1.925 9.17 9.17 0 0 1 1.925 2.85A8.71 8.71 0 0 1 21 12c0 1.25-.237 2.421-.712 3.512a9.162 9.162 0 0 1-1.925 2.851 9.17 9.17 0 0 1-2.85 1.925A8.71 8.71 0 0 1 12 21Z" style="fill:#fff;fill-rule:nonzero" transform="matrix(.77778 0 0 .77778 -1.333 -1.333)"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px" fill="#fff"><path d="M479.79-408Q450-408 429-429.21t-21-51Q408-510 429.21-531t51-21Q510-552 531-530.79t21 51Q552-450 530.79-429t-51 21Zm.21 264q-140 0-238.5-98T144-480h72q2 110 78.5 187T480-216q110.31 0 187.16-76.78 76.84-76.78 76.84-187T667.16-667Q590.31-744 480-744q-59 0-111.5 25.5T277-648h107v72H144v-240h72v130q47.91-62.09 116.95-96.04Q402-816 480-816q70 0 131.13 26.6 61.14 26.6 106.4 71.87 45.27 45.26 71.87 106.4Q816-550 816-480t-26.6 131.13q-26.6 61.14-71.87 106.4-45.26 45.27-106.4 71.87Q550-144 480-144Z"/></svg>
\ No newline at end of file diff --git a/apps/files_versions/l10n/af.js b/apps/files_versions/l10n/af.js deleted file mode 100644 index 7986f018877..00000000000 --- a/apps/files_versions/l10n/af.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Weergawes", - "Failed to revert {file} to revision {timestamp}." : "Kon nie {file} na {timestamp} se hersiening terugstel nie.", - "_%n byte_::_%n bytes_" : ["%n greep","%n grepe"], - "Restore" : "Herstel" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/af.json b/apps/files_versions/l10n/af.json deleted file mode 100644 index 23f30920b9e..00000000000 --- a/apps/files_versions/l10n/af.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Weergawes", - "Failed to revert {file} to revision {timestamp}." : "Kon nie {file} na {timestamp} se hersiening terugstel nie.", - "_%n byte_::_%n bytes_" : ["%n greep","%n grepe"], - "Restore" : "Herstel" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/ar.js b/apps/files_versions/l10n/ar.js index 34dcd302af6..318ca0dbfe2 100644 --- a/apps/files_versions/l10n/ar.js +++ b/apps/files_versions/l10n/ar.js @@ -1,28 +1,29 @@ OC.L10N.register( "files_versions", { - "Versions" : "النُّسَخ", + "Versions" : "النسخ", "This application automatically maintains older versions of files that are changed." : "هذا التطبيق يقوم تلقائيا بحفظ النسخ الأقدم من الملفات التي يتم تعديلها.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "يحتفظ هذا التطبيق تلقائيًا بالنُّسخ القديمة من الملفات بعد تعديلها. عند تمكينه، يتم توفير مجلد الإصدارات المخفية في دليل كل مستخدم و يتم استخدامه لتخزين النسخ الأقدم للملفات. يمكن للمستخدم الرجوع إلى نسخة أقدم من خلال واجهة الويب في أي وقت. حيث يصبح الملف المستبدل نسخةً. يقوم التطبيق تلقائيًا بإدارة مجلد النُّسخ لضمان عدم نفاد الحصة النسبية للحساب بسبب النُّسخ. \t\t\nبالإضافة إلى انتهاء صلاحية النُّسخ، يتأكد تطبيق النُّسخ من عدم استخدام أكثر من 50% من المساحة المجانية المتوفرة حاليًا للحساب لغرض الاحتفاظ بالنُّسخ. إذا تجاوزت مساحة تخزين النُّسخ المخزنة هذا الحد، عندها يقوم التطبيق بحذف النُّسخ الأقدم أولاً حتى ترجع مساحة التخزين إلى الحد المسموح به. مزيد من المعلومات في توثيق التطبيق.", + "Current version" : "النسخة الحالية", + "Initial version" : "النسخة الأساسية", + "You" : "أنت", + "Actions for version from {versionHumanExplicitDate}" : "إجراءات على النسخة من {versionHumanExplicitDate}", "Name this version" : "أعط اسماً لهذه النسخة", - "Edit version name" : "عدّل اسم النسخة", + "Edit version name" : "تعديل اسم النسخة", "Compare to current version" : "قارِن مع النسخة الحاليّة", "Restore version" : "استعادة النسخة", "Download version" : "تنزيل النسخة", "Delete version" : "حذف النسخة", - "Current version" : "النسخة الحالية", - "Initial version" : "النسخة الأساسية", - "Version name" : "اسم النسخة", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "النُّسخ المُسمّاة محفوظة و مُستثناة من التنظيف التلقائي عند تضاؤل المٌتاح من الحصة التخزينية.", + "Cancel" : "إلغاء", "Remove version name" : "إلغ اسم النسخة", "Save version name" : "إحفظ اسم النسخة", + "Version name" : "اسم النسخة", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "النسخ المسماة محفوظة ومستثناة من التنظيف التلقائي عند امتلاء الحصة التخزينية الخاصة بك.", "Initial version restored" : "استعادة النسخة الأساسية", "Version restored" : "تمّت استعادة النسخة", "Could not restore version" : "تعذّرت استعادة النسخة", "Could not set version label" : "تعذّر تعيين تسمية للنسخة", "Could not delete version" : "تعذّر حذف النسخة", - "${version.label} restored" : "تمّت استعادة ${version.label} ", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "هذا التطبيق يقوم تلقائياً بحفظ النسخ الأقدم من الملفات التي يتم تعديلها. عند تفعيله، يتم توفير مُجلد مخفي في دليل المستخدم لحفظ النسخ الأقدم للملفات. و يمكن للمستخدم العودة لأي نسخة قديمة من الملف من خلال الشاشة في أي لحظة. و حينها يتم نقل النسخة الأقدم المحفوظة لتصبح هي النسخة العامة و بالمقابل يتم نسخ النسخة العاملة لتصبح ضمن النُّسخ الأقدم. \nلا يسمح النظام بأن تتجاوز مساحة تخزين النُّسخ الأقدم 50% من حصة المستخدم المُتاحة. عند تضاؤل مساحة التخزين المُتاحة من حصة المستخدم، يقوم النظام بحذف النُّسخ الأقدم فالأقدم بحيث لا تقل حصة لا تشغل النُّسخ الأقدم أكثر من 50% من حصة المستخدم في جميع الأحوال. للمزيد؛ أنظر توثيق النُّسخ Version documenation.", - "Could not set version name" : "تعذّر تعيين اسم للنسخة" + "File versions" : "إصدارات الملف" }, "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_versions/l10n/ar.json b/apps/files_versions/l10n/ar.json index e5ad118c904..9473ac90f25 100644 --- a/apps/files_versions/l10n/ar.json +++ b/apps/files_versions/l10n/ar.json @@ -1,26 +1,27 @@ { "translations": { - "Versions" : "النُّسَخ", + "Versions" : "النسخ", "This application automatically maintains older versions of files that are changed." : "هذا التطبيق يقوم تلقائيا بحفظ النسخ الأقدم من الملفات التي يتم تعديلها.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "يحتفظ هذا التطبيق تلقائيًا بالنُّسخ القديمة من الملفات بعد تعديلها. عند تمكينه، يتم توفير مجلد الإصدارات المخفية في دليل كل مستخدم و يتم استخدامه لتخزين النسخ الأقدم للملفات. يمكن للمستخدم الرجوع إلى نسخة أقدم من خلال واجهة الويب في أي وقت. حيث يصبح الملف المستبدل نسخةً. يقوم التطبيق تلقائيًا بإدارة مجلد النُّسخ لضمان عدم نفاد الحصة النسبية للحساب بسبب النُّسخ. \t\t\nبالإضافة إلى انتهاء صلاحية النُّسخ، يتأكد تطبيق النُّسخ من عدم استخدام أكثر من 50% من المساحة المجانية المتوفرة حاليًا للحساب لغرض الاحتفاظ بالنُّسخ. إذا تجاوزت مساحة تخزين النُّسخ المخزنة هذا الحد، عندها يقوم التطبيق بحذف النُّسخ الأقدم أولاً حتى ترجع مساحة التخزين إلى الحد المسموح به. مزيد من المعلومات في توثيق التطبيق.", + "Current version" : "النسخة الحالية", + "Initial version" : "النسخة الأساسية", + "You" : "أنت", + "Actions for version from {versionHumanExplicitDate}" : "إجراءات على النسخة من {versionHumanExplicitDate}", "Name this version" : "أعط اسماً لهذه النسخة", - "Edit version name" : "عدّل اسم النسخة", + "Edit version name" : "تعديل اسم النسخة", "Compare to current version" : "قارِن مع النسخة الحاليّة", "Restore version" : "استعادة النسخة", "Download version" : "تنزيل النسخة", "Delete version" : "حذف النسخة", - "Current version" : "النسخة الحالية", - "Initial version" : "النسخة الأساسية", - "Version name" : "اسم النسخة", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "النُّسخ المُسمّاة محفوظة و مُستثناة من التنظيف التلقائي عند تضاؤل المٌتاح من الحصة التخزينية.", + "Cancel" : "إلغاء", "Remove version name" : "إلغ اسم النسخة", "Save version name" : "إحفظ اسم النسخة", + "Version name" : "اسم النسخة", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "النسخ المسماة محفوظة ومستثناة من التنظيف التلقائي عند امتلاء الحصة التخزينية الخاصة بك.", "Initial version restored" : "استعادة النسخة الأساسية", "Version restored" : "تمّت استعادة النسخة", "Could not restore version" : "تعذّرت استعادة النسخة", "Could not set version label" : "تعذّر تعيين تسمية للنسخة", "Could not delete version" : "تعذّر حذف النسخة", - "${version.label} restored" : "تمّت استعادة ${version.label} ", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "هذا التطبيق يقوم تلقائياً بحفظ النسخ الأقدم من الملفات التي يتم تعديلها. عند تفعيله، يتم توفير مُجلد مخفي في دليل المستخدم لحفظ النسخ الأقدم للملفات. و يمكن للمستخدم العودة لأي نسخة قديمة من الملف من خلال الشاشة في أي لحظة. و حينها يتم نقل النسخة الأقدم المحفوظة لتصبح هي النسخة العامة و بالمقابل يتم نسخ النسخة العاملة لتصبح ضمن النُّسخ الأقدم. \nلا يسمح النظام بأن تتجاوز مساحة تخزين النُّسخ الأقدم 50% من حصة المستخدم المُتاحة. عند تضاؤل مساحة التخزين المُتاحة من حصة المستخدم، يقوم النظام بحذف النُّسخ الأقدم فالأقدم بحيث لا تقل حصة لا تشغل النُّسخ الأقدم أكثر من 50% من حصة المستخدم في جميع الأحوال. للمزيد؛ أنظر توثيق النُّسخ Version documenation.", - "Could not set version name" : "تعذّر تعيين اسم للنسخة" + "File versions" : "إصدارات الملف" },"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_versions/l10n/ast.js b/apps/files_versions/l10n/ast.js index 16ec0699a5d..4264f046b1f 100644 --- a/apps/files_versions/l10n/ast.js +++ b/apps/files_versions/l10n/ast.js @@ -4,25 +4,24 @@ OC.L10N.register( "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación caltién automáticamente les versiones antigües de los ficheros que camudaron.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación caltién automáticamente les versiones antigües de los ficheros que camudaron. Cuando s'activa, crease una carpeta de versiones anubrida p'atroxar les versiones antigües de los ficheros. Los usuarios puen recuperar una versión anterior pente la interfaz web en cualesquier momentu y el ficheru trocáu conviértese nun versión. L'aplicación xestiona automáticamente la carpeta de versiones p'asegurar de que la cuenta nun escosa la cuota pola mor de les versiones.\n\t\tAmás de la caducidá de les versiones, l'aplicación Versiones garantiza qu'enxamás nun s'usa más del 50% d'espaciu llibre disponible pa la cuenta. Si les versiones atroxaes superen esta llende, l'aplicación va desaniciar les primeres versiones más antigües hasta que se respete esta llende. Tienes más información disponible na documentación de Versiones.", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Tu", "Name this version" : "Nomar esta versión", "Edit version name" : "Editar el nome de la versión", "Compare to current version" : "Comparar cola versión actual", "Restore version" : "Restaurar la versión", "Download version" : "Baxar la versión", "Delete version" : "Desaniciar la versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nome de la versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versiones con nome caltiénense y esclúinse de los borraos automáticos cuando la cuota del discu ta completa.", + "Cancel" : "Encaboxar", "Remove version name" : "Quitar el nome de la versión", "Save version name" : "Guardar el nome de la versiones", + "Version name" : "Nome de la versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versiones con nome caltiénense y esclúinse de los borraos automáticos cuando la cuota del discu ta completa.", "Initial version restored" : "Restauróse la versión inicial", "Version restored" : "Restauróse la versión", "Could not restore version" : "Nun se pudo restaurar la versión", "Could not set version label" : "Nun se pudo afitar la etiqueta de la versión", - "Could not delete version" : "Nun se pudo desaniciar la versión", - "${version.label} restored" : "Restauróse «${version.label}»", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación caltién automáticamente les versiones antigües de los ficheros que camudaron. Cuando s'activa, crease una carpeta de versiones anubrida p'atroxar les versiones antigües de los ficheros. Los usuarios puen recuperar una versión anterior pente la interfaz web en cualesquier momentu y el ficheru trocáu conviértese nun versión. L'aplicación xestiona automáticamente la carpeta de versiones p'asegurar de que l'usuariu nun escosa la cuota pola mor de les versiones.\n\t\tAmás de la caducidá de les versiones, l'aplicación Versiones garantiza qu'enxamás nun s'usa más del 50% d'espaciu llibre disponible pal usuariu. Si les versiones atroxaes superen esta llende, l'aplicación va desaniciar les primeres versiones más antigües hasta que se respete esta llende. Tienes más información disponible na documentación de Versiones.", - "Could not set version name" : "Nun se pudo afitar el nome de la versión" + "Could not delete version" : "Nun se pudo desaniciar la versión" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/ast.json b/apps/files_versions/l10n/ast.json index 8da4369a07c..27cdb853abc 100644 --- a/apps/files_versions/l10n/ast.json +++ b/apps/files_versions/l10n/ast.json @@ -2,25 +2,24 @@ "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación caltién automáticamente les versiones antigües de los ficheros que camudaron.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación caltién automáticamente les versiones antigües de los ficheros que camudaron. Cuando s'activa, crease una carpeta de versiones anubrida p'atroxar les versiones antigües de los ficheros. Los usuarios puen recuperar una versión anterior pente la interfaz web en cualesquier momentu y el ficheru trocáu conviértese nun versión. L'aplicación xestiona automáticamente la carpeta de versiones p'asegurar de que la cuenta nun escosa la cuota pola mor de les versiones.\n\t\tAmás de la caducidá de les versiones, l'aplicación Versiones garantiza qu'enxamás nun s'usa más del 50% d'espaciu llibre disponible pa la cuenta. Si les versiones atroxaes superen esta llende, l'aplicación va desaniciar les primeres versiones más antigües hasta que se respete esta llende. Tienes más información disponible na documentación de Versiones.", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Tu", "Name this version" : "Nomar esta versión", "Edit version name" : "Editar el nome de la versión", "Compare to current version" : "Comparar cola versión actual", "Restore version" : "Restaurar la versión", "Download version" : "Baxar la versión", "Delete version" : "Desaniciar la versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nome de la versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versiones con nome caltiénense y esclúinse de los borraos automáticos cuando la cuota del discu ta completa.", + "Cancel" : "Encaboxar", "Remove version name" : "Quitar el nome de la versión", "Save version name" : "Guardar el nome de la versiones", + "Version name" : "Nome de la versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versiones con nome caltiénense y esclúinse de los borraos automáticos cuando la cuota del discu ta completa.", "Initial version restored" : "Restauróse la versión inicial", "Version restored" : "Restauróse la versión", "Could not restore version" : "Nun se pudo restaurar la versión", "Could not set version label" : "Nun se pudo afitar la etiqueta de la versión", - "Could not delete version" : "Nun se pudo desaniciar la versión", - "${version.label} restored" : "Restauróse «${version.label}»", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación caltién automáticamente les versiones antigües de los ficheros que camudaron. Cuando s'activa, crease una carpeta de versiones anubrida p'atroxar les versiones antigües de los ficheros. Los usuarios puen recuperar una versión anterior pente la interfaz web en cualesquier momentu y el ficheru trocáu conviértese nun versión. L'aplicación xestiona automáticamente la carpeta de versiones p'asegurar de que l'usuariu nun escosa la cuota pola mor de les versiones.\n\t\tAmás de la caducidá de les versiones, l'aplicación Versiones garantiza qu'enxamás nun s'usa más del 50% d'espaciu llibre disponible pal usuariu. Si les versiones atroxaes superen esta llende, l'aplicación va desaniciar les primeres versiones más antigües hasta que se respete esta llende. Tienes más información disponible na documentación de Versiones.", - "Could not set version name" : "Nun se pudo afitar el nome de la versión" + "Could not delete version" : "Nun se pudo desaniciar la versión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/az.js b/apps/files_versions/l10n/az.js deleted file mode 100644 index 34c9ddf1c9b..00000000000 --- a/apps/files_versions/l10n/az.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiyaları", - "Failed to revert {file} to revision {timestamp}." : "{timestamp} yenidən baxılması üçün {file} geri qaytarmaq mümkün olmadı.", - "Restore" : "Geri qaytar", - "No other versions available" : "Başqa versiyalar mövcud deyil" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/az.json b/apps/files_versions/l10n/az.json deleted file mode 100644 index dd67d6ca403..00000000000 --- a/apps/files_versions/l10n/az.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiyaları", - "Failed to revert {file} to revision {timestamp}." : "{timestamp} yenidən baxılması üçün {file} geri qaytarmaq mümkün olmadı.", - "Restore" : "Geri qaytar", - "No other versions available" : "Başqa versiyalar mövcud deyil" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/be.js b/apps/files_versions/l10n/be.js new file mode 100644 index 00000000000..7e5200ecb83 --- /dev/null +++ b/apps/files_versions/l10n/be.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "files_versions", + { + "Versions" : "Версіі", + "Current version" : "Бягучая версія", + "You" : "Вы", + "Delete version" : "Выдаліць версію", + "Cancel" : "Скасаваць", + "Remove version name" : "Выдаліць назву версіі", + "Save version name" : "Захаваць назву версіі", + "Version name" : "Назва версіі", + "Version restored" : "Версія адноўлена", + "Could not restore version" : "Не ўдалося аднавіць версію", + "Could not delete version" : "Не ўдалося выдаліць версію", + "File versions" : "Версіі файла" +}, +"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_versions/l10n/be.json b/apps/files_versions/l10n/be.json new file mode 100644 index 00000000000..27e4f646a97 --- /dev/null +++ b/apps/files_versions/l10n/be.json @@ -0,0 +1,15 @@ +{ "translations": { + "Versions" : "Версіі", + "Current version" : "Бягучая версія", + "You" : "Вы", + "Delete version" : "Выдаліць версію", + "Cancel" : "Скасаваць", + "Remove version name" : "Выдаліць назву версіі", + "Save version name" : "Захаваць назву версіі", + "Version name" : "Назва версіі", + "Version restored" : "Версія адноўлена", + "Could not restore version" : "Не ўдалося аднавіць версію", + "Could not delete version" : "Не ўдалося выдаліць версію", + "File versions" : "Версіі файла" +},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" +}
\ No newline at end of file diff --git a/apps/files_versions/l10n/bg.js b/apps/files_versions/l10n/bg.js index ecf80236bb5..94fbc38c830 100644 --- a/apps/files_versions/l10n/bg.js +++ b/apps/files_versions/l10n/bg.js @@ -3,22 +3,20 @@ OC.L10N.register( { "Versions" : "Версии", "This application automatically maintains older versions of files that are changed." : "Това приложение автоматично поддържа по-стари версии на файлове, които са променени.", + "Current version" : "Текуща версия", "Name this version" : "Наименуване на тази версия", "Edit version name" : "Редактиране на името на версия", "Restore version" : "Възстановяване на версия", "Download version" : "Изтегляне на версия", "Delete version" : "Изтриване на версия", - "Current version" : "Текуща версия", - "Version name" : "Име на версия", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните версии се запазват и се изключват от автоматичните почиствания, когато квотата за хранилище е пълна.", + "Cancel" : "Отказ", "Remove version name" : "Премахване на име на версия", "Save version name" : "Записване на име на версия", + "Version name" : "Име на версия", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните версии се запазват и се изключват от автоматичните почиствания, когато квотата за хранилище е пълна.", "Initial version restored" : "Възстановяване на първоначалната версия", "Version restored" : "Версията е възстановена", "Could not restore version" : "Версията не можа да се възстанови", - "Could not delete version" : "Версията не можа да се изтрие", - "${version.label} restored" : "${version.label} възстановен/а/", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Това приложение автоматично поддържа по-стари версии на файлове, които са променени. Когато е активирана, папката със скрити версии се предоставя в директорията на всеки потребител и се използва за съхраняване на стари версии на файлове. Потребителят може да се върне към по-стара версия чрез уеб интерфейса по всяко време, като замененият файл се превръща във версия. Приложението автоматично управлява папка с версии, за да гарантира, че потребителят няма да изчерпи квотата заради версиите.\nВ допълнение към изтичането на версиите, приложението за версии гарантира, че никога няма да използва повече от 50% от наличното в момента свободно пространство на потребителя. Ако съхранените версии надвишават това ограничение, приложението първо ще изтрие най-старите версии, докато не достигне това ограничение. Повече информация можете да намерите в документацията за версиите.", - "Could not set version name" : "Не можа да се зададе име на версия" + "Could not delete version" : "Версията не можа да се изтрие" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/bg.json b/apps/files_versions/l10n/bg.json index c68a4402cae..52243426e7d 100644 --- a/apps/files_versions/l10n/bg.json +++ b/apps/files_versions/l10n/bg.json @@ -1,22 +1,20 @@ { "translations": { "Versions" : "Версии", "This application automatically maintains older versions of files that are changed." : "Това приложение автоматично поддържа по-стари версии на файлове, които са променени.", + "Current version" : "Текуща версия", "Name this version" : "Наименуване на тази версия", "Edit version name" : "Редактиране на името на версия", "Restore version" : "Възстановяване на версия", "Download version" : "Изтегляне на версия", "Delete version" : "Изтриване на версия", - "Current version" : "Текуща версия", - "Version name" : "Име на версия", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните версии се запазват и се изключват от автоматичните почиствания, когато квотата за хранилище е пълна.", + "Cancel" : "Отказ", "Remove version name" : "Премахване на име на версия", "Save version name" : "Записване на име на версия", + "Version name" : "Име на версия", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните версии се запазват и се изключват от автоматичните почиствания, когато квотата за хранилище е пълна.", "Initial version restored" : "Възстановяване на първоначалната версия", "Version restored" : "Версията е възстановена", "Could not restore version" : "Версията не можа да се възстанови", - "Could not delete version" : "Версията не можа да се изтрие", - "${version.label} restored" : "${version.label} възстановен/а/", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Това приложение автоматично поддържа по-стари версии на файлове, които са променени. Когато е активирана, папката със скрити версии се предоставя в директорията на всеки потребител и се използва за съхраняване на стари версии на файлове. Потребителят може да се върне към по-стара версия чрез уеб интерфейса по всяко време, като замененият файл се превръща във версия. Приложението автоматично управлява папка с версии, за да гарантира, че потребителят няма да изчерпи квотата заради версиите.\nВ допълнение към изтичането на версиите, приложението за версии гарантира, че никога няма да използва повече от 50% от наличното в момента свободно пространство на потребителя. Ако съхранените версии надвишават това ограничение, приложението първо ще изтрие най-старите версии, докато не достигне това ограничение. Повече информация можете да намерите в документацията за версиите.", - "Could not set version name" : "Не можа да се зададе име на версия" + "Could not delete version" : "Версията не можа да се изтрие" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/bn_BD.js b/apps/files_versions/l10n/bn_BD.js deleted file mode 100644 index 4466198c4f3..00000000000 --- a/apps/files_versions/l10n/bn_BD.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "সংষ্করন", - "Failed to revert {file} to revision {timestamp}." : " {file} সংশোধিত {timestamp} এ ফিরে যেতে ব্যার্থ হলো।", - "Restore" : "ফিরিয়ে দাও", - "No other versions available" : "আর কোন সংষ্করণ প্রাপ্তব্য নয়" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/bn_BD.json b/apps/files_versions/l10n/bn_BD.json deleted file mode 100644 index 09ac6eae066..00000000000 --- a/apps/files_versions/l10n/bn_BD.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "সংষ্করন", - "Failed to revert {file} to revision {timestamp}." : " {file} সংশোধিত {timestamp} এ ফিরে যেতে ব্যার্থ হলো।", - "Restore" : "ফিরিয়ে দাও", - "No other versions available" : "আর কোন সংষ্করণ প্রাপ্তব্য নয়" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/br.js b/apps/files_versions/l10n/br.js deleted file mode 100644 index 2b6cc838a27..00000000000 --- a/apps/files_versions/l10n/br.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Stumm", - "This application automatically maintains older versions of files that are changed." : "Ar meziant-man a laosk en un doare otomatek stumm ar resrtoù kozh a vez cheñchet", - "Version" : "Stumm", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ar meziant a dalc'h en un doare otomatek stummoù kozh ar restroù cheñchet. P'az eo aotreet, un teuliad koachet a vez roet e pep teuliad an implijour evit gwarn stummoù kozh ar restr. An implijer a c'hel adkemer ur stumm kozh n'eus forz peseurt amzer dre an etrefas web. Ar meziant a ra war dro teuliad ar stummoù evit bezhañ sur ez eus traouac'h a cQuota gant an implijer.\n\t\tOuzhpenn ar stumm diskarzed, stumm ar meziant a ra ma ne vefe ket implijet muioc'h eget 50% eus a plass vak an implijer. M'a vez dibaset e vo lemmet gant ar meziant ar stumm kozhañ da gentañ. Muioc'h titouriù en dielvadur Versions. ", - "Failed to revert {file} to revision {timestamp}." : "C'hwitet m ar mon en dro {file} evit adober {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n okted","%n okted","%n okted","%n okted","%n octed"], - "Restore" : "Adkrouiñ", - "No other versions available" : "Stumm all ebet kavet" -}, -"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"); diff --git a/apps/files_versions/l10n/br.json b/apps/files_versions/l10n/br.json deleted file mode 100644 index 5ebdc584bee..00000000000 --- a/apps/files_versions/l10n/br.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "Stumm", - "This application automatically maintains older versions of files that are changed." : "Ar meziant-man a laosk en un doare otomatek stumm ar resrtoù kozh a vez cheñchet", - "Version" : "Stumm", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ar meziant a dalc'h en un doare otomatek stummoù kozh ar restroù cheñchet. P'az eo aotreet, un teuliad koachet a vez roet e pep teuliad an implijour evit gwarn stummoù kozh ar restr. An implijer a c'hel adkemer ur stumm kozh n'eus forz peseurt amzer dre an etrefas web. Ar meziant a ra war dro teuliad ar stummoù evit bezhañ sur ez eus traouac'h a cQuota gant an implijer.\n\t\tOuzhpenn ar stumm diskarzed, stumm ar meziant a ra ma ne vefe ket implijet muioc'h eget 50% eus a plass vak an implijer. M'a vez dibaset e vo lemmet gant ar meziant ar stumm kozhañ da gentañ. Muioc'h titouriù en dielvadur Versions. ", - "Failed to revert {file} to revision {timestamp}." : "C'hwitet m ar mon en dro {file} evit adober {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n okted","%n okted","%n okted","%n okted","%n octed"], - "Restore" : "Adkrouiñ", - "No other versions available" : "Stumm all ebet kavet" -},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/bs.js b/apps/files_versions/l10n/bs.js deleted file mode 100644 index 2a971f48b21..00000000000 --- a/apps/files_versions/l10n/bs.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Verzije", - "Failed to revert {file} to revision {timestamp}." : "Nije uspelo vraćanje {file} na reviziju {timestamp}.", - "Restore" : "Obnovi", - "No other versions available" : "Druge verzije su nedostupne" -}, -"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_versions/l10n/bs.json b/apps/files_versions/l10n/bs.json deleted file mode 100644 index c4c20540e14..00000000000 --- a/apps/files_versions/l10n/bs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Verzije", - "Failed to revert {file} to revision {timestamp}." : "Nije uspelo vraćanje {file} na reviziju {timestamp}.", - "Restore" : "Obnovi", - "No other versions available" : "Druge verzije su nedostupne" -},"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_versions/l10n/ca.js b/apps/files_versions/l10n/ca.js index 350f12cd13b..104759c334a 100644 --- a/apps/files_versions/l10n/ca.js +++ b/apps/files_versions/l10n/ca.js @@ -4,25 +4,25 @@ OC.L10N.register( "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "Aquesta aplicació conserva automàticament les versions antigues dels fitxers modificats.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aquesta aplicació conserva automàticament les versions antigues dels fitxers modificats. Si s'habilita, es crearà una carpeta de versions oculta a cada carpeta del compte i s'utilitzarà per a emmagatzemar les versions antigues dels fitxers. Els usuaris poden recuperar una versió anterior a través de la interfície web en qualsevol moment i el fitxer substituït es converteix en una versió. L'aplicació administra automàticament la carpeta de versions per a assegurar-se que l'usuari no es quedi sense espai per culpa de les versions.\n\t\tA més del venciment de les versions, l'aplicació Versions garanteix que no s'utilitzarà mai més del 50% de l'espai lliure disponible actualment per al compte. Si les versions emmagatzemades superen aquest límit, l'aplicació suprimirà primer les versions més antigues fins que es respecti aquest límit. Podeu trobar més informació a la documentació de Versions.", + "Current version" : "Versió actual", + "Initial version" : "Versió inicial", + "You" : "Vós", + "Actions for version from {versionHumanExplicitDate}" : "Accions per a la versió a partir de {versionHumanExplicitDate}", "Name this version" : "Anomena aquesta versió", "Edit version name" : "Edita el nom de la versió", "Compare to current version" : "Compara amb la versió actual", "Restore version" : "Recupera la versió", "Download version" : "Baixa la versió", "Delete version" : "Suprimeix la versió", - "Current version" : "Versió actual", - "Initial version" : "Versió inicial", - "Version name" : "Nom de la versió", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions amb nom es conserven i s'exclouen de les neteges automàtiques quan teniu l'emmagatzematge ple.", + "Cancel" : "Cancel·la", "Remove version name" : "Suprimeix el nom de la versió", "Save version name" : "Desa el nom de la versió", + "Version name" : "Nom de la versió", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions amb nom es conserven i s'exclouen de les neteges automàtiques quan teniu l'emmagatzematge ple.", "Initial version restored" : "S'ha recuperat la versió inicial", "Version restored" : "S'ha recuperat la versió", "Could not restore version" : "No s'ha pogut recuperar la versió", "Could not set version label" : "No s'ha pogut definir l'etiqueta de la versió", - "Could not delete version" : "No s'ha pogut suprimir la versió", - "${version.label} restored" : "S'ha recuperat la versió ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aquesta aplicació conserva automàticament les versions antigues dels fitxers modificats. Si s'activa, es crearà una carpeta de versions oculta a cada carpeta dels usuaris i s'utilitzarà per a emmagatzemar les versions antigues dels fitxers. Els usuaris poden recuperar una versió anterior a través de la interfície web en qualsevol moment i el fitxer substituït es converteix en una versió. L'aplicació administra automàticament la carpeta de versions per a assegurar-se que l'usuari no es quedi sense espai per culpa de les versions.\n\t\tA més del venciment de les versions, l'aplicació Versions garanteix que no s'utilitzarà mai més del 50% de l'espai lliure disponible actualment per a l'usuari. Si les versions emmagatzemades superen aquest límit, l'aplicació suprimirà primer les versions més antigues fins que es respecti aquest límit. Podeu trobar més informació a la documentació de Versions.", - "Could not set version name" : "No s'ha pogut definir el nom de la versió" + "Could not delete version" : "No s'ha pogut suprimir la versió" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/ca.json b/apps/files_versions/l10n/ca.json index e089c8f4b16..f4818d3c7ad 100644 --- a/apps/files_versions/l10n/ca.json +++ b/apps/files_versions/l10n/ca.json @@ -2,25 +2,25 @@ "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "Aquesta aplicació conserva automàticament les versions antigues dels fitxers modificats.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aquesta aplicació conserva automàticament les versions antigues dels fitxers modificats. Si s'habilita, es crearà una carpeta de versions oculta a cada carpeta del compte i s'utilitzarà per a emmagatzemar les versions antigues dels fitxers. Els usuaris poden recuperar una versió anterior a través de la interfície web en qualsevol moment i el fitxer substituït es converteix en una versió. L'aplicació administra automàticament la carpeta de versions per a assegurar-se que l'usuari no es quedi sense espai per culpa de les versions.\n\t\tA més del venciment de les versions, l'aplicació Versions garanteix que no s'utilitzarà mai més del 50% de l'espai lliure disponible actualment per al compte. Si les versions emmagatzemades superen aquest límit, l'aplicació suprimirà primer les versions més antigues fins que es respecti aquest límit. Podeu trobar més informació a la documentació de Versions.", + "Current version" : "Versió actual", + "Initial version" : "Versió inicial", + "You" : "Vós", + "Actions for version from {versionHumanExplicitDate}" : "Accions per a la versió a partir de {versionHumanExplicitDate}", "Name this version" : "Anomena aquesta versió", "Edit version name" : "Edita el nom de la versió", "Compare to current version" : "Compara amb la versió actual", "Restore version" : "Recupera la versió", "Download version" : "Baixa la versió", "Delete version" : "Suprimeix la versió", - "Current version" : "Versió actual", - "Initial version" : "Versió inicial", - "Version name" : "Nom de la versió", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions amb nom es conserven i s'exclouen de les neteges automàtiques quan teniu l'emmagatzematge ple.", + "Cancel" : "Cancel·la", "Remove version name" : "Suprimeix el nom de la versió", "Save version name" : "Desa el nom de la versió", + "Version name" : "Nom de la versió", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions amb nom es conserven i s'exclouen de les neteges automàtiques quan teniu l'emmagatzematge ple.", "Initial version restored" : "S'ha recuperat la versió inicial", "Version restored" : "S'ha recuperat la versió", "Could not restore version" : "No s'ha pogut recuperar la versió", "Could not set version label" : "No s'ha pogut definir l'etiqueta de la versió", - "Could not delete version" : "No s'ha pogut suprimir la versió", - "${version.label} restored" : "S'ha recuperat la versió ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aquesta aplicació conserva automàticament les versions antigues dels fitxers modificats. Si s'activa, es crearà una carpeta de versions oculta a cada carpeta dels usuaris i s'utilitzarà per a emmagatzemar les versions antigues dels fitxers. Els usuaris poden recuperar una versió anterior a través de la interfície web en qualsevol moment i el fitxer substituït es converteix en una versió. L'aplicació administra automàticament la carpeta de versions per a assegurar-se que l'usuari no es quedi sense espai per culpa de les versions.\n\t\tA més del venciment de les versions, l'aplicació Versions garanteix que no s'utilitzarà mai més del 50% de l'espai lliure disponible actualment per a l'usuari. Si les versions emmagatzemades superen aquest límit, l'aplicació suprimirà primer les versions més antigues fins que es respecti aquest límit. Podeu trobar més informació a la documentació de Versions.", - "Could not set version name" : "No s'ha pogut definir el nom de la versió" + "Could not delete version" : "No s'ha pogut suprimir la versió" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/cs.js b/apps/files_versions/l10n/cs.js index b12bdd494d5..b9192c54cf5 100644 --- a/apps/files_versions/l10n/cs.js +++ b/apps/files_versions/l10n/cs.js @@ -3,24 +3,27 @@ OC.L10N.register( { "Versions" : "Verze", "This application automatically maintains older versions of files that are changed." : "Tato aplikace automaticky uchovává starší verze souborů, které se změnily.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Tato aplikace automaticky uchovává starší verze souborů, které se změnily. Když je zapnutá, je ve složce každého uživatele vytvořena skrytá složka pro verze a do ní jsou ukládány staré verze souborů. Uživatel se (prostřednictvím webového rozhraní) kdykoli může vrátit ke starší verzi s tím, že sám nahrazovaný nejnovější soubor se tak stane verzí. Aplikace automaticky spravuje složku s verzemi tak, aby bylo zajištěno, že účet kvůli starým verzím nevyčerpá přidělenou kvótu.\n\t\tKrom konců platností verzí, aplikace Verze zajišťuje, že nikdy nepoužije více než 50% právě dostupného volného prostoru, který má účet k dispozici. Pokud uložené verze přesáhnou tento limit, aplikace smaže ty nejstarší, aby se do tohoto limitu vešla. Podrobnosti naleznete v dokumentaci k aplikaci Verze.", + "Current version" : "Stávající verze", + "Initial version" : "Počáteční verze", + "You" : "Vy", + "Actions for version from {versionHumanExplicitDate}" : "Akce pro verzi od {versionHumanExplicitDate}", "Name this version" : "Nazvat tuto verzi", "Edit version name" : "Upravit název verze", "Compare to current version" : "Porovnat se stávající verzí", "Restore version" : "Obnovit verzi", - "Download version" : "Stáhnout si verzi", + "Download version" : "Stáhnout verzi", "Delete version" : "Smazat verzi", - "Current version" : "Stávající verze", - "Initial version" : "Počáteční verze", - "Version name" : "Název verze", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Výslovně verze jsou trvalé a vynechány z automatického čištění při vyčerpání vaší kvóty na úložišti.", + "Cancel" : "Storno", "Remove version name" : "Odebrat název verze", "Save version name" : "Uložit název verze", + "Version name" : "Název verze", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Výslovně verze jsou trvalé a vynechány z automatického čištění při vyčerpání vaší kvóty na úložišti.", "Initial version restored" : "Počáteční verze obnovena", "Version restored" : "Verze obnovena", "Could not restore version" : "Verzi se nedaří obnovit", + "Could not set version label" : "Nepodařilo se nastavit štítek verze", "Could not delete version" : "Nedaří se smazat verzi", - "${version.label} restored" : "${version.label} obnoveno", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Tato aplikace automaticky uchovává starší verze souborů, které se změnily. Když je zapnutá, je ve složce každého uživatele vytvořena skrytá složka pro verze a do ní jsou ukládány staré verze souborů. Uživatel se (prostřednictvím webového rozhraní) kdykoli může vrátit ke starší verzi s tím, že sám nahrazovaný nejnovější soubor se tak stane verzí. Aplikace automaticky spravuje složku s verzemi tak, aby bylo zajištěno, že uživatel kvůli starým verzím nevyčerpá přidělenou kvótu.\n\t\tKrom konců platností verzí, aplikace Verze zajišťuje, že nikdy nepoužije více než 50% právě dostupného volného prostoru, který má uživatel k dispozici. Pokud uložené verze přesáhnou tento limit, aplikace smaže ty nejstarší, aby se do tohoto limitu vešla. Podrobnosti naleznete v dokumentaci k aplikaci Verze.", - "Could not set version name" : "Nedaří se nastavit název verze" + "File versions" : "Verze souborů" }, "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); diff --git a/apps/files_versions/l10n/cs.json b/apps/files_versions/l10n/cs.json index 1bad3186c1b..1d47a9c69dc 100644 --- a/apps/files_versions/l10n/cs.json +++ b/apps/files_versions/l10n/cs.json @@ -1,24 +1,27 @@ { "translations": { "Versions" : "Verze", "This application automatically maintains older versions of files that are changed." : "Tato aplikace automaticky uchovává starší verze souborů, které se změnily.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Tato aplikace automaticky uchovává starší verze souborů, které se změnily. Když je zapnutá, je ve složce každého uživatele vytvořena skrytá složka pro verze a do ní jsou ukládány staré verze souborů. Uživatel se (prostřednictvím webového rozhraní) kdykoli může vrátit ke starší verzi s tím, že sám nahrazovaný nejnovější soubor se tak stane verzí. Aplikace automaticky spravuje složku s verzemi tak, aby bylo zajištěno, že účet kvůli starým verzím nevyčerpá přidělenou kvótu.\n\t\tKrom konců platností verzí, aplikace Verze zajišťuje, že nikdy nepoužije více než 50% právě dostupného volného prostoru, který má účet k dispozici. Pokud uložené verze přesáhnou tento limit, aplikace smaže ty nejstarší, aby se do tohoto limitu vešla. Podrobnosti naleznete v dokumentaci k aplikaci Verze.", + "Current version" : "Stávající verze", + "Initial version" : "Počáteční verze", + "You" : "Vy", + "Actions for version from {versionHumanExplicitDate}" : "Akce pro verzi od {versionHumanExplicitDate}", "Name this version" : "Nazvat tuto verzi", "Edit version name" : "Upravit název verze", "Compare to current version" : "Porovnat se stávající verzí", "Restore version" : "Obnovit verzi", - "Download version" : "Stáhnout si verzi", + "Download version" : "Stáhnout verzi", "Delete version" : "Smazat verzi", - "Current version" : "Stávající verze", - "Initial version" : "Počáteční verze", - "Version name" : "Název verze", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Výslovně verze jsou trvalé a vynechány z automatického čištění při vyčerpání vaší kvóty na úložišti.", + "Cancel" : "Storno", "Remove version name" : "Odebrat název verze", "Save version name" : "Uložit název verze", + "Version name" : "Název verze", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Výslovně verze jsou trvalé a vynechány z automatického čištění při vyčerpání vaší kvóty na úložišti.", "Initial version restored" : "Počáteční verze obnovena", "Version restored" : "Verze obnovena", "Could not restore version" : "Verzi se nedaří obnovit", + "Could not set version label" : "Nepodařilo se nastavit štítek verze", "Could not delete version" : "Nedaří se smazat verzi", - "${version.label} restored" : "${version.label} obnoveno", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Tato aplikace automaticky uchovává starší verze souborů, které se změnily. Když je zapnutá, je ve složce každého uživatele vytvořena skrytá složka pro verze a do ní jsou ukládány staré verze souborů. Uživatel se (prostřednictvím webového rozhraní) kdykoli může vrátit ke starší verzi s tím, že sám nahrazovaný nejnovější soubor se tak stane verzí. Aplikace automaticky spravuje složku s verzemi tak, aby bylo zajištěno, že uživatel kvůli starým verzím nevyčerpá přidělenou kvótu.\n\t\tKrom konců platností verzí, aplikace Verze zajišťuje, že nikdy nepoužije více než 50% právě dostupného volného prostoru, který má uživatel k dispozici. Pokud uložené verze přesáhnou tento limit, aplikace smaže ty nejstarší, aby se do tohoto limitu vešla. Podrobnosti naleznete v dokumentaci k aplikaci Verze.", - "Could not set version name" : "Nedaří se nastavit název verze" + "File versions" : "Verze souborů" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/cy_GB.js b/apps/files_versions/l10n/cy_GB.js deleted file mode 100644 index e5285e2e157..00000000000 --- a/apps/files_versions/l10n/cy_GB.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Restore" : "Adfer" -}, -"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/files_versions/l10n/cy_GB.json b/apps/files_versions/l10n/cy_GB.json deleted file mode 100644 index 5ad23a5ac6f..00000000000 --- a/apps/files_versions/l10n/cy_GB.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Restore" : "Adfer" -},"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_versions/l10n/da.js b/apps/files_versions/l10n/da.js index 7257bc1d538..7898c6c27b6 100644 --- a/apps/files_versions/l10n/da.js +++ b/apps/files_versions/l10n/da.js @@ -3,12 +3,27 @@ OC.L10N.register( { "Versions" : "Versioner", "This application automatically maintains older versions of files that are changed." : "Denne applikation styrer automatisk tidligere versioner af ændrede filer.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denne applikation vedligeholder automatisk ældre versioner af filer, der ændres. Når den er aktiveret, er en skjult versionsmappe klargjort i hver brugers mappe og bruges til at gemme gamle filversioner. En bruger kan til enhver tid vende tilbage til en ældre version via webgrænsefladen, hvor den erstattede fil bliver en version. Appen administrerer automatisk versionsmappen for at sikre, at brugeren ikke løber tør for kvote på grund af versioner.\nUd over udløbet af versioner sørger versionsappen for aldrig at bruge mere end 50 % af brugerens ledige plads i øjeblikket. Hvis lagrede versioner overskrider denne grænse, vil appen først slette de ældste versioner, indtil den når denne grænse. Mere information er tilgængelig i versionsdokumentationen.", - "Version" : "Version", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denne applikation beholder automatisk ældre versioner af ændrede filer. Når aktiveret, oprettes en skjult mappe i hver brugers folder og bruges til at gemme ældre filversioner. En bruger kan gå tilbage til en ældre version via web brugerfladen til enhver tid. Derved bliver den erstattede fil også en version. Applikationen holder styr på versionsmappen for at sikre at brugeren ikke opbruger sin kvota med versioner.\n\t\tUdover at ugyldiggøre versioner, kontrollerer applikationen også at versioner aldrig optager mere en 50% af brugerens ledige plads. Hvis gemte versioner overskrider denne grænse vil applikationen slette de ældste versioner til den er tilbage under grænsen. Mere information tilgængelig i Versions dokumentationen. ", - "Failed to revert {file} to revision {timestamp}." : "Kunne ikke tilbagerulle {file} til den tidligere udgave: {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], - "Restore" : "Gendan", - "No other versions available" : "Ingen andre versioner tilgængelige" + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denne applikation vedligeholder automatisk ældre versioner af filer, der ændres. Når den er aktiveret, er der klargjort en skjult versionsmappe i hver brugers mappe, som anvendes til at gemme gamle filversioner. En bruger kan til enhver tid vende tilbage til en ældre version via webgrænsefladen, hvor den erstattede fil bliver til en version. App'en administrerer automatisk versionsmappen for at sikre, at kontoen ikke løber tør for kvote på grund af versioner..\n\t\tUd over udløbet af versioner sørger versionsappen for aldrig at bruge mere end 50 % af kontoens aktuelt ledige plads. Hvis lagrede versioner overskrider denne grænse, så vil app'en først slette de ældste versioner, indtil den når denne grænse. Mere information er tilgængelig i versionsdokumentationen.", + "Current version" : "Nuværende version", + "Initial version" : "Oprindelig version", + "You" : "Dig", + "Actions for version from {versionHumanExplicitDate}" : "Handlinger for version fra {versionHumanExplicitDate}", + "Name this version" : "Navngiv denne version", + "Edit version name" : "Rediger versionsnavn", + "Compare to current version" : "Sammenlign med den aktuelle version", + "Restore version" : "Gendan version", + "Download version" : "Download version", + "Delete version" : "Slet version", + "Cancel" : "Annuller", + "Remove version name" : "Fjern versionsnavn", + "Save version name" : "Gem versionsnavn", + "Version name" : "Versionsnavn", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Navngivne versioner bevares og udelukkes fra automatiske oprydninger, når din lagerkvote er fuld.", + "Initial version restored" : "Første version genoprettet", + "Version restored" : "Version genoprettet", + "Could not restore version" : "Kunne ikke genoprette version", + "Could not set version label" : "Kunne ikke indstille versionslabel", + "Could not delete version" : "Kunne ikke slette version", + "File versions" : "Fil versioner" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/da.json b/apps/files_versions/l10n/da.json index b7cc407e695..7da65d1ee3f 100644 --- a/apps/files_versions/l10n/da.json +++ b/apps/files_versions/l10n/da.json @@ -1,12 +1,27 @@ { "translations": { "Versions" : "Versioner", "This application automatically maintains older versions of files that are changed." : "Denne applikation styrer automatisk tidligere versioner af ændrede filer.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denne applikation vedligeholder automatisk ældre versioner af filer, der ændres. Når den er aktiveret, er en skjult versionsmappe klargjort i hver brugers mappe og bruges til at gemme gamle filversioner. En bruger kan til enhver tid vende tilbage til en ældre version via webgrænsefladen, hvor den erstattede fil bliver en version. Appen administrerer automatisk versionsmappen for at sikre, at brugeren ikke løber tør for kvote på grund af versioner.\nUd over udløbet af versioner sørger versionsappen for aldrig at bruge mere end 50 % af brugerens ledige plads i øjeblikket. Hvis lagrede versioner overskrider denne grænse, vil appen først slette de ældste versioner, indtil den når denne grænse. Mere information er tilgængelig i versionsdokumentationen.", - "Version" : "Version", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denne applikation beholder automatisk ældre versioner af ændrede filer. Når aktiveret, oprettes en skjult mappe i hver brugers folder og bruges til at gemme ældre filversioner. En bruger kan gå tilbage til en ældre version via web brugerfladen til enhver tid. Derved bliver den erstattede fil også en version. Applikationen holder styr på versionsmappen for at sikre at brugeren ikke opbruger sin kvota med versioner.\n\t\tUdover at ugyldiggøre versioner, kontrollerer applikationen også at versioner aldrig optager mere en 50% af brugerens ledige plads. Hvis gemte versioner overskrider denne grænse vil applikationen slette de ældste versioner til den er tilbage under grænsen. Mere information tilgængelig i Versions dokumentationen. ", - "Failed to revert {file} to revision {timestamp}." : "Kunne ikke tilbagerulle {file} til den tidligere udgave: {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], - "Restore" : "Gendan", - "No other versions available" : "Ingen andre versioner tilgængelige" + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denne applikation vedligeholder automatisk ældre versioner af filer, der ændres. Når den er aktiveret, er der klargjort en skjult versionsmappe i hver brugers mappe, som anvendes til at gemme gamle filversioner. En bruger kan til enhver tid vende tilbage til en ældre version via webgrænsefladen, hvor den erstattede fil bliver til en version. App'en administrerer automatisk versionsmappen for at sikre, at kontoen ikke løber tør for kvote på grund af versioner..\n\t\tUd over udløbet af versioner sørger versionsappen for aldrig at bruge mere end 50 % af kontoens aktuelt ledige plads. Hvis lagrede versioner overskrider denne grænse, så vil app'en først slette de ældste versioner, indtil den når denne grænse. Mere information er tilgængelig i versionsdokumentationen.", + "Current version" : "Nuværende version", + "Initial version" : "Oprindelig version", + "You" : "Dig", + "Actions for version from {versionHumanExplicitDate}" : "Handlinger for version fra {versionHumanExplicitDate}", + "Name this version" : "Navngiv denne version", + "Edit version name" : "Rediger versionsnavn", + "Compare to current version" : "Sammenlign med den aktuelle version", + "Restore version" : "Gendan version", + "Download version" : "Download version", + "Delete version" : "Slet version", + "Cancel" : "Annuller", + "Remove version name" : "Fjern versionsnavn", + "Save version name" : "Gem versionsnavn", + "Version name" : "Versionsnavn", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Navngivne versioner bevares og udelukkes fra automatiske oprydninger, når din lagerkvote er fuld.", + "Initial version restored" : "Første version genoprettet", + "Version restored" : "Version genoprettet", + "Could not restore version" : "Kunne ikke genoprette version", + "Could not set version label" : "Kunne ikke indstille versionslabel", + "Could not delete version" : "Kunne ikke slette version", + "File versions" : "Fil versioner" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/de.js b/apps/files_versions/l10n/de.js index 35c25d90009..95d5da11277 100644 --- a/apps/files_versions/l10n/de.js +++ b/apps/files_versions/l10n/de.js @@ -3,24 +3,27 @@ OC.L10N.register( { "Versions" : "Versionen", "This application automatically maintains older versions of files that are changed." : "Diese App verwaltet automatisch ältere Versionen geänderter Dateien.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert wurden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Konto nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Kontos für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen findest du in der Versionsdokumentation.", + "Current version" : "Aktuelle Version", + "Initial version" : "Initiale Version", + "You" : "Du", + "Actions for version from {versionHumanExplicitDate}" : "Aktionen für Version vom {versionHumanExplicitDate}", "Name this version" : "Diese Version benennen", "Edit version name" : "Versionsnamen bearbeiten", "Compare to current version" : "Mit aktueller Version vergleichen", "Restore version" : "Version wiederherstellen", "Download version" : "Version herunterladen", "Delete version" : "Version löschen", - "Current version" : "Aktuelle Version", - "Initial version" : "Initiale Version", - "Version name" : "Versionsname", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn dein Speicherkontingent voll ist.", + "Cancel" : "Abbrechen", "Remove version name" : "Versionsnamen entfernen", "Save version name" : "Versionsnamen speichern", + "Version name" : "Versionsname", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn dein Speicherkontingent voll ist.", "Initial version restored" : "Ursprüngliche Version wiederhergestellt", "Version restored" : "Version wiederhergestellt", "Could not restore version" : "Version konnte nicht wiederhergestellt werden", + "Could not set version label" : "Der Versionsname konnte nicht festgelegt werden", "Could not delete version" : "Version konnte nicht gelöscht werden", - "${version.label} restored" : "${version.label} wiederhergestellt", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert werden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Benutzer nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Benutzers für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen findest du in der Versionsdokumentation.", - "Could not set version name" : "Der Versionsname konnte nicht festgelegt werden" + "File versions" : "Dateiversionen" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/de.json b/apps/files_versions/l10n/de.json index f5bb8c23eb3..28becae635c 100644 --- a/apps/files_versions/l10n/de.json +++ b/apps/files_versions/l10n/de.json @@ -1,24 +1,27 @@ { "translations": { "Versions" : "Versionen", "This application automatically maintains older versions of files that are changed." : "Diese App verwaltet automatisch ältere Versionen geänderter Dateien.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert wurden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Konto nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Kontos für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen findest du in der Versionsdokumentation.", + "Current version" : "Aktuelle Version", + "Initial version" : "Initiale Version", + "You" : "Du", + "Actions for version from {versionHumanExplicitDate}" : "Aktionen für Version vom {versionHumanExplicitDate}", "Name this version" : "Diese Version benennen", "Edit version name" : "Versionsnamen bearbeiten", "Compare to current version" : "Mit aktueller Version vergleichen", "Restore version" : "Version wiederherstellen", "Download version" : "Version herunterladen", "Delete version" : "Version löschen", - "Current version" : "Aktuelle Version", - "Initial version" : "Initiale Version", - "Version name" : "Versionsname", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn dein Speicherkontingent voll ist.", + "Cancel" : "Abbrechen", "Remove version name" : "Versionsnamen entfernen", "Save version name" : "Versionsnamen speichern", + "Version name" : "Versionsname", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn dein Speicherkontingent voll ist.", "Initial version restored" : "Ursprüngliche Version wiederhergestellt", "Version restored" : "Version wiederhergestellt", "Could not restore version" : "Version konnte nicht wiederhergestellt werden", + "Could not set version label" : "Der Versionsname konnte nicht festgelegt werden", "Could not delete version" : "Version konnte nicht gelöscht werden", - "${version.label} restored" : "${version.label} wiederhergestellt", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert werden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Benutzer nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Benutzers für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen findest du in der Versionsdokumentation.", - "Could not set version name" : "Der Versionsname konnte nicht festgelegt werden" + "File versions" : "Dateiversionen" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/de_DE.js b/apps/files_versions/l10n/de_DE.js index 7d5296fb00f..7b290d51b25 100644 --- a/apps/files_versions/l10n/de_DE.js +++ b/apps/files_versions/l10n/de_DE.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Versionen", "This application automatically maintains older versions of files that are changed." : "Diese App verwaltet automatisch ältere Versionen geänderter Dateien.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert wurden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Konto nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Kontos für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen finden Sie in der Versionsdokumentation.", + "Current version" : "Aktuelle Version", + "Initial version" : "Initiale Version", + "You" : "Sie", + "Actions for version from {versionHumanExplicitDate}" : "Aktionen für Version von {versionHumanExplicitDate}", "Name this version" : "Diese Version benennen", "Edit version name" : "Versionsnamen bearbeiten", "Compare to current version" : "Mit aktueller Version vergleichen", "Restore version" : "Version wiederherstellen", "Download version" : "Version herunterladen", "Delete version" : "Version löschen", - "Current version" : "Aktuelle Version", - "Initial version" : "Initiale Version", - "Version name" : "Versionsname", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn Ihr Speicherkontingent voll ist.", + "Cancel" : "Abbrechen", "Remove version name" : "Versionsnamen entfernen", "Save version name" : "Versionsnamen speichern", + "Version name" : "Versionsname", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn Ihr Speicherkontingent voll ist.", "Initial version restored" : "Ursprüngliche Version wiederhergestellt", "Version restored" : "Version wiederhergestellt", "Could not restore version" : "Version konnte nicht wiederhergestellt werden", "Could not set version label" : "Der Versionsname konnte nicht festgelegt werden", "Could not delete version" : "Version konnte nicht gelöscht werden", - "${version.label} restored" : "${version.label} wiederhergestellt", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert werden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Benutzer nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Benutzers für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen finden Sie in der Versionsdokumentation.", - "Could not set version name" : "Der Versionsname konnte nicht festgelegt werden" + "File versions" : "Dateiversionen" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/de_DE.json b/apps/files_versions/l10n/de_DE.json index f4044bb2f93..e08cc07dfc4 100644 --- a/apps/files_versions/l10n/de_DE.json +++ b/apps/files_versions/l10n/de_DE.json @@ -2,25 +2,26 @@ "Versions" : "Versionen", "This application automatically maintains older versions of files that are changed." : "Diese App verwaltet automatisch ältere Versionen geänderter Dateien.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert wurden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Konto nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Kontos für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen finden Sie in der Versionsdokumentation.", + "Current version" : "Aktuelle Version", + "Initial version" : "Initiale Version", + "You" : "Sie", + "Actions for version from {versionHumanExplicitDate}" : "Aktionen für Version von {versionHumanExplicitDate}", "Name this version" : "Diese Version benennen", "Edit version name" : "Versionsnamen bearbeiten", "Compare to current version" : "Mit aktueller Version vergleichen", "Restore version" : "Version wiederherstellen", "Download version" : "Version herunterladen", "Delete version" : "Version löschen", - "Current version" : "Aktuelle Version", - "Initial version" : "Initiale Version", - "Version name" : "Versionsname", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn Ihr Speicherkontingent voll ist.", + "Cancel" : "Abbrechen", "Remove version name" : "Versionsnamen entfernen", "Save version name" : "Versionsnamen speichern", + "Version name" : "Versionsname", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Benannte Versionen werden beibehalten und von automatischen Bereinigungen ausgeschlossen, wenn Ihr Speicherkontingent voll ist.", "Initial version restored" : "Ursprüngliche Version wiederhergestellt", "Version restored" : "Version wiederhergestellt", "Could not restore version" : "Version konnte nicht wiederhergestellt werden", "Could not set version label" : "Der Versionsname konnte nicht festgelegt werden", "Could not delete version" : "Version konnte nicht gelöscht werden", - "${version.label} restored" : "${version.label} wiederhergestellt", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Diese Anwendung verwaltet automatisch ältere Versionen von Dateien, die geändert werden. Wenn aktiviert, wird ein Ordner mit versteckten Versionen im Verzeichnis jedes Benutzers bereitgestellt und wird zum Speichern alter Dateiversionen verwendet. Ein Benutzer kann jederzeit über die Web-Oberfläche auf eine ältere Version zurückgreifen, wobei die ersetzte Datei dann eine Version wird. Die App verwaltet automatisch den Versionsordner, um sicherzustellen, dass dem Benutzer nicht der Speicherplatz aufgrund von zu vielen Versionen ausgeht.\nZusätzlich zum Ablauf der Versionen stellt die Versions-App sicher, dass nie mehr als 50% des derzeit verfügbaren freien Speicherplatzes des Benutzers für die Versionierung genutzt werden. Wenn gespeicherte Versionen diese Grenze überschreiten, löscht die App zuerst die ältesten Versionen, bis sie die 50% Grenze erreicht hat. Weitere Informationen finden Sie in der Versionsdokumentation.", - "Could not set version name" : "Der Versionsname konnte nicht festgelegt werden" + "File versions" : "Dateiversionen" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/el.js b/apps/files_versions/l10n/el.js index 4e938f99ea5..fbe5807376b 100644 --- a/apps/files_versions/l10n/el.js +++ b/apps/files_versions/l10n/el.js @@ -3,11 +3,22 @@ OC.L10N.register( { "Versions" : "Εκδόσεις", "This application automatically maintains older versions of files that are changed." : "Η εφαρμογή διατηρεί αυτόματα παλαιότερες εκδόσεις των αρχείων που έχουν αλλάξει.", - "Version" : "Έκδοση", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Αυτή η εφαρμογή διατηρεί αυτόματα παλαιότερες εκδόσεις αρχείων που έχουν αλλάξει. Όταν είναι ενεργοποιημένη, ένας κρυφός φάκελος παλιών εκδόσεων δημιουργείται στον κατάλογο όλων των χρηστών και χρησιμοποιείται για την αποθήκευση παλιών εκδόσεων αρχείων. Ένας χρήστης μπορεί να επαναφέρει παλαιότερη έκδοση μέσω περιηγητή ανά πάσα στιγμή, με το αρχείο αντικατάστασης να γίνει μια έκδοση. Η εφαρμογή διαχειρίζεται αυτόματα τον φάκελο για να διασφαλίσει ότι ο χρήστης δεν εξαντλεί το όριο του λόγω των εκδόσεων.\n\t\tΕκτός από τη λήξη των εκδόσεων, η εφαρμογή για εκδόσεις δεν χρησιμοποιεί ποτέ περισσότερο από το 50% του ελεύθερου χώρου που διαθέτει ο χρήστης. Εάν υπερβεί αυτό το όριο, θα διαγράψει πρώτα τις παλαιότερες εκδόσεις έως ότου ικανοποιήσει το όριο. Περισσότερες πληροφορίες διατίθενται στην τεκμηρίωση εκδόσεων.", - "Failed to revert {file} to revision {timestamp}." : "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"], - "Restore" : "Επαναφορά", - "No other versions available" : "Δεν υπάρχουν άλλες εκδόσεις διαθέσιμες" + "Current version" : "Τρέχουσα έκδοση", + "Initial version" : "Αρχική έκδοση", + "You" : "Εσύ", + "Name this version" : "Ονομασία αυτής της έκδοσης", + "Edit version name" : "Επεξεργασία ονόματος έκδοσης", + "Compare to current version" : "Σύγκριση με την τρέχουσα έκδοση", + "Restore version" : "Επαναφορά έκδοσης", + "Download version" : "Λήψη έκδοσης", + "Delete version" : "Διαγραφή έκδοσης", + "Cancel" : "Ακύρωση", + "Remove version name" : "Αφαίρεση ονόματος έκδοσης", + "Save version name" : "Αποθήκευση ονόματος έκδοσης", + "Version name" : "Όνομα έκδοσης", + "Initial version restored" : "Η αρχική έκδοση επαναφέρθηκε", + "Version restored" : "Η έκδοση επαναφέρθηκε", + "Could not restore version" : "Δεν ήταν δυνατή η επαναφορά της έκδοσης", + "Could not delete version" : "Δεν ήταν δυνατή η διαγραφή της έκδοσης" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/el.json b/apps/files_versions/l10n/el.json index 734b59d1513..490b5b52899 100644 --- a/apps/files_versions/l10n/el.json +++ b/apps/files_versions/l10n/el.json @@ -1,11 +1,22 @@ { "translations": { "Versions" : "Εκδόσεις", "This application automatically maintains older versions of files that are changed." : "Η εφαρμογή διατηρεί αυτόματα παλαιότερες εκδόσεις των αρχείων που έχουν αλλάξει.", - "Version" : "Έκδοση", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Αυτή η εφαρμογή διατηρεί αυτόματα παλαιότερες εκδόσεις αρχείων που έχουν αλλάξει. Όταν είναι ενεργοποιημένη, ένας κρυφός φάκελος παλιών εκδόσεων δημιουργείται στον κατάλογο όλων των χρηστών και χρησιμοποιείται για την αποθήκευση παλιών εκδόσεων αρχείων. Ένας χρήστης μπορεί να επαναφέρει παλαιότερη έκδοση μέσω περιηγητή ανά πάσα στιγμή, με το αρχείο αντικατάστασης να γίνει μια έκδοση. Η εφαρμογή διαχειρίζεται αυτόματα τον φάκελο για να διασφαλίσει ότι ο χρήστης δεν εξαντλεί το όριο του λόγω των εκδόσεων.\n\t\tΕκτός από τη λήξη των εκδόσεων, η εφαρμογή για εκδόσεις δεν χρησιμοποιεί ποτέ περισσότερο από το 50% του ελεύθερου χώρου που διαθέτει ο χρήστης. Εάν υπερβεί αυτό το όριο, θα διαγράψει πρώτα τις παλαιότερες εκδόσεις έως ότου ικανοποιήσει το όριο. Περισσότερες πληροφορίες διατίθενται στην τεκμηρίωση εκδόσεων.", - "Failed to revert {file} to revision {timestamp}." : "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"], - "Restore" : "Επαναφορά", - "No other versions available" : "Δεν υπάρχουν άλλες εκδόσεις διαθέσιμες" + "Current version" : "Τρέχουσα έκδοση", + "Initial version" : "Αρχική έκδοση", + "You" : "Εσύ", + "Name this version" : "Ονομασία αυτής της έκδοσης", + "Edit version name" : "Επεξεργασία ονόματος έκδοσης", + "Compare to current version" : "Σύγκριση με την τρέχουσα έκδοση", + "Restore version" : "Επαναφορά έκδοσης", + "Download version" : "Λήψη έκδοσης", + "Delete version" : "Διαγραφή έκδοσης", + "Cancel" : "Ακύρωση", + "Remove version name" : "Αφαίρεση ονόματος έκδοσης", + "Save version name" : "Αποθήκευση ονόματος έκδοσης", + "Version name" : "Όνομα έκδοσης", + "Initial version restored" : "Η αρχική έκδοση επαναφέρθηκε", + "Version restored" : "Η έκδοση επαναφέρθηκε", + "Could not restore version" : "Δεν ήταν δυνατή η επαναφορά της έκδοσης", + "Could not delete version" : "Δεν ήταν δυνατή η διαγραφή της έκδοσης" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/en_GB.js b/apps/files_versions/l10n/en_GB.js index 58dd51ffe62..4b5161e3889 100644 --- a/apps/files_versions/l10n/en_GB.js +++ b/apps/files_versions/l10n/en_GB.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "This application automatically maintains older versions of files that are changed.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", + "Current version" : "Current version", + "Initial version" : "Initial version", + "You" : "You", + "Actions for version from {versionHumanExplicitDate}" : "Actions for version from {versionHumanExplicitDate}", "Name this version" : "Name this version", "Edit version name" : "Edit version name", "Compare to current version" : "Compare to current version", "Restore version" : "Restore version", "Download version" : "Download version", "Delete version" : "Delete version", - "Current version" : "Current version", - "Initial version" : "Initial version", - "Version name" : "Version name", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", + "Cancel" : "Cancel", "Remove version name" : "Remove version name", "Save version name" : "Save version name", + "Version name" : "Version name", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", "Initial version restored" : "Initial version restored", "Version restored" : "Version restored", "Could not restore version" : "Could not restore version", "Could not set version label" : "Could not set version label", "Could not delete version" : "Could not delete version", - "${version.label} restored" : "${version.label} restored", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", - "Could not set version name" : "Could not set version name" + "File versions" : "File versions" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/en_GB.json b/apps/files_versions/l10n/en_GB.json index 457e6ffe2be..6daff63aade 100644 --- a/apps/files_versions/l10n/en_GB.json +++ b/apps/files_versions/l10n/en_GB.json @@ -2,25 +2,26 @@ "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "This application automatically maintains older versions of files that are changed.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", + "Current version" : "Current version", + "Initial version" : "Initial version", + "You" : "You", + "Actions for version from {versionHumanExplicitDate}" : "Actions for version from {versionHumanExplicitDate}", "Name this version" : "Name this version", "Edit version name" : "Edit version name", "Compare to current version" : "Compare to current version", "Restore version" : "Restore version", "Download version" : "Download version", "Delete version" : "Delete version", - "Current version" : "Current version", - "Initial version" : "Initial version", - "Version name" : "Version name", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", + "Cancel" : "Cancel", "Remove version name" : "Remove version name", "Save version name" : "Save version name", + "Version name" : "Version name", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", "Initial version restored" : "Initial version restored", "Version restored" : "Version restored", "Could not restore version" : "Could not restore version", "Could not set version label" : "Could not set version label", "Could not delete version" : "Could not delete version", - "${version.label} restored" : "${version.label} restored", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", - "Could not set version name" : "Could not set version name" + "File versions" : "File versions" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/eo.js b/apps/files_versions/l10n/eo.js deleted file mode 100644 index 90c2546c3c2..00000000000 --- a/apps/files_versions/l10n/eo.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versioj", - "This application automatically maintains older versions of files that are changed." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis.", - "Version" : "Versio", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis. Kiam ĝi estas ebligita, kaŝita dosierujo por enteni versiojn kreiĝas en ĉiu uzantodosierujo kaj uziĝas por konservi la antaŭajn versiojn de dosieroj. Uzanto povas reveni al antaŭa versio pere de la TTT-a fasado iam ajn, kaj la anstataŭigita dosiero iĝas versio. La aplikaĵo aŭtomate observas la versian dosierujon por garantii, ke la uzanto ne transpasu sian kvoton pro troaj versioj.\n\t\tKrom la eksvalidiĝo de versioj, la aplikaĵo neniam uzas pli ol 50 % de la aktuala libera spaco de la uzanto. Se la konservitaj versioj transpasos tiun limon, la aplikaĵo forigos la plej antaŭajn versiojn ĝis atingo de la limo. Pliaj informoj disponeblas en la dokumentaro pri Versioj.", - "Failed to revert {file} to revision {timestamp}." : "Malsukcesis remeti {file} al la revizio {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bajto","%n bajtoj"], - "Restore" : "Restaŭri", - "No other versions available" : "Neniu alia versio disponeblas" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/eo.json b/apps/files_versions/l10n/eo.json deleted file mode 100644 index 8a76db600d7..00000000000 --- a/apps/files_versions/l10n/eo.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "Versioj", - "This application automatically maintains older versions of files that are changed." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis.", - "Version" : "Versio", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis. Kiam ĝi estas ebligita, kaŝita dosierujo por enteni versiojn kreiĝas en ĉiu uzantodosierujo kaj uziĝas por konservi la antaŭajn versiojn de dosieroj. Uzanto povas reveni al antaŭa versio pere de la TTT-a fasado iam ajn, kaj la anstataŭigita dosiero iĝas versio. La aplikaĵo aŭtomate observas la versian dosierujon por garantii, ke la uzanto ne transpasu sian kvoton pro troaj versioj.\n\t\tKrom la eksvalidiĝo de versioj, la aplikaĵo neniam uzas pli ol 50 % de la aktuala libera spaco de la uzanto. Se la konservitaj versioj transpasos tiun limon, la aplikaĵo forigos la plej antaŭajn versiojn ĝis atingo de la limo. Pliaj informoj disponeblas en la dokumentaro pri Versioj.", - "Failed to revert {file} to revision {timestamp}." : "Malsukcesis remeti {file} al la revizio {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bajto","%n bajtoj"], - "Restore" : "Restaŭri", - "No other versions available" : "Neniu alia versio disponeblas" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es.js b/apps/files_versions/l10n/es.js index fe2bd2d375d..0daaa820510 100644 --- a/apps/files_versions/l10n/es.js +++ b/apps/files_versions/l10n/es.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantiene automáticamente versiones antiguas de los archivos que cambian.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantiene automáticamente versiones antiguas de los archivos que cambian. Cuando se activa, una carpeta escondida de versiones aparece en cada directorio del usuario y se usa para almacenar los archivos de versiones antiguas. Un usuario puede volver a una versión más antigua a través de la interfaz web en cualquier momento, convirtiéndose el archivo reemplazado en una versión. La app controla automáticamente la carpeta de versiones para asegurarse de que la cuenta no se queda sin cuota de disco por las versiones.\n\t\tAdemás de administrar la caducidad de las versiones, la app de versiones se asegura de no usar nunca más del 50% del espacio libre actualmente disponible para el usuario. Si las versiones almacenadas exceden este límite, la app borrará primero las versiones más viejas hasta alcanzar este límite. Más información disponible en la documentación de Versiones.", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Usted", + "Actions for version from {versionHumanExplicitDate}" : "Acciones para la versión de {versionHumanExplicitDate}", "Name this version" : "Nombrar esta versión", "Edit version name" : "Editar nombre de versión", "Compare to current version" : "Comparar con la versión actual", "Restore version" : "Restaurar versión", "Download version" : "Descargar versión", "Delete version" : "Eliminar versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nombre de versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones nombradas son persistidas, y, son excluidas de las limpiezas automáticas cuando su cuota de almacenamiento está al límite.", + "Cancel" : "Cancelar", "Remove version name" : "Quitar nombre de versión", "Save version name" : "Guardar nombre de versión", + "Version name" : "Nombre de versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones nombradas son persistidas, y, son excluidas de las limpiezas automáticas cuando su cuota de almacenamiento está al límite.", "Initial version restored" : "Versión inicial restaurada", "Version restored" : "Versión restaurada", "Could not restore version" : "No se ha podido restaurar la versión", "Could not set version label" : "No se pudo establecer la etiqueta de la versión", "Could not delete version" : "No se ha podido eliminar la versión", - "${version.label} restored" : "${version.label} restaurada", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantiene automáticamente versiones antiguas de los archivos que cambian. Cuando se activa, una carpeta escondida de versiones aparece en cada directorio del usuario y se usa para almacenar los archivos de versiones antiguas. Un usuario puede volver a una versión más antigua a través de la interfaz web en cualquier momento, convirtiéndose el archivo reemplazado en una versión. La app controla automáticamente la carpeta de versiones para asegurarse de que el usuario no se queda sin cuota de disco por las versiones.\n\t\tAdemás de la caducidad de las versiones, la app de versiones se asegura de no usar nunca más del 50% del espacio libre actualmente disponible para el usuario. Si las versiones almacenadas exceden este límite, la app borrará primero las versiones más viejas hasta alcanzar este límite. Más información disponible en la documentación de Versiones.", - "Could not set version name" : "No ha podido establecer el nombre de la versión" + "File versions" : "Versiones de archivo" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es.json b/apps/files_versions/l10n/es.json index ff3ea9a39ef..28ab4a7611c 100644 --- a/apps/files_versions/l10n/es.json +++ b/apps/files_versions/l10n/es.json @@ -2,25 +2,26 @@ "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantiene automáticamente versiones antiguas de los archivos que cambian.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantiene automáticamente versiones antiguas de los archivos que cambian. Cuando se activa, una carpeta escondida de versiones aparece en cada directorio del usuario y se usa para almacenar los archivos de versiones antiguas. Un usuario puede volver a una versión más antigua a través de la interfaz web en cualquier momento, convirtiéndose el archivo reemplazado en una versión. La app controla automáticamente la carpeta de versiones para asegurarse de que la cuenta no se queda sin cuota de disco por las versiones.\n\t\tAdemás de administrar la caducidad de las versiones, la app de versiones se asegura de no usar nunca más del 50% del espacio libre actualmente disponible para el usuario. Si las versiones almacenadas exceden este límite, la app borrará primero las versiones más viejas hasta alcanzar este límite. Más información disponible en la documentación de Versiones.", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Usted", + "Actions for version from {versionHumanExplicitDate}" : "Acciones para la versión de {versionHumanExplicitDate}", "Name this version" : "Nombrar esta versión", "Edit version name" : "Editar nombre de versión", "Compare to current version" : "Comparar con la versión actual", "Restore version" : "Restaurar versión", "Download version" : "Descargar versión", "Delete version" : "Eliminar versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nombre de versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones nombradas son persistidas, y, son excluidas de las limpiezas automáticas cuando su cuota de almacenamiento está al límite.", + "Cancel" : "Cancelar", "Remove version name" : "Quitar nombre de versión", "Save version name" : "Guardar nombre de versión", + "Version name" : "Nombre de versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones nombradas son persistidas, y, son excluidas de las limpiezas automáticas cuando su cuota de almacenamiento está al límite.", "Initial version restored" : "Versión inicial restaurada", "Version restored" : "Versión restaurada", "Could not restore version" : "No se ha podido restaurar la versión", "Could not set version label" : "No se pudo establecer la etiqueta de la versión", "Could not delete version" : "No se ha podido eliminar la versión", - "${version.label} restored" : "${version.label} restaurada", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantiene automáticamente versiones antiguas de los archivos que cambian. Cuando se activa, una carpeta escondida de versiones aparece en cada directorio del usuario y se usa para almacenar los archivos de versiones antiguas. Un usuario puede volver a una versión más antigua a través de la interfaz web en cualquier momento, convirtiéndose el archivo reemplazado en una versión. La app controla automáticamente la carpeta de versiones para asegurarse de que el usuario no se queda sin cuota de disco por las versiones.\n\t\tAdemás de la caducidad de las versiones, la app de versiones se asegura de no usar nunca más del 50% del espacio libre actualmente disponible para el usuario. Si las versiones almacenadas exceden este límite, la app borrará primero las versiones más viejas hasta alcanzar este límite. Más información disponible en la documentación de Versiones.", - "Could not set version name" : "No ha podido establecer el nombre de la versión" + "File versions" : "Versiones de archivo" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_419.js b/apps/files_versions/l10n/es_419.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_419.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_419.json b/apps/files_versions/l10n/es_419.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_419.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_AR.js b/apps/files_versions/l10n/es_AR.js deleted file mode 100644 index 4f6573a0e18..00000000000 --- a/apps/files_versions/l10n/es_AR.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {archivo} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar", - "No other versions available" : "No hay más versiones disponibles" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_AR.json b/apps/files_versions/l10n/es_AR.json deleted file mode 100644 index b00cf1b0550..00000000000 --- a/apps/files_versions/l10n/es_AR.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {archivo} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar", - "No other versions available" : "No hay más versiones disponibles" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_CL.js b/apps/files_versions/l10n/es_CL.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_CL.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_CL.json b/apps/files_versions/l10n/es_CL.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_CL.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_CO.js b/apps/files_versions/l10n/es_CO.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_CO.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_CO.json b/apps/files_versions/l10n/es_CO.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_CO.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_CR.js b/apps/files_versions/l10n/es_CR.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_CR.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_CR.json b/apps/files_versions/l10n/es_CR.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_CR.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_DO.js b/apps/files_versions/l10n/es_DO.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_DO.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_DO.json b/apps/files_versions/l10n/es_DO.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_DO.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_EC.js b/apps/files_versions/l10n/es_EC.js index 1772048f92a..bcca68dd065 100644 --- a/apps/files_versions/l10n/es_EC.js +++ b/apps/files_versions/l10n/es_EC.js @@ -3,22 +3,20 @@ OC.L10N.register( { "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantiene automáticamente versiones anteriores de los archivos que son modificados.", + "Current version" : "Versión actual", "Name this version" : "Nombrar esta versión", "Edit version name" : "Editar nombre de versión", "Restore version" : "Restaurar versión", "Download version" : "Descargar versión", "Delete version" : "Eliminar versión", - "Current version" : "Versión actual", - "Version name" : "Nombre de la versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando tu cuota de almacenamiento está llena.", + "Cancel" : "Cancelar", "Remove version name" : "Eliminar nombre de versión", "Save version name" : "Guardar nombre de versión", + "Version name" : "Nombre de la versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando tu cuota de almacenamiento está llena.", "Initial version restored" : "Versión inicial restaurada", "Version restored" : "Versión restaurada", "Could not restore version" : "No se pudo restaurar la versión", - "Could not delete version" : "No se pudo eliminar la versión", - "${version.label} restored" : "${version.label} restaurada", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantiene automáticamente versiones anteriores de los archivos que son modificados. Cuando está habilitada, se crea una carpeta oculta de versiones en el directorio de cada usuario y se utiliza para almacenar las versiones antiguas de los archivos. Un usuario puede revertir a una versión anterior a través de la interfaz web en cualquier momento, y el archivo reemplazado se convierte en una versión. La aplicación gestiona automáticamente la carpeta de versiones para asegurarse de que el usuario no se quede sin espacio de almacenamiento debido a las versiones.\n Además de la expiración de las versiones, la aplicación de versiones se asegura de no utilizar más del 50% del espacio libre disponible actualmente del usuario. Si las versiones almacenadas exceden este límite, la aplicación eliminará las versiones más antiguas hasta cumplir con este límite. Más información está disponible en la documentación de versiones.", - "Could not set version name" : "No se pudo establecer el nombre de la versión" + "Could not delete version" : "No se pudo eliminar la versión" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_EC.json b/apps/files_versions/l10n/es_EC.json index 7c4949a4148..46097bb89d6 100644 --- a/apps/files_versions/l10n/es_EC.json +++ b/apps/files_versions/l10n/es_EC.json @@ -1,22 +1,20 @@ { "translations": { "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantiene automáticamente versiones anteriores de los archivos que son modificados.", + "Current version" : "Versión actual", "Name this version" : "Nombrar esta versión", "Edit version name" : "Editar nombre de versión", "Restore version" : "Restaurar versión", "Download version" : "Descargar versión", "Delete version" : "Eliminar versión", - "Current version" : "Versión actual", - "Version name" : "Nombre de la versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando tu cuota de almacenamiento está llena.", + "Cancel" : "Cancelar", "Remove version name" : "Eliminar nombre de versión", "Save version name" : "Guardar nombre de versión", + "Version name" : "Nombre de la versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando tu cuota de almacenamiento está llena.", "Initial version restored" : "Versión inicial restaurada", "Version restored" : "Versión restaurada", "Could not restore version" : "No se pudo restaurar la versión", - "Could not delete version" : "No se pudo eliminar la versión", - "${version.label} restored" : "${version.label} restaurada", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantiene automáticamente versiones anteriores de los archivos que son modificados. Cuando está habilitada, se crea una carpeta oculta de versiones en el directorio de cada usuario y se utiliza para almacenar las versiones antiguas de los archivos. Un usuario puede revertir a una versión anterior a través de la interfaz web en cualquier momento, y el archivo reemplazado se convierte en una versión. La aplicación gestiona automáticamente la carpeta de versiones para asegurarse de que el usuario no se quede sin espacio de almacenamiento debido a las versiones.\n Además de la expiración de las versiones, la aplicación de versiones se asegura de no utilizar más del 50% del espacio libre disponible actualmente del usuario. Si las versiones almacenadas exceden este límite, la aplicación eliminará las versiones más antiguas hasta cumplir con este límite. Más información está disponible en la documentación de versiones.", - "Could not set version name" : "No se pudo establecer el nombre de la versión" + "Could not delete version" : "No se pudo eliminar la versión" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_GT.js b/apps/files_versions/l10n/es_GT.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_GT.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_GT.json b/apps/files_versions/l10n/es_GT.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_GT.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_HN.js b/apps/files_versions/l10n/es_HN.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_HN.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_HN.json b/apps/files_versions/l10n/es_HN.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_HN.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_MX.js b/apps/files_versions/l10n/es_MX.js index 28f3c9eb3c0..67683cc4967 100644 --- a/apps/files_versions/l10n/es_MX.js +++ b/apps/files_versions/l10n/es_MX.js @@ -3,24 +3,24 @@ OC.L10N.register( { "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantiene automáticamente versiones anteriores de archivos que fueron cambiados. ", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Usted", "Name this version" : "Nombrar esta versión", "Edit version name" : "Editar el nombre de la versión", "Compare to current version" : "Comparar con la versión actual", "Restore version" : "Restaurar versión", "Download version" : "Descargar versión", "Delete version" : "Eliminar versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nombre de la versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando su cuota de almacenamiento alcanzó el límite.", + "Cancel" : "Cancelar", "Remove version name" : "Eliminar el nombre de la versión", "Save version name" : "Guardar el nombre de la versión", + "Version name" : "Nombre de la versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando su cuota de almacenamiento alcanzó el límite.", "Initial version restored" : "Versión inicial restaurada", "Version restored" : "Versión restaurada", "Could not restore version" : "No se pudo restaurar la versión", "Could not set version label" : "No se pudo establecer la etiqueta de la versión", - "Could not delete version" : "No se pudo eliminar la versión", - "${version.label} restored" : "${version.label} restaurada", - "Could not set version name" : "No se pudo establecer el nombre de la versión" + "Could not delete version" : "No se pudo eliminar la versión" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_MX.json b/apps/files_versions/l10n/es_MX.json index f2a0ac7e098..403db393aaf 100644 --- a/apps/files_versions/l10n/es_MX.json +++ b/apps/files_versions/l10n/es_MX.json @@ -1,24 +1,24 @@ { "translations": { "Versions" : "Versiones", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantiene automáticamente versiones anteriores de archivos que fueron cambiados. ", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Usted", "Name this version" : "Nombrar esta versión", "Edit version name" : "Editar el nombre de la versión", "Compare to current version" : "Comparar con la versión actual", "Restore version" : "Restaurar versión", "Download version" : "Descargar versión", "Delete version" : "Eliminar versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nombre de la versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando su cuota de almacenamiento alcanzó el límite.", + "Cancel" : "Cancelar", "Remove version name" : "Eliminar el nombre de la versión", "Save version name" : "Guardar el nombre de la versión", + "Version name" : "Nombre de la versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Las versiones con nombre se conservan y se excluyen de las limpiezas automáticas cuando su cuota de almacenamiento alcanzó el límite.", "Initial version restored" : "Versión inicial restaurada", "Version restored" : "Versión restaurada", "Could not restore version" : "No se pudo restaurar la versión", "Could not set version label" : "No se pudo establecer la etiqueta de la versión", - "Could not delete version" : "No se pudo eliminar la versión", - "${version.label} restored" : "${version.label} restaurada", - "Could not set version name" : "No se pudo establecer el nombre de la versión" + "Could not delete version" : "No se pudo eliminar la versión" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_NI.js b/apps/files_versions/l10n/es_NI.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_NI.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_NI.json b/apps/files_versions/l10n/es_NI.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_NI.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_PA.js b/apps/files_versions/l10n/es_PA.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_PA.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_PA.json b/apps/files_versions/l10n/es_PA.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_PA.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_PE.js b/apps/files_versions/l10n/es_PE.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_PE.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_PE.json b/apps/files_versions/l10n/es_PE.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_PE.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_PR.js b/apps/files_versions/l10n/es_PR.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_PR.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_PR.json b/apps/files_versions/l10n/es_PR.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_PR.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_PY.js b/apps/files_versions/l10n/es_PY.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_PY.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_PY.json b/apps/files_versions/l10n/es_PY.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_PY.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_SV.js b/apps/files_versions/l10n/es_SV.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_SV.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_SV.json b/apps/files_versions/l10n/es_SV.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_SV.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/es_UY.js b/apps/files_versions/l10n/es_UY.js deleted file mode 100644 index 5d974ef3480..00000000000 --- a/apps/files_versions/l10n/es_UY.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/es_UY.json b/apps/files_versions/l10n/es_UY.json deleted file mode 100644 index 4348982b777..00000000000 --- a/apps/files_versions/l10n/es_UY.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/et_EE.js b/apps/files_versions/l10n/et_EE.js index 4c26faed28e..dadd03d14dc 100644 --- a/apps/files_versions/l10n/et_EE.js +++ b/apps/files_versions/l10n/et_EE.js @@ -3,21 +3,27 @@ OC.L10N.register( { "Versions" : "Versioonid", "This application automatically maintains older versions of files that are changed." : "See rakendus haldab automaatselt muudetud failide vanemaid versioone.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "See rakendus säilitab automaatselt muudetud failide vanemaid versioone. Kui see on lubatud, luuakse iga kasutaja kataloogis peidetud versioonide kaust ja seda kasutatakse vanade failiversioonide salvestamiseks. Kasutaja saab veebiliidese kaudu igal ajal naasta vanemale versioonile, kusjuures asendatud failist saab versioon. Rakendus haldab automaatselt versioonide kausta, et kontol kvoot versioonide tõttu otsa ei saaks.\nLisaks versioonide aegumisele tagab versioonirakendus, et ei kasutataks kunagi rohkem kui 50% konto hetkel saadaolevast vabast ruumist. Kui salvestatud versioonid ületavad selle limiidi, kustutab rakendus kõigepealt vanimad versioonid, kuni see limiit jõuab. Lisateavet leiate versioonide dokumentatsioonist.", + "Current version" : "Hetkeversioon", + "Initial version" : "Algversioon", + "You" : "Sina", + "Actions for version from {versionHumanExplicitDate}" : "Tegevused versiooniga {versionHumanExplicitDate}-st", "Name this version" : "Nimeta see versioon", "Edit version name" : "Muuda versiooni nime", + "Compare to current version" : "Võrdle hetkeversiooniga", "Restore version" : "Taasta versioon", "Download version" : "Laadi versioon alla", - "Delete version" : "Kustuta versioo", - "Version name" : "Versiooni nimi", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nimelised versioonid hoitakse alles ja ei kustutata automaatselt, kui salvestusruum on täis.", + "Delete version" : "Kustuta versioon", + "Cancel" : "Tühista", "Remove version name" : "Eemalda versiooni nimi", "Save version name" : "Salvesta versiooni nimi", + "Version name" : "Versiooni nimi", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nimelised versioonid hoitakse alles ja ei kustutata automaatselt, kui salvestusruum on täis.", "Initial version restored" : "Algne versioon taastatud", "Version restored" : "Versioon taastatud", "Could not restore version" : "Versiooni taastamine ebaõnnestus", + "Could not set version label" : "Ei saanud määrata versiooni märget", "Could not delete version" : "Versiooni kustutamine ebaõnnestus", - "${version.label} restored" : "${version.label} taastatud", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "See rakendus haldab automaatselt muudetud failide vanemaid versioone. Sisselülitamisel tekitatakse iga kasutaja kataloogi peidetud versioonide kaust, milles hoitakse failide vanemaid versioone. Kasutaja saab veebiliidese kaudu iga hetk vanema versiooni taastada, kusjuures asendatud fail muutub omakorda versiooniks. Rakendus haldab versioonide kausta automaatselt, hoolitsedes selle eest, et kasutaja salvestusruumi limiiti ei ületataks.\n\t\tLisaks versioonide aegumisele ei kasuta rakendus kunagi rohkem kui 50% kasutaja saadaolevast salvestusruumist. Kui salvestatud versioonide maht ületab seda limiiti, kustutatakse järjest vanemaid versioone, kuni maht jääb alla limiidi. Rohkem infot rakenduse dokumentatsioonis.", - "Could not set version name" : "Versiooni nime seadmine ebaõnnestus" + "File versions" : "Faili versioonid" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/et_EE.json b/apps/files_versions/l10n/et_EE.json index 8777530c5ef..d2b4f6170f7 100644 --- a/apps/files_versions/l10n/et_EE.json +++ b/apps/files_versions/l10n/et_EE.json @@ -1,21 +1,27 @@ { "translations": { "Versions" : "Versioonid", "This application automatically maintains older versions of files that are changed." : "See rakendus haldab automaatselt muudetud failide vanemaid versioone.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "See rakendus säilitab automaatselt muudetud failide vanemaid versioone. Kui see on lubatud, luuakse iga kasutaja kataloogis peidetud versioonide kaust ja seda kasutatakse vanade failiversioonide salvestamiseks. Kasutaja saab veebiliidese kaudu igal ajal naasta vanemale versioonile, kusjuures asendatud failist saab versioon. Rakendus haldab automaatselt versioonide kausta, et kontol kvoot versioonide tõttu otsa ei saaks.\nLisaks versioonide aegumisele tagab versioonirakendus, et ei kasutataks kunagi rohkem kui 50% konto hetkel saadaolevast vabast ruumist. Kui salvestatud versioonid ületavad selle limiidi, kustutab rakendus kõigepealt vanimad versioonid, kuni see limiit jõuab. Lisateavet leiate versioonide dokumentatsioonist.", + "Current version" : "Hetkeversioon", + "Initial version" : "Algversioon", + "You" : "Sina", + "Actions for version from {versionHumanExplicitDate}" : "Tegevused versiooniga {versionHumanExplicitDate}-st", "Name this version" : "Nimeta see versioon", "Edit version name" : "Muuda versiooni nime", + "Compare to current version" : "Võrdle hetkeversiooniga", "Restore version" : "Taasta versioon", "Download version" : "Laadi versioon alla", - "Delete version" : "Kustuta versioo", - "Version name" : "Versiooni nimi", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nimelised versioonid hoitakse alles ja ei kustutata automaatselt, kui salvestusruum on täis.", + "Delete version" : "Kustuta versioon", + "Cancel" : "Tühista", "Remove version name" : "Eemalda versiooni nimi", "Save version name" : "Salvesta versiooni nimi", + "Version name" : "Versiooni nimi", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nimelised versioonid hoitakse alles ja ei kustutata automaatselt, kui salvestusruum on täis.", "Initial version restored" : "Algne versioon taastatud", "Version restored" : "Versioon taastatud", "Could not restore version" : "Versiooni taastamine ebaõnnestus", + "Could not set version label" : "Ei saanud määrata versiooni märget", "Could not delete version" : "Versiooni kustutamine ebaõnnestus", - "${version.label} restored" : "${version.label} taastatud", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "See rakendus haldab automaatselt muudetud failide vanemaid versioone. Sisselülitamisel tekitatakse iga kasutaja kataloogi peidetud versioonide kaust, milles hoitakse failide vanemaid versioone. Kasutaja saab veebiliidese kaudu iga hetk vanema versiooni taastada, kusjuures asendatud fail muutub omakorda versiooniks. Rakendus haldab versioonide kausta automaatselt, hoolitsedes selle eest, et kasutaja salvestusruumi limiiti ei ületataks.\n\t\tLisaks versioonide aegumisele ei kasuta rakendus kunagi rohkem kui 50% kasutaja saadaolevast salvestusruumist. Kui salvestatud versioonide maht ületab seda limiiti, kustutatakse järjest vanemaid versioone, kuni maht jääb alla limiidi. Rohkem infot rakenduse dokumentatsioonis.", - "Could not set version name" : "Versiooni nime seadmine ebaõnnestus" + "File versions" : "Faili versioonid" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/eu.js b/apps/files_versions/l10n/eu.js index 52ae62abdbc..76e0383e4c8 100644 --- a/apps/files_versions/l10n/eu.js +++ b/apps/files_versions/l10n/eu.js @@ -4,25 +4,25 @@ OC.L10N.register( "Versions" : "Bertsioak", "This application automatically maintains older versions of files that are changed." : "Aplikazio honek aldatzen diren fitxategien bertsio zaharrak mantentzen ditu automatikoki.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikazio honek automatikoki mantentzen ditu aldatzen diren fitxategien bertsio zaharragoak. Gaituta dagoenean, ezkutuko bertsioen karpeta batez hornitzen da erabiltzaile bakoitzaren direktorioa, fitxategien bertsio zaharrak gordetzeko. Erabiltzaileak edozein unetan bertsio zaharrago batera leheneratu dezake web interfazearen bidez, ordeztutako fitxategia bertsio bihurtuz. Aplikazioak automatikoki kudeatzen du bertsioen karpeta, erabiltzailea bertsioak direla eta kuotarik gabe geratuko ez dela ziurtatzeko.\n\t\tBertsioak iraungitzeaz gain, bertsioen aplikazioak ziurtatzen du ez dela inoiz erabiliko kontuaren uneko espazio librearen %50 baino gehiago. Biltegiratutako bertsioek muga hori gainditzen badute, aplikazioak bertsio zaharrenak ezabatuko ditu, mugara jaitsi arte. Informazio gehiago dago eskuragarri bertsioen dokumentazioan.", + "Current version" : "Uneko bertsioa", + "Initial version" : "Hasierako bertsioa", + "You" : "Zu ", + "Actions for version from {versionHumanExplicitDate}" : "Bertsiorako ekintzak {versionHumanExplicitDate}(e)tik", "Name this version" : "Eman izena bertsio honi", "Edit version name" : "Editatu bertsioaren izena", "Compare to current version" : "Konparatu uneko bertsioarekin", "Restore version" : "Leheneratu bertsioa", "Download version" : "Deskargatu bertsioa", "Delete version" : "Ezabatu bertsioa", - "Current version" : "Uneko bertsioa", - "Initial version" : "Hasierako bertsioa", - "Version name" : "Bertsioaren izena", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Izendatutako bertsioak mantentzen dira eta garbiketa automatikoetatik kanpo geratzen dira biltegiratze-kuota beteta dagoenean.", + "Cancel" : "Utzi", "Remove version name" : "Kendu bertsioaren izena", "Save version name" : "Gorde bertsioaren izena", + "Version name" : "Bertsioaren izena", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Izendatutako bertsioak mantentzen dira eta garbiketa automatikoetatik kanpo geratzen dira biltegiratze-kuota beteta dagoenean.", "Initial version restored" : "Hasierako bertsioa ondo leheneratu da", "Version restored" : "Bertsioa leheneratu da", "Could not restore version" : "Ezin izan da bertsioa leheneratu", "Could not set version label" : "Ezin izan da bertsio etiketa ezarri", - "Could not delete version" : "Ezin izan da bertsioa ezabatu", - "${version.label} restored" : "${version.label} leheneratuta", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikazio honek automatikoki mantentzen ditu aldatzen diren fitxategien bertsio zaharragoak. Gaituta dagoenean, ezkutuko bertsioen karpeta batez hornitzen da erabiltzaile bakoitzaren direktorioa, fitxategien bertsio zaharrak gordetzeko. Erabiltzaileak edozein unetan bertsio zaharrago batera leheneratu dezake web interfazearen bidez, ordeztutako fitxategia bertsio bihurtuz. Aplikazioak automatikoki kudeatzen du bertsioen karpeta, erabiltzailea bertsioak direla eta kuotarik gabe geratuko ez dela ziurtatzeko.\n\t\tBertsioak iraungitzeaz gain, bertsioen aplikazioak ziurtatzen du ez dela inoiz erabiliko erabiltzailearen uneko espazio librearen %50 baino gehiago. Biltegiratutako bertsioek muga hori gainditzen badute, aplikazioak bertsio zaharrenak ezabatuko ditu, mugara jaitsi arte. Informazio gehiago dago eskuragarri bertsioen dokumentazioan.", - "Could not set version name" : "Ezin izan da bertsioaren izena ezarri" + "Could not delete version" : "Ezin izan da bertsioa ezabatu" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/eu.json b/apps/files_versions/l10n/eu.json index 7bd016ebec3..59421f36b36 100644 --- a/apps/files_versions/l10n/eu.json +++ b/apps/files_versions/l10n/eu.json @@ -2,25 +2,25 @@ "Versions" : "Bertsioak", "This application automatically maintains older versions of files that are changed." : "Aplikazio honek aldatzen diren fitxategien bertsio zaharrak mantentzen ditu automatikoki.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikazio honek automatikoki mantentzen ditu aldatzen diren fitxategien bertsio zaharragoak. Gaituta dagoenean, ezkutuko bertsioen karpeta batez hornitzen da erabiltzaile bakoitzaren direktorioa, fitxategien bertsio zaharrak gordetzeko. Erabiltzaileak edozein unetan bertsio zaharrago batera leheneratu dezake web interfazearen bidez, ordeztutako fitxategia bertsio bihurtuz. Aplikazioak automatikoki kudeatzen du bertsioen karpeta, erabiltzailea bertsioak direla eta kuotarik gabe geratuko ez dela ziurtatzeko.\n\t\tBertsioak iraungitzeaz gain, bertsioen aplikazioak ziurtatzen du ez dela inoiz erabiliko kontuaren uneko espazio librearen %50 baino gehiago. Biltegiratutako bertsioek muga hori gainditzen badute, aplikazioak bertsio zaharrenak ezabatuko ditu, mugara jaitsi arte. Informazio gehiago dago eskuragarri bertsioen dokumentazioan.", + "Current version" : "Uneko bertsioa", + "Initial version" : "Hasierako bertsioa", + "You" : "Zu ", + "Actions for version from {versionHumanExplicitDate}" : "Bertsiorako ekintzak {versionHumanExplicitDate}(e)tik", "Name this version" : "Eman izena bertsio honi", "Edit version name" : "Editatu bertsioaren izena", "Compare to current version" : "Konparatu uneko bertsioarekin", "Restore version" : "Leheneratu bertsioa", "Download version" : "Deskargatu bertsioa", "Delete version" : "Ezabatu bertsioa", - "Current version" : "Uneko bertsioa", - "Initial version" : "Hasierako bertsioa", - "Version name" : "Bertsioaren izena", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Izendatutako bertsioak mantentzen dira eta garbiketa automatikoetatik kanpo geratzen dira biltegiratze-kuota beteta dagoenean.", + "Cancel" : "Utzi", "Remove version name" : "Kendu bertsioaren izena", "Save version name" : "Gorde bertsioaren izena", + "Version name" : "Bertsioaren izena", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Izendatutako bertsioak mantentzen dira eta garbiketa automatikoetatik kanpo geratzen dira biltegiratze-kuota beteta dagoenean.", "Initial version restored" : "Hasierako bertsioa ondo leheneratu da", "Version restored" : "Bertsioa leheneratu da", "Could not restore version" : "Ezin izan da bertsioa leheneratu", "Could not set version label" : "Ezin izan da bertsio etiketa ezarri", - "Could not delete version" : "Ezin izan da bertsioa ezabatu", - "${version.label} restored" : "${version.label} leheneratuta", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikazio honek automatikoki mantentzen ditu aldatzen diren fitxategien bertsio zaharragoak. Gaituta dagoenean, ezkutuko bertsioen karpeta batez hornitzen da erabiltzaile bakoitzaren direktorioa, fitxategien bertsio zaharrak gordetzeko. Erabiltzaileak edozein unetan bertsio zaharrago batera leheneratu dezake web interfazearen bidez, ordeztutako fitxategia bertsio bihurtuz. Aplikazioak automatikoki kudeatzen du bertsioen karpeta, erabiltzailea bertsioak direla eta kuotarik gabe geratuko ez dela ziurtatzeko.\n\t\tBertsioak iraungitzeaz gain, bertsioen aplikazioak ziurtatzen du ez dela inoiz erabiliko erabiltzailearen uneko espazio librearen %50 baino gehiago. Biltegiratutako bertsioek muga hori gainditzen badute, aplikazioak bertsio zaharrenak ezabatuko ditu, mugara jaitsi arte. Informazio gehiago dago eskuragarri bertsioen dokumentazioan.", - "Could not set version name" : "Ezin izan da bertsioaren izena ezarri" + "Could not delete version" : "Ezin izan da bertsioa ezabatu" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/fa.js b/apps/files_versions/l10n/fa.js index 75eb16d48f6..6f50077efdc 100644 --- a/apps/files_versions/l10n/fa.js +++ b/apps/files_versions/l10n/fa.js @@ -3,23 +3,22 @@ OC.L10N.register( { "Versions" : "نسخه ها", "This application automatically maintains older versions of files that are changed." : "این برنامه به طور خودکار نسخه های قدیمی تر پرونده های تغییر یافته را حفظ می کند.", + "Current version" : "نسخه فعلی", + "You" : "You", "Name this version" : "Name this version", "Edit version name" : "Edit version name", "Compare to current version" : "Compare to current version", "Restore version" : "Restore version", "Download version" : "Download version", "Delete version" : "Delete version", - "Current version" : "نسخه فعلی", - "Version name" : "Version name", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", + "Cancel" : "منصرف شدن", "Remove version name" : "Remove version name", "Save version name" : "Save version name", + "Version name" : "Version name", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", "Initial version restored" : "Initial version restored", "Version restored" : "Version restored", "Could not restore version" : "Could not restore version", - "Could not delete version" : "Could not delete version", - "${version.label} restored" : "${version.label} restored", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", - "Could not set version name" : "Could not set version name" + "Could not delete version" : "Could not delete version" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_versions/l10n/fa.json b/apps/files_versions/l10n/fa.json index a3076f776cd..a96d8d4cd31 100644 --- a/apps/files_versions/l10n/fa.json +++ b/apps/files_versions/l10n/fa.json @@ -1,23 +1,22 @@ { "translations": { "Versions" : "نسخه ها", "This application automatically maintains older versions of files that are changed." : "این برنامه به طور خودکار نسخه های قدیمی تر پرونده های تغییر یافته را حفظ می کند.", + "Current version" : "نسخه فعلی", + "You" : "You", "Name this version" : "Name this version", "Edit version name" : "Edit version name", "Compare to current version" : "Compare to current version", "Restore version" : "Restore version", "Download version" : "Download version", "Delete version" : "Delete version", - "Current version" : "نسخه فعلی", - "Version name" : "Version name", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", + "Cancel" : "منصرف شدن", "Remove version name" : "Remove version name", "Save version name" : "Save version name", + "Version name" : "Version name", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", "Initial version restored" : "Initial version restored", "Version restored" : "Version restored", "Could not restore version" : "Could not restore version", - "Could not delete version" : "Could not delete version", - "${version.label} restored" : "${version.label} restored", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", - "Could not set version name" : "Could not set version name" + "Could not delete version" : "Could not delete version" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/fi.js b/apps/files_versions/l10n/fi.js index 28d93503918..62682858796 100644 --- a/apps/files_versions/l10n/fi.js +++ b/apps/files_versions/l10n/fi.js @@ -3,22 +3,23 @@ OC.L10N.register( { "Versions" : "Versiot", "This application automatically maintains older versions of files that are changed." : "Tämä sovellus säilyttää automaattisesti vanhempia versioita muuttuneista tiedostoista.", + "Current version" : "Nykyinen versio", + "Initial version" : "Ensimmäinen versio", + "You" : "Sinä", "Name this version" : "Nimeä tämä versio", "Edit version name" : "Muokkaa version nimeä", "Compare to current version" : "Vertaa nykyiseen versioon", "Restore version" : "Palauta versio", "Download version" : "Lataa versio", "Delete version" : "Poista versio", - "Current version" : "Nykyinen versio", - "Initial version" : "Ensimmäinen versio", - "Version name" : "Version nimi", + "Cancel" : "Peruuta", "Remove version name" : "Poista version nimi", "Save version name" : "Tallenna version nimi", + "Version name" : "Version nimi", "Initial version restored" : "Ensimmäinen versio palautettu", "Version restored" : "Versio palautettu", "Could not restore version" : "Versiota ei voitu palauttaa", "Could not delete version" : "Versiota ei voitu poistaa", - "${version.label} restored" : "${version.label} palautettu", - "Could not set version name" : "Versionimeä ei voitu asettaa" + "File versions" : "Tiedoston versiot" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/fi.json b/apps/files_versions/l10n/fi.json index 6a672f02abe..492facfe430 100644 --- a/apps/files_versions/l10n/fi.json +++ b/apps/files_versions/l10n/fi.json @@ -1,22 +1,23 @@ { "translations": { "Versions" : "Versiot", "This application automatically maintains older versions of files that are changed." : "Tämä sovellus säilyttää automaattisesti vanhempia versioita muuttuneista tiedostoista.", + "Current version" : "Nykyinen versio", + "Initial version" : "Ensimmäinen versio", + "You" : "Sinä", "Name this version" : "Nimeä tämä versio", "Edit version name" : "Muokkaa version nimeä", "Compare to current version" : "Vertaa nykyiseen versioon", "Restore version" : "Palauta versio", "Download version" : "Lataa versio", "Delete version" : "Poista versio", - "Current version" : "Nykyinen versio", - "Initial version" : "Ensimmäinen versio", - "Version name" : "Version nimi", + "Cancel" : "Peruuta", "Remove version name" : "Poista version nimi", "Save version name" : "Tallenna version nimi", + "Version name" : "Version nimi", "Initial version restored" : "Ensimmäinen versio palautettu", "Version restored" : "Versio palautettu", "Could not restore version" : "Versiota ei voitu palauttaa", "Could not delete version" : "Versiota ei voitu poistaa", - "${version.label} restored" : "${version.label} palautettu", - "Could not set version name" : "Versionimeä ei voitu asettaa" + "File versions" : "Tiedoston versiot" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/fr.js b/apps/files_versions/l10n/fr.js index 3a48990b8b6..88e5299734e 100644 --- a/apps/files_versions/l10n/fr.js +++ b/apps/files_versions/l10n/fr.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "Cette application conserve automatiquement des anciennes versions de fichiers qui ont été modifiés.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Cette application maintient automatiquement les anciennes versions des fichiers qui sont modifiés. Lorsqu'elle est activée, un dossier de versions cachées est provisionné dans le répertoire de chaque utilisateur et est utilisé pour stocker les anciennes versions de fichiers. Un utilisateur peut à tout moment revenir à une ancienne version via l'interface Web, le fichier remplacé devenant à son tour une version. L'application gère automatiquement le dossier des versions pour s'assurer que le compte ne manque pas de place à cause des versions stockées.\n\t\tEn plus de l'expiration des versions, l'application veille à ne jamais utiliser plus de 50% de l'espace libre actuellement disponible pour le compte. Si les versions stockées dépassent cette limite, l'application supprime les versions les plus anciennes en premier jusqu'à ce qu'elle atteigne cette limite. Plus d'informations sont disponibles dans la documentation Versions.", + "Current version" : "Version actuelle", + "Initial version" : "Version initiale", + "You" : "Vous", + "Actions for version from {versionHumanExplicitDate}" : "Actions pour la version du {versionHumanExplicitDate}", "Name this version" : "Nommer cette version", "Edit version name" : "Modifier le nom de version", "Compare to current version" : "Comparer avec la version actuelle", "Restore version" : "Restaurer la version", "Download version" : "Télécharger la version", "Delete version" : "Supprimer la version", - "Current version" : "Version actuelle", - "Initial version" : "Version initiale", - "Version name" : "Nom de la version", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions nommées sont conservées, et exclues des nettoyages automatiques lorsque vos quotas de stockage sont atteints.", + "Cancel" : "Annuler", "Remove version name" : "Retirer le nom de version", "Save version name" : "Sauvegarder le nom de version", + "Version name" : "Nom de la version", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions nommées sont conservées, et exclues des nettoyages automatiques lorsque vos quotas de stockage sont atteints.", "Initial version restored" : "Version initiale restaurée", "Version restored" : "Version restaurée", "Could not restore version" : "Impossible de restaurer la version", "Could not set version label" : "Impossible de définir l'étiquette de version", "Could not delete version" : "Impossible de supprimer la version", - "${version.label} restored" : "${version.label} restaurée", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Cette application maintient automatiquement les anciennes versions des fichiers qui sont modifiés. Lorsqu'elle est activée, un dossier de versions cachées est provisionné dans le répertoire de chaque utilisateur et est utilisé pour stocker les anciennes versions de fichiers. Un utilisateur peut à tout moment revenir à une ancienne version via l'interface Web, le fichier remplacé devenant à son tour une version. L'application gère automatiquement le dossier des versions pour s'assurer que l'utilisateur ne manque pas de place à cause des versions stockées.\n\t\tEn plus de l'expiration des versions, l'application veille à ne jamais utiliser plus de 50% de l'espace libre actuellement disponible pour l'utilisateur. Si les versions stockées dépassent cette limite, l'application supprime les versions les plus anciennes en premier jusqu'à ce qu'elle atteigne cette limite. Plus d'informations sont disponibles dans la documentation Versions.", - "Could not set version name" : "Impossible de définir le nom de version" + "File versions" : "Versions des fichiers" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/fr.json b/apps/files_versions/l10n/fr.json index cc3558ffb93..e59d1f3e59c 100644 --- a/apps/files_versions/l10n/fr.json +++ b/apps/files_versions/l10n/fr.json @@ -2,25 +2,26 @@ "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "Cette application conserve automatiquement des anciennes versions de fichiers qui ont été modifiés.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Cette application maintient automatiquement les anciennes versions des fichiers qui sont modifiés. Lorsqu'elle est activée, un dossier de versions cachées est provisionné dans le répertoire de chaque utilisateur et est utilisé pour stocker les anciennes versions de fichiers. Un utilisateur peut à tout moment revenir à une ancienne version via l'interface Web, le fichier remplacé devenant à son tour une version. L'application gère automatiquement le dossier des versions pour s'assurer que le compte ne manque pas de place à cause des versions stockées.\n\t\tEn plus de l'expiration des versions, l'application veille à ne jamais utiliser plus de 50% de l'espace libre actuellement disponible pour le compte. Si les versions stockées dépassent cette limite, l'application supprime les versions les plus anciennes en premier jusqu'à ce qu'elle atteigne cette limite. Plus d'informations sont disponibles dans la documentation Versions.", + "Current version" : "Version actuelle", + "Initial version" : "Version initiale", + "You" : "Vous", + "Actions for version from {versionHumanExplicitDate}" : "Actions pour la version du {versionHumanExplicitDate}", "Name this version" : "Nommer cette version", "Edit version name" : "Modifier le nom de version", "Compare to current version" : "Comparer avec la version actuelle", "Restore version" : "Restaurer la version", "Download version" : "Télécharger la version", "Delete version" : "Supprimer la version", - "Current version" : "Version actuelle", - "Initial version" : "Version initiale", - "Version name" : "Nom de la version", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions nommées sont conservées, et exclues des nettoyages automatiques lorsque vos quotas de stockage sont atteints.", + "Cancel" : "Annuler", "Remove version name" : "Retirer le nom de version", "Save version name" : "Sauvegarder le nom de version", + "Version name" : "Nom de la version", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Les versions nommées sont conservées, et exclues des nettoyages automatiques lorsque vos quotas de stockage sont atteints.", "Initial version restored" : "Version initiale restaurée", "Version restored" : "Version restaurée", "Could not restore version" : "Impossible de restaurer la version", "Could not set version label" : "Impossible de définir l'étiquette de version", "Could not delete version" : "Impossible de supprimer la version", - "${version.label} restored" : "${version.label} restaurée", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Cette application maintient automatiquement les anciennes versions des fichiers qui sont modifiés. Lorsqu'elle est activée, un dossier de versions cachées est provisionné dans le répertoire de chaque utilisateur et est utilisé pour stocker les anciennes versions de fichiers. Un utilisateur peut à tout moment revenir à une ancienne version via l'interface Web, le fichier remplacé devenant à son tour une version. L'application gère automatiquement le dossier des versions pour s'assurer que l'utilisateur ne manque pas de place à cause des versions stockées.\n\t\tEn plus de l'expiration des versions, l'application veille à ne jamais utiliser plus de 50% de l'espace libre actuellement disponible pour l'utilisateur. Si les versions stockées dépassent cette limite, l'application supprime les versions les plus anciennes en premier jusqu'à ce qu'elle atteigne cette limite. Plus d'informations sont disponibles dans la documentation Versions.", - "Could not set version name" : "Impossible de définir le nom de version" + "File versions" : "Versions des fichiers" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ga.js b/apps/files_versions/l10n/ga.js index 8e92eaed87e..f9bbe03d5fe 100644 --- a/apps/files_versions/l10n/ga.js +++ b/apps/files_versions/l10n/ga.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Leaganacha", "This application automatically maintains older versions of files that are changed." : "Coinníonn an feidhmchlár seo leaganacha níos sine de chomhaid a athraítear go huathoibríoch.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Coinníonn an feidhmchlár seo leaganacha níos sine de chomhaid a athraítear go huathoibríoch. Nuair atá sé cumasaithe, cuirtear fillteán leaganacha ceilte ar fáil i gcomhadlann gach úsáideora agus úsáidtear é chun seanleaganacha comhaid a stóráil. Is féidir le húsáideoir filleadh ar leagan níos sine tríd an gcomhéadan gréasáin am ar bith, agus an comhad a athsholáthar ina leagan. Bainistíonn an aip fillteán na leaganacha go huathoibríoch lena chinntiú nach n-éireoidh an cuntas as Cuóta mar gheall ar leaganacha.\n\t\t Chomh maith le dul in éag na leaganacha, cinntíonn an aip leaganacha nach n-úsáidfidh siad riamh níos mó ná 50% den spás saor in aisce atá ar fáil sa chuntas faoi láthair. Má sháraíonn na leaganacha stóráilte an teorainn seo, scriosfaidh an aip na leaganacha is sine ar dtús go dtí go gcomhlíonann sé an teorainn seo. Tá tuilleadh eolais ar fáil sna doiciméid Leaganacha.", + "Current version" : "Leagan reatha", + "Initial version" : "Leagan tosaigh", + "You" : "tú", + "Actions for version from {versionHumanExplicitDate}" : "Gníomhartha don leagan ó {versionHumanExplicitDate}", "Name this version" : "Ainmnigh an leagan seo", "Edit version name" : "Cuir ainm an leagain in eagar", "Compare to current version" : "Cuir i gcomparáid leis an leagan reatha", "Restore version" : "Athchóirigh leagan", "Download version" : "Íoslódáil leagan", "Delete version" : "Scrios leagan", - "Current version" : "Leagan reatha", - "Initial version" : "Leagan tosaigh", - "Version name" : "Ainm an leagain", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Leantar de leaganacha ainmnithe, agus fágtar iad as an áireamh ó ghlanadh uathoibríoch nuair a bhíonn do chuóta stórála lán.", + "Cancel" : "Cealaigh", "Remove version name" : "Bain ainm an leagain", "Save version name" : "Sábháil ainm an leagain", + "Version name" : "Ainm an leagain", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Leantar de leaganacha ainmnithe, agus fágtar iad as an áireamh ó ghlanadh uathoibríoch nuair a bhíonn do chuóta stórála lán.", "Initial version restored" : "Athchóiríodh an leagan tosaigh", "Version restored" : "Leagan athchóirithe", "Could not restore version" : "Níorbh fhéidir an leagan a chur ar ais", "Could not set version label" : "Níorbh fhéidir lipéad an leagain a shocrú", "Could not delete version" : "Níorbh fhéidir an leagan a scriosadh", - "${version.label} restored" : "${ version.label} athchóirithe", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Coinníonn an feidhmchlár seo leaganacha níos sine de chomhaid a athraítear go huathoibríoch. Nuair atá sé cumasaithe, cuirtear fillteán leaganacha ceilte ar fáil i gcomhadlann gach úsáideora agus úsáidtear é chun seanleaganacha comhaid a stóráil. Is féidir le húsáideoir filleadh ar leagan níos sine tríd an gcomhéadan gréasáin am ar bith, agus an comhad a athsholáthar ina leagan. Bainistíonn an aip fillteán na leaganacha go huathoibríoch chun a chinntiú nach n-éireoidh an t-úsáideoir as Cuóta mar gheall ar leaganacha.\n\t\t Chomh maith le dul in éag na leaganacha, cinnteoidh an aip leaganacha nach n-úsáidfear níos mó ná 50% den spás saor in aisce atá ag an úsáideoir faoi láthair. Má sháraíonn na leaganacha stóráilte an teorainn seo, scriosfaidh an aip na leaganacha is sine ar dtús go dtí go gcomhlíonann sé an teorainn seo. Tá tuilleadh eolais ar fáil sna doiciméid Leaganacha.", - "Could not set version name" : "Níorbh fhéidir ainm an leagain a shocrú" + "File versions" : "Leaganacha comhaid" }, "nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"); diff --git a/apps/files_versions/l10n/ga.json b/apps/files_versions/l10n/ga.json index 32e53be933b..38098d13973 100644 --- a/apps/files_versions/l10n/ga.json +++ b/apps/files_versions/l10n/ga.json @@ -2,25 +2,26 @@ "Versions" : "Leaganacha", "This application automatically maintains older versions of files that are changed." : "Coinníonn an feidhmchlár seo leaganacha níos sine de chomhaid a athraítear go huathoibríoch.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Coinníonn an feidhmchlár seo leaganacha níos sine de chomhaid a athraítear go huathoibríoch. Nuair atá sé cumasaithe, cuirtear fillteán leaganacha ceilte ar fáil i gcomhadlann gach úsáideora agus úsáidtear é chun seanleaganacha comhaid a stóráil. Is féidir le húsáideoir filleadh ar leagan níos sine tríd an gcomhéadan gréasáin am ar bith, agus an comhad a athsholáthar ina leagan. Bainistíonn an aip fillteán na leaganacha go huathoibríoch lena chinntiú nach n-éireoidh an cuntas as Cuóta mar gheall ar leaganacha.\n\t\t Chomh maith le dul in éag na leaganacha, cinntíonn an aip leaganacha nach n-úsáidfidh siad riamh níos mó ná 50% den spás saor in aisce atá ar fáil sa chuntas faoi láthair. Má sháraíonn na leaganacha stóráilte an teorainn seo, scriosfaidh an aip na leaganacha is sine ar dtús go dtí go gcomhlíonann sé an teorainn seo. Tá tuilleadh eolais ar fáil sna doiciméid Leaganacha.", + "Current version" : "Leagan reatha", + "Initial version" : "Leagan tosaigh", + "You" : "tú", + "Actions for version from {versionHumanExplicitDate}" : "Gníomhartha don leagan ó {versionHumanExplicitDate}", "Name this version" : "Ainmnigh an leagan seo", "Edit version name" : "Cuir ainm an leagain in eagar", "Compare to current version" : "Cuir i gcomparáid leis an leagan reatha", "Restore version" : "Athchóirigh leagan", "Download version" : "Íoslódáil leagan", "Delete version" : "Scrios leagan", - "Current version" : "Leagan reatha", - "Initial version" : "Leagan tosaigh", - "Version name" : "Ainm an leagain", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Leantar de leaganacha ainmnithe, agus fágtar iad as an áireamh ó ghlanadh uathoibríoch nuair a bhíonn do chuóta stórála lán.", + "Cancel" : "Cealaigh", "Remove version name" : "Bain ainm an leagain", "Save version name" : "Sábháil ainm an leagain", + "Version name" : "Ainm an leagain", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Leantar de leaganacha ainmnithe, agus fágtar iad as an áireamh ó ghlanadh uathoibríoch nuair a bhíonn do chuóta stórála lán.", "Initial version restored" : "Athchóiríodh an leagan tosaigh", "Version restored" : "Leagan athchóirithe", "Could not restore version" : "Níorbh fhéidir an leagan a chur ar ais", "Could not set version label" : "Níorbh fhéidir lipéad an leagain a shocrú", "Could not delete version" : "Níorbh fhéidir an leagan a scriosadh", - "${version.label} restored" : "${ version.label} athchóirithe", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Coinníonn an feidhmchlár seo leaganacha níos sine de chomhaid a athraítear go huathoibríoch. Nuair atá sé cumasaithe, cuirtear fillteán leaganacha ceilte ar fáil i gcomhadlann gach úsáideora agus úsáidtear é chun seanleaganacha comhaid a stóráil. Is féidir le húsáideoir filleadh ar leagan níos sine tríd an gcomhéadan gréasáin am ar bith, agus an comhad a athsholáthar ina leagan. Bainistíonn an aip fillteán na leaganacha go huathoibríoch chun a chinntiú nach n-éireoidh an t-úsáideoir as Cuóta mar gheall ar leaganacha.\n\t\t Chomh maith le dul in éag na leaganacha, cinnteoidh an aip leaganacha nach n-úsáidfear níos mó ná 50% den spás saor in aisce atá ag an úsáideoir faoi láthair. Má sháraíonn na leaganacha stóráilte an teorainn seo, scriosfaidh an aip na leaganacha is sine ar dtús go dtí go gcomhlíonann sé an teorainn seo. Tá tuilleadh eolais ar fáil sna doiciméid Leaganacha.", - "Could not set version name" : "Níorbh fhéidir ainm an leagain a shocrú" + "File versions" : "Leaganacha comhaid" },"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/gl.js b/apps/files_versions/l10n/gl.js index d65ff2b4040..c9ab468c4c0 100644 --- a/apps/files_versions/l10n/gl.js +++ b/apps/files_versions/l10n/gl.js @@ -4,25 +4,25 @@ OC.L10N.register( "Versions" : "Versións", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantén automaticamente versións antigas dos ficheiros que cambian.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantén automaticamente as versións anteriores dos ficheiros que se modifican. Ao activarse, crease un cartafol agochado de versións que se emprega para almacenar versións antigas de ficheiros. Un usuario pode reverter cara a unha versión anterior a través da interface web en calquera momento, e o ficheiro substituído pasa a ser unha versión. A aplicación xestiona automaticamente o cartafol de versións para garantir que a conta non esgota a cota de espazo por mor das versións.\n\t\tAdemais da caducidade de versións, a aplicación de versións asegurase de non empregar nunca máis do 50% do espazo libre dispoñíbel actualmente para unha conta. Se as versións almacenadas superan este límite, a aplicación eliminará primeiro as versións máis antigas ata acadar este límite. Hai máis información dispoñíbel na documentación de Versións.", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Vde.", + "Actions for version from {versionHumanExplicitDate}" : "Accións para a versión a partir de {versionHumanExplicitDate}", "Name this version" : "Nomear esta versión", "Edit version name" : "Editar o nome da versión", "Compare to current version" : "Comparar coa versión actual", "Restore version" : "Restaurar a versión", "Download version" : "Descargar a versión", "Delete version" : "Eliminar a versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nome da versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versións con nome mantéñense e exclúense das limpezas automáticas cando a súa cota de almacenamento estea completa.", + "Cancel" : "Cancelar", "Remove version name" : "Retirar o nome da versión", "Save version name" : "Gardar o nome da versión", + "Version name" : "Nome da versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versións con nome mantéñense e exclúense das limpezas automáticas cando a súa cota de almacenamento estea completa.", "Initial version restored" : "A versión inicial foi restaurada", "Version restored" : "A versión foi restaurada", "Could not restore version" : "Non foi posíbel restaurar a versión", "Could not set version label" : "Non foi posíbel definir a etiqueta de versión", - "Could not delete version" : "Non foi posíbel eliminar a versión", - "${version.label} restored" : "${version.label} foi restaurada", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantén automaticamente versións antigas dos ficheiros que cambian. Ao activarse, crease un cartafol agochado de versións que se emprega para almacenar versións antigas de ficheiros. Un usuario pode reverter cara a unha versión anterior a través da interface web en calquera momento, co ficheiro substituído converténdose nunha versión. A aplicación xestiona automaticamente o cartafol de versións para asegurarse de que o usuario non queda sen espazo por mor das versións.\n\t\tAdemais da caducidade de versións, a aplicación de versións asegurase de non empregar nunca máis do 50% do espazo libre actualmente dispoñíbel para un usuario. Se as versións almacenadas exceden este límite, a aplicación eliminará as versións máis antigas ata acadar este límite. Hai máis información dispoñíbel na documentación de Versións.", - "Could not set version name" : "Non foi posíbel definir o nome da versión" + "Could not delete version" : "Non foi posíbel eliminar a versión" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/gl.json b/apps/files_versions/l10n/gl.json index 9136fdbb17f..ec5a2856615 100644 --- a/apps/files_versions/l10n/gl.json +++ b/apps/files_versions/l10n/gl.json @@ -2,25 +2,25 @@ "Versions" : "Versións", "This application automatically maintains older versions of files that are changed." : "Esta aplicación mantén automaticamente versións antigas dos ficheiros que cambian.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantén automaticamente as versións anteriores dos ficheiros que se modifican. Ao activarse, crease un cartafol agochado de versións que se emprega para almacenar versións antigas de ficheiros. Un usuario pode reverter cara a unha versión anterior a través da interface web en calquera momento, e o ficheiro substituído pasa a ser unha versión. A aplicación xestiona automaticamente o cartafol de versións para garantir que a conta non esgota a cota de espazo por mor das versións.\n\t\tAdemais da caducidade de versións, a aplicación de versións asegurase de non empregar nunca máis do 50% do espazo libre dispoñíbel actualmente para unha conta. Se as versións almacenadas superan este límite, a aplicación eliminará primeiro as versións máis antigas ata acadar este límite. Hai máis información dispoñíbel na documentación de Versións.", + "Current version" : "Versión actual", + "Initial version" : "Versión inicial", + "You" : "Vde.", + "Actions for version from {versionHumanExplicitDate}" : "Accións para a versión a partir de {versionHumanExplicitDate}", "Name this version" : "Nomear esta versión", "Edit version name" : "Editar o nome da versión", "Compare to current version" : "Comparar coa versión actual", "Restore version" : "Restaurar a versión", "Download version" : "Descargar a versión", "Delete version" : "Eliminar a versión", - "Current version" : "Versión actual", - "Initial version" : "Versión inicial", - "Version name" : "Nome da versión", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versións con nome mantéñense e exclúense das limpezas automáticas cando a súa cota de almacenamento estea completa.", + "Cancel" : "Cancelar", "Remove version name" : "Retirar o nome da versión", "Save version name" : "Gardar o nome da versión", + "Version name" : "Nome da versión", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versións con nome mantéñense e exclúense das limpezas automáticas cando a súa cota de almacenamento estea completa.", "Initial version restored" : "A versión inicial foi restaurada", "Version restored" : "A versión foi restaurada", "Could not restore version" : "Non foi posíbel restaurar a versión", "Could not set version label" : "Non foi posíbel definir a etiqueta de versión", - "Could not delete version" : "Non foi posíbel eliminar a versión", - "${version.label} restored" : "${version.label} foi restaurada", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Esta aplicación mantén automaticamente versións antigas dos ficheiros que cambian. Ao activarse, crease un cartafol agochado de versións que se emprega para almacenar versións antigas de ficheiros. Un usuario pode reverter cara a unha versión anterior a través da interface web en calquera momento, co ficheiro substituído converténdose nunha versión. A aplicación xestiona automaticamente o cartafol de versións para asegurarse de que o usuario non queda sen espazo por mor das versións.\n\t\tAdemais da caducidade de versións, a aplicación de versións asegurase de non empregar nunca máis do 50% do espazo libre actualmente dispoñíbel para un usuario. Se as versións almacenadas exceden este límite, a aplicación eliminará as versións máis antigas ata acadar este límite. Hai máis información dispoñíbel na documentación de Versións.", - "Could not set version name" : "Non foi posíbel definir o nome da versión" + "Could not delete version" : "Non foi posíbel eliminar a versión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/he.js b/apps/files_versions/l10n/he.js deleted file mode 100644 index edeac4bb278..00000000000 --- a/apps/files_versions/l10n/he.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "גרסאות", - "This application automatically maintains older versions of files that are changed." : "יישומון זה שומר אוטומטית על גרסאות קודמות של קבצים שהשתנו.", - "Version" : "גרסה", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "יישום זה מתחזק באופן אוטומטי גרסאות ישנות יותר של קבצים שמשתנים. כאשר היא מופעלת, תיקייה של גרסאות נסתרות מסופקת בספריה של כל משתמש, ומשמשת לאחסן גרסאות קבצים ישנות. משתמש יכול לחזור לגרסה ישנה יותר באמצעות ממשק האינטרנט בכל עת, כאשר הקובץ שהוחלף יהפוך לגרסה. האפליקציה מנהלת באופן אוטומטי את תיקיית הגרסאות כדי להבטיח שלמשתמש לא נגמר המכסה בגלל גרסאות.\nבנוסף לתום תפוגת הגרסאות, אפליקציית הגרסאות מקפידה שלא להשתמש ביותר מ -50% מהשטח הפנוי של המשתמש הזמין כרגע. אם גרסאות מאוחסנות חורגות ממגבלה זו, האפליקציה תמחק תחילה את הגרסאות העתיקות ביותר, עד שתעמוד במגבלה זו. מידע נוסף זמין בתיעוד ה-Versions.", - "Failed to revert {file} to revision {timestamp}." : "נכשל אחזור {file} לגרסה {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים","%n בייטים"], - "Restore" : "שחזור", - "No other versions available" : "אין גרסאות אחרות זמינות" -}, -"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"); diff --git a/apps/files_versions/l10n/he.json b/apps/files_versions/l10n/he.json deleted file mode 100644 index 91c9f75130d..00000000000 --- a/apps/files_versions/l10n/he.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "גרסאות", - "This application automatically maintains older versions of files that are changed." : "יישומון זה שומר אוטומטית על גרסאות קודמות של קבצים שהשתנו.", - "Version" : "גרסה", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "יישום זה מתחזק באופן אוטומטי גרסאות ישנות יותר של קבצים שמשתנים. כאשר היא מופעלת, תיקייה של גרסאות נסתרות מסופקת בספריה של כל משתמש, ומשמשת לאחסן גרסאות קבצים ישנות. משתמש יכול לחזור לגרסה ישנה יותר באמצעות ממשק האינטרנט בכל עת, כאשר הקובץ שהוחלף יהפוך לגרסה. האפליקציה מנהלת באופן אוטומטי את תיקיית הגרסאות כדי להבטיח שלמשתמש לא נגמר המכסה בגלל גרסאות.\nבנוסף לתום תפוגת הגרסאות, אפליקציית הגרסאות מקפידה שלא להשתמש ביותר מ -50% מהשטח הפנוי של המשתמש הזמין כרגע. אם גרסאות מאוחסנות חורגות ממגבלה זו, האפליקציה תמחק תחילה את הגרסאות העתיקות ביותר, עד שתעמוד במגבלה זו. מידע נוסף זמין בתיעוד ה-Versions.", - "Failed to revert {file} to revision {timestamp}." : "נכשל אחזור {file} לגרסה {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים","%n בייטים"], - "Restore" : "שחזור", - "No other versions available" : "אין גרסאות אחרות זמינות" -},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/hr.js b/apps/files_versions/l10n/hr.js deleted file mode 100644 index a5a02529866..00000000000 --- a/apps/files_versions/l10n/hr.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Inačice", - "This application automatically maintains older versions of files that are changed." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene.", - "Version" : "Inačica", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene. Kad se omogući, u direktoriju svakog korisnika stvori se skrivena mapa s inačicama i koristi za pohranu starih inačica datoteka. Korisnik se u bilo kojem trenutku može vratiti na stariju inačicu putem web sučelja, a zamijenjena datoteka postaje inačica. Aplikacija automatski upravlja mapom s inačicama kako bi se osiguralo da korisnik ne ostane bez prostora zbog brojnih inačica.\n\t\tOsim isteka inačica, aplikacija za inačice pazi da nikada ne iskoristite više od 50 % trenutno dostupnog slobodnog prostora. Ako pohranjene inačice premaše ovo ograničenje, aplikacija će najprije izbrisati najstarije inačice tako da dosegne navedeno ograničenje. Više informacija dostupno je u dokumentaciji Inačice.", - "Failed to revert {file} to revision {timestamp}." : "Neuspješno vraćanje {file} na reviziju {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtova","%n bajtova"], - "Restore" : "Vrati", - "No other versions available" : "Nema drugih inačica" -}, -"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_versions/l10n/hr.json b/apps/files_versions/l10n/hr.json deleted file mode 100644 index 76607baf3e9..00000000000 --- a/apps/files_versions/l10n/hr.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "Inačice", - "This application automatically maintains older versions of files that are changed." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene.", - "Version" : "Inačica", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene. Kad se omogući, u direktoriju svakog korisnika stvori se skrivena mapa s inačicama i koristi za pohranu starih inačica datoteka. Korisnik se u bilo kojem trenutku može vratiti na stariju inačicu putem web sučelja, a zamijenjena datoteka postaje inačica. Aplikacija automatski upravlja mapom s inačicama kako bi se osiguralo da korisnik ne ostane bez prostora zbog brojnih inačica.\n\t\tOsim isteka inačica, aplikacija za inačice pazi da nikada ne iskoristite više od 50 % trenutno dostupnog slobodnog prostora. Ako pohranjene inačice premaše ovo ograničenje, aplikacija će najprije izbrisati najstarije inačice tako da dosegne navedeno ograničenje. Više informacija dostupno je u dokumentaciji Inačice.", - "Failed to revert {file} to revision {timestamp}." : "Neuspješno vraćanje {file} na reviziju {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtova","%n bajtova"], - "Restore" : "Vrati", - "No other versions available" : "Nema drugih inačica" -},"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_versions/l10n/hu.js b/apps/files_versions/l10n/hu.js index be113e8f801..d8c34d9aa53 100644 --- a/apps/files_versions/l10n/hu.js +++ b/apps/files_versions/l10n/hu.js @@ -3,24 +3,26 @@ OC.L10N.register( { "Versions" : "Verziók", "This application automatically maintains older versions of files that are changed." : "Ez az alkalmazás automatikusan karbantartja a változtatott fájlok régebbi verzióit.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ez az alkalmazás automatikusan karbantartja a változtatott fájlok régebbi verzióit. Amikor be van kapcsolva, egy rejtett verziómappa jön létre minden felhasználó tárhelyén, amit a korábbi verziók tárolására használ a rendszer. Egy felhasználó bármikor visszatérhet egy korábbi verzióhoz a webes felületen keresztül, és a lecserélt fájl maga is előzménnyé válik. Az alkalmazás automatikusan kezeli a verziómappát, biztosítva, hogy a fiók ne fusson ki a tárterületéből az előzmények miatt.\n\t\tA fájlelőzmények lejárati dátumán kívül az alkalmazás sose használ az elérhető szabad terület 50%-ánál többet. Ha a tárolt előzmények túllépik ezt a korlátot, az alkalmazás addig törli a legrégebbi verziókat, amíg nem felel meg a korlátozásnak. További információ érhető el a Verziók dokumentációjában.", + "Current version" : "Jelenlegi verzió", + "Initial version" : "Kezdeti verzió", + "You" : "Ön", + "Actions for version from {versionHumanExplicitDate}" : "A verzióra vonatkozó műveletek: {versionHumanExplicitDate}", "Name this version" : "Verzió elnevezése", "Edit version name" : "Verziónév szerkesztése", "Compare to current version" : "Összehasonlítás a jelenlegi verzióval", "Restore version" : "Verzió helyreállítása", "Download version" : "Verzió letöltése", "Delete version" : "Verzió törlése", - "Current version" : "Jelenlegi verzió", - "Initial version" : "Kezdeti verzió", - "Version name" : "Verziónév", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "A nevesített verziók meg lesznek őrizve, és ki lesznek zárva az automatikus takarítás alól, ha a tárkvóta betelik.", + "Cancel" : "Mégse", "Remove version name" : "Verziónév eltávolítása", "Save version name" : "Verziónév mentése", + "Version name" : "Verziónév", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "A nevesített verziók meg lesznek őrizve, és ki lesznek zárva az automatikus takarítás alól, ha a tárkvóta betelik.", "Initial version restored" : "Kezdeti verzió helyreállítva", "Version restored" : "Verzió helyreállítva", "Could not restore version" : "Nem sikerült helyreállítani a verziót", - "Could not delete version" : "Nem sikerült törölni a verziót", - "${version.label} restored" : "${version.label} helyreállítva", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ez az alkalmazás automatikusan karbantartja a változtatott fájlok régebbi verzióit. Amikor be van kapcsolva, egy rejtett verziómappa jön létre minden felhasználó tárhelyén, amit a korábbi verziók tárolására használ a rendszer. Egy felhasználó bármikor visszatérhet egy korábbi verzióhoz a webes felületen keresztül, és a lecserélt fájl maga is előzménnyé válik. Az alkalmazás automatikusan kezeli a verziómappát, biztosítva, hogy a felhasználó ne fusson ki a tárterületéből az előzmények miatt.\n\t\tA fájlelőzmények lejárati dátumán kívül az alkalmazás sose használ az elérhető szabad terület 50%-ánál többet. Ha a tárolt előzmények túllépik ezt a korlátot, az alkalmazás addig törli a legrégebbi verziókat, amíg nem felel meg a korlátozásnak. További információ érhető el a Verziók dokumentációjában.", - "Could not set version name" : "Nem sikerült beállítani a verziónevet" + "Could not set version label" : "Nem sikerült beállítani a verziócímkét", + "Could not delete version" : "Nem sikerült törölni a verziót" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/hu.json b/apps/files_versions/l10n/hu.json index 8cc690122e1..1f4f2a3b26e 100644 --- a/apps/files_versions/l10n/hu.json +++ b/apps/files_versions/l10n/hu.json @@ -1,24 +1,26 @@ { "translations": { "Versions" : "Verziók", "This application automatically maintains older versions of files that are changed." : "Ez az alkalmazás automatikusan karbantartja a változtatott fájlok régebbi verzióit.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ez az alkalmazás automatikusan karbantartja a változtatott fájlok régebbi verzióit. Amikor be van kapcsolva, egy rejtett verziómappa jön létre minden felhasználó tárhelyén, amit a korábbi verziók tárolására használ a rendszer. Egy felhasználó bármikor visszatérhet egy korábbi verzióhoz a webes felületen keresztül, és a lecserélt fájl maga is előzménnyé válik. Az alkalmazás automatikusan kezeli a verziómappát, biztosítva, hogy a fiók ne fusson ki a tárterületéből az előzmények miatt.\n\t\tA fájlelőzmények lejárati dátumán kívül az alkalmazás sose használ az elérhető szabad terület 50%-ánál többet. Ha a tárolt előzmények túllépik ezt a korlátot, az alkalmazás addig törli a legrégebbi verziókat, amíg nem felel meg a korlátozásnak. További információ érhető el a Verziók dokumentációjában.", + "Current version" : "Jelenlegi verzió", + "Initial version" : "Kezdeti verzió", + "You" : "Ön", + "Actions for version from {versionHumanExplicitDate}" : "A verzióra vonatkozó műveletek: {versionHumanExplicitDate}", "Name this version" : "Verzió elnevezése", "Edit version name" : "Verziónév szerkesztése", "Compare to current version" : "Összehasonlítás a jelenlegi verzióval", "Restore version" : "Verzió helyreállítása", "Download version" : "Verzió letöltése", "Delete version" : "Verzió törlése", - "Current version" : "Jelenlegi verzió", - "Initial version" : "Kezdeti verzió", - "Version name" : "Verziónév", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "A nevesített verziók meg lesznek őrizve, és ki lesznek zárva az automatikus takarítás alól, ha a tárkvóta betelik.", + "Cancel" : "Mégse", "Remove version name" : "Verziónév eltávolítása", "Save version name" : "Verziónév mentése", + "Version name" : "Verziónév", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "A nevesített verziók meg lesznek őrizve, és ki lesznek zárva az automatikus takarítás alól, ha a tárkvóta betelik.", "Initial version restored" : "Kezdeti verzió helyreállítva", "Version restored" : "Verzió helyreállítva", "Could not restore version" : "Nem sikerült helyreállítani a verziót", - "Could not delete version" : "Nem sikerült törölni a verziót", - "${version.label} restored" : "${version.label} helyreállítva", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ez az alkalmazás automatikusan karbantartja a változtatott fájlok régebbi verzióit. Amikor be van kapcsolva, egy rejtett verziómappa jön létre minden felhasználó tárhelyén, amit a korábbi verziók tárolására használ a rendszer. Egy felhasználó bármikor visszatérhet egy korábbi verzióhoz a webes felületen keresztül, és a lecserélt fájl maga is előzménnyé válik. Az alkalmazás automatikusan kezeli a verziómappát, biztosítva, hogy a felhasználó ne fusson ki a tárterületéből az előzmények miatt.\n\t\tA fájlelőzmények lejárati dátumán kívül az alkalmazás sose használ az elérhető szabad terület 50%-ánál többet. Ha a tárolt előzmények túllépik ezt a korlátot, az alkalmazás addig törli a legrégebbi verziókat, amíg nem felel meg a korlátozásnak. További információ érhető el a Verziók dokumentációjában.", - "Could not set version name" : "Nem sikerült beállítani a verziónevet" + "Could not set version label" : "Nem sikerült beállítani a verziócímkét", + "Could not delete version" : "Nem sikerült törölni a verziót" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/hy.js b/apps/files_versions/l10n/hy.js deleted file mode 100644 index d48487a9a84..00000000000 --- a/apps/files_versions/l10n/hy.js +++ /dev/null @@ -1,8 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Տարբերակներ", - "Restore" : "Վերականգնել", - "No other versions available" : "Այլ տարբերակներ չկան" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/hy.json b/apps/files_versions/l10n/hy.json deleted file mode 100644 index 579b9240310..00000000000 --- a/apps/files_versions/l10n/hy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ "translations": { - "Versions" : "Տարբերակներ", - "Restore" : "Վերականգնել", - "No other versions available" : "Այլ տարբերակներ չկան" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/ia.js b/apps/files_versions/l10n/ia.js deleted file mode 100644 index 46aa143e4a7..00000000000 --- a/apps/files_versions/l10n/ia.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Il falleva a reverter {file} a revision {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], - "Restore" : "Restaurar", - "No other versions available" : "Nulle altere versiones disponibile" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/ia.json b/apps/files_versions/l10n/ia.json deleted file mode 100644 index 10c18bab080..00000000000 --- a/apps/files_versions/l10n/ia.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "Failed to revert {file} to revision {timestamp}." : "Il falleva a reverter {file} a revision {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], - "Restore" : "Restaurar", - "No other versions available" : "Nulle altere versiones disponibile" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/id.js b/apps/files_versions/l10n/id.js deleted file mode 100644 index 35ad4ded36e..00000000000 --- a/apps/files_versions/l10n/id.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versi", - "This application automatically maintains older versions of files that are changed." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah.", - "Version" : "Versi", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah. Saat diaktifkan, suatu folder tersembunyi akan dibuat pada semua direktori pengguna, dan digunakan sebagai wadah penyimpanan versi-versi berkas. Secara otomatis akan mengelola folder versi-versi untuk memastikan pengguna tidak kehabisan kuota dikarenakan versi yang ada.\n\t\tSebagai tambahan dari kedaluwarsa suatu versi, aplikasi ini memastikan tidak akan menggunakan kuota 50% lebih dari sisa kapasitas yang dimiliki oleh pengguna. Jika versi yang tersimpan melampaui batasan, maka versi tertua akan dihapus lebih dahulu sampai batasan kembali sesuai ketentuan. Informasi lebih lanjut mengenai Versi dapat dilihat pada dokumentasi", - "Failed to revert {file} to revision {timestamp}." : "Gagal mengembalikan {file} ke revisi {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bytes"], - "Restore" : "Pulihkan", - "No other versions available" : "Tidak ada versi lain yang tersedia" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/id.json b/apps/files_versions/l10n/id.json deleted file mode 100644 index 4b38ca58c70..00000000000 --- a/apps/files_versions/l10n/id.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "Versi", - "This application automatically maintains older versions of files that are changed." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah.", - "Version" : "Versi", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah. Saat diaktifkan, suatu folder tersembunyi akan dibuat pada semua direktori pengguna, dan digunakan sebagai wadah penyimpanan versi-versi berkas. Secara otomatis akan mengelola folder versi-versi untuk memastikan pengguna tidak kehabisan kuota dikarenakan versi yang ada.\n\t\tSebagai tambahan dari kedaluwarsa suatu versi, aplikasi ini memastikan tidak akan menggunakan kuota 50% lebih dari sisa kapasitas yang dimiliki oleh pengguna. Jika versi yang tersimpan melampaui batasan, maka versi tertua akan dihapus lebih dahulu sampai batasan kembali sesuai ketentuan. Informasi lebih lanjut mengenai Versi dapat dilihat pada dokumentasi", - "Failed to revert {file} to revision {timestamp}." : "Gagal mengembalikan {file} ke revisi {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bytes"], - "Restore" : "Pulihkan", - "No other versions available" : "Tidak ada versi lain yang tersedia" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/is.js b/apps/files_versions/l10n/is.js index 6dbd9be6475..5f995d19f2f 100644 --- a/apps/files_versions/l10n/is.js +++ b/apps/files_versions/l10n/is.js @@ -3,23 +3,25 @@ OC.L10N.register( { "Versions" : "Útgáfur", "This application automatically maintains older versions of files that are changed." : "Þetta forrit viðheldur sjálfvirkt eldri útgáfum skráa sem er breytt.", + "Current version" : "Fyrirliggjandi útgáfa", + "Initial version" : "Upprunaleg útgáfa", + "You" : "Þú", + "Actions for version from {versionHumanExplicitDate}" : "Aðgerðir fyrir útgáfu frá {versionHumanExplicitDate}", "Name this version" : "Settu heiti á þessa útgáfu", "Edit version name" : "Breyta heiti útgáfunnar", "Compare to current version" : "Bera saman við fyrirliggjandi útgáfu", "Restore version" : "Endurheimta útgáfu", "Download version" : "Sækja útgáfu", "Delete version" : "Eyða útgáfu", - "Current version" : "Fyrirliggjandi útgáfa", - "Initial version" : "Upprunaleg útgáfa", - "Version name" : "Heiti útgáfu", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nefndar útgáfur eru varanlegar og er undanþegnar við sjálfvirkar tiltektir þegar geymslukvóti fyllist.", + "Cancel" : "Hætta við", "Remove version name" : "Fjarlægja heiti útgáfu", "Save version name" : "Vista heiti útgáfu", + "Version name" : "Heiti útgáfu", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nefndar útgáfur eru varanlegar og er undanþegnar við sjálfvirkar tiltektir þegar geymslukvóti fyllist.", "Initial version restored" : "Upprunaleg útgáfa endurheimt", "Version restored" : "Útgáfa endurheimt", "Could not restore version" : "Gat ekki endurheimt útgáfu", - "Could not delete version" : "Gat ekki eytt útgáfu", - "${version.label} restored" : "${version.label} endurheimt", - "Could not set version name" : "Gat ekki sett heiti á útgáfu" + "Could not set version label" : "Gat ekki sett merkingu á útgáfu", + "Could not delete version" : "Gat ekki eytt útgáfu" }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/files_versions/l10n/is.json b/apps/files_versions/l10n/is.json index aeeac24ffb1..368351cdac7 100644 --- a/apps/files_versions/l10n/is.json +++ b/apps/files_versions/l10n/is.json @@ -1,23 +1,25 @@ { "translations": { "Versions" : "Útgáfur", "This application automatically maintains older versions of files that are changed." : "Þetta forrit viðheldur sjálfvirkt eldri útgáfum skráa sem er breytt.", + "Current version" : "Fyrirliggjandi útgáfa", + "Initial version" : "Upprunaleg útgáfa", + "You" : "Þú", + "Actions for version from {versionHumanExplicitDate}" : "Aðgerðir fyrir útgáfu frá {versionHumanExplicitDate}", "Name this version" : "Settu heiti á þessa útgáfu", "Edit version name" : "Breyta heiti útgáfunnar", "Compare to current version" : "Bera saman við fyrirliggjandi útgáfu", "Restore version" : "Endurheimta útgáfu", "Download version" : "Sækja útgáfu", "Delete version" : "Eyða útgáfu", - "Current version" : "Fyrirliggjandi útgáfa", - "Initial version" : "Upprunaleg útgáfa", - "Version name" : "Heiti útgáfu", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nefndar útgáfur eru varanlegar og er undanþegnar við sjálfvirkar tiltektir þegar geymslukvóti fyllist.", + "Cancel" : "Hætta við", "Remove version name" : "Fjarlægja heiti útgáfu", "Save version name" : "Vista heiti útgáfu", + "Version name" : "Heiti útgáfu", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nefndar útgáfur eru varanlegar og er undanþegnar við sjálfvirkar tiltektir þegar geymslukvóti fyllist.", "Initial version restored" : "Upprunaleg útgáfa endurheimt", "Version restored" : "Útgáfa endurheimt", "Could not restore version" : "Gat ekki endurheimt útgáfu", - "Could not delete version" : "Gat ekki eytt útgáfu", - "${version.label} restored" : "${version.label} endurheimt", - "Could not set version name" : "Gat ekki sett heiti á útgáfu" + "Could not set version label" : "Gat ekki sett merkingu á útgáfu", + "Could not delete version" : "Gat ekki eytt útgáfu" },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/it.js b/apps/files_versions/l10n/it.js index fe735e2a9e1..2e782c6d327 100644 --- a/apps/files_versions/l10n/it.js +++ b/apps/files_versions/l10n/it.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Versioni", "This application automatically maintains older versions of files that are changed." : "Questa applicazione mantiene automaticamente versioni più datate dei file modificati.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Questa applicazione conserva automaticamente le versioni più datate dei file che sono stati modificati. Se attivata, una cartella nascosta delle versioni viene generata in ogni cartella degli utenti ed è usata per archiviare le versioni datate dei file. Un utente può tornare a una versione più datata tramite l'interfaccia web in qualsiasi momento, con il file sostituito che diventa una versione. L'applicazione gestisce automaticamente la cartella delle versioni per assicurare che l'account non esaurisca mai la quota a causa delle versioni.\n\t\tIn aggiunta alla scadenza delle versioni, l'applicazione delle versioni si accerta che non sia utilizzato mai più del 50% dello spazio disponibile attualmente all'account. Se le versioni archiviate eccedono questo limite, l'applicazione eliminerà prima le versioni più vecchie, fino a raggiungere questo limite. Altre informazioni sono disponibili nella documentazione di Versioni.", + "Current version" : "Versione corrente", + "Initial version" : "Versione iniziale", + "You" : "Tu", + "Actions for version from {versionHumanExplicitDate}" : "Azioni per la versione da {versionHumanExplicitDate}", "Name this version" : "Nome di questa versione", "Edit version name" : "Modifica nome versione", "Compare to current version" : "Confronta con la versione attuale", "Restore version" : "Ripristina versione", "Download version" : "Scarica versione", "Delete version" : "Elimina versione", - "Current version" : "Versione corrente", - "Initial version" : "Versione iniziale", - "Version name" : "Nome versione", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Le versioni con nome sono persistenti ed escluse dalle pulizie automatiche quando lo spazio è pieno.", + "Cancel" : "Annulla", "Remove version name" : "Rimuovi nome versione", "Save version name" : "Salva nome versione", + "Version name" : "Nome versione", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Le versioni con nome sono persistenti ed escluse dalle pulizie automatiche quando lo spazio è pieno.", "Initial version restored" : "Versione iniziale ripristinata", "Version restored" : "Versione ripristinata", "Could not restore version" : "Impossibile ripristinare la versione", "Could not set version label" : "Impossibile impostare l'etichetta della versione", "Could not delete version" : "Impossibile eliminare la versione", - "${version.label} restored" : "${version.label} ripristinato", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Questa applicazione conserva automaticamente le versioni più datate dei file che sono stati modificati. Se attivata, una cartella nascosta delle versioni viene generata in ogni cartella degli utenti ed è usata per archiviare le versioni datate dei file. Un utente può tornare a una versione più datata tramite l'interfaccia web in qualsiasi momento, con il file sostituito che diventa una versione. L'applicazione gestisce automaticamente la cartella delle versioni per assicurare che l'utente non esaurisca mai la quota a causa delle versioni.\n\t\tIn aggiunta alla scadenza delle versioni, l'applicazione delle versioni si accerta che non sia utilizzato mai più del 50% dello spazio disponibile attualmente all'utente. Se le versioni archiviate eccedono questo limite, l'applicazione eliminerà prima le versioni più vecchie, fino a raggiungere questo limite. Altre informazioni sono disponibili nella documentazione di Versioni.", - "Could not set version name" : "Impossibile impostare il nome della versione" + "File versions" : "Versioni dei file" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/it.json b/apps/files_versions/l10n/it.json index 0aca3b0458c..0871aa8c115 100644 --- a/apps/files_versions/l10n/it.json +++ b/apps/files_versions/l10n/it.json @@ -2,25 +2,26 @@ "Versions" : "Versioni", "This application automatically maintains older versions of files that are changed." : "Questa applicazione mantiene automaticamente versioni più datate dei file modificati.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Questa applicazione conserva automaticamente le versioni più datate dei file che sono stati modificati. Se attivata, una cartella nascosta delle versioni viene generata in ogni cartella degli utenti ed è usata per archiviare le versioni datate dei file. Un utente può tornare a una versione più datata tramite l'interfaccia web in qualsiasi momento, con il file sostituito che diventa una versione. L'applicazione gestisce automaticamente la cartella delle versioni per assicurare che l'account non esaurisca mai la quota a causa delle versioni.\n\t\tIn aggiunta alla scadenza delle versioni, l'applicazione delle versioni si accerta che non sia utilizzato mai più del 50% dello spazio disponibile attualmente all'account. Se le versioni archiviate eccedono questo limite, l'applicazione eliminerà prima le versioni più vecchie, fino a raggiungere questo limite. Altre informazioni sono disponibili nella documentazione di Versioni.", + "Current version" : "Versione corrente", + "Initial version" : "Versione iniziale", + "You" : "Tu", + "Actions for version from {versionHumanExplicitDate}" : "Azioni per la versione da {versionHumanExplicitDate}", "Name this version" : "Nome di questa versione", "Edit version name" : "Modifica nome versione", "Compare to current version" : "Confronta con la versione attuale", "Restore version" : "Ripristina versione", "Download version" : "Scarica versione", "Delete version" : "Elimina versione", - "Current version" : "Versione corrente", - "Initial version" : "Versione iniziale", - "Version name" : "Nome versione", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Le versioni con nome sono persistenti ed escluse dalle pulizie automatiche quando lo spazio è pieno.", + "Cancel" : "Annulla", "Remove version name" : "Rimuovi nome versione", "Save version name" : "Salva nome versione", + "Version name" : "Nome versione", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Le versioni con nome sono persistenti ed escluse dalle pulizie automatiche quando lo spazio è pieno.", "Initial version restored" : "Versione iniziale ripristinata", "Version restored" : "Versione ripristinata", "Could not restore version" : "Impossibile ripristinare la versione", "Could not set version label" : "Impossibile impostare l'etichetta della versione", "Could not delete version" : "Impossibile eliminare la versione", - "${version.label} restored" : "${version.label} ripristinato", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Questa applicazione conserva automaticamente le versioni più datate dei file che sono stati modificati. Se attivata, una cartella nascosta delle versioni viene generata in ogni cartella degli utenti ed è usata per archiviare le versioni datate dei file. Un utente può tornare a una versione più datata tramite l'interfaccia web in qualsiasi momento, con il file sostituito che diventa una versione. L'applicazione gestisce automaticamente la cartella delle versioni per assicurare che l'utente non esaurisca mai la quota a causa delle versioni.\n\t\tIn aggiunta alla scadenza delle versioni, l'applicazione delle versioni si accerta che non sia utilizzato mai più del 50% dello spazio disponibile attualmente all'utente. Se le versioni archiviate eccedono questo limite, l'applicazione eliminerà prima le versioni più vecchie, fino a raggiungere questo limite. Altre informazioni sono disponibili nella documentazione di Versioni.", - "Could not set version name" : "Impossibile impostare il nome della versione" + "File versions" : "Versioni dei file" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ja.js b/apps/files_versions/l10n/ja.js index 4199553ea37..d4202f4050d 100644 --- a/apps/files_versions/l10n/ja.js +++ b/apps/files_versions/l10n/ja.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "バージョン", "This application automatically maintains older versions of files that are changed." : "このアプリケーションは、変更された古いバージョンのファイルを自動的に維持します。", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "このアプリケーションは、変更された古いバージョンのファイルを自動的に維持します。有効にすると、隠れバージョン用フォルダーがすべてのユーザーのディレクトリに用意され、古いファイルバージョンを格納するために使用されます。ユーザーはいつでもWebインターフェースから古いバージョンに戻すことができ、置き換えられたファイルはバージョン管理されます。アプリはバージョンフォルダーを自動的に管理して、アカウントがバージョン履歴のために容量を使い果たさないようにします。\nバージョンの有効期限に加えて、バージョンアプリは、アカウントの現在利用可能な空き容量の50%以上を使用しないように維持します。保存されたバージョンがこの制限を超えた場合、アプリはこの制限を満たすまで、最初に最も古いバージョンから削除します。詳細は、バージョンのドキュメントを参照してください。", + "Current version" : "現在のバージョン", + "Initial version" : "最初のバージョン", + "You" : "自分", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate}からのバージョンに対するアクション", "Name this version" : "このバージョンに名前を付けます", "Edit version name" : "バージョン名の編集", "Compare to current version" : "現在のバージョンと比較", "Restore version" : "このバージョンを復元する", "Download version" : "このバージョンをダウンロード", "Delete version" : "このバージョンを削除", - "Current version" : "現在のバージョン", - "Initial version" : "最初のバージョン", - "Version name" : "名前付きバージョン", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "名前付きバージョンは永続化され、ストレージクォータがいっぱいになっていても自動クリーンアップから除外されます。", + "Cancel" : "キャンセル", "Remove version name" : "バージョン名を削除", "Save version name" : "バージョン名を保存", + "Version name" : "名前付きバージョン", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "名前付きバージョンは永続化され、ストレージクォータがいっぱいになっていても自動クリーンアップから除外されます。", "Initial version restored" : "初期バージョンを復旧", "Version restored" : "指定のバージョンが復旧されました", "Could not restore version" : "このバージョンを復旧できません", "Could not set version label" : "バージョンラベルを付けることができませんでした", "Could not delete version" : "指定のバージョンを削除できませんでした", - "${version.label} restored" : "${version.label} が復旧されました", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "このアプリケーションは、変更された古いバージョンのファイルを自動的に維持します。 有効にすると、隠れバージョンフォルダーはすべてのユーザーのディレクトリにプロビジョニングされ、古いファイルバージョンを格納するために使用されます。 ユーザーはいつでもWebインターフェイスから古いバージョンに戻すことができ、置き換えられたファイルはバージョン管理されます。 バージョン管理のためにクオータが足りなくなっていないことを保証するために、バージョンフォルダーを自動的に管理します。\n\t\tバージョンの有効期限に加えて、バージョン管理アプリは、ユーザーが現在利用可能な空き容量の50%以上利用しないように維持します。 保存されたバージョンがこの制限を超えた場合、アプリはこの制限を満たすまで、最も古いバージョンを最初に削除します。 詳細は、バージョンのドキュメントを参照してください。", - "Could not set version name" : "バージョン名を設定できませんでした" + "File versions" : "ファイルバージョン" }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/ja.json b/apps/files_versions/l10n/ja.json index 9744d4d6cf3..2d877d60eb7 100644 --- a/apps/files_versions/l10n/ja.json +++ b/apps/files_versions/l10n/ja.json @@ -2,25 +2,26 @@ "Versions" : "バージョン", "This application automatically maintains older versions of files that are changed." : "このアプリケーションは、変更された古いバージョンのファイルを自動的に維持します。", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "このアプリケーションは、変更された古いバージョンのファイルを自動的に維持します。有効にすると、隠れバージョン用フォルダーがすべてのユーザーのディレクトリに用意され、古いファイルバージョンを格納するために使用されます。ユーザーはいつでもWebインターフェースから古いバージョンに戻すことができ、置き換えられたファイルはバージョン管理されます。アプリはバージョンフォルダーを自動的に管理して、アカウントがバージョン履歴のために容量を使い果たさないようにします。\nバージョンの有効期限に加えて、バージョンアプリは、アカウントの現在利用可能な空き容量の50%以上を使用しないように維持します。保存されたバージョンがこの制限を超えた場合、アプリはこの制限を満たすまで、最初に最も古いバージョンから削除します。詳細は、バージョンのドキュメントを参照してください。", + "Current version" : "現在のバージョン", + "Initial version" : "最初のバージョン", + "You" : "自分", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate}からのバージョンに対するアクション", "Name this version" : "このバージョンに名前を付けます", "Edit version name" : "バージョン名の編集", "Compare to current version" : "現在のバージョンと比較", "Restore version" : "このバージョンを復元する", "Download version" : "このバージョンをダウンロード", "Delete version" : "このバージョンを削除", - "Current version" : "現在のバージョン", - "Initial version" : "最初のバージョン", - "Version name" : "名前付きバージョン", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "名前付きバージョンは永続化され、ストレージクォータがいっぱいになっていても自動クリーンアップから除外されます。", + "Cancel" : "キャンセル", "Remove version name" : "バージョン名を削除", "Save version name" : "バージョン名を保存", + "Version name" : "名前付きバージョン", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "名前付きバージョンは永続化され、ストレージクォータがいっぱいになっていても自動クリーンアップから除外されます。", "Initial version restored" : "初期バージョンを復旧", "Version restored" : "指定のバージョンが復旧されました", "Could not restore version" : "このバージョンを復旧できません", "Could not set version label" : "バージョンラベルを付けることができませんでした", "Could not delete version" : "指定のバージョンを削除できませんでした", - "${version.label} restored" : "${version.label} が復旧されました", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "このアプリケーションは、変更された古いバージョンのファイルを自動的に維持します。 有効にすると、隠れバージョンフォルダーはすべてのユーザーのディレクトリにプロビジョニングされ、古いファイルバージョンを格納するために使用されます。 ユーザーはいつでもWebインターフェイスから古いバージョンに戻すことができ、置き換えられたファイルはバージョン管理されます。 バージョン管理のためにクオータが足りなくなっていないことを保証するために、バージョンフォルダーを自動的に管理します。\n\t\tバージョンの有効期限に加えて、バージョン管理アプリは、ユーザーが現在利用可能な空き容量の50%以上利用しないように維持します。 保存されたバージョンがこの制限を超えた場合、アプリはこの制限を満たすまで、最も古いバージョンを最初に削除します。 詳細は、バージョンのドキュメントを参照してください。", - "Could not set version name" : "バージョン名を設定できませんでした" + "File versions" : "ファイルバージョン" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ka.js b/apps/files_versions/l10n/ka.js index f896ff4708c..92b8518a28f 100644 --- a/apps/files_versions/l10n/ka.js +++ b/apps/files_versions/l10n/ka.js @@ -3,24 +3,23 @@ OC.L10N.register( { "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "This application automatically maintains older versions of files that are changed.", + "Current version" : "Current version", + "Initial version" : "Initial version", + "You" : "You", "Name this version" : "Name this version", "Edit version name" : "Edit version name", "Compare to current version" : "Compare to current version", "Restore version" : "Restore version", "Download version" : "Download version", "Delete version" : "Delete version", - "Current version" : "Current version", - "Initial version" : "Initial version", - "Version name" : "Version name", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", + "Cancel" : "Cancel", "Remove version name" : "Remove version name", "Save version name" : "Save version name", + "Version name" : "Version name", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", "Initial version restored" : "Initial version restored", "Version restored" : "Version restored", "Could not restore version" : "Could not restore version", - "Could not delete version" : "Could not delete version", - "${version.label} restored" : "${version.label} restored", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", - "Could not set version name" : "Could not set version name" + "Could not delete version" : "Could not delete version" }, "nplurals=2; plural=(n!=1);"); diff --git a/apps/files_versions/l10n/ka.json b/apps/files_versions/l10n/ka.json index 574a0747d6b..fb116a07a9d 100644 --- a/apps/files_versions/l10n/ka.json +++ b/apps/files_versions/l10n/ka.json @@ -1,24 +1,23 @@ { "translations": { "Versions" : "Versions", "This application automatically maintains older versions of files that are changed." : "This application automatically maintains older versions of files that are changed.", + "Current version" : "Current version", + "Initial version" : "Initial version", + "You" : "You", "Name this version" : "Name this version", "Edit version name" : "Edit version name", "Compare to current version" : "Compare to current version", "Restore version" : "Restore version", "Download version" : "Download version", "Delete version" : "Delete version", - "Current version" : "Current version", - "Initial version" : "Initial version", - "Version name" : "Version name", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", + "Cancel" : "Cancel", "Remove version name" : "Remove version name", "Save version name" : "Save version name", + "Version name" : "Version name", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.", "Initial version restored" : "Initial version restored", "Version restored" : "Version restored", "Could not restore version" : "Could not restore version", - "Could not delete version" : "Could not delete version", - "${version.label} restored" : "${version.label} restored", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.", - "Could not set version name" : "Could not set version name" + "Could not delete version" : "Could not delete version" },"pluralForm" :"nplurals=2; plural=(n!=1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ka_GE.js b/apps/files_versions/l10n/ka_GE.js deleted file mode 100644 index 598dd4e40e3..00000000000 --- a/apps/files_versions/l10n/ka_GE.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "ვერსიები", - "Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.", - "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"], - "Restore" : "აღდგენა" -}, -"nplurals=2; plural=(n!=1);"); diff --git a/apps/files_versions/l10n/ka_GE.json b/apps/files_versions/l10n/ka_GE.json deleted file mode 100644 index 1b2607a309b..00000000000 --- a/apps/files_versions/l10n/ka_GE.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "ვერსიები", - "Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.", - "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"], - "Restore" : "აღდგენა" -},"pluralForm" :"nplurals=2; plural=(n!=1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/km.js b/apps/files_versions/l10n/km.js deleted file mode 100644 index a459413b284..00000000000 --- a/apps/files_versions/l10n/km.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "កំណែ", - "Failed to revert {file} to revision {timestamp}." : "មិនអាចត្រឡប់ {file} ទៅកំណែសម្រួល {timestamp} បានទេ។", - "Restore" : "ស្ដារមកវិញ", - "No other versions available" : "មិនមានកំណែផ្សេងទៀតទេ" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/km.json b/apps/files_versions/l10n/km.json deleted file mode 100644 index b2e34f4fb35..00000000000 --- a/apps/files_versions/l10n/km.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "កំណែ", - "Failed to revert {file} to revision {timestamp}." : "មិនអាចត្រឡប់ {file} ទៅកំណែសម្រួល {timestamp} បានទេ។", - "Restore" : "ស្ដារមកវិញ", - "No other versions available" : "មិនមានកំណែផ្សេងទៀតទេ" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/kn.js b/apps/files_versions/l10n/kn.js deleted file mode 100644 index db64a419828..00000000000 --- a/apps/files_versions/l10n/kn.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "ಆವೃತ್ತಿಗಳು", - "Failed to revert {file} to revision {timestamp}." : "{timestamp} ದ ಪರಿಷ್ಕರಣೆ ಇಂದ {file} ಕಡತವನ್ನು ಹಿಂದಿರುಗಿಸಲು ವಿಫಲವಾಗಿದೆ.", - "Restore" : "ಮರುಸ್ಥಾಪಿಸು", - "No other versions available" : "ಇನ್ನಿತರೆ ಯಾವುದೇ ಆವೃತ್ತಿಗಳು ಲಭ್ಯವಿಲ್ಲ" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_versions/l10n/kn.json b/apps/files_versions/l10n/kn.json deleted file mode 100644 index d7226c306eb..00000000000 --- a/apps/files_versions/l10n/kn.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "ಆವೃತ್ತಿಗಳು", - "Failed to revert {file} to revision {timestamp}." : "{timestamp} ದ ಪರಿಷ್ಕರಣೆ ಇಂದ {file} ಕಡತವನ್ನು ಹಿಂದಿರುಗಿಸಲು ವಿಫಲವಾಗಿದೆ.", - "Restore" : "ಮರುಸ್ಥಾಪಿಸು", - "No other versions available" : "ಇನ್ನಿತರೆ ಯಾವುದೇ ಆವೃತ್ತಿಗಳು ಲಭ್ಯವಿಲ್ಲ" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/ko.js b/apps/files_versions/l10n/ko.js index 0447c52bd71..ec839dace65 100644 --- a/apps/files_versions/l10n/ko.js +++ b/apps/files_versions/l10n/ko.js @@ -3,24 +3,23 @@ OC.L10N.register( { "Versions" : "버전", "This application automatically maintains older versions of files that are changed." : "이 앱은 변경된 파일의 이전 버전을 관리합니다.", - "Name this version" : "이 버전의 이름", + "Current version" : "현재 버전", + "Initial version" : "초기 버전", + "You" : "당신", + "Name this version" : "버전 이름 지정", "Edit version name" : "버전 이름 수정", "Compare to current version" : "현재 버전과 비교하기", "Restore version" : "버전 복원", "Download version" : "버전 다운로드", "Delete version" : "버전 삭제", - "Current version" : "현재 버전", - "Initial version" : "초기 버전", - "Version name" : "버전 이름", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "이름이 지정된 버전은 유지되며, 저장 공간 할당량이 가득 찼을 때의 자동 정리 목록에서 제외됩니다.", + "Cancel" : "취소", "Remove version name" : "버전 이름 제거", "Save version name" : "버전 이름 저장", + "Version name" : "버전 이름", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "이름이 지정된 버전은 유지되며, 저장 공간 할당량이 가득 찼을 때의 자동 정리 목록에서 제외됩니다.", "Initial version restored" : "초기 버전이 복원됨", "Version restored" : "버전이 복원됨", "Could not restore version" : "버전을 복원할 수 없음", - "Could not delete version" : "버전을 삭제할 수 없음", - "${version.label} restored" : "${version.label} 복원됨", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "이 애플리케이션은 변경된 파일의 이전 버전을 자동으로 유지합니다. 활성화되면 각 사용자 디렉토리에 숨겨진 버전 폴더가 생성되며 이전 파일 버전을 저장하는 데 사용됩니다. 사용자는 웹 인터페이스를 통해 언제든지 이전 버전으로 복원할 수 있으며 교체된 파일이 버전으로 변합니다. 이 앱은 사용자가 버전으로 인해 할당량을 모두 사용하지 않도록 버전 폴더를 자동으로 관리합니다. 또한 버전의 만료 외에도, 버전 앱은 사용 가능한 무료 공간의 50%를 초과하여 사용하지 않도록 합니다. 저장된 버전이 이 제한을 초과하는 경우, 앱은 가장 오래된 버전을 먼저 삭제하여 이 제한을 준수하도록 합니다. 더 자세한 정보는 버전 문서에서 확인할 수 있습니다.", - "Could not set version name" : "버전 이름을 설정할 수 없음" + "Could not delete version" : "버전을 삭제할 수 없음" }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/ko.json b/apps/files_versions/l10n/ko.json index 379a198f777..658529bf8bd 100644 --- a/apps/files_versions/l10n/ko.json +++ b/apps/files_versions/l10n/ko.json @@ -1,24 +1,23 @@ { "translations": { "Versions" : "버전", "This application automatically maintains older versions of files that are changed." : "이 앱은 변경된 파일의 이전 버전을 관리합니다.", - "Name this version" : "이 버전의 이름", + "Current version" : "현재 버전", + "Initial version" : "초기 버전", + "You" : "당신", + "Name this version" : "버전 이름 지정", "Edit version name" : "버전 이름 수정", "Compare to current version" : "현재 버전과 비교하기", "Restore version" : "버전 복원", "Download version" : "버전 다운로드", "Delete version" : "버전 삭제", - "Current version" : "현재 버전", - "Initial version" : "초기 버전", - "Version name" : "버전 이름", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "이름이 지정된 버전은 유지되며, 저장 공간 할당량이 가득 찼을 때의 자동 정리 목록에서 제외됩니다.", + "Cancel" : "취소", "Remove version name" : "버전 이름 제거", "Save version name" : "버전 이름 저장", + "Version name" : "버전 이름", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "이름이 지정된 버전은 유지되며, 저장 공간 할당량이 가득 찼을 때의 자동 정리 목록에서 제외됩니다.", "Initial version restored" : "초기 버전이 복원됨", "Version restored" : "버전이 복원됨", "Could not restore version" : "버전을 복원할 수 없음", - "Could not delete version" : "버전을 삭제할 수 없음", - "${version.label} restored" : "${version.label} 복원됨", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "이 애플리케이션은 변경된 파일의 이전 버전을 자동으로 유지합니다. 활성화되면 각 사용자 디렉토리에 숨겨진 버전 폴더가 생성되며 이전 파일 버전을 저장하는 데 사용됩니다. 사용자는 웹 인터페이스를 통해 언제든지 이전 버전으로 복원할 수 있으며 교체된 파일이 버전으로 변합니다. 이 앱은 사용자가 버전으로 인해 할당량을 모두 사용하지 않도록 버전 폴더를 자동으로 관리합니다. 또한 버전의 만료 외에도, 버전 앱은 사용 가능한 무료 공간의 50%를 초과하여 사용하지 않도록 합니다. 저장된 버전이 이 제한을 초과하는 경우, 앱은 가장 오래된 버전을 먼저 삭제하여 이 제한을 준수하도록 합니다. 더 자세한 정보는 버전 문서에서 확인할 수 있습니다.", - "Could not set version name" : "버전 이름을 설정할 수 없음" + "Could not delete version" : "버전을 삭제할 수 없음" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/lb.js b/apps/files_versions/l10n/lb.js deleted file mode 100644 index d0339a4fd2a..00000000000 --- a/apps/files_versions/l10n/lb.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiounen", - "Failed to revert {file} to revision {timestamp}." : "Konnt {file} net op d'Versioun {timestamp} zrécksetzen.", - "_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"], - "Restore" : "Zrécksetzen", - "No other versions available" : "Keng aner Versiounen disponibel" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/lb.json b/apps/files_versions/l10n/lb.json deleted file mode 100644 index 68b63f27485..00000000000 --- a/apps/files_versions/l10n/lb.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Versions" : "Versiounen", - "Failed to revert {file} to revision {timestamp}." : "Konnt {file} net op d'Versioun {timestamp} zrécksetzen.", - "_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"], - "Restore" : "Zrécksetzen", - "No other versions available" : "Keng aner Versiounen disponibel" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/lt_LT.js b/apps/files_versions/l10n/lt_LT.js index 0bf9f252c84..101281dae52 100644 --- a/apps/files_versions/l10n/lt_LT.js +++ b/apps/files_versions/l10n/lt_LT.js @@ -3,11 +3,20 @@ OC.L10N.register( { "Versions" : "Versijos", "This application automatically maintains older versions of files that are changed." : "Ši programa automatiškai palaiko senesnes pakeistų failų versijas.", - "Version" : "Versija", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ši programa automatiškai palaiko senesnes pakeistų failų versijas. Kai ji įjungiama, kiekvieno naudotojo kataloge yra nustatomas paslėptų versijų aplankas, kuris naudojamas senoms failų versijoms saugoti. Naudotojas naudodamas žiniatinklio sąsają gali bet kada grįžti prie senesnės versijos. Programa automatiškai administruoja versijų aplanką ir užtikrina, kad nauotojui nepritrūktų suteiktos vietos dėl versijavimo.\n\t\t Be to, programa užtikrina, kad versijavimas nenaudotų daugiau nei 50% naudotojui suteiktos laisvos vietos. Jei saugomos versijos viršija šią ribą, programa pirmiausia ištrins seniausias versijas, kol pasieks šią ribą. Daugiau informacijos galima rasti versijavimo dokumentacijoje.", - "Failed to revert {file} to revision {timestamp}." : "Nepavyko atstatyti {file} versijos {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitas"], - "Restore" : "Atkurti", - "No other versions available" : "Nėra kitų prieinamų versijų" + "Current version" : "Dabartinė versija", + "Initial version" : "Pradinė versija", + "You" : "Jūs", + "Edit version name" : "Taisyti versijos pavadinimą", + "Compare to current version" : "Palyginti su dabartine versija", + "Restore version" : "Atkurti versiją", + "Download version" : "Atsisiųsti versiją", + "Delete version" : "Ištrinti versiją", + "Cancel" : "Atsisakyti", + "Remove version name" : "Šalinti versijos pavadinimą", + "Save version name" : "Įrašyti versijos pavadinimą", + "Version name" : "Versijos pavadinimas", + "Version restored" : "Versija atkurta", + "Could not restore version" : "Nepavyko atkurti versijos", + "Could not delete version" : "Nepavyko ištrinti versijos" }, "nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/apps/files_versions/l10n/lt_LT.json b/apps/files_versions/l10n/lt_LT.json index 032119b92c7..6f0ce5d3c6d 100644 --- a/apps/files_versions/l10n/lt_LT.json +++ b/apps/files_versions/l10n/lt_LT.json @@ -1,11 +1,20 @@ { "translations": { "Versions" : "Versijos", "This application automatically maintains older versions of files that are changed." : "Ši programa automatiškai palaiko senesnes pakeistų failų versijas.", - "Version" : "Versija", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ši programa automatiškai palaiko senesnes pakeistų failų versijas. Kai ji įjungiama, kiekvieno naudotojo kataloge yra nustatomas paslėptų versijų aplankas, kuris naudojamas senoms failų versijoms saugoti. Naudotojas naudodamas žiniatinklio sąsają gali bet kada grįžti prie senesnės versijos. Programa automatiškai administruoja versijų aplanką ir užtikrina, kad nauotojui nepritrūktų suteiktos vietos dėl versijavimo.\n\t\t Be to, programa užtikrina, kad versijavimas nenaudotų daugiau nei 50% naudotojui suteiktos laisvos vietos. Jei saugomos versijos viršija šią ribą, programa pirmiausia ištrins seniausias versijas, kol pasieks šią ribą. Daugiau informacijos galima rasti versijavimo dokumentacijoje.", - "Failed to revert {file} to revision {timestamp}." : "Nepavyko atstatyti {file} versijos {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitas"], - "Restore" : "Atkurti", - "No other versions available" : "Nėra kitų prieinamų versijų" + "Current version" : "Dabartinė versija", + "Initial version" : "Pradinė versija", + "You" : "Jūs", + "Edit version name" : "Taisyti versijos pavadinimą", + "Compare to current version" : "Palyginti su dabartine versija", + "Restore version" : "Atkurti versiją", + "Download version" : "Atsisiųsti versiją", + "Delete version" : "Ištrinti versiją", + "Cancel" : "Atsisakyti", + "Remove version name" : "Šalinti versijos pavadinimą", + "Save version name" : "Įrašyti versijos pavadinimą", + "Version name" : "Versijos pavadinimas", + "Version restored" : "Versija atkurta", + "Could not restore version" : "Nepavyko atkurti versijos", + "Could not delete version" : "Nepavyko ištrinti versijos" },"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/lv.js b/apps/files_versions/l10n/lv.js deleted file mode 100644 index 109c867101d..00000000000 --- a/apps/files_versions/l10n/lv.js +++ /dev/null @@ -1,12 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versijas", - "This application automatically maintains older versions of files that are changed." : "Šī lietotne automātiski uztur vecākas versijas datnēm, kas tiek izmainītas.", - "Version" : "Versija", - "Failed to revert {file} to revision {timestamp}." : "Neizdevās atjaunot {file} no rediģējuma {timestamp} ", - "_%n byte_::_%n bytes_" : ["%n baiti","%n baiti","%n baiti"], - "Restore" : "Atjaunot", - "No other versions available" : "Citas versijas nav pieejamas" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/files_versions/l10n/lv.json b/apps/files_versions/l10n/lv.json deleted file mode 100644 index 46d90c62b7a..00000000000 --- a/apps/files_versions/l10n/lv.json +++ /dev/null @@ -1,10 +0,0 @@ -{ "translations": { - "Versions" : "Versijas", - "This application automatically maintains older versions of files that are changed." : "Šī lietotne automātiski uztur vecākas versijas datnēm, kas tiek izmainītas.", - "Version" : "Versija", - "Failed to revert {file} to revision {timestamp}." : "Neizdevās atjaunot {file} no rediģējuma {timestamp} ", - "_%n byte_::_%n bytes_" : ["%n baiti","%n baiti","%n baiti"], - "Restore" : "Atjaunot", - "No other versions available" : "Citas versijas nav pieejamas" -},"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_versions/l10n/mk.js b/apps/files_versions/l10n/mk.js index 562b349c6a5..0e23cb9241d 100644 --- a/apps/files_versions/l10n/mk.js +++ b/apps/files_versions/l10n/mk.js @@ -3,24 +3,27 @@ OC.L10N.register( { "Versions" : "Верзии", "This application automatically maintains older versions of files that are changed." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети. Кога е овозможена, скриена папка се креира во секој кориснички директориум и се користи за зачувување на постарите верзии на датотеките. Корисникот има можност да врати стара верзија од датотеката во секое време преку веб-интерфејсот, со што се преклопува постоечката верзија на датотеката. Апликацијата автоматски се грижи за верзиите за да не дојде случај да се искористи просторот за складирање на корисникот.\n\t\tПокрај истекот на верзиите, апликацијата за верзии нема да користи повеќе од 50% од тековно достапната квота за верзии. Ако зачуваните верзии ја надминат оваа граница, апликацијата ги брише најстарите верзии на датотеки сè додека не се дојде под ова ограничување. Повеќе информации се достапни во документацијата за верзии на датотеки.", + "Current version" : "Моментална верзија", + "Initial version" : "Првична верзија", + "You" : "Вас", + "Actions for version from {versionHumanExplicitDate}" : "Акции за верзии од {versionHumanExplicitDate}", "Name this version" : "Додај име на оваа верзијата", "Edit version name" : "Промени име на верзијата", "Compare to current version" : "Спореди со моменталната верзија", "Restore version" : "Врати ја оваа верзија", "Download version" : "Преземи верзија", "Delete version" : "Избриши верзија", - "Current version" : "Моментална верзија", - "Initial version" : "Првична верзија", - "Version name" : "Име на верзијата", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните верзии опстојуваат и се исклучени од автоматско чистење кога вашата квота за складирање е полна.", + "Cancel" : "Откажи", "Remove version name" : "Избриши име на верзијата", "Save version name" : "Зачувај име на верзија", + "Version name" : "Име на верзијата", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните верзии опстојуваат и се исклучени од автоматско чистење кога вашата квота за складирање е полна.", "Initial version restored" : "Почетната верзијата е вратена", "Version restored" : "Верзијата е вратена", "Could not restore version" : "Неможе да се врати верзијата", + "Could not set version label" : "Неможе да се постави ознака на верзијата", "Could not delete version" : "Неможе да се избрише верзијата", - "${version.label} restored" : "${version.label} вратена", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети. Кога е овозможена, скриена папка се креира во секој кориснички директориум и се користи за зачувување на постарите верзии на датотеките. Корисникот има можност да врати стара верзија од датотеката во секое време преку веб-интерфејсот, со што се преклопува постоечката верзија на датотеката. Апликацијата автоматски се грижи за верзиите за да не дојде случај да се искористи просторот за складирање на корисникот.\n\t\tПокрај истекот на верзиите, апликацијата за верзии нема да користи повеќе од 50% од тековно достапната квота за верзии. Ако зачуваните верзии ја надминат оваа граница, апликацијата ги брише најстарите верзии на датотеки сè додека не се дојде под ова ограничување. Повеќе информации се достапни во документацијата за верзии на датотеки.", - "Could not set version name" : "Неможе да се постави име на верзијата" + "File versions" : "Верзии на датотеки" }, "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files_versions/l10n/mk.json b/apps/files_versions/l10n/mk.json index a47f930069d..0193422f6a0 100644 --- a/apps/files_versions/l10n/mk.json +++ b/apps/files_versions/l10n/mk.json @@ -1,24 +1,27 @@ { "translations": { "Versions" : "Верзии", "This application automatically maintains older versions of files that are changed." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети. Кога е овозможена, скриена папка се креира во секој кориснички директориум и се користи за зачувување на постарите верзии на датотеките. Корисникот има можност да врати стара верзија од датотеката во секое време преку веб-интерфејсот, со што се преклопува постоечката верзија на датотеката. Апликацијата автоматски се грижи за верзиите за да не дојде случај да се искористи просторот за складирање на корисникот.\n\t\tПокрај истекот на верзиите, апликацијата за верзии нема да користи повеќе од 50% од тековно достапната квота за верзии. Ако зачуваните верзии ја надминат оваа граница, апликацијата ги брише најстарите верзии на датотеки сè додека не се дојде под ова ограничување. Повеќе информации се достапни во документацијата за верзии на датотеки.", + "Current version" : "Моментална верзија", + "Initial version" : "Првична верзија", + "You" : "Вас", + "Actions for version from {versionHumanExplicitDate}" : "Акции за верзии од {versionHumanExplicitDate}", "Name this version" : "Додај име на оваа верзијата", "Edit version name" : "Промени име на верзијата", "Compare to current version" : "Спореди со моменталната верзија", "Restore version" : "Врати ја оваа верзија", "Download version" : "Преземи верзија", "Delete version" : "Избриши верзија", - "Current version" : "Моментална верзија", - "Initial version" : "Првична верзија", - "Version name" : "Име на верзијата", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните верзии опстојуваат и се исклучени од автоматско чистење кога вашата квота за складирање е полна.", + "Cancel" : "Откажи", "Remove version name" : "Избриши име на верзијата", "Save version name" : "Зачувај име на верзија", + "Version name" : "Име на верзијата", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именуваните верзии опстојуваат и се исклучени од автоматско чистење кога вашата квота за складирање е полна.", "Initial version restored" : "Почетната верзијата е вратена", "Version restored" : "Верзијата е вратена", "Could not restore version" : "Неможе да се врати верзијата", + "Could not set version label" : "Неможе да се постави ознака на верзијата", "Could not delete version" : "Неможе да се избрише верзијата", - "${version.label} restored" : "${version.label} вратена", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Оваа апликација автоматски ги менаџира постарите верзии на датотеките кој се изменети. Кога е овозможена, скриена папка се креира во секој кориснички директориум и се користи за зачувување на постарите верзии на датотеките. Корисникот има можност да врати стара верзија од датотеката во секое време преку веб-интерфејсот, со што се преклопува постоечката верзија на датотеката. Апликацијата автоматски се грижи за верзиите за да не дојде случај да се искористи просторот за складирање на корисникот.\n\t\tПокрај истекот на верзиите, апликацијата за верзии нема да користи повеќе од 50% од тековно достапната квота за верзии. Ако зачуваните верзии ја надминат оваа граница, апликацијата ги брише најстарите верзии на датотеки сè додека не се дојде под ова ограничување. Повеќе информации се достапни во документацијата за верзии на датотеки.", - "Could not set version name" : "Неможе да се постави име на верзијата" + "File versions" : "Верзии на датотеки" },"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ms_MY.js b/apps/files_versions/l10n/ms_MY.js deleted file mode 100644 index 4ec22f9b141..00000000000 --- a/apps/files_versions/l10n/ms_MY.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versi", - "Failed to revert {file} to revision {timestamp}." : "Gagal kembalikan {file} ke semakan {timestamp}.", - "Restore" : "Pulihkan", - "No other versions available" : "Tiada lagi versi lain" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/ms_MY.json b/apps/files_versions/l10n/ms_MY.json deleted file mode 100644 index 7510c52ceb8..00000000000 --- a/apps/files_versions/l10n/ms_MY.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versi", - "Failed to revert {file} to revision {timestamp}." : "Gagal kembalikan {file} ke semakan {timestamp}.", - "Restore" : "Pulihkan", - "No other versions available" : "Tiada lagi versi lain" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/nb.js b/apps/files_versions/l10n/nb.js index 4c2b50f1b95..16e91d78621 100644 --- a/apps/files_versions/l10n/nb.js +++ b/apps/files_versions/l10n/nb.js @@ -4,25 +4,25 @@ OC.L10N.register( "Versions" : "Versjoner", "This application automatically maintains older versions of files that are changed." : "Dette programmet vedlikeholder eldre versjoner av endrede filer.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Dette programmet opprettholder automatisk eldre versjoner av filer som endres. Når den er aktivert, klargjøres en mappe for skjulte versjoner i hver brukers katalog og brukes til å lagre gamle filversjoner. En bruker kan når som helst gå tilbake til en eldre versjon via webgrensesnittet, og den erstattede filen blir en versjon. Appen administrerer automatisk versjonsmappen for å sikre at brukeren ikke går tom for kvote på grunn av versjoner.\n\t\tI tillegg til at versjoner opphører, sørger versjonsappen for aldri å bruke mer enn 50% av brukerens tilgjengelige ledige plass. Hvis lagrede versjoner overskrider denne grensen, sletter appen de eldste versjonene først til den oppfyller denne grensen. Du finner mer informasjon i dokumentasjonen for Versions.", + "Current version" : "Nåværende versjon", + "Initial version" : "Opprinnelig versjon", + "You" : "Du", + "Actions for version from {versionHumanExplicitDate}" : "Handlinger for versjon fra {versionHumanExplicitDate}", "Name this version" : "Navngi denne versjonen", "Edit version name" : "Rediger versjonsnavn", "Compare to current version" : "Sammenlign med gjeldende versjon", "Restore version" : "Gjenopprett versjon", "Download version" : "Last ned versjon", "Delete version" : "Slett versjon", - "Current version" : "Nåværende versjon", - "Initial version" : "Opprinnelig versjon", - "Version name" : "Versjonsnavn", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Navngitte versjoner beholdes og utelates fra automatiske oppryddinger når lagringskvoten er full.", + "Cancel" : "Avbryt", "Remove version name" : "Fjern versjonsnavn", "Save version name" : "Lagre versjonsnavn", + "Version name" : "Versjonsnavn", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Navngitte versjoner beholdes og utelates fra automatiske oppryddinger når lagringskvoten er full.", "Initial version restored" : "Opprinnelig versjon opprettet", "Version restored" : "Versjon gjenopprettet", "Could not restore version" : "Kunne ikke gjenopprette versjon", "Could not set version label" : "Kunne ikke angi versjonsetikett", - "Could not delete version" : "Kunne ikke slette versjon", - "${version.label} restored" : "${version.label} gjenopprettet", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Dette programmet opprettholder automatisk eldre versjoner av filer som endres. Når den er aktivert, klargjøres en mappe for skjulte versjoner i hver brukers katalog og brukes til å lagre gamle filversjoner. En bruker kan når som helst gå tilbake til en eldre versjon via webgrensesnittet, og den erstattede filen blir en versjon. Appen administrerer automatisk versjonsmappen for å sikre at brukeren ikke går tom for kvote på grunn av versjoner.\n\t\tI tillegg til at versjoner opphører, sørger versjonsappen for aldri å bruke mer enn 50% av brukerens tilgjengelige ledige plass. Hvis lagrede versjoner overskrider denne grensen, sletter appen de eldste versjonene først til den oppfyller denne grensen. Du finner mer informasjon i dokumentasjonen for Versions.", - "Could not set version name" : "Kunne ikke angi versjonsnavn" + "Could not delete version" : "Kunne ikke slette versjon" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/nb.json b/apps/files_versions/l10n/nb.json index c7d207175c9..a08659e07ac 100644 --- a/apps/files_versions/l10n/nb.json +++ b/apps/files_versions/l10n/nb.json @@ -2,25 +2,25 @@ "Versions" : "Versjoner", "This application automatically maintains older versions of files that are changed." : "Dette programmet vedlikeholder eldre versjoner av endrede filer.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Dette programmet opprettholder automatisk eldre versjoner av filer som endres. Når den er aktivert, klargjøres en mappe for skjulte versjoner i hver brukers katalog og brukes til å lagre gamle filversjoner. En bruker kan når som helst gå tilbake til en eldre versjon via webgrensesnittet, og den erstattede filen blir en versjon. Appen administrerer automatisk versjonsmappen for å sikre at brukeren ikke går tom for kvote på grunn av versjoner.\n\t\tI tillegg til at versjoner opphører, sørger versjonsappen for aldri å bruke mer enn 50% av brukerens tilgjengelige ledige plass. Hvis lagrede versjoner overskrider denne grensen, sletter appen de eldste versjonene først til den oppfyller denne grensen. Du finner mer informasjon i dokumentasjonen for Versions.", + "Current version" : "Nåværende versjon", + "Initial version" : "Opprinnelig versjon", + "You" : "Du", + "Actions for version from {versionHumanExplicitDate}" : "Handlinger for versjon fra {versionHumanExplicitDate}", "Name this version" : "Navngi denne versjonen", "Edit version name" : "Rediger versjonsnavn", "Compare to current version" : "Sammenlign med gjeldende versjon", "Restore version" : "Gjenopprett versjon", "Download version" : "Last ned versjon", "Delete version" : "Slett versjon", - "Current version" : "Nåværende versjon", - "Initial version" : "Opprinnelig versjon", - "Version name" : "Versjonsnavn", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Navngitte versjoner beholdes og utelates fra automatiske oppryddinger når lagringskvoten er full.", + "Cancel" : "Avbryt", "Remove version name" : "Fjern versjonsnavn", "Save version name" : "Lagre versjonsnavn", + "Version name" : "Versjonsnavn", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Navngitte versjoner beholdes og utelates fra automatiske oppryddinger når lagringskvoten er full.", "Initial version restored" : "Opprinnelig versjon opprettet", "Version restored" : "Versjon gjenopprettet", "Could not restore version" : "Kunne ikke gjenopprette versjon", "Could not set version label" : "Kunne ikke angi versjonsetikett", - "Could not delete version" : "Kunne ikke slette versjon", - "${version.label} restored" : "${version.label} gjenopprettet", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Dette programmet opprettholder automatisk eldre versjoner av filer som endres. Når den er aktivert, klargjøres en mappe for skjulte versjoner i hver brukers katalog og brukes til å lagre gamle filversjoner. En bruker kan når som helst gå tilbake til en eldre versjon via webgrensesnittet, og den erstattede filen blir en versjon. Appen administrerer automatisk versjonsmappen for å sikre at brukeren ikke går tom for kvote på grunn av versjoner.\n\t\tI tillegg til at versjoner opphører, sørger versjonsappen for aldri å bruke mer enn 50% av brukerens tilgjengelige ledige plass. Hvis lagrede versjoner overskrider denne grensen, sletter appen de eldste versjonene først til den oppfyller denne grensen. Du finner mer informasjon i dokumentasjonen for Versions.", - "Could not set version name" : "Kunne ikke angi versjonsnavn" + "Could not delete version" : "Kunne ikke slette versjon" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/nl.js b/apps/files_versions/l10n/nl.js index f7d7816aafc..7500ff8b9f4 100644 --- a/apps/files_versions/l10n/nl.js +++ b/apps/files_versions/l10n/nl.js @@ -3,11 +3,27 @@ OC.L10N.register( { "Versions" : "Versies", "This application automatically maintains older versions of files that are changed." : "Deze applicatie beheert automatisch oudere versies van gewijzigde bestanden.", - "Version" : "Versie", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Deze applicatie onderhoudt automatisch oudere versies van bestanden die zijn gewijzigd. Indien ingeschakeld, wordt een map met verborgen versies geplaatst in de directory van elke gebruiker en wordt deze gebruikt om oude bestandsversies op te slaan. Een gebruiker kan via de webinterface op elk gewenst moment terugkeren naar een oudere versie, waarbij het vervangen bestand de nieuwe versie wordt. De app beheert automatisch de map om ervoor te zorgen dat het quotum niet opraakt vanwege versiebeheer.\n\t\tNaast het beheer van versies, zorgt de app er ook voor dat nooit meer dan 50% van de momenteel beschikbare vrije ruimte van de gebruiker wordt gebruikt. Als opgeslagen versies deze limiet overschrijden, verwijdert de app de oudste versies eerst totdat de limiet is bereikt. Meer informatie is beschikbaar in de documentatie van Versiebeheer.", - "Failed to revert {file} to revision {timestamp}." : "Kon {file} niet terugdraaien naar revisie {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], - "Restore" : "Herstellen", - "No other versions available" : "Geen andere versies beschikbaar" + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Deze applicatie bewaart automatisch oudere versies van bestanden die gewijzigd zijn. Als dit is ingeschakeld, wordt er in de map van elke gebruiker een map met verborgen versies gemaakt waarin oude bestandsversies worden opgeslagen. Een gebruiker kan op elk moment teruggaan naar een oudere versie via de webinterface, waarbij het vervangen bestand een versie wordt. De app beheert de versie map automatisch om ervoor te zorgen dat het account niet zonder quota komt te zitten door versies.\n\t\tNaast het verlopen van versies zorgt de versies-app ervoor dat nooit meer dan 50% van de op dat moment beschikbare vrije ruimte van het account wordt gebruikt. Als opgeslagen versies deze limiet overschrijden, zal de app eerst de oudste versies verwijderen totdat deze limiet is bereikt. Meer informatie is beschikbaar in de documentatie over versies.", + "Current version" : "Huidige versie", + "Initial version" : "Initiële versie", + "You" : "Jij", + "Actions for version from {versionHumanExplicitDate}" : "Acties voor versie van {versionHumanExplicitDate}", + "Name this version" : "Geef deze versie een naam", + "Edit version name" : "Bewerk versie naam", + "Compare to current version" : "Vergelijk met huidige versie", + "Restore version" : "Herstel versie", + "Download version" : "Download versie", + "Delete version" : "Verwijder versie", + "Cancel" : "Annuleren", + "Remove version name" : "Verwijder versie naam", + "Save version name" : "Sla versie naam op", + "Version name" : "Versie naam", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Versies met naam worden bewaard en uitgesloten van automatische opschoning wanneer je opslagquota vol is.", + "Initial version restored" : "Initiële versie hersteld", + "Version restored" : "Versie hersteld", + "Could not restore version" : "Kon versie niet herstellen", + "Could not set version label" : "Kon versie label niet instellen", + "Could not delete version" : "Kon versie niet verwijderen", + "File versions" : "Bestandsversies" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/nl.json b/apps/files_versions/l10n/nl.json index 6845c8edcfc..da0eb03c679 100644 --- a/apps/files_versions/l10n/nl.json +++ b/apps/files_versions/l10n/nl.json @@ -1,11 +1,27 @@ { "translations": { "Versions" : "Versies", "This application automatically maintains older versions of files that are changed." : "Deze applicatie beheert automatisch oudere versies van gewijzigde bestanden.", - "Version" : "Versie", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Deze applicatie onderhoudt automatisch oudere versies van bestanden die zijn gewijzigd. Indien ingeschakeld, wordt een map met verborgen versies geplaatst in de directory van elke gebruiker en wordt deze gebruikt om oude bestandsversies op te slaan. Een gebruiker kan via de webinterface op elk gewenst moment terugkeren naar een oudere versie, waarbij het vervangen bestand de nieuwe versie wordt. De app beheert automatisch de map om ervoor te zorgen dat het quotum niet opraakt vanwege versiebeheer.\n\t\tNaast het beheer van versies, zorgt de app er ook voor dat nooit meer dan 50% van de momenteel beschikbare vrije ruimte van de gebruiker wordt gebruikt. Als opgeslagen versies deze limiet overschrijden, verwijdert de app de oudste versies eerst totdat de limiet is bereikt. Meer informatie is beschikbaar in de documentatie van Versiebeheer.", - "Failed to revert {file} to revision {timestamp}." : "Kon {file} niet terugdraaien naar revisie {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], - "Restore" : "Herstellen", - "No other versions available" : "Geen andere versies beschikbaar" + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Deze applicatie bewaart automatisch oudere versies van bestanden die gewijzigd zijn. Als dit is ingeschakeld, wordt er in de map van elke gebruiker een map met verborgen versies gemaakt waarin oude bestandsversies worden opgeslagen. Een gebruiker kan op elk moment teruggaan naar een oudere versie via de webinterface, waarbij het vervangen bestand een versie wordt. De app beheert de versie map automatisch om ervoor te zorgen dat het account niet zonder quota komt te zitten door versies.\n\t\tNaast het verlopen van versies zorgt de versies-app ervoor dat nooit meer dan 50% van de op dat moment beschikbare vrije ruimte van het account wordt gebruikt. Als opgeslagen versies deze limiet overschrijden, zal de app eerst de oudste versies verwijderen totdat deze limiet is bereikt. Meer informatie is beschikbaar in de documentatie over versies.", + "Current version" : "Huidige versie", + "Initial version" : "Initiële versie", + "You" : "Jij", + "Actions for version from {versionHumanExplicitDate}" : "Acties voor versie van {versionHumanExplicitDate}", + "Name this version" : "Geef deze versie een naam", + "Edit version name" : "Bewerk versie naam", + "Compare to current version" : "Vergelijk met huidige versie", + "Restore version" : "Herstel versie", + "Download version" : "Download versie", + "Delete version" : "Verwijder versie", + "Cancel" : "Annuleren", + "Remove version name" : "Verwijder versie naam", + "Save version name" : "Sla versie naam op", + "Version name" : "Versie naam", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Versies met naam worden bewaard en uitgesloten van automatische opschoning wanneer je opslagquota vol is.", + "Initial version restored" : "Initiële versie hersteld", + "Version restored" : "Versie hersteld", + "Could not restore version" : "Kon versie niet herstellen", + "Could not set version label" : "Kon versie label niet instellen", + "Could not delete version" : "Kon versie niet verwijderen", + "File versions" : "Bestandsversies" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/nn_NO.js b/apps/files_versions/l10n/nn_NO.js deleted file mode 100644 index 16ed15afe20..00000000000 --- a/apps/files_versions/l10n/nn_NO.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Utgåver", - "Failed to revert {file} to revision {timestamp}." : "Klarte ikkje å tilbakestilla {file} til utgåva {timestamp}.", - "Restore" : "Gjenopprett", - "No other versions available" : "Ingen andre utgåver tilgjengeleg" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/nn_NO.json b/apps/files_versions/l10n/nn_NO.json deleted file mode 100644 index ea92d533333..00000000000 --- a/apps/files_versions/l10n/nn_NO.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Utgåver", - "Failed to revert {file} to revision {timestamp}." : "Klarte ikkje å tilbakestilla {file} til utgåva {timestamp}.", - "Restore" : "Gjenopprett", - "No other versions available" : "Ingen andre utgåver tilgjengeleg" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/oc.js b/apps/files_versions/l10n/oc.js deleted file mode 100644 index c5f8550abe0..00000000000 --- a/apps/files_versions/l10n/oc.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versions", - "_%n byte_::_%n bytes_" : ["%n octet","%n octets"], - "Restore" : "Restaurar", - "No other versions available" : "Cap d’autra version pas disponibla" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_versions/l10n/oc.json b/apps/files_versions/l10n/oc.json deleted file mode 100644 index af314939d07..00000000000 --- a/apps/files_versions/l10n/oc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Versions" : "Versions", - "_%n byte_::_%n bytes_" : ["%n octet","%n octets"], - "Restore" : "Restaurar", - "No other versions available" : "Cap d’autra version pas disponibla" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/pl.js b/apps/files_versions/l10n/pl.js index c26807a8c49..5ff9d71c737 100644 --- a/apps/files_versions/l10n/pl.js +++ b/apps/files_versions/l10n/pl.js @@ -3,24 +3,27 @@ OC.L10N.register( { "Versions" : "Wersje", "This application automatically maintains older versions of files that are changed." : "Aplikacja przechowuje starsze wersje plików poddanych modyfikacji.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ta aplikacja automatycznie utrzymuje starsze wersje plików, które zostały zmienione. Po włączeniu, w katalogu każdego użytkownika udostępniany jest katalog wersji ukrytych, który służy do przechowywania starych wersji plików. Użytkownik może w dowolnym momencie powrócić do starszej wersji za pośrednictwem interfejsu internetowego, a zastąpiony plik staje się wersją. Aplikacja automatycznie zarządza katalogiem wersji, aby mieć pewność, że na koncie nie zabraknie miejsca z powodu wersji.\n\t\tOprócz wygaszania wersji aplikacja sprawdza, by nigdy nie zostało wykorzystane więcej niż 50% aktualnie dostępnego wolnego miejsca na koncie. Jeśli przechowywane wersje przekroczą ten limit, aplikacja najpierw usunie najstarsze wersje, aż do osiągnięcia tego limitu. Więcej informacji można znaleźć w dokumentacji aplikacji wersji.", + "Current version" : "Obecna wersja", + "Initial version" : "Początkowa wersja", + "You" : "Ty", + "Actions for version from {versionHumanExplicitDate}" : "Działania dla wersji z {versionHumanExplicitDate}", "Name this version" : "Nazwij tę wersję", "Edit version name" : "Edytuj nazwę wersji", "Compare to current version" : "Porównaj z aktualną wersją", "Restore version" : "Przywróć wersję", "Download version" : "Pobierz wersję", "Delete version" : "Usuń wersję", - "Current version" : "Obecna wersja", - "Initial version" : "Początkowa wersja", - "Version name" : "Nazwa wersji", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nazwane wersje są utrwalane i wykluczane z automatycznego czyszczenia, gdy limit przechowywania zostanie przekroczony.", + "Cancel" : "Anuluj", "Remove version name" : "Usuń nazwę wersji", "Save version name" : "Zapis nazwę wersji", + "Version name" : "Nazwa wersji", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nazwane wersje są utrwalane i wykluczane z automatycznego czyszczenia, gdy limit przechowywania zostanie przekroczony.", "Initial version restored" : "Przywrócono wersję początkową", "Version restored" : "Wersja przywrócona", "Could not restore version" : "Nie można przywrócić wersji", + "Could not set version label" : "Nie można ustawić etykiety wersji", "Could not delete version" : "Nie można usunąć wersji", - "${version.label} restored" : "Przywrócono ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikacja automatycznie utrzymuje starsze wersje zmienionych plików. Po włączeniu, ukryty katalog versions jest udostępniany w każdym katalogu użytkownika i służy do przechowywania starych wersji plików. Użytkownik może w dowolnym momencie powrócić do starszej wersji za pośrednictwem strony internetowej, a zastąpiony plik staje się jego wersją. Aplikacja automatycznie zarządza katalogiem versions, aby zapewnić użytkownikowi ciągłość wersji.\n\t\tOprócz wygaśnięcia wersji, aplikacja Versions zapewnia, że nigdy nie będzie wykorzystywać więcej niż 50% dostępnej przestrzeni użytkownika. Jeśli przechowywane wersje przekroczą ten limit, aplikacja usunie najpierw najstarsze wersje, aż do osiągnięcia tego limitu. Więcej informacji można znaleźć w dokumentacji Versions.", - "Could not set version name" : "Nie można ustawić nazwy wersji" + "File versions" : "Wersje plików" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/apps/files_versions/l10n/pl.json b/apps/files_versions/l10n/pl.json index c0c93088d41..27030065c9e 100644 --- a/apps/files_versions/l10n/pl.json +++ b/apps/files_versions/l10n/pl.json @@ -1,24 +1,27 @@ { "translations": { "Versions" : "Wersje", "This application automatically maintains older versions of files that are changed." : "Aplikacja przechowuje starsze wersje plików poddanych modyfikacji.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ta aplikacja automatycznie utrzymuje starsze wersje plików, które zostały zmienione. Po włączeniu, w katalogu każdego użytkownika udostępniany jest katalog wersji ukrytych, który służy do przechowywania starych wersji plików. Użytkownik może w dowolnym momencie powrócić do starszej wersji za pośrednictwem interfejsu internetowego, a zastąpiony plik staje się wersją. Aplikacja automatycznie zarządza katalogiem wersji, aby mieć pewność, że na koncie nie zabraknie miejsca z powodu wersji.\n\t\tOprócz wygaszania wersji aplikacja sprawdza, by nigdy nie zostało wykorzystane więcej niż 50% aktualnie dostępnego wolnego miejsca na koncie. Jeśli przechowywane wersje przekroczą ten limit, aplikacja najpierw usunie najstarsze wersje, aż do osiągnięcia tego limitu. Więcej informacji można znaleźć w dokumentacji aplikacji wersji.", + "Current version" : "Obecna wersja", + "Initial version" : "Początkowa wersja", + "You" : "Ty", + "Actions for version from {versionHumanExplicitDate}" : "Działania dla wersji z {versionHumanExplicitDate}", "Name this version" : "Nazwij tę wersję", "Edit version name" : "Edytuj nazwę wersji", "Compare to current version" : "Porównaj z aktualną wersją", "Restore version" : "Przywróć wersję", "Download version" : "Pobierz wersję", "Delete version" : "Usuń wersję", - "Current version" : "Obecna wersja", - "Initial version" : "Początkowa wersja", - "Version name" : "Nazwa wersji", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nazwane wersje są utrwalane i wykluczane z automatycznego czyszczenia, gdy limit przechowywania zostanie przekroczony.", + "Cancel" : "Anuluj", "Remove version name" : "Usuń nazwę wersji", "Save version name" : "Zapis nazwę wersji", + "Version name" : "Nazwa wersji", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nazwane wersje są utrwalane i wykluczane z automatycznego czyszczenia, gdy limit przechowywania zostanie przekroczony.", "Initial version restored" : "Przywrócono wersję początkową", "Version restored" : "Wersja przywrócona", "Could not restore version" : "Nie można przywrócić wersji", + "Could not set version label" : "Nie można ustawić etykiety wersji", "Could not delete version" : "Nie można usunąć wersji", - "${version.label} restored" : "Przywrócono ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikacja automatycznie utrzymuje starsze wersje zmienionych plików. Po włączeniu, ukryty katalog versions jest udostępniany w każdym katalogu użytkownika i służy do przechowywania starych wersji plików. Użytkownik może w dowolnym momencie powrócić do starszej wersji za pośrednictwem strony internetowej, a zastąpiony plik staje się jego wersją. Aplikacja automatycznie zarządza katalogiem versions, aby zapewnić użytkownikowi ciągłość wersji.\n\t\tOprócz wygaśnięcia wersji, aplikacja Versions zapewnia, że nigdy nie będzie wykorzystywać więcej niż 50% dostępnej przestrzeni użytkownika. Jeśli przechowywane wersje przekroczą ten limit, aplikacja usunie najpierw najstarsze wersje, aż do osiągnięcia tego limitu. Więcej informacji można znaleźć w dokumentacji Versions.", - "Could not set version name" : "Nie można ustawić nazwy wersji" + "File versions" : "Wersje plików" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/pt_BR.js b/apps/files_versions/l10n/pt_BR.js index e2832b31862..bb0880450a1 100644 --- a/apps/files_versions/l10n/pt_BR.js +++ b/apps/files_versions/l10n/pt_BR.js @@ -3,26 +3,27 @@ OC.L10N.register( { "Versions" : "Versões", "This application automatically maintains older versions of files that are changed." : "Este aplicativo mantém automaticamente versões mais antigas de arquivos que são alterados.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Este aplicativo mantém automaticamente versões mais antigas de arquivos que foram alterados. Quando ativada, uma pasta de versões ocultas é provisionada no diretório de cada usuário e usada para armazenar versões antigas de arquivos. Um usuário pode reverter para uma versão mais antiga através da interface web a qualquer momento, com o arquivo substituído se tornando uma versão. O aplicativo gerencia automaticamente a pasta de versões para garantir que a conta não fique sem cota por causa das versões. \n\t\tAlém da expiração das versões, o aplicativo de versões garante nunca usar mais de 50% do espaço livre disponível atualmente na conta. Se as versões armazenadas excederem esse limite, o aplicativo excluirá primeiro as versões mais antigas até atingir esse limite. Mais informações estão disponíveis na documentação de Versões.", - "Name this version" : "Nomeie esta versão", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Este aplicativo mantém automaticamente versões mais antigas de arquivos que foram alterados. Quando ativada, uma pasta de versões oculta é provisionada no diretório de cada usuário e usada para armazenar versões antigas de arquivos. Um usuário pode reverter para uma versão mais antiga através da interface web a qualquer momento, com o arquivo substituído se tornando uma versão. O aplicativo gerencia automaticamente a pasta de versões para garantir que a conta não fique sem cota por causa das versões. \n\t\tAlém da expiração das versões, o aplicativo de versões garante nunca usar mais de 50% do espaço livre disponível atualmente na conta. Se as versões armazenadas excederem esse limite, o aplicativo excluirá primeiro as versões mais antigas até atingir esse limite. Mais informações estão disponíveis na documentação de Versões.", + "Current version" : "Versão atual", + "Initial version" : "Versão inicial", + "You" : "Você", + "Actions for version from {versionHumanExplicitDate}" : "Ações para versão de {versionHumanExplicitDate}", + "Name this version" : "Nomear esta versão", "Edit version name" : "Editar nome da versão", "Compare to current version" : "Comparar com a versão atual", "Restore version" : "Restaurar versão", "Download version" : "Baixar versão", "Delete version" : "Excluir versão", - "Current version" : "Versão atual", - "Initial version" : "Versão inicial", - "Version name" : "Nome da versão", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versões nomeadas são mantidas e excluídas das limpezas automáticas quando sua cota de armazenamento está cheia.", + "Cancel" : "Cancelar", "Remove version name" : "Remover nome da versão", "Save version name" : "Salvar nome da versão", + "Version name" : "Nome da versão", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versões nomeadas são mantidas e excluídas das limpezas automáticas quando sua cota de armazenamento está cheia.", "Initial version restored" : "Versão inicial restaurada", "Version restored" : "Versão restaurada", "Could not restore version" : "Não foi possível restaurar esta versão", "Could not set version label" : "Não foi possível definir o rótulo da versão", "Could not delete version" : "Não foi possível excluir a versão", - "${version.label} restored" : "${version.label} restaurado", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Este aplicativo mantém automaticamente as versões mais antigas dos arquivos que são alterados. Quando habilitada, uma pasta de versões ocultas é provisionada no diretório de cada usuário e é usada para armazenar versões antigas de arquivos. Um usuário pode reverter para uma versão mais antiga por meio da interface da Web a qualquer momento, com o arquivo substituído se tornando uma versão. O aplicativo gerencia automaticamente a pasta de versões para garantir que o usuário não fique sem cota por causa das versões.\t\tAlém da expiração das versões, o aplicativo de versões garante nunca usar mais de 50% da disponibilidade gratuita do usuário no momento espaço. Se as versões armazenadas excederem esse limite, o aplicativo excluirá primeiro as versões mais antigas até atingir esse limite. Mais informações estão disponíveis na documentação de Versões.", - "Could not set version name" : "Não foi possível definir o nome da versão" + "File versions" : "Versões do arquivo" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/pt_BR.json b/apps/files_versions/l10n/pt_BR.json index e0d1e54fc9c..b213f3724a8 100644 --- a/apps/files_versions/l10n/pt_BR.json +++ b/apps/files_versions/l10n/pt_BR.json @@ -1,26 +1,27 @@ { "translations": { "Versions" : "Versões", "This application automatically maintains older versions of files that are changed." : "Este aplicativo mantém automaticamente versões mais antigas de arquivos que são alterados.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Este aplicativo mantém automaticamente versões mais antigas de arquivos que foram alterados. Quando ativada, uma pasta de versões ocultas é provisionada no diretório de cada usuário e usada para armazenar versões antigas de arquivos. Um usuário pode reverter para uma versão mais antiga através da interface web a qualquer momento, com o arquivo substituído se tornando uma versão. O aplicativo gerencia automaticamente a pasta de versões para garantir que a conta não fique sem cota por causa das versões. \n\t\tAlém da expiração das versões, o aplicativo de versões garante nunca usar mais de 50% do espaço livre disponível atualmente na conta. Se as versões armazenadas excederem esse limite, o aplicativo excluirá primeiro as versões mais antigas até atingir esse limite. Mais informações estão disponíveis na documentação de Versões.", - "Name this version" : "Nomeie esta versão", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Este aplicativo mantém automaticamente versões mais antigas de arquivos que foram alterados. Quando ativada, uma pasta de versões oculta é provisionada no diretório de cada usuário e usada para armazenar versões antigas de arquivos. Um usuário pode reverter para uma versão mais antiga através da interface web a qualquer momento, com o arquivo substituído se tornando uma versão. O aplicativo gerencia automaticamente a pasta de versões para garantir que a conta não fique sem cota por causa das versões. \n\t\tAlém da expiração das versões, o aplicativo de versões garante nunca usar mais de 50% do espaço livre disponível atualmente na conta. Se as versões armazenadas excederem esse limite, o aplicativo excluirá primeiro as versões mais antigas até atingir esse limite. Mais informações estão disponíveis na documentação de Versões.", + "Current version" : "Versão atual", + "Initial version" : "Versão inicial", + "You" : "Você", + "Actions for version from {versionHumanExplicitDate}" : "Ações para versão de {versionHumanExplicitDate}", + "Name this version" : "Nomear esta versão", "Edit version name" : "Editar nome da versão", "Compare to current version" : "Comparar com a versão atual", "Restore version" : "Restaurar versão", "Download version" : "Baixar versão", "Delete version" : "Excluir versão", - "Current version" : "Versão atual", - "Initial version" : "Versão inicial", - "Version name" : "Nome da versão", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versões nomeadas são mantidas e excluídas das limpezas automáticas quando sua cota de armazenamento está cheia.", + "Cancel" : "Cancelar", "Remove version name" : "Remover nome da versão", "Save version name" : "Salvar nome da versão", + "Version name" : "Nome da versão", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "As versões nomeadas são mantidas e excluídas das limpezas automáticas quando sua cota de armazenamento está cheia.", "Initial version restored" : "Versão inicial restaurada", "Version restored" : "Versão restaurada", "Could not restore version" : "Não foi possível restaurar esta versão", "Could not set version label" : "Não foi possível definir o rótulo da versão", "Could not delete version" : "Não foi possível excluir a versão", - "${version.label} restored" : "${version.label} restaurado", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Este aplicativo mantém automaticamente as versões mais antigas dos arquivos que são alterados. Quando habilitada, uma pasta de versões ocultas é provisionada no diretório de cada usuário e é usada para armazenar versões antigas de arquivos. Um usuário pode reverter para uma versão mais antiga por meio da interface da Web a qualquer momento, com o arquivo substituído se tornando uma versão. O aplicativo gerencia automaticamente a pasta de versões para garantir que o usuário não fique sem cota por causa das versões.\t\tAlém da expiração das versões, o aplicativo de versões garante nunca usar mais de 50% da disponibilidade gratuita do usuário no momento espaço. Se as versões armazenadas excederem esse limite, o aplicativo excluirá primeiro as versões mais antigas até atingir esse limite. Mais informações estão disponíveis na documentação de Versões.", - "Could not set version name" : "Não foi possível definir o nome da versão" + "File versions" : "Versões do arquivo" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/pt_PT.js b/apps/files_versions/l10n/pt_PT.js deleted file mode 100644 index 2af884961af..00000000000 --- a/apps/files_versions/l10n/pt_PT.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versões", - "Failed to revert {file} to revision {timestamp}." : "Falhou a recuperação do ficheiro {file} para a revisão {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar", - "No other versions available" : "Nenhuma outra versão disponível" -}, -"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_versions/l10n/pt_PT.json b/apps/files_versions/l10n/pt_PT.json deleted file mode 100644 index 94cafae4a6e..00000000000 --- a/apps/files_versions/l10n/pt_PT.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Versions" : "Versões", - "Failed to revert {file} to revision {timestamp}." : "Falhou a recuperação do ficheiro {file} para a revisão {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"], - "Restore" : "Restaurar", - "No other versions available" : "Nenhuma outra versão disponível" -},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/ro.js b/apps/files_versions/l10n/ro.js deleted file mode 100644 index 55279ebf913..00000000000 --- a/apps/files_versions/l10n/ro.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiuni", - "This application automatically maintains older versions of files that are changed." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.", - "Version" : "Versiune", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.Când este activată un dosar ascuns este creeat în dosarul personal al fiecărui utilizator pentru a memora versiunile mai vechi. Un utilizator poate să revină la o versiune mai veche folosind interfața web în orice moment, cu fișierul înlocuit devenind o versiune păstrată. Aplicația are grijă să nu rămână fără spațiu.\n\t\tDe asemenea aplicația are grijă să nu folosească mai mult de 50% din spațiul disponibil. Dacă veriunile vechi depășec această valoare atunci versiunile mai vechi vor fi șterse. Mai multe informații sunt disponibile în documentația aplicației Versiuni.", - "Failed to revert {file} to revision {timestamp}." : "S-a eșuat restaurarea fișierului {file} la revizia {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n byți","%n byți"], - "Restore" : "Restaurare", - "No other versions available" : "Nu există alte versiuni disponibile" -}, -"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files_versions/l10n/ro.json b/apps/files_versions/l10n/ro.json deleted file mode 100644 index 87c70af4531..00000000000 --- a/apps/files_versions/l10n/ro.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "Versiuni", - "This application automatically maintains older versions of files that are changed." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.", - "Version" : "Versiune", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.Când este activată un dosar ascuns este creeat în dosarul personal al fiecărui utilizator pentru a memora versiunile mai vechi. Un utilizator poate să revină la o versiune mai veche folosind interfața web în orice moment, cu fișierul înlocuit devenind o versiune păstrată. Aplicația are grijă să nu rămână fără spațiu.\n\t\tDe asemenea aplicația are grijă să nu folosească mai mult de 50% din spațiul disponibil. Dacă veriunile vechi depășec această valoare atunci versiunile mai vechi vor fi șterse. Mai multe informații sunt disponibile în documentația aplicației Versiuni.", - "Failed to revert {file} to revision {timestamp}." : "S-a eșuat restaurarea fișierului {file} la revizia {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n byți","%n byți"], - "Restore" : "Restaurare", - "No other versions available" : "Nu există alte versiuni disponibile" -},"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_versions/l10n/ru.js b/apps/files_versions/l10n/ru.js index 1e7ab66b9e3..ecdf5913c52 100644 --- a/apps/files_versions/l10n/ru.js +++ b/apps/files_versions/l10n/ru.js @@ -3,24 +3,27 @@ OC.L10N.register( { "Versions" : "Версии", "This application automatically maintains older versions of files that are changed." : "Приложение служит для обработки старых версий изменённых файлов.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Это приложение автоматически поддерживает старые версии файлов, которые были изменены. Если оно включено, в каталоге каждого пользователя создаётся папка \"Скрытые версии\", которая используется для хранения старых версий файлов. Пользователь может в любой момент вернуться к более старой версии через веб-интерфейс, при этом заменённый файл станет версией. Приложение автоматически управляет папкой версий, чтобы гарантировать, что квота учётной записи не исчерпается из-за изменений версий.\n\t\tВ дополнение к истечению срока действия версий, приложение \"Версии\" гарантирует, что вы никогда не будете использовать более 50% доступного в данный момент свободного места в учётной записи. Если сохранённые версии превысят это ограничение, приложение сначала удалит самые старые версии, пока не достигнет этого ограничения. Более подробная информация доступна в документации по версиям.", + "Current version" : "Текущая версия", + "Initial version" : "Первоначальная версия", + "You" : "Вы", + "Actions for version from {versionHumanExplicitDate}" : "Действия для версии из {versionHumanExplicitDate}", "Name this version" : "Обозначить версию", "Edit version name" : "Изменить название версии", "Compare to current version" : "Сравнить с текущей версией", "Restore version" : "Востановить версию", "Download version" : "Скачать версию", "Delete version" : "Удалить версию", - "Current version" : "Текущая версия", - "Initial version" : "Первоначальная версия", - "Version name" : "Название версии", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именованные версии исключены из автоматического удаления старых версий файлов при исчерпании квоты дискового пространства.", + "Cancel" : "Отмена", "Remove version name" : "Удалить название версии", "Save version name" : "Сохранить название версии", + "Version name" : "Название версии", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именованные версии исключены из автоматического удаления старых версий файлов при исчерпании квоты дискового пространства.", "Initial version restored" : "Восстановлена первоначальная версия", "Version restored" : "Версия восстановлена", "Could not restore version" : "Не удалось восстановить версию", + "Could not set version label" : "Не удалось установить метку версии", "Could not delete version" : "Не удалось удалить версию", - "${version.label} restored" : "Восстановлена версия «${version.label}»", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Это приложение предназначено для автоматического управления предыдущими версиями изменённых файлов. При включении этого приложения в каталогах пользователей создаются скрытые папки, предназначенные для хранения предыдущих версий изменённых файлов. Выбор нужной предыдущей версии и возврат к ней выполняется через веб-интерфейс, при этом актуальная версия файла будет заменена выбранной версией. Приложение также автоматически управляет глубиной хранения версий файлов, чтобы не превышать выделенные для пользователя квоты.\n\t\tПомимо управления сроком хранения предыдущих версий, приложение следит за тем, что бы общий размер сохранённых версий файлов не превышал 50% выделенного пользователю дискового пространства. При превышении такого лимита будет запущен механизм удаления самых старых версий файлов. Удаление будет производиться до тех пор, пока общий размер всех сохранённых версий файлов вновь не станет менее 50% от квоты использования дискового пространства. Дополнительная информация приведена в руководстве к приложению «Версии».", - "Could not set version name" : "Не удалось обозначить версию" + "File versions" : "Версии файлов" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_versions/l10n/ru.json b/apps/files_versions/l10n/ru.json index db1a3b6486c..96392c99021 100644 --- a/apps/files_versions/l10n/ru.json +++ b/apps/files_versions/l10n/ru.json @@ -1,24 +1,27 @@ { "translations": { "Versions" : "Версии", "This application automatically maintains older versions of files that are changed." : "Приложение служит для обработки старых версий изменённых файлов.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Это приложение автоматически поддерживает старые версии файлов, которые были изменены. Если оно включено, в каталоге каждого пользователя создаётся папка \"Скрытые версии\", которая используется для хранения старых версий файлов. Пользователь может в любой момент вернуться к более старой версии через веб-интерфейс, при этом заменённый файл станет версией. Приложение автоматически управляет папкой версий, чтобы гарантировать, что квота учётной записи не исчерпается из-за изменений версий.\n\t\tВ дополнение к истечению срока действия версий, приложение \"Версии\" гарантирует, что вы никогда не будете использовать более 50% доступного в данный момент свободного места в учётной записи. Если сохранённые версии превысят это ограничение, приложение сначала удалит самые старые версии, пока не достигнет этого ограничения. Более подробная информация доступна в документации по версиям.", + "Current version" : "Текущая версия", + "Initial version" : "Первоначальная версия", + "You" : "Вы", + "Actions for version from {versionHumanExplicitDate}" : "Действия для версии из {versionHumanExplicitDate}", "Name this version" : "Обозначить версию", "Edit version name" : "Изменить название версии", "Compare to current version" : "Сравнить с текущей версией", "Restore version" : "Востановить версию", "Download version" : "Скачать версию", "Delete version" : "Удалить версию", - "Current version" : "Текущая версия", - "Initial version" : "Первоначальная версия", - "Version name" : "Название версии", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именованные версии исключены из автоматического удаления старых версий файлов при исчерпании квоты дискового пространства.", + "Cancel" : "Отмена", "Remove version name" : "Удалить название версии", "Save version name" : "Сохранить название версии", + "Version name" : "Название версии", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именованные версии исключены из автоматического удаления старых версий файлов при исчерпании квоты дискового пространства.", "Initial version restored" : "Восстановлена первоначальная версия", "Version restored" : "Версия восстановлена", "Could not restore version" : "Не удалось восстановить версию", + "Could not set version label" : "Не удалось установить метку версии", "Could not delete version" : "Не удалось удалить версию", - "${version.label} restored" : "Восстановлена версия «${version.label}»", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Это приложение предназначено для автоматического управления предыдущими версиями изменённых файлов. При включении этого приложения в каталогах пользователей создаются скрытые папки, предназначенные для хранения предыдущих версий изменённых файлов. Выбор нужной предыдущей версии и возврат к ней выполняется через веб-интерфейс, при этом актуальная версия файла будет заменена выбранной версией. Приложение также автоматически управляет глубиной хранения версий файлов, чтобы не превышать выделенные для пользователя квоты.\n\t\tПомимо управления сроком хранения предыдущих версий, приложение следит за тем, что бы общий размер сохранённых версий файлов не превышал 50% выделенного пользователю дискового пространства. При превышении такого лимита будет запущен механизм удаления самых старых версий файлов. Удаление будет производиться до тех пор, пока общий размер всех сохранённых версий файлов вновь не станет менее 50% от квоты использования дискового пространства. Дополнительная информация приведена в руководстве к приложению «Версии».", - "Could not set version name" : "Не удалось обозначить версию" + "File versions" : "Версии файлов" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/sc.js b/apps/files_versions/l10n/sc.js deleted file mode 100644 index 05799b22a12..00000000000 --- a/apps/files_versions/l10n/sc.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versiones", - "This application automatically maintains older versions of files that are changed." : "Custa aplicatzione allogat de manera automàtica is versiones prus bècias de documentos modificados.", - "Version" : "Versione", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Custa aplicatzione allogat in manera automàtica is versiones prus bècias de documentos modificados. Cando est ativa, frunit una cartella cuada de versiones in cada directory de s'utente e dda impreat pro allogare is versiones bècias de su documentu. S'utente podet semper torrare a una versione prus bècias cun s'interface de internet, e su documentu cambiadu benet a èssere una versione. S'aplicatzione gestit de manera automàtica is cartellas de versiones pro assegurare chi s'utente doesn’t run out of Quota because of versions.\n\t\t In prus de s'iscadèntzia de is versiones, s'aplicatzione assegurat de no impreare mai prus de su 50% de su logu lìberu a disponimentu de s'utente. Chi is versiones allogadas bàrigant custu lìmite, s'aplicatzione at a cantzellare innantis is versione prus bècias finas a lòmpere a su lìmite. Sunt disponìbiles prus informatziones in sa documentatzione de Versions.", - "Failed to revert {file} to revision {timestamp}." : "Non s'at pòdidu torrare a {documentu} pro sa revisione {timestamp}.", - "_%n byte_::_%n bytes_" : ["%nbyte","%n bytes"], - "Restore" : "Recùpera", - "No other versions available" : "Peruna àtera versione disponìbile" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/sc.json b/apps/files_versions/l10n/sc.json deleted file mode 100644 index add70007130..00000000000 --- a/apps/files_versions/l10n/sc.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "Versions" : "Versiones", - "This application automatically maintains older versions of files that are changed." : "Custa aplicatzione allogat de manera automàtica is versiones prus bècias de documentos modificados.", - "Version" : "Versione", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Custa aplicatzione allogat in manera automàtica is versiones prus bècias de documentos modificados. Cando est ativa, frunit una cartella cuada de versiones in cada directory de s'utente e dda impreat pro allogare is versiones bècias de su documentu. S'utente podet semper torrare a una versione prus bècias cun s'interface de internet, e su documentu cambiadu benet a èssere una versione. S'aplicatzione gestit de manera automàtica is cartellas de versiones pro assegurare chi s'utente doesn’t run out of Quota because of versions.\n\t\t In prus de s'iscadèntzia de is versiones, s'aplicatzione assegurat de no impreare mai prus de su 50% de su logu lìberu a disponimentu de s'utente. Chi is versiones allogadas bàrigant custu lìmite, s'aplicatzione at a cantzellare innantis is versione prus bècias finas a lòmpere a su lìmite. Sunt disponìbiles prus informatziones in sa documentatzione de Versions.", - "Failed to revert {file} to revision {timestamp}." : "Non s'at pòdidu torrare a {documentu} pro sa revisione {timestamp}.", - "_%n byte_::_%n bytes_" : ["%nbyte","%n bytes"], - "Restore" : "Recùpera", - "No other versions available" : "Peruna àtera versione disponìbile" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/sk.js b/apps/files_versions/l10n/sk.js index 8080c8f6205..ff9ab4ed723 100644 --- a/apps/files_versions/l10n/sk.js +++ b/apps/files_versions/l10n/sk.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Verzie", "This application automatically maintains older versions of files that are changed." : "Táto aplikácia automaticky spravuje staršie verzie súborov, ktoré sú zmenené", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Táto aplikácia automaticky udržiava staršie verzie súborov, ktoré sú zmenené. Keď je táto možnosť povolená, v adresári každého užívateľa sa vytvorí adresáč skrytých verzií, ktorý sa používa na ukladanie starých verzií súborov. Užívateľ sa môže kedykoľvek vrátiť k staršej verzii prostredníctvom webového rozhrania, pričom nahradený súbor sa stane verziou. Aplikácia automaticky spravuje adresár verzií, aby sa zabezpečilo, že užívateľovi nevyčerpá kvóta kvôli verziám.\nOkrem vypršania platnosti verzií, aplikácia verzie zaisťuje, že nikdy nevyužije viac ako 50 % aktuálne dostupného voľného miesta užívateľa. Ak uložené verzie prekročia tento limit, aplikácia najskôr vymaže najstaršie verzie, kým tento limit nedosiahne. Ďalšie informácie sú k dispozícii v dokumentácii k verziám.", + "Current version" : "Aktuálna verzia", + "Initial version" : "Úvodná verzia", + "You" : "Vy", + "Actions for version from {versionHumanExplicitDate}" : "Akcie pre verziu od {versionHumanExplicitDate}", "Name this version" : "Pomenovať túto verziu", "Edit version name" : "Upraviť názov verzie", "Compare to current version" : "Porovnať s aktuálnou verziou", "Restore version" : "Obnoviť verziu", "Download version" : "Stiahnuť verziu", "Delete version" : "Odstrániť verziu", - "Current version" : "Aktuálna verzia", - "Initial version" : "Úvodná verzia", - "Version name" : "Názov verzie", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Pomenované verzie sa zachovajú a po naplnení kvóty úložiska budú vylúčené z automatického čistenia.", + "Cancel" : "Zrušiť", "Remove version name" : "Odstrániť názov verzie", "Save version name" : "Uložiť názov verzie", + "Version name" : "Názov verzie", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Pomenované verzie sa zachovajú a po naplnení kvóty úložiska budú vylúčené z automatického čistenia.", "Initial version restored" : "Úvodná verzia bola obnovená", "Version restored" : "Verzia bola obnovená", "Could not restore version" : "Nepodarilo sa obnoviť verziu", "Could not set version label" : "Nepodarilo sa nastaviť označenie verzie", "Could not delete version" : "Nepodarilo sa odstrániť verziu", - "${version.label} restored" : "${version.label} obnovené", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Táto aplikácia automaticky udržiava staršie verzie súborov, ktoré sú zmenené. Keď je táto možnosť povolená, v adresári každého užívateľa sa vytvorí priečinok skrytých verzií, ktorý sa používa na ukladanie starých verzií súborov. Užívateľ sa môže kedykoľvek vrátiť k staršej verzii prostredníctvom webového rozhrania, pričom nahradený súbor sa stane verziou. Aplikácia automaticky spravuje priečinok verzií, aby sa zabezpečilo, že používateľovi nevyčerpá kvóta kvôli verziám.\nOkrem vypršania platnosti verzií, aplikácia verzie zaisťuje, že nikdy nevyužije viac ako 50 % aktuálne dostupného voľného miesta užívateľa. Ak uložené verzie prekročia tento limit, aplikácia najskôr vymaže najstaršie verzie, kým tento limit nedosiahne. Ďalšie informácie sú k dispozícii v dokumentácii k verziám.", - "Could not set version name" : "Nepodarilo sa nastaviť názov verzie" + "File versions" : "Verzie súboru" }, "nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/apps/files_versions/l10n/sk.json b/apps/files_versions/l10n/sk.json index 6904f691695..afe241520b7 100644 --- a/apps/files_versions/l10n/sk.json +++ b/apps/files_versions/l10n/sk.json @@ -2,25 +2,26 @@ "Versions" : "Verzie", "This application automatically maintains older versions of files that are changed." : "Táto aplikácia automaticky spravuje staršie verzie súborov, ktoré sú zmenené", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Táto aplikácia automaticky udržiava staršie verzie súborov, ktoré sú zmenené. Keď je táto možnosť povolená, v adresári každého užívateľa sa vytvorí adresáč skrytých verzií, ktorý sa používa na ukladanie starých verzií súborov. Užívateľ sa môže kedykoľvek vrátiť k staršej verzii prostredníctvom webového rozhrania, pričom nahradený súbor sa stane verziou. Aplikácia automaticky spravuje adresár verzií, aby sa zabezpečilo, že užívateľovi nevyčerpá kvóta kvôli verziám.\nOkrem vypršania platnosti verzií, aplikácia verzie zaisťuje, že nikdy nevyužije viac ako 50 % aktuálne dostupného voľného miesta užívateľa. Ak uložené verzie prekročia tento limit, aplikácia najskôr vymaže najstaršie verzie, kým tento limit nedosiahne. Ďalšie informácie sú k dispozícii v dokumentácii k verziám.", + "Current version" : "Aktuálna verzia", + "Initial version" : "Úvodná verzia", + "You" : "Vy", + "Actions for version from {versionHumanExplicitDate}" : "Akcie pre verziu od {versionHumanExplicitDate}", "Name this version" : "Pomenovať túto verziu", "Edit version name" : "Upraviť názov verzie", "Compare to current version" : "Porovnať s aktuálnou verziou", "Restore version" : "Obnoviť verziu", "Download version" : "Stiahnuť verziu", "Delete version" : "Odstrániť verziu", - "Current version" : "Aktuálna verzia", - "Initial version" : "Úvodná verzia", - "Version name" : "Názov verzie", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Pomenované verzie sa zachovajú a po naplnení kvóty úložiska budú vylúčené z automatického čistenia.", + "Cancel" : "Zrušiť", "Remove version name" : "Odstrániť názov verzie", "Save version name" : "Uložiť názov verzie", + "Version name" : "Názov verzie", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Pomenované verzie sa zachovajú a po naplnení kvóty úložiska budú vylúčené z automatického čistenia.", "Initial version restored" : "Úvodná verzia bola obnovená", "Version restored" : "Verzia bola obnovená", "Could not restore version" : "Nepodarilo sa obnoviť verziu", "Could not set version label" : "Nepodarilo sa nastaviť označenie verzie", "Could not delete version" : "Nepodarilo sa odstrániť verziu", - "${version.label} restored" : "${version.label} obnovené", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Táto aplikácia automaticky udržiava staršie verzie súborov, ktoré sú zmenené. Keď je táto možnosť povolená, v adresári každého užívateľa sa vytvorí priečinok skrytých verzií, ktorý sa používa na ukladanie starých verzií súborov. Užívateľ sa môže kedykoľvek vrátiť k staršej verzii prostredníctvom webového rozhrania, pričom nahradený súbor sa stane verziou. Aplikácia automaticky spravuje priečinok verzií, aby sa zabezpečilo, že používateľovi nevyčerpá kvóta kvôli verziám.\nOkrem vypršania platnosti verzií, aplikácia verzie zaisťuje, že nikdy nevyužije viac ako 50 % aktuálne dostupného voľného miesta užívateľa. Ak uložené verzie prekročia tento limit, aplikácia najskôr vymaže najstaršie verzie, kým tento limit nedosiahne. Ďalšie informácie sú k dispozícii v dokumentácii k verziám.", - "Could not set version name" : "Nepodarilo sa nastaviť názov verzie" + "File versions" : "Verzie súboru" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/sl.js b/apps/files_versions/l10n/sl.js index fb669539fb3..0881c039161 100644 --- a/apps/files_versions/l10n/sl.js +++ b/apps/files_versions/l10n/sl.js @@ -3,22 +3,21 @@ OC.L10N.register( { "Versions" : "Različice", "This application automatically maintains older versions of files that are changed." : "Program samodejno ustvarja zaporedne različice sprememb datotek.", + "Current version" : "Trenutna različica", + "You" : "Jaz", "Name this version" : "Poimenovanje razičice", "Edit version name" : "Uredi ime različice", "Restore version" : "Obnovi različico", "Download version" : "Prejmi različico", "Delete version" : "Izbriši različico", - "Current version" : "Trenutna različica", - "Version name" : "Ime različice", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Poimenovane različice so trajne in niso vključene v samodejno čiščenje, če je prostora v oblaku malo.", + "Cancel" : "Prekliči", "Remove version name" : "Odstrani ime različice", "Save version name" : "Shrani ime različice", + "Version name" : "Ime različice", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Poimenovane različice so trajne in niso vključene v samodejno čiščenje, če je prostora v oblaku malo.", "Initial version restored" : "Začetna različica je obnovljena", "Version restored" : "Različica je obnovljena", "Could not restore version" : "Različice ni mogoče obnoviti", - "Could not delete version" : "Različice ji mogoče izbrisati", - "${version.label} restored" : "Različica ${version.label} je obnovljena", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Program samodejno ustvarja različice spremenjenih datotek v skriti uporabnikovi mapi. Za uporabnika to pomeni, da lahko prek spletnega vmesnika kadarkoli obnovi starejšo različico datoteke, zamenjana datoteka pa postane ena od različic. Upravljanje vključuje tudi nadzor nad omejitvijo prostora, pri čemer se najprej brišejo najstarejše različice.\n\t\tNastavitve določajo tudi omejitev, da shranjene različice ne zasedejo več kot 50 % razpoložljivega prostora oziroma količinske omejitve, sicer se kopije brišejo po starosti. Več podrobnosti je na voljo v dokumentaciji programa.", - "Could not set version name" : "Imena različice ni mogoče nastaviti" + "Could not delete version" : "Različice ji mogoče izbrisati" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/files_versions/l10n/sl.json b/apps/files_versions/l10n/sl.json index 101ec508894..21c2a0b2089 100644 --- a/apps/files_versions/l10n/sl.json +++ b/apps/files_versions/l10n/sl.json @@ -1,22 +1,21 @@ { "translations": { "Versions" : "Različice", "This application automatically maintains older versions of files that are changed." : "Program samodejno ustvarja zaporedne različice sprememb datotek.", + "Current version" : "Trenutna različica", + "You" : "Jaz", "Name this version" : "Poimenovanje razičice", "Edit version name" : "Uredi ime različice", "Restore version" : "Obnovi različico", "Download version" : "Prejmi različico", "Delete version" : "Izbriši različico", - "Current version" : "Trenutna različica", - "Version name" : "Ime različice", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Poimenovane različice so trajne in niso vključene v samodejno čiščenje, če je prostora v oblaku malo.", + "Cancel" : "Prekliči", "Remove version name" : "Odstrani ime različice", "Save version name" : "Shrani ime različice", + "Version name" : "Ime različice", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Poimenovane različice so trajne in niso vključene v samodejno čiščenje, če je prostora v oblaku malo.", "Initial version restored" : "Začetna različica je obnovljena", "Version restored" : "Različica je obnovljena", "Could not restore version" : "Različice ni mogoče obnoviti", - "Could not delete version" : "Različice ji mogoče izbrisati", - "${version.label} restored" : "Različica ${version.label} je obnovljena", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Program samodejno ustvarja različice spremenjenih datotek v skriti uporabnikovi mapi. Za uporabnika to pomeni, da lahko prek spletnega vmesnika kadarkoli obnovi starejšo različico datoteke, zamenjana datoteka pa postane ena od različic. Upravljanje vključuje tudi nadzor nad omejitvijo prostora, pri čemer se najprej brišejo najstarejše različice.\n\t\tNastavitve določajo tudi omejitev, da shranjene različice ne zasedejo več kot 50 % razpoložljivega prostora oziroma količinske omejitve, sicer se kopije brišejo po starosti. Več podrobnosti je na voljo v dokumentaciji programa.", - "Could not set version name" : "Imena različice ni mogoče nastaviti" + "Could not delete version" : "Različice ji mogoče izbrisati" },"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_versions/l10n/sq.js b/apps/files_versions/l10n/sq.js deleted file mode 100644 index 59d42371c2f..00000000000 --- a/apps/files_versions/l10n/sq.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "Versione", - "Failed to revert {file} to revision {timestamp}." : "Dështoi në rikthimin e {file} te rishikimi {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bajte","%n bajte"], - "Restore" : "Riktheje", - "No other versions available" : "Nuk ka versione të tjera të gatshme" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/sq.json b/apps/files_versions/l10n/sq.json deleted file mode 100644 index 73fe6d0ab58..00000000000 --- a/apps/files_versions/l10n/sq.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Versions" : "Versione", - "Failed to revert {file} to revision {timestamp}." : "Dështoi në rikthimin e {file} te rishikimi {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n bajte","%n bajte"], - "Restore" : "Riktheje", - "No other versions available" : "Nuk ka versione të tjera të gatshme" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/sr.js b/apps/files_versions/l10n/sr.js index ccdf972ba1b..9fae518228f 100644 --- a/apps/files_versions/l10n/sr.js +++ b/apps/files_versions/l10n/sr.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Верзије", "This application automatically maintains older versions of files that are changed." : "Ова апликација аутоматски одржава старије верзије измењених фајлова.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ова апликација аутоматски одржава старије верзије фајлова који су измењени. Када се укључи, у сваком корисниковом директоријуму се креира скривени фолдер са верзијама. Он се користи за чување старијих верзија фајла. У било које време корисник може да се врати на старију верзију користећи веб интерфејс, тако што замењени фајл постаје нова верзија. Апликација аутоматски управља фолдером са верзијама тако да налог не потроши своју Квоту због верзија.\n\t\tУз време истека верзија, апликација обезбеђује да се никада не заузме више од 50% текућег слободног простора налога. Ако сачуване верзије прекораче ово ограничење, апликација ће најпре обриати најстарије верзије све док се не задовољи ограничење. Више информација се налази у документацији апликације Верзије.", + "Current version" : "Тренутна верзија", + "Initial version" : "Почетна верзија", + "You" : "Ви", + "Actions for version from {versionHumanExplicitDate}" : "Акције за верзију од {versionHumanExplicitDate}", "Name this version" : "Назив ове верзије", "Edit version name" : "Уреди назив верзије", "Compare to current version" : "Упореди са текућом верзијом", "Restore version" : "Рестаурирај верзију", "Download version" : "Преузми верзију", "Delete version" : "Обриши верзију", - "Current version" : "Тренутна верзија", - "Initial version" : "Почетна верзија", - "Version name" : "Назив верзије", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именоване верзије су постојане и изузете су из аутоматског чишћења када се испуни ваша диск квота.", + "Cancel" : "Откажи", "Remove version name" : "Уклони назив верзије", "Save version name" : "Сачувај назив верзије", + "Version name" : "Назив верзије", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именоване верзије су постојане и изузете су из аутоматског чишћења када се испуни ваша диск квота.", "Initial version restored" : "Рестаурирана је почетна верзија", "Version restored" : "Верзија је рестаурирана", "Could not restore version" : "Верзија није могла да се рестаурира", "Could not set version label" : "Није могла да се постави ознака назива верзије", "Could not delete version" : "Верзија није могла да се обрише", - "${version.label} restored" : "${version.label} је рестаурирана", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ова апликација аутоматски одржава старије верзије фајлова који су измењени. Када се укључи, у сваком корисниковом директоријуму се креира скривени фолдер са верзијама. Он се користи за чување старијих верзија фајла. У било које време корисник може да се врати на старију верзију користећи веб интерфејс, тако што замењени фајл постаје нова верзија. Апликација аутоматски управља фолдером са верзијама тако да корисник не потроши своју Квоту због верзија.\n\t\tУз време истека верзија, апликација обезбеђује да се никада не заузме више од 50% текућег корисниковог слободног простора. Ако сачуване верзије прекораче ово ограничење, апликација ће најпре обриати најстарије верзије све док се не задовољи ограничење. Више информација се налази у документацији апликације Верзије.", - "Could not set version name" : "Назив верзије није могао да се постави" + "File versions" : "Верзије фајла" }, "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_versions/l10n/sr.json b/apps/files_versions/l10n/sr.json index 143c58859e3..c4d24c85abf 100644 --- a/apps/files_versions/l10n/sr.json +++ b/apps/files_versions/l10n/sr.json @@ -2,25 +2,26 @@ "Versions" : "Верзије", "This application automatically maintains older versions of files that are changed." : "Ова апликација аутоматски одржава старије верзије измењених фајлова.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ова апликација аутоматски одржава старије верзије фајлова који су измењени. Када се укључи, у сваком корисниковом директоријуму се креира скривени фолдер са верзијама. Он се користи за чување старијих верзија фајла. У било које време корисник може да се врати на старију верзију користећи веб интерфејс, тако што замењени фајл постаје нова верзија. Апликација аутоматски управља фолдером са верзијама тако да налог не потроши своју Квоту због верзија.\n\t\tУз време истека верзија, апликација обезбеђује да се никада не заузме више од 50% текућег слободног простора налога. Ако сачуване верзије прекораче ово ограничење, апликација ће најпре обриати најстарије верзије све док се не задовољи ограничење. Више информација се налази у документацији апликације Верзије.", + "Current version" : "Тренутна верзија", + "Initial version" : "Почетна верзија", + "You" : "Ви", + "Actions for version from {versionHumanExplicitDate}" : "Акције за верзију од {versionHumanExplicitDate}", "Name this version" : "Назив ове верзије", "Edit version name" : "Уреди назив верзије", "Compare to current version" : "Упореди са текућом верзијом", "Restore version" : "Рестаурирај верзију", "Download version" : "Преузми верзију", "Delete version" : "Обриши верзију", - "Current version" : "Тренутна верзија", - "Initial version" : "Почетна верзија", - "Version name" : "Назив верзије", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именоване верзије су постојане и изузете су из аутоматског чишћења када се испуни ваша диск квота.", + "Cancel" : "Откажи", "Remove version name" : "Уклони назив верзије", "Save version name" : "Сачувај назив верзије", + "Version name" : "Назив верзије", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Именоване верзије су постојане и изузете су из аутоматског чишћења када се испуни ваша диск квота.", "Initial version restored" : "Рестаурирана је почетна верзија", "Version restored" : "Верзија је рестаурирана", "Could not restore version" : "Верзија није могла да се рестаурира", "Could not set version label" : "Није могла да се постави ознака назива верзије", "Could not delete version" : "Верзија није могла да се обрише", - "${version.label} restored" : "${version.label} је рестаурирана", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ова апликација аутоматски одржава старије верзије фајлова који су измењени. Када се укључи, у сваком корисниковом директоријуму се креира скривени фолдер са верзијама. Он се користи за чување старијих верзија фајла. У било које време корисник може да се врати на старију верзију користећи веб интерфејс, тако што замењени фајл постаје нова верзија. Апликација аутоматски управља фолдером са верзијама тако да корисник не потроши своју Квоту због верзија.\n\t\tУз време истека верзија, апликација обезбеђује да се никада не заузме више од 50% текућег корисниковог слободног простора. Ако сачуване верзије прекораче ово ограничење, апликација ће најпре обриати најстарије верзије све док се не задовољи ограничење. Више информација се налази у документацији апликације Верзије.", - "Could not set version name" : "Назив верзије није могао да се постави" + "File versions" : "Верзије фајла" },"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_versions/l10n/sr@latin.js b/apps/files_versions/l10n/sr@latin.js deleted file mode 100644 index 627d70eb51b..00000000000 --- a/apps/files_versions/l10n/sr@latin.js +++ /dev/null @@ -1,11 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Could not revert: %s" : "Ne mogu da vratim: %s", - "Versions" : "Verzije", - "Failed to revert {file} to revision {timestamp}." : "Ne mogu da vratim {file} na reviziju {timestamp}.", - "Restore" : "Vrati", - "No other versions available" : "Nema drugih verzija", - "More versions..." : "Još verzija..." -}, -"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_versions/l10n/sr@latin.json b/apps/files_versions/l10n/sr@latin.json deleted file mode 100644 index 63fe55cf50e..00000000000 --- a/apps/files_versions/l10n/sr@latin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ "translations": { - "Could not revert: %s" : "Ne mogu da vratim: %s", - "Versions" : "Verzije", - "Failed to revert {file} to revision {timestamp}." : "Ne mogu da vratim {file} na reviziju {timestamp}.", - "Restore" : "Vrati", - "No other versions available" : "Nema drugih verzija", - "More versions..." : "Još verzija..." -},"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_versions/l10n/sv.js b/apps/files_versions/l10n/sv.js index 272ee83123c..31711f5efef 100644 --- a/apps/files_versions/l10n/sv.js +++ b/apps/files_versions/l10n/sv.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "Versioner", "This application automatically maintains older versions of files that are changed." : "Den här applikationen behåller automatiskt äldre versioner av filer som ändras.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denna applikation hanterar automatiskt äldre versioner av filer när de ändras. När funktionen är aktiverad tillhandahålls en dold versionsmapp i varje användares katalog som används för att lagra gamla filversioner. En användare kan när som helst återgå till en äldre version via webbgränssnittet, när detta görs blir den ersatta filen en version. Appen hanterar automatiskt versionsmappen för att säkerställa att användaren inte får slut på sin kvot på grund av sparade versioner.\nUtöver hantering av utgångna versioner så förvissar sig appen för versionshantering att den inte använder sig av mer än 50% av användarens tillgängliga ledigt utrymme. Om lagrade versioner överskrider denna gräns, kommer appen att ta bort de äldsta versionerna först tills den inte längre överskrider gränsen. Mer information finns i Versionsdokumentationen.", + "Current version" : "Aktuell version", + "Initial version" : "Första versionen", + "You" : "Du", + "Actions for version from {versionHumanExplicitDate}" : "Åtgärder för version från {versionHumanExplicitDate}", "Name this version" : "Namnge denna version", "Edit version name" : "Ändra versionsnamn", "Compare to current version" : "Jämför med nuvarande version", "Restore version" : "Återställ version", "Download version" : "Ladda ner version", "Delete version" : "Ta bort version", - "Current version" : "Aktuell version", - "Initial version" : "Första versionen", - "Version name" : "Namn på version", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Namngivna versioner finns kvar och utesluts från automatiska rensningar när din lagringskvot är full.", + "Cancel" : "Avbryt", "Remove version name" : "Ta bort versionsnamn", "Save version name" : "Spara versionsnamn", + "Version name" : "Namn på version", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Namngivna versioner finns kvar och utesluts från automatiska rensningar när din lagringskvot är full.", "Initial version restored" : "Ursprunglig version återställd", "Version restored" : "Version återställd", "Could not restore version" : "Kunde inte återställa versionen", "Could not set version label" : "Det gick inte att ange versionsetikett", "Could not delete version" : "Det gick inte att ta bort versionen", - "${version.label} restored" : "${version.label} återställd", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denna applikation hanterar automatiskt äldre versioner av filer när de ändras. När funktionen är aktiverad tillhandahålls en dold versionsmapp i varje användares katalog som används för att lagra gamla filversioner. En användare kan när som hellst återgå till en äldre version via webbgränssnittet, när detta görs blir den ersatta filen en version. Appen hanterar automatiskt versionsmappen för att säkerställa att användaren inte får slut på sin kvot på grund av sparade versioner.\nUtöver hantering av utgångna versioner så förvissar sig appen för versionshantering att den inte använder sig av mer än 50% av användarens tillgängliga ledigt utrymme. Om lagrade versioner överskrider denna gräns, kommer appen att ta bort de äldsta versionerna först tills den återigen uppfyller denna gräns. Mer information finns i Versionsdokumentationen.", - "Could not set version name" : "Det gick inte att ange versionsnamn" + "File versions" : "Filversioner" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/sv.json b/apps/files_versions/l10n/sv.json index 24b0bf23336..98a4af8c801 100644 --- a/apps/files_versions/l10n/sv.json +++ b/apps/files_versions/l10n/sv.json @@ -2,25 +2,26 @@ "Versions" : "Versioner", "This application automatically maintains older versions of files that are changed." : "Den här applikationen behåller automatiskt äldre versioner av filer som ändras.", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denna applikation hanterar automatiskt äldre versioner av filer när de ändras. När funktionen är aktiverad tillhandahålls en dold versionsmapp i varje användares katalog som används för att lagra gamla filversioner. En användare kan när som helst återgå till en äldre version via webbgränssnittet, när detta görs blir den ersatta filen en version. Appen hanterar automatiskt versionsmappen för att säkerställa att användaren inte får slut på sin kvot på grund av sparade versioner.\nUtöver hantering av utgångna versioner så förvissar sig appen för versionshantering att den inte använder sig av mer än 50% av användarens tillgängliga ledigt utrymme. Om lagrade versioner överskrider denna gräns, kommer appen att ta bort de äldsta versionerna först tills den inte längre överskrider gränsen. Mer information finns i Versionsdokumentationen.", + "Current version" : "Aktuell version", + "Initial version" : "Första versionen", + "You" : "Du", + "Actions for version from {versionHumanExplicitDate}" : "Åtgärder för version från {versionHumanExplicitDate}", "Name this version" : "Namnge denna version", "Edit version name" : "Ändra versionsnamn", "Compare to current version" : "Jämför med nuvarande version", "Restore version" : "Återställ version", "Download version" : "Ladda ner version", "Delete version" : "Ta bort version", - "Current version" : "Aktuell version", - "Initial version" : "Första versionen", - "Version name" : "Namn på version", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Namngivna versioner finns kvar och utesluts från automatiska rensningar när din lagringskvot är full.", + "Cancel" : "Avbryt", "Remove version name" : "Ta bort versionsnamn", "Save version name" : "Spara versionsnamn", + "Version name" : "Namn på version", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Namngivna versioner finns kvar och utesluts från automatiska rensningar när din lagringskvot är full.", "Initial version restored" : "Ursprunglig version återställd", "Version restored" : "Version återställd", "Could not restore version" : "Kunde inte återställa versionen", "Could not set version label" : "Det gick inte att ange versionsetikett", "Could not delete version" : "Det gick inte att ta bort versionen", - "${version.label} restored" : "${version.label} återställd", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Denna applikation hanterar automatiskt äldre versioner av filer när de ändras. När funktionen är aktiverad tillhandahålls en dold versionsmapp i varje användares katalog som används för att lagra gamla filversioner. En användare kan när som hellst återgå till en äldre version via webbgränssnittet, när detta görs blir den ersatta filen en version. Appen hanterar automatiskt versionsmappen för att säkerställa att användaren inte får slut på sin kvot på grund av sparade versioner.\nUtöver hantering av utgångna versioner så förvissar sig appen för versionshantering att den inte använder sig av mer än 50% av användarens tillgängliga ledigt utrymme. Om lagrade versioner överskrider denna gräns, kommer appen att ta bort de äldsta versionerna först tills den återigen uppfyller denna gräns. Mer information finns i Versionsdokumentationen.", - "Could not set version name" : "Det gick inte att ange versionsnamn" + "File versions" : "Filversioner" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/sw.js b/apps/files_versions/l10n/sw.js new file mode 100644 index 00000000000..193be71930c --- /dev/null +++ b/apps/files_versions/l10n/sw.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "files_versions", + { + "Versions" : "Matoleo", + "This application automatically maintains older versions of files that are changed." : "Programu hii hudumisha kiotomati matoleo ya zamani ya faili ambazo hubadilishwa.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Programu hii hudumisha kiotomati matoleo ya zamani ya faili ambazo hubadilishwa. Inapowashwa, folda ya matoleo yaliyofichwa hutolewa katika saraka ya kila mtumiaji na hutumiwa kuhifadhi matoleo ya zamani ya faili. Mtumiaji anaweza kurejesha toleo la zamani kupitia kiolesura cha wavuti wakati wowote, na faili iliyobadilishwa kuwa toleo. Programu hudhibiti folda ya matoleo kiotomatiki ili kuhakikisha kuwa akaunti haiishiwi na Kiasi kwa sababu ya matoleo.\n\t\tPamoja na kuisha kwa muda wa matoleo, programu ya matoleo huhakikisha kuwa haitawahi kutumia zaidi ya 50% ya nafasi ya bure inayopatikana kwa sasa ya akaunti. Ikiwa matoleo yaliyohifadhiwa yatazidi kikomo hiki, programu itafuta matoleo ya zamani kwanza hadi ifikie kikomo hiki. Maelezo zaidi yanapatikana katika hati za Matoleo.", + "Current version" : " Toleo la sasa", + "Initial version" : "Toleo la awali", + "You" : "Wewe", + "Actions for version from {versionHumanExplicitDate}" : "Vitendo vya toleo kutoka {versionHumanExplicitDate}", + "Name this version" : "Lipe jina toleo hili", + "Edit version name" : "Hariri jina la toleo", + "Compare to current version" : "Linganisha kwa toleo la sasa", + "Restore version" : "Hifadhi upya toleo", + "Download version" : "Pakua toleo", + "Delete version" : "Futa toleo", + "Cancel" : "Ghairi", + "Remove version name" : "Ondoa jina la toleo", + "Save version name" : "Hifadhi jina la toleo", + "Version name" : "Jina la toleo", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : " Matoleo yaliyotajwa yanaendelea, na hayajumuishwi katika usafishaji kiotomatiki wakati kiasi chako cha hifadhi kimejaa.", + "Initial version restored" : "Toleo la awali limerejeshwa", + "Version restored" : "Toleo limerejeshwa", + "Could not restore version" : "Haikuweza kurejesha toleo", + "Could not set version label" : "Haikuweza kuweka lebo ya toleo", + "Could not delete version" : "Haikuweza kufuta toleo", + "File versions" : "Matoleo ya faili" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/sw.json b/apps/files_versions/l10n/sw.json new file mode 100644 index 00000000000..7a617882365 --- /dev/null +++ b/apps/files_versions/l10n/sw.json @@ -0,0 +1,27 @@ +{ "translations": { + "Versions" : "Matoleo", + "This application automatically maintains older versions of files that are changed." : "Programu hii hudumisha kiotomati matoleo ya zamani ya faili ambazo hubadilishwa.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Programu hii hudumisha kiotomati matoleo ya zamani ya faili ambazo hubadilishwa. Inapowashwa, folda ya matoleo yaliyofichwa hutolewa katika saraka ya kila mtumiaji na hutumiwa kuhifadhi matoleo ya zamani ya faili. Mtumiaji anaweza kurejesha toleo la zamani kupitia kiolesura cha wavuti wakati wowote, na faili iliyobadilishwa kuwa toleo. Programu hudhibiti folda ya matoleo kiotomatiki ili kuhakikisha kuwa akaunti haiishiwi na Kiasi kwa sababu ya matoleo.\n\t\tPamoja na kuisha kwa muda wa matoleo, programu ya matoleo huhakikisha kuwa haitawahi kutumia zaidi ya 50% ya nafasi ya bure inayopatikana kwa sasa ya akaunti. Ikiwa matoleo yaliyohifadhiwa yatazidi kikomo hiki, programu itafuta matoleo ya zamani kwanza hadi ifikie kikomo hiki. Maelezo zaidi yanapatikana katika hati za Matoleo.", + "Current version" : " Toleo la sasa", + "Initial version" : "Toleo la awali", + "You" : "Wewe", + "Actions for version from {versionHumanExplicitDate}" : "Vitendo vya toleo kutoka {versionHumanExplicitDate}", + "Name this version" : "Lipe jina toleo hili", + "Edit version name" : "Hariri jina la toleo", + "Compare to current version" : "Linganisha kwa toleo la sasa", + "Restore version" : "Hifadhi upya toleo", + "Download version" : "Pakua toleo", + "Delete version" : "Futa toleo", + "Cancel" : "Ghairi", + "Remove version name" : "Ondoa jina la toleo", + "Save version name" : "Hifadhi jina la toleo", + "Version name" : "Jina la toleo", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : " Matoleo yaliyotajwa yanaendelea, na hayajumuishwi katika usafishaji kiotomatiki wakati kiasi chako cha hifadhi kimejaa.", + "Initial version restored" : "Toleo la awali limerejeshwa", + "Version restored" : "Toleo limerejeshwa", + "Could not restore version" : "Haikuweza kurejesha toleo", + "Could not set version label" : "Haikuweza kuweka lebo ya toleo", + "Could not delete version" : "Haikuweza kufuta toleo", + "File versions" : "Matoleo ya faili" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_versions/l10n/th.js b/apps/files_versions/l10n/th.js deleted file mode 100644 index e86c92c3e8b..00000000000 --- a/apps/files_versions/l10n/th.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Versions" : "รุ่น", - "Failed to revert {file} to revision {timestamp}." : "{file} ล้มเหลวที่จะย้อนกลับไปยังการแก้ไขเมื่อ {timestamp}", - "_%n byte_::_%n bytes_" : ["%n ไบต์"], - "Restore" : "คืนค่า", - "No other versions available" : "ไม่มีรุ่นอื่น ๆ" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/th.json b/apps/files_versions/l10n/th.json deleted file mode 100644 index c46285ab31f..00000000000 --- a/apps/files_versions/l10n/th.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Versions" : "รุ่น", - "Failed to revert {file} to revision {timestamp}." : "{file} ล้มเหลวที่จะย้อนกลับไปยังการแก้ไขเมื่อ {timestamp}", - "_%n byte_::_%n bytes_" : ["%n ไบต์"], - "Restore" : "คืนค่า", - "No other versions available" : "ไม่มีรุ่นอื่น ๆ" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/tr.js b/apps/files_versions/l10n/tr.js index a715588c0b9..dc216107c52 100644 --- a/apps/files_versions/l10n/tr.js +++ b/apps/files_versions/l10n/tr.js @@ -3,26 +3,27 @@ OC.L10N.register( { "Versions" : "Sürümler", "This application automatically maintains older versions of files that are changed." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. etkinleştirildiğinde, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", + "Current version" : "Geçerli sürüm", + "Initial version" : "İlk sürüm", + "You" : "Siz", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} tarihindeki sürüm için işlemler", "Name this version" : "Bu sürümü adlandırın", "Edit version name" : "Sürüm adını düzenle", "Compare to current version" : "Geçerli sürüm ile karşılaştır", "Restore version" : "Sürümü geri yükle", "Download version" : "Sürümü indir", "Delete version" : "Sürümü sil", - "Current version" : "Geçerli sürüm", - "Initial version" : "İlk sürüm", - "Version name" : "Sürüm adı", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Adlandırılmış sürümler kalıcı olur ve depolama alanı kotanız dolduğunda otomatik temizleme işlemine katılmaz.", + "Cancel" : "İptal", "Remove version name" : "Sürüm adını kaldır", "Save version name" : "Sürüm adını kaydet", + "Version name" : "Sürüm adı", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Adlandırılmış sürümler kalıcı olur ve depolama alanı kotanız dolduğunda otomatik temizleme işlemine katılmaz.", "Initial version restored" : "İlk sürüm geri yüklendi", "Version restored" : "Sürüm geri yüklendi", "Could not restore version" : "Sürüm geri yüklenemedi", "Could not set version label" : "Sürüm etiketi ayarlanamadı", "Could not delete version" : "Sürüm silinemedi", - "${version.label} restored" : "${version.label} geri yüklendi", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. etkinleştirildiğinde, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle kullanıcının kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, kullanıcı depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", - "Could not set version name" : "Sürüm adı ayarlanamadı" + "File versions" : "Dosya sürümleri" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_versions/l10n/tr.json b/apps/files_versions/l10n/tr.json index d42a43e0d19..e914457e8bd 100644 --- a/apps/files_versions/l10n/tr.json +++ b/apps/files_versions/l10n/tr.json @@ -1,26 +1,27 @@ { "translations": { "Versions" : "Sürümler", "This application automatically maintains older versions of files that are changed." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. etkinleştirildiğinde, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", + "Current version" : "Geçerli sürüm", + "Initial version" : "İlk sürüm", + "You" : "Siz", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} tarihindeki sürüm için işlemler", "Name this version" : "Bu sürümü adlandırın", "Edit version name" : "Sürüm adını düzenle", "Compare to current version" : "Geçerli sürüm ile karşılaştır", "Restore version" : "Sürümü geri yükle", "Download version" : "Sürümü indir", "Delete version" : "Sürümü sil", - "Current version" : "Geçerli sürüm", - "Initial version" : "İlk sürüm", - "Version name" : "Sürüm adı", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Adlandırılmış sürümler kalıcı olur ve depolama alanı kotanız dolduğunda otomatik temizleme işlemine katılmaz.", + "Cancel" : "İptal", "Remove version name" : "Sürüm adını kaldır", "Save version name" : "Sürüm adını kaydet", + "Version name" : "Sürüm adı", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Adlandırılmış sürümler kalıcı olur ve depolama alanı kotanız dolduğunda otomatik temizleme işlemine katılmaz.", "Initial version restored" : "İlk sürüm geri yüklendi", "Version restored" : "Sürüm geri yüklendi", "Could not restore version" : "Sürüm geri yüklenemedi", "Could not set version label" : "Sürüm etiketi ayarlanamadı", "Could not delete version" : "Sürüm silinemedi", - "${version.label} restored" : "${version.label} geri yüklendi", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. etkinleştirildiğinde, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle kullanıcının kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, kullanıcı depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", - "Could not set version name" : "Sürüm adı ayarlanamadı" + "File versions" : "Dosya sürümleri" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ug.js b/apps/files_versions/l10n/ug.js index d0fc24b831f..5fb5ab3d7e3 100644 --- a/apps/files_versions/l10n/ug.js +++ b/apps/files_versions/l10n/ug.js @@ -1,7 +1,28 @@ OC.L10N.register( "files_versions", { - "Could not revert: %s" : "ئەسلىگە قايتۇرالمايدۇ: %s", - "Versions" : "نەشرى" + "Versions" : "نەشرى", + "This application automatically maintains older versions of files that are changed." : "بۇ پروگرامما ئۆزگەرتىلگەن ھۆججەتلەرنىڭ كونا نەشرىنى ئاپتوماتىك ساقلايدۇ.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "بۇ پروگرامما ئۆزگەرتىلگەن ھۆججەتلەرنىڭ كونا نەشرىنى ئاپتوماتىك ساقلايدۇ. قوزغىتىلغاندا ، ھەر بىر ئىشلەتكۈچىنىڭ مۇندەرىجىسىدە يوشۇرۇن نەشرى قىسقۇچ تەمىنلەنگەن بولۇپ ، كونا ھۆججەت نەشرىنى ساقلاشقا ئىشلىتىلىدۇ. ئىشلەتكۈچى خالىغان ۋاقىتتا تور كۆرۈنمە يۈزى ئارقىلىق كونا نەشرىگە قايتالايدۇ ، ئالماشتۇرۇلغان ھۆججەت نەشرىگە ئايلىنىدۇ. بۇ دېتال نەشرى قىسقۇچنى ئاپتوماتىك باشقۇرۇپ ، نەشرى سەۋەبىدىن ھېساباتنىڭ نورمىدىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىدۇ.\n\t\tنەشرىنىڭ ۋاقتى توشقاندىن باشقا ، نەشىر دېتالى ھېساباتنىڭ ھازىر بار بولغان بوشلۇقنىڭ%50 تىن كۆپرەكىنى ھەرگىز ئىشلەتمەسلىككە كاپالەتلىك قىلىدۇ. ئەگەر ساقلانغان نەشرى بۇ چەكتىن ئېشىپ كەتسە ، ئەپ بۇ چەككە توشقۇچە ئەڭ كونا نەشرىنى ئۆچۈرۈۋېتىدۇ. تېخىمۇ كۆپ ئۇچۇرلار نەشىر ھۆججىتىدە بار.", + "Current version" : "نۆۋەتتىكى نەشرى", + "Initial version" : "دەسلەپكى نەشرى", + "You" : "سەن", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} HumanExplicitDate from نەشرىدىكى مەشغۇلاتلار", + "Name this version" : "بۇ نەشرىگە ئىسىم قويۇڭ", + "Edit version name" : "نەشرىنىڭ نامىنى تەھرىرلەش", + "Compare to current version" : "ھازىرقى نەشرىگە سېلىشتۇرۇڭ", + "Restore version" : "نەشرىنى ئەسلىگە كەلتۈرۈش", + "Download version" : "نەشرىنى چۈشۈرۈش", + "Delete version" : "نەشرىنى ئۆچۈرۈڭ", + "Cancel" : "بىكار قىلىش", + "Remove version name" : "نەشرىنىڭ نامىنى ئۆچۈرۈڭ", + "Save version name" : "نەشرىنىڭ نامىنى ساقلاڭ", + "Version name" : "نەشرىنىڭ ئىسمى", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "ئىسمى بار نەشرى ساقلاپ قېلىنىدۇ ، ساقلاش نورمىسى توشقاندا ئاپتوماتىك تازىلاشتىن چىقىرىۋېتىلىدۇ.", + "Initial version restored" : "دەسلەپكى نەشرى ئەسلىگە كەلدى", + "Version restored" : "نەشرى ئەسلىگە كەلتۈرۈلدى", + "Could not restore version" : "نەشرىنى ئەسلىگە كەلتۈرەلمىدى", + "Could not set version label" : "نەشىر بەلگىسىنى تەڭشىيەلمىدى", + "Could not delete version" : "نەشرىنى ئۆچۈرەلمىدى" }, -"nplurals=1; plural=0;"); +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/ug.json b/apps/files_versions/l10n/ug.json index 84f12cdc23a..29d3a9be9b6 100644 --- a/apps/files_versions/l10n/ug.json +++ b/apps/files_versions/l10n/ug.json @@ -1,5 +1,26 @@ { "translations": { - "Could not revert: %s" : "ئەسلىگە قايتۇرالمايدۇ: %s", - "Versions" : "نەشرى" -},"pluralForm" :"nplurals=1; plural=0;" + "Versions" : "نەشرى", + "This application automatically maintains older versions of files that are changed." : "بۇ پروگرامما ئۆزگەرتىلگەن ھۆججەتلەرنىڭ كونا نەشرىنى ئاپتوماتىك ساقلايدۇ.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "بۇ پروگرامما ئۆزگەرتىلگەن ھۆججەتلەرنىڭ كونا نەشرىنى ئاپتوماتىك ساقلايدۇ. قوزغىتىلغاندا ، ھەر بىر ئىشلەتكۈچىنىڭ مۇندەرىجىسىدە يوشۇرۇن نەشرى قىسقۇچ تەمىنلەنگەن بولۇپ ، كونا ھۆججەت نەشرىنى ساقلاشقا ئىشلىتىلىدۇ. ئىشلەتكۈچى خالىغان ۋاقىتتا تور كۆرۈنمە يۈزى ئارقىلىق كونا نەشرىگە قايتالايدۇ ، ئالماشتۇرۇلغان ھۆججەت نەشرىگە ئايلىنىدۇ. بۇ دېتال نەشرى قىسقۇچنى ئاپتوماتىك باشقۇرۇپ ، نەشرى سەۋەبىدىن ھېساباتنىڭ نورمىدىن ئېشىپ كەتمەسلىكىگە كاپالەتلىك قىلىدۇ.\n\t\tنەشرىنىڭ ۋاقتى توشقاندىن باشقا ، نەشىر دېتالى ھېساباتنىڭ ھازىر بار بولغان بوشلۇقنىڭ%50 تىن كۆپرەكىنى ھەرگىز ئىشلەتمەسلىككە كاپالەتلىك قىلىدۇ. ئەگەر ساقلانغان نەشرى بۇ چەكتىن ئېشىپ كەتسە ، ئەپ بۇ چەككە توشقۇچە ئەڭ كونا نەشرىنى ئۆچۈرۈۋېتىدۇ. تېخىمۇ كۆپ ئۇچۇرلار نەشىر ھۆججىتىدە بار.", + "Current version" : "نۆۋەتتىكى نەشرى", + "Initial version" : "دەسلەپكى نەشرى", + "You" : "سەن", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} HumanExplicitDate from نەشرىدىكى مەشغۇلاتلار", + "Name this version" : "بۇ نەشرىگە ئىسىم قويۇڭ", + "Edit version name" : "نەشرىنىڭ نامىنى تەھرىرلەش", + "Compare to current version" : "ھازىرقى نەشرىگە سېلىشتۇرۇڭ", + "Restore version" : "نەشرىنى ئەسلىگە كەلتۈرۈش", + "Download version" : "نەشرىنى چۈشۈرۈش", + "Delete version" : "نەشرىنى ئۆچۈرۈڭ", + "Cancel" : "بىكار قىلىش", + "Remove version name" : "نەشرىنىڭ نامىنى ئۆچۈرۈڭ", + "Save version name" : "نەشرىنىڭ نامىنى ساقلاڭ", + "Version name" : "نەشرىنىڭ ئىسمى", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "ئىسمى بار نەشرى ساقلاپ قېلىنىدۇ ، ساقلاش نورمىسى توشقاندا ئاپتوماتىك تازىلاشتىن چىقىرىۋېتىلىدۇ.", + "Initial version restored" : "دەسلەپكى نەشرى ئەسلىگە كەلدى", + "Version restored" : "نەشرى ئەسلىگە كەلتۈرۈلدى", + "Could not restore version" : "نەشرىنى ئەسلىگە كەلتۈرەلمىدى", + "Could not set version label" : "نەشىر بەلگىسىنى تەڭشىيەلمىدى", + "Could not delete version" : "نەشرىنى ئۆچۈرەلمىدى" +},"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/uk.js b/apps/files_versions/l10n/uk.js index 695b48fe4b9..8b98d0f28c6 100644 --- a/apps/files_versions/l10n/uk.js +++ b/apps/files_versions/l10n/uk.js @@ -3,25 +3,27 @@ OC.L10N.register( { "Versions" : "Версії", "This application automatically maintains older versions of files that are changed." : "Цей застосунок підтримує роботу з попередніми версіями файлів, які було змінено.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ця програма автоматично зберігає старі версії файлів, які були змінені. Коли ця функція увімкнена, у каталозі кожного користувача створюється прихований каталог «версії», яка використовується для зберігання старих версій файлів. Користувач може в будь-який час повернутися до старішої версії через веб-інтерфейс, а замінений файл стане версією. Програма автоматично керує каталогом «версії», щоб уникнути перевищення квоти облікового запису через версії.\n\nОкрім терміну дії версій, програма «Версії» гарантує, що ніколи не буде використовуватися більше 50% вільного місця, доступного на даний момент в обліковому записі. Якщо збережені версії перевищують цей ліміт, програма спочатку видалить найстаріші версії, доки не буде досягнуто цього ліміту. Більше інформації можна знайти в документації «Версії».", + "Current version" : "Поточна версія", + "Initial version" : "Початкова версія", + "You" : "Ви", + "Actions for version from {versionHumanExplicitDate}" : "Дії для версії від {versionHumanExplicitDate}", "Name this version" : "Назвіть цю версію", "Edit version name" : "Редагуйте назву версії", "Compare to current version" : "Порівняти з поточною версією", "Restore version" : "Відновити версію", "Download version" : "Звантажити версію", "Delete version" : "Вилучити версію", - "Current version" : "Поточна версія", - "Initial version" : "Початкова версія", - "Version name" : "Назва версії", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Версії з назвами є постійними та їх виключено з автоматичного очищення після переповнення квоти у сховищі.", + "Cancel" : "Скасувати", "Remove version name" : "Вилучити назву версії", "Save version name" : "Зберегти назву версії", + "Version name" : "Назва версії", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Версії з назвами є постійними та їх виключено з автоматичного очищення після переповнення квоти у сховищі.", "Initial version restored" : "Початкову версію відновлено", "Version restored" : "Версію відновлено", "Could not restore version" : "Не вдалося відновити версію", "Could not set version label" : "Не вдалося встановити ярлик версії", "Could not delete version" : "Не вдалося вилучити версію", - "${version.label} restored" : "${version.label} відновлено", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Цей застосунок автоматично підтримує старіші версії файлів, які було змінено. Якщо його увімкнено, прихований каталог версій створюється в каталозі кожного користувача та використовується для зберігання старих версій файлів. Користувач може будь-коли повернутися до старішої версії через веб-інтерфейс, а замінений файл стане версією. Застосунок автоматично керує каталогом з версіями файлів, щоб користувач не вичерпав квоту через надмірну кількість версій. \n\nНа додаток до закінчення терміну дії версій, додаток версій гарантує, що ніколи не буде використано більше 50% вільного простору користувача. Якщо збережені версії перевищують це обмеження, застосунок спочатку вилучить найстаріші версії, доки не досягне цього обмеження. Додаткову інформацію можна знайти в документації версій.", - "Could not set version name" : "Не вдалося встановити назву для версії" + "File versions" : "Версії файлу" }, "nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"); diff --git a/apps/files_versions/l10n/uk.json b/apps/files_versions/l10n/uk.json index 00fa3192491..e9ec39ed3d9 100644 --- a/apps/files_versions/l10n/uk.json +++ b/apps/files_versions/l10n/uk.json @@ -1,25 +1,27 @@ { "translations": { "Versions" : "Версії", "This application automatically maintains older versions of files that are changed." : "Цей застосунок підтримує роботу з попередніми версіями файлів, які було змінено.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ця програма автоматично зберігає старі версії файлів, які були змінені. Коли ця функція увімкнена, у каталозі кожного користувача створюється прихований каталог «версії», яка використовується для зберігання старих версій файлів. Користувач може в будь-який час повернутися до старішої версії через веб-інтерфейс, а замінений файл стане версією. Програма автоматично керує каталогом «версії», щоб уникнути перевищення квоти облікового запису через версії.\n\nОкрім терміну дії версій, програма «Версії» гарантує, що ніколи не буде використовуватися більше 50% вільного місця, доступного на даний момент в обліковому записі. Якщо збережені версії перевищують цей ліміт, програма спочатку видалить найстаріші версії, доки не буде досягнуто цього ліміту. Більше інформації можна знайти в документації «Версії».", + "Current version" : "Поточна версія", + "Initial version" : "Початкова версія", + "You" : "Ви", + "Actions for version from {versionHumanExplicitDate}" : "Дії для версії від {versionHumanExplicitDate}", "Name this version" : "Назвіть цю версію", "Edit version name" : "Редагуйте назву версії", "Compare to current version" : "Порівняти з поточною версією", "Restore version" : "Відновити версію", "Download version" : "Звантажити версію", "Delete version" : "Вилучити версію", - "Current version" : "Поточна версія", - "Initial version" : "Початкова версія", - "Version name" : "Назва версії", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Версії з назвами є постійними та їх виключено з автоматичного очищення після переповнення квоти у сховищі.", + "Cancel" : "Скасувати", "Remove version name" : "Вилучити назву версії", "Save version name" : "Зберегти назву версії", + "Version name" : "Назва версії", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Версії з назвами є постійними та їх виключено з автоматичного очищення після переповнення квоти у сховищі.", "Initial version restored" : "Початкову версію відновлено", "Version restored" : "Версію відновлено", "Could not restore version" : "Не вдалося відновити версію", "Could not set version label" : "Не вдалося встановити ярлик версії", "Could not delete version" : "Не вдалося вилучити версію", - "${version.label} restored" : "${version.label} відновлено", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Цей застосунок автоматично підтримує старіші версії файлів, які було змінено. Якщо його увімкнено, прихований каталог версій створюється в каталозі кожного користувача та використовується для зберігання старих версій файлів. Користувач може будь-коли повернутися до старішої версії через веб-інтерфейс, а замінений файл стане версією. Застосунок автоматично керує каталогом з версіями файлів, щоб користувач не вичерпав квоту через надмірну кількість версій. \n\nНа додаток до закінчення терміну дії версій, додаток версій гарантує, що ніколи не буде використано більше 50% вільного простору користувача. Якщо збережені версії перевищують це обмеження, застосунок спочатку вилучить найстаріші версії, доки не досягне цього обмеження. Додаткову інформацію можна знайти в документації версій.", - "Could not set version name" : "Не вдалося встановити назву для версії" + "File versions" : "Версії файлу" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/ur_PK.js b/apps/files_versions/l10n/ur_PK.js deleted file mode 100644 index ae55363a2dd..00000000000 --- a/apps/files_versions/l10n/ur_PK.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_versions", - { - "Restore" : "بحال" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/ur_PK.json b/apps/files_versions/l10n/ur_PK.json deleted file mode 100644 index bfbcb42de28..00000000000 --- a/apps/files_versions/l10n/ur_PK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Restore" : "بحال" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/files_versions/l10n/vi.js b/apps/files_versions/l10n/vi.js index 31079ea0043..2b9a02aa4e1 100644 --- a/apps/files_versions/l10n/vi.js +++ b/apps/files_versions/l10n/vi.js @@ -3,24 +3,23 @@ OC.L10N.register( { "Versions" : "Phiên bản", "This application automatically maintains older versions of files that are changed." : "ng dụng này tự động duy trì các phiên bản cũ hơn của tệp đã được thay đổi.", + "Current version" : "Phiên bản hiện tại", + "Initial version" : "Phiên bản đầu tiên", + "You" : "Bạn", "Name this version" : "Đặt tên cho phiên bản này", "Edit version name" : "Chỉnh sửa tên phiên bản", "Compare to current version" : "So sánh với phiên bản hiện tại", "Restore version" : "Khôi phục phiên bản", "Download version" : "Tải xuống phiên bản", "Delete version" : "Xóa phiên bản", - "Current version" : "Phiên bản hiện tại", - "Initial version" : "Phiên bản đầu tiên", - "Version name" : "Tên phiên bản", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Các phiên bản được đặt tên vẫn được duy trì và bị loại khỏi quá trình dọn dẹp tự động khi hạn mức bộ nhớ của bạn đã đầy.", + "Cancel" : "Hủy", "Remove version name" : "Xóa tên phiên bản", "Save version name" : "Lưu tên phiên bản", + "Version name" : "Tên phiên bản", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Các phiên bản được đặt tên vẫn được duy trì và bị loại khỏi quá trình dọn dẹp tự động khi hạn mức bộ nhớ của bạn đã đầy.", "Initial version restored" : "Đã khôi phục phiên bản ban đầu", "Version restored" : "Đã khôi phục phiên bản", "Could not restore version" : "Không thể khôi phục phiên bản", - "Could not delete version" : "Không thể xóa phiên bản", - "${version.label} restored" : "${version.label} đã được khôi phục", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ứng dụng này tự động duy trì các phiên bản cũ hơn của tệp đã được thay đổi. Khi được bật, thư mục phiên bản ẩn sẽ được cung cấp trong thư mục của mọi người dùng và được sử dụng để lưu trữ các phiên bản tệp cũ. Người dùng có thể hoàn nguyên về phiên bản cũ hơn thông qua giao diện web bất kỳ lúc nào và tệp được thay thế sẽ trở thành phiên bản. Ứng dụng tự động quản lý thư mục phiên bản để đảm bảo người dùng không bị hết hạn ngạch do phiên bản.\n\t\tNgoài việc hết hạn của các phiên bản, ứng dụng phiên bản còn đảm bảo không bao giờ sử dụng quá 50% dung lượng trống hiện có của người dùng. Nếu các phiên bản được lưu trữ vượt quá giới hạn này thì ứng dụng sẽ xóa các phiên bản cũ nhất trước tiên cho đến khi đáp ứng giới hạn này. Thông tin thêm có sẵn trong tài liệu Phiên bản.", - "Could not set version name" : "Không thể đặt tên phiên bản" + "Could not delete version" : "Không thể xóa phiên bản" }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/vi.json b/apps/files_versions/l10n/vi.json index a0a1ff64d4e..db50330b5dc 100644 --- a/apps/files_versions/l10n/vi.json +++ b/apps/files_versions/l10n/vi.json @@ -1,24 +1,23 @@ { "translations": { "Versions" : "Phiên bản", "This application automatically maintains older versions of files that are changed." : "ng dụng này tự động duy trì các phiên bản cũ hơn của tệp đã được thay đổi.", + "Current version" : "Phiên bản hiện tại", + "Initial version" : "Phiên bản đầu tiên", + "You" : "Bạn", "Name this version" : "Đặt tên cho phiên bản này", "Edit version name" : "Chỉnh sửa tên phiên bản", "Compare to current version" : "So sánh với phiên bản hiện tại", "Restore version" : "Khôi phục phiên bản", "Download version" : "Tải xuống phiên bản", "Delete version" : "Xóa phiên bản", - "Current version" : "Phiên bản hiện tại", - "Initial version" : "Phiên bản đầu tiên", - "Version name" : "Tên phiên bản", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Các phiên bản được đặt tên vẫn được duy trì và bị loại khỏi quá trình dọn dẹp tự động khi hạn mức bộ nhớ của bạn đã đầy.", + "Cancel" : "Hủy", "Remove version name" : "Xóa tên phiên bản", "Save version name" : "Lưu tên phiên bản", + "Version name" : "Tên phiên bản", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Các phiên bản được đặt tên vẫn được duy trì và bị loại khỏi quá trình dọn dẹp tự động khi hạn mức bộ nhớ của bạn đã đầy.", "Initial version restored" : "Đã khôi phục phiên bản ban đầu", "Version restored" : "Đã khôi phục phiên bản", "Could not restore version" : "Không thể khôi phục phiên bản", - "Could not delete version" : "Không thể xóa phiên bản", - "${version.label} restored" : "${version.label} đã được khôi phục", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Ứng dụng này tự động duy trì các phiên bản cũ hơn của tệp đã được thay đổi. Khi được bật, thư mục phiên bản ẩn sẽ được cung cấp trong thư mục của mọi người dùng và được sử dụng để lưu trữ các phiên bản tệp cũ. Người dùng có thể hoàn nguyên về phiên bản cũ hơn thông qua giao diện web bất kỳ lúc nào và tệp được thay thế sẽ trở thành phiên bản. Ứng dụng tự động quản lý thư mục phiên bản để đảm bảo người dùng không bị hết hạn ngạch do phiên bản.\n\t\tNgoài việc hết hạn của các phiên bản, ứng dụng phiên bản còn đảm bảo không bao giờ sử dụng quá 50% dung lượng trống hiện có của người dùng. Nếu các phiên bản được lưu trữ vượt quá giới hạn này thì ứng dụng sẽ xóa các phiên bản cũ nhất trước tiên cho đến khi đáp ứng giới hạn này. Thông tin thêm có sẵn trong tài liệu Phiên bản.", - "Could not set version name" : "Không thể đặt tên phiên bản" + "Could not delete version" : "Không thể xóa phiên bản" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/zh_CN.js b/apps/files_versions/l10n/zh_CN.js index 1f76cf96699..cdc937e9c11 100644 --- a/apps/files_versions/l10n/zh_CN.js +++ b/apps/files_versions/l10n/zh_CN.js @@ -4,25 +4,26 @@ OC.L10N.register( "Versions" : "版本", "This application automatically maintains older versions of files that are changed." : "此应用程序自动维护已更改文件的旧版本。", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此应用程序将会自动保留已被更改的老版本文件。当此应用被启用时,每个用户的目录中都会呈现一个用于版本存储的隐藏文件夹。用户可以随时通过网页将文件恢复到旧版本,替换的文件将作为最新版本。应用程序将自动管理版本文件夹以确保账户不会因保留历史版本耗尽存储空间。\n\t\t除了版本有效期限以外,应用程序会确保保留历史版本的文件不会占用超过账户目前可用空间50%。如果存储的版本超出此限制,则版本管理会先删除最早的版本直至低于存储限制。更多资讯详见“版本”说明文档。", + "Current version" : "当前版本", + "Initial version" : "初始版本", + "You" : "您", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} 版本的操作", "Name this version" : "命名此版本", "Edit version name" : "编辑版本名", "Compare to current version" : "与当前版本比较", "Restore version" : "恢复版本", "Download version" : "下载版本", "Delete version" : "删除版本", - "Current version" : "当前版本", - "Initial version" : "初始版本", - "Version name" : "版本名", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本会保留,且当你的存储配额已满时,它将被从自动清理中排除。", + "Cancel" : "取消", "Remove version name" : "删除版本名", "Save version name" : "保存版本名", + "Version name" : "版本名", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本会保留,且当你的存储配额已满时,它将被从自动清理中排除。", "Initial version restored" : "已还原最初版本", "Version restored" : "版本已还原", "Could not restore version" : "无法还原版本", "Could not set version label" : "无法设置版本标签", "Could not delete version" : "无法删除版本", - "${version.label} restored" : "已还原版本${version.label} ", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此应用程序自动维护已被更改的旧版本文件。开启时,每个用户的目录中都将呈现一个隐藏的版本文件夹,其用来储存旧版本文件。用户可随时通过Web界面还原到更旧的版本,使其成为新版本。此应用自动管理版本文件夹,以确保用户不因版本而用尽配额。\n\t\t除版本到期以外,版本App确保永不使用超过用户当前可用空间的50%。如果存储的版本超过此限制,此App将首先删除最旧的版本,直到符合限制。更多信息可见 版本 文档。", - "Could not set version name" : "无法设置版本名" + "File versions" : "文件版本" }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/zh_CN.json b/apps/files_versions/l10n/zh_CN.json index ebc368cf185..24943a2fbf1 100644 --- a/apps/files_versions/l10n/zh_CN.json +++ b/apps/files_versions/l10n/zh_CN.json @@ -2,25 +2,26 @@ "Versions" : "版本", "This application automatically maintains older versions of files that are changed." : "此应用程序自动维护已更改文件的旧版本。", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此应用程序将会自动保留已被更改的老版本文件。当此应用被启用时,每个用户的目录中都会呈现一个用于版本存储的隐藏文件夹。用户可以随时通过网页将文件恢复到旧版本,替换的文件将作为最新版本。应用程序将自动管理版本文件夹以确保账户不会因保留历史版本耗尽存储空间。\n\t\t除了版本有效期限以外,应用程序会确保保留历史版本的文件不会占用超过账户目前可用空间50%。如果存储的版本超出此限制,则版本管理会先删除最早的版本直至低于存储限制。更多资讯详见“版本”说明文档。", + "Current version" : "当前版本", + "Initial version" : "初始版本", + "You" : "您", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} 版本的操作", "Name this version" : "命名此版本", "Edit version name" : "编辑版本名", "Compare to current version" : "与当前版本比较", "Restore version" : "恢复版本", "Download version" : "下载版本", "Delete version" : "删除版本", - "Current version" : "当前版本", - "Initial version" : "初始版本", - "Version name" : "版本名", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本会保留,且当你的存储配额已满时,它将被从自动清理中排除。", + "Cancel" : "取消", "Remove version name" : "删除版本名", "Save version name" : "保存版本名", + "Version name" : "版本名", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本会保留,且当你的存储配额已满时,它将被从自动清理中排除。", "Initial version restored" : "已还原最初版本", "Version restored" : "版本已还原", "Could not restore version" : "无法还原版本", "Could not set version label" : "无法设置版本标签", "Could not delete version" : "无法删除版本", - "${version.label} restored" : "已还原版本${version.label} ", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此应用程序自动维护已被更改的旧版本文件。开启时,每个用户的目录中都将呈现一个隐藏的版本文件夹,其用来储存旧版本文件。用户可随时通过Web界面还原到更旧的版本,使其成为新版本。此应用自动管理版本文件夹,以确保用户不因版本而用尽配额。\n\t\t除版本到期以外,版本App确保永不使用超过用户当前可用空间的50%。如果存储的版本超过此限制,此App将首先删除最旧的版本,直到符合限制。更多信息可见 版本 文档。", - "Could not set version name" : "无法设置版本名" + "File versions" : "文件版本" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/zh_HK.js b/apps/files_versions/l10n/zh_HK.js index 0743b5e1e4b..48a566dc6cb 100644 --- a/apps/files_versions/l10n/zh_HK.js +++ b/apps/files_versions/l10n/zh_HK.js @@ -3,26 +3,27 @@ OC.L10N.register( { "Versions" : "版本", "This application automatically maintains older versions of files that are changed." : "本應用程式會自動保存修改前舊版本的檔案", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已更改過的檔案的較舊版本。啟用後,每個用戶目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。用戶可以在任何時候透過網路界面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保帳戶不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保不會使用超過帳戶目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已更改過的檔案的較舊版本。啟用後,每個用戶目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。用戶可以在任何時候透過網路界面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保帳戶不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保不會使用超過帳戶目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」說明書。", + "Current version" : "目前版本", + "Initial version" : "初始版本", + "You" : "您", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} 版本的操作", "Name this version" : "為此版本命名", "Edit version name" : "編輯版本名稱", "Compare to current version" : "與目前版本比較", "Restore version" : "還原版本", "Download version" : "下載版本", "Delete version" : "刪除版本", - "Current version" : "目前版本", - "Initial version" : "初始版本", - "Version name" : "版本名稱", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本會保留,並在儲存配額已滿時從自動清理中排除。", + "Cancel" : "取消", "Remove version name" : "移除版本名稱", "Save version name" : "儲存版本名稱", + "Version name" : "版本名稱", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本會保留,並在儲存配額已滿時從自動清理中排除。", "Initial version restored" : "初始版本已還原", "Version restored" : "版本已還原", "Could not restore version" : "無法還原版本", "Could not set version label" : "無法設置版本標籤", "Could not delete version" : "無法刪除版本", - "${version.label} restored" : "已還原˙ ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已變更過檔案的較舊版本。啟用後,每個用戶目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。用戶可以在任何時候透過網路界面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保用戶不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保用戶永遠不會使用超過用戶目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", - "Could not set version name" : "無法設定版本名稱" + "File versions" : "檔案版本" }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/zh_HK.json b/apps/files_versions/l10n/zh_HK.json index 7e0a4e59f1d..b3ef15aae24 100644 --- a/apps/files_versions/l10n/zh_HK.json +++ b/apps/files_versions/l10n/zh_HK.json @@ -1,26 +1,27 @@ { "translations": { "Versions" : "版本", "This application automatically maintains older versions of files that are changed." : "本應用程式會自動保存修改前舊版本的檔案", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已更改過的檔案的較舊版本。啟用後,每個用戶目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。用戶可以在任何時候透過網路界面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保帳戶不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保不會使用超過帳戶目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已更改過的檔案的較舊版本。啟用後,每個用戶目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。用戶可以在任何時候透過網路界面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保帳戶不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保不會使用超過帳戶目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」說明書。", + "Current version" : "目前版本", + "Initial version" : "初始版本", + "You" : "您", + "Actions for version from {versionHumanExplicitDate}" : "{versionHumanExplicitDate} 版本的操作", "Name this version" : "為此版本命名", "Edit version name" : "編輯版本名稱", "Compare to current version" : "與目前版本比較", "Restore version" : "還原版本", "Download version" : "下載版本", "Delete version" : "刪除版本", - "Current version" : "目前版本", - "Initial version" : "初始版本", - "Version name" : "版本名稱", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本會保留,並在儲存配額已滿時從自動清理中排除。", + "Cancel" : "取消", "Remove version name" : "移除版本名稱", "Save version name" : "儲存版本名稱", + "Version name" : "版本名稱", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本會保留,並在儲存配額已滿時從自動清理中排除。", "Initial version restored" : "初始版本已還原", "Version restored" : "版本已還原", "Could not restore version" : "無法還原版本", "Could not set version label" : "無法設置版本標籤", "Could not delete version" : "無法刪除版本", - "${version.label} restored" : "已還原˙ ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已變更過檔案的較舊版本。啟用後,每個用戶目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。用戶可以在任何時候透過網路界面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保用戶不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保用戶永遠不會使用超過用戶目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", - "Could not set version name" : "無法設定版本名稱" + "File versions" : "檔案版本" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/zh_TW.js b/apps/files_versions/l10n/zh_TW.js index 061d6143614..8cb5f7c5c32 100644 --- a/apps/files_versions/l10n/zh_TW.js +++ b/apps/files_versions/l10n/zh_TW.js @@ -2,27 +2,28 @@ OC.L10N.register( "files_versions", { "Versions" : "版本", - "This application automatically maintains older versions of files that are changed." : "本應用程式會自動維護修改前舊版本的檔案", + "This application automatically maintains older versions of files that are changed." : "本應用程式會自動維護檔案較舊的修改版本。", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已變更過檔案的較舊版本。啟用後,每個使用者目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。使用者可以在任何時候透過網路介面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保使用者不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保使用者永遠不會使用超過使用者目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", + "Current version" : "目前版本", + "Initial version" : "初始版本", + "You" : "您", + "Actions for version from {versionHumanExplicitDate}" : "來自 {versionHumanExplicitDate} 版本的動作", "Name this version" : "為此版本命名", "Edit version name" : "編輯版本名稱", "Compare to current version" : "與目前版本比較", "Restore version" : "還原版本", "Download version" : "下載版本", "Delete version" : "刪除版本", - "Current version" : "目前版本", - "Initial version" : "初始版本", - "Version name" : "版本名稱", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本會保留,並在儲存配額已滿時從自動清理中排除。", + "Cancel" : "取消", "Remove version name" : "移除版本名稱", "Save version name" : "儲存版本名稱", + "Version name" : "版本名稱", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名的版本會持續保留,並且在儲存容量限制已滿時,排除在自動清理外。", "Initial version restored" : "已還原初始版本", "Version restored" : "版本已還原", "Could not restore version" : "無法還原版本", "Could not set version label" : "無法設定版本標籤", "Could not delete version" : "無法刪除版本", - "${version.label} restored" : "已還原˙ ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已變更過檔案的較舊版本。啟用後,每個使用者目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。使用者可以在任何時候透過網路介面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保使用者不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保使用者永遠不會使用超過使用者目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", - "Could not set version name" : "無法設定版本名稱" + "File versions" : "檔案版本" }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/zh_TW.json b/apps/files_versions/l10n/zh_TW.json index faa57f98902..f56231dcda0 100644 --- a/apps/files_versions/l10n/zh_TW.json +++ b/apps/files_versions/l10n/zh_TW.json @@ -1,26 +1,27 @@ { "translations": { "Versions" : "版本", - "This application automatically maintains older versions of files that are changed." : "本應用程式會自動維護修改前舊版本的檔案", + "This application automatically maintains older versions of files that are changed." : "本應用程式會自動維護檔案較舊的修改版本。", "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已變更過檔案的較舊版本。啟用後,每個使用者目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。使用者可以在任何時候透過網路介面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保使用者不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保使用者永遠不會使用超過使用者目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", + "Current version" : "目前版本", + "Initial version" : "初始版本", + "You" : "您", + "Actions for version from {versionHumanExplicitDate}" : "來自 {versionHumanExplicitDate} 版本的動作", "Name this version" : "為此版本命名", "Edit version name" : "編輯版本名稱", "Compare to current version" : "與目前版本比較", "Restore version" : "還原版本", "Download version" : "下載版本", "Delete version" : "刪除版本", - "Current version" : "目前版本", - "Initial version" : "初始版本", - "Version name" : "版本名稱", - "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名版本會保留,並在儲存配額已滿時從自動清理中排除。", + "Cancel" : "取消", "Remove version name" : "移除版本名稱", "Save version name" : "儲存版本名稱", + "Version name" : "版本名稱", + "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "命名的版本會持續保留,並且在儲存容量限制已滿時,排除在自動清理外。", "Initial version restored" : "已還原初始版本", "Version restored" : "版本已還原", "Could not restore version" : "無法還原版本", "Could not set version label" : "無法設定版本標籤", "Could not delete version" : "無法刪除版本", - "${version.label} restored" : "已還原˙ ${version.label}", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "此應用程式會自動維護已變更過檔案的較舊版本。啟用後,每個使用者目錄中都會有一個隱藏的版本資料夾,此資料夾用於儲存較舊版本的檔案。使用者可以在任何時候透過網路介面還原到較舊的版本,取代目前版本成為新的版本。應用程式會自動管理版本資料夾以確保使用者不會因為版本而用完配額。\n\t\t除了版本有效期限以外,版本應用程式還會確保使用者永遠不會使用超過使用者目前可用空間的 50%。如果儲存的版本超出此限制,則應用程式會先刪除最舊的版本,直到低於此限制。更多資訊請見「版本」文件。", - "Could not set version name" : "無法設定版本名稱" + "File versions" : "檔案版本" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/lib/AppInfo/Application.php b/apps/files_versions/lib/AppInfo/Application.php index a31e9823efd..29158276415 100644 --- a/apps/files_versions/lib/AppInfo/Application.php +++ b/apps/files_versions/lib/AppInfo/Application.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -12,7 +13,9 @@ use OCA\DAV\Connector\Sabre\Principal; use OCA\Files\Event\LoadAdditionalScriptsEvent; use OCA\Files\Event\LoadSidebar; use OCA\Files_Versions\Capabilities; +use OCA\Files_Versions\Events\VersionRestoredEvent; use OCA\Files_Versions\Listener\FileEventsListener; +use OCA\Files_Versions\Listener\LegacyRollbackListener; use OCA\Files_Versions\Listener\LoadAdditionalListener; use OCA\Files_Versions\Listener\LoadSidebarListener; use OCA\Files_Versions\Listener\VersionAuthorListener; @@ -42,6 +45,7 @@ use OCP\IServerContainer; use OCP\IUserManager; use OCP\IUserSession; use OCP\L10N\IFactory; +use OCP\Server; use OCP\Share\IManager as IShareManager; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; @@ -68,7 +72,7 @@ class Application extends App implements IBootstrap { return new Principal( $server->get(IUserManager::class), $server->get(IGroupManager::class), - \OC::$server->get(IAccountManager::class), + Server::get(IAccountManager::class), $server->get(IShareManager::class), $server->get(IUserSession::class), $server->get(IAppManager::class), @@ -79,9 +83,7 @@ class Application extends App implements IBootstrap { ); }); - $context->registerService(IVersionManager::class, function () { - return new VersionManager(); - }); + $context->registerServiceAlias(IVersionManager::class, VersionManager::class); /** * Register Events @@ -106,7 +108,10 @@ class Application extends App implements IBootstrap { $context->registerEventListener(BeforeNodeRenamedEvent::class, FileEventsListener::class); $context->registerEventListener(BeforeNodeCopiedEvent::class, FileEventsListener::class); - $context->registerEventListener(NodeWrittenEvent::class, VersionAuthorListener::class); + // we add the version author listener with lower priority to make sure new versions already are created by FileEventsListener + $context->registerEventListener(NodeWrittenEvent::class, VersionAuthorListener::class, -1); + + $context->registerEventListener(VersionRestoredEvent::class, LegacyRollbackListener::class); } public function boot(IBootContext $context): void { @@ -114,7 +119,7 @@ class Application extends App implements IBootstrap { } public function registerVersionBackends(ContainerInterface $container, IAppManager $appManager, LoggerInterface $logger): void { - foreach ($appManager->getInstalledApps() as $app) { + foreach ($appManager->getEnabledApps() as $app) { $appInfo = $appManager->getAppInfo($app); if (isset($appInfo['versions'])) { $backends = $appInfo['versions']; diff --git a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php index 7e5ea74d9f9..794cbc5b882 100644 --- a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php +++ b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -6,6 +7,7 @@ */ namespace OCA\Files_Versions\BackgroundJob; +use OC\Files\View; use OCA\Files_Versions\Expiration; use OCA\Files_Versions\Storage; use OCP\AppFramework\Utility\ITimeFactory; @@ -17,18 +19,15 @@ use OCP\IUserManager; class ExpireVersions extends TimedJob { public const ITEMS_PER_SESSION = 1000; - private IConfig $config; - private Expiration $expiration; - private IUserManager $userManager; - - public function __construct(IConfig $config, IUserManager $userManager, Expiration $expiration, ITimeFactory $time) { + public function __construct( + private IConfig $config, + private IUserManager $userManager, + private Expiration $expiration, + ITimeFactory $time, + ) { parent::__construct($time); // Run once per 30 minutes $this->setInterval(60 * 30); - - $this->config = $config; - $this->expiration = $expiration; - $this->userManager = $userManager; } public function run($argument) { @@ -42,7 +41,7 @@ class ExpireVersions extends TimedJob { return; } - $this->userManager->callForSeenUsers(function (IUser $user) { + $this->userManager->callForSeenUsers(function (IUser $user): void { $uid = $user->getUID(); if (!$this->setupFS($uid)) { return; @@ -59,7 +58,7 @@ class ExpireVersions extends TimedJob { \OC_Util::setupFS($user); // Check if this user has a versions directory - $view = new \OC\Files\View('/' . $user); + $view = new View('/' . $user); if (!$view->is_dir('/files_versions')) { return false; } diff --git a/apps/files_versions/lib/Capabilities.php b/apps/files_versions/lib/Capabilities.php index ce7239a4bf5..cb6394f0a36 100644 --- a/apps/files_versions/lib/Capabilities.php +++ b/apps/files_versions/lib/Capabilities.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -11,15 +12,10 @@ use OCP\Capabilities\ICapability; use OCP\IConfig; class Capabilities implements ICapability { - private IConfig $config; - private IAppManager $appManager; - public function __construct( - IConfig $config, - IAppManager $appManager + private IConfig $config, + private IAppManager $appManager, ) { - $this->config = $config; - $this->appManager = $appManager; } /** diff --git a/apps/files_versions/lib/Command/CleanUp.php b/apps/files_versions/lib/Command/CleanUp.php index bf6dc6a7687..e8c46afef16 100644 --- a/apps/files_versions/lib/Command/CleanUp.php +++ b/apps/files_versions/lib/Command/CleanUp.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -49,7 +50,7 @@ class CleanUp extends Command { $path = $input->getOption('path'); if ($path) { if (!preg_match('#^/([^/]+)/files(/.*)?$#', $path, $pathMatches)) { - $output->writeln("<error>Invalid path given</error>"); + $output->writeln('<error>Invalid path given</error>'); return self::FAILURE; } diff --git a/apps/files_versions/lib/Command/Expire.php b/apps/files_versions/lib/Command/Expire.php index 6ec7a4fd32a..a30e623c347 100644 --- a/apps/files_versions/lib/Command/Expire.php +++ b/apps/files_versions/lib/Command/Expire.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -11,6 +12,7 @@ use OCA\Files_Versions\Storage; use OCP\Command\ICommand; use OCP\Files\StorageNotAvailableException; use OCP\IUserManager; +use OCP\Server; use Psr\Log\LoggerInterface; class Expire implements ICommand { @@ -24,7 +26,7 @@ class Expire implements ICommand { public function handle(): void { /** @var IUserManager $userManager */ - $userManager = \OC::$server->get(IUserManager::class); + $userManager = Server::get(IUserManager::class); if (!$userManager->userExists($this->user)) { // User has been deleted already return; @@ -36,7 +38,7 @@ class Expire implements ICommand { // In case of external storage and session credentials, the expiration // fails because the command does not have those credentials - $logger = \OC::$server->get(LoggerInterface::class); + $logger = Server::get(LoggerInterface::class); $logger->warning($e->getMessage(), [ 'exception' => $e, 'uid' => $this->user, diff --git a/apps/files_versions/lib/Command/ExpireVersions.php b/apps/files_versions/lib/Command/ExpireVersions.php index 9492d0fbe7d..d3f341a21d2 100644 --- a/apps/files_versions/lib/Command/ExpireVersions.php +++ b/apps/files_versions/lib/Command/ExpireVersions.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud GmbH. @@ -6,6 +7,7 @@ */ namespace OCA\Files_Versions\Command; +use OC\Files\View; use OCA\Files_Versions\Expiration; use OCA\Files_Versions\Storage; use OCP\IUser; @@ -38,7 +40,7 @@ class ExpireVersions extends Command { protected function execute(InputInterface $input, OutputInterface $output): int { $maxAge = $this->expiration->getMaxAgeAsTimestamp(); if (!$maxAge) { - $output->writeln("Auto expiration is configured - expiration will be handled automatically according to the expiration patterns detailed at the following link https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html."); + $output->writeln('Auto expiration is configured - expiration will be handled automatically according to the expiration patterns detailed at the following link https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html.'); return self::FAILURE; } @@ -59,7 +61,7 @@ class ExpireVersions extends Command { $p = new ProgressBar($output); $p->start(); - $this->userManager->callForSeenUsers(function (IUser $user) use ($p) { + $this->userManager->callForSeenUsers(function (IUser $user) use ($p): void { $p->advance(); $this->expireVersionsForUser($user); }); @@ -84,7 +86,7 @@ class ExpireVersions extends Command { \OC_Util::setupFS($user); // Check if this user has a version directory - $view = new \OC\Files\View('/' . $user); + $view = new View('/' . $user); if (!$view->is_dir('/files_versions')) { return false; } diff --git a/apps/files_versions/lib/Controller/PreviewController.php b/apps/files_versions/lib/Controller/PreviewController.php index 49772161e98..2c3ff8da70d 100644 --- a/apps/files_versions/lib/Controller/PreviewController.php +++ b/apps/files_versions/lib/Controller/PreviewController.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -8,78 +9,81 @@ namespace OCA\Files_Versions\Controller; use OCA\Files_Versions\Versions\IVersionManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; +use OCP\AppFramework\Http\Attribute\NoAdminRequired; +use OCP\AppFramework\Http\Attribute\NoCSRFRequired; +use OCP\AppFramework\Http\Attribute\OpenAPI; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\FileDisplayResponse; +use OCP\AppFramework\Http\RedirectResponse; use OCP\Files\IRootFolder; use OCP\Files\NotFoundException; use OCP\IPreview; use OCP\IRequest; use OCP\IUserSession; +use OCP\Preview\IMimeIconProvider; +#[OpenAPI(scope: OpenAPI::SCOPE_DEFAULT)] class PreviewController extends Controller { - /** @var IRootFolder */ - private $rootFolder; - - /** @var IUserSession */ - private $userSession; - - /** @var IVersionManager */ - private $versionManager; - - /** @var IPreview */ - private $previewManager; - public function __construct( string $appName, IRequest $request, - IRootFolder $rootFolder, - IUserSession $userSession, - IVersionManager $versionManager, - IPreview $previewManager + private IRootFolder $rootFolder, + private IUserSession $userSession, + private IVersionManager $versionManager, + private IPreview $previewManager, + private IMimeIconProvider $mimeIconProvider, ) { parent::__construct($appName, $request); - - $this->rootFolder = $rootFolder; - $this->userSession = $userSession; - $this->versionManager = $versionManager; - $this->previewManager = $previewManager; } /** - * @NoAdminRequired - * @NoCSRFRequired - * * Get the preview for a file version * * @param string $file Path of the file * @param int $x Width of the preview * @param int $y Height of the preview * @param string $version Version of the file to get the preview for - * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_NOT_FOUND, array<empty>, array{}> + * @param bool $mimeFallback Whether to fallback to the mime icon if no preview is available + * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_NOT_FOUND, list<empty>, array{}>|RedirectResponse<Http::STATUS_SEE_OTHER, array{}> * * 200: Preview returned + * 303: Redirect to the mime icon url if mimeFallback is true * 400: Getting preview is not possible * 404: Preview not found */ + #[NoAdminRequired] + #[NoCSRFRequired] public function getPreview( string $file = '', int $x = 44, int $y = 44, - string $version = '' + string $version = '', + bool $mimeFallback = false, ) { if ($file === '' || $version === '' || $x === 0 || $y === 0) { return new DataResponse([], Http::STATUS_BAD_REQUEST); } + $versionFile = null; try { $user = $this->userSession->getUser(); $userFolder = $this->rootFolder->getUserFolder($user->getUID()); $file = $userFolder->get($file); $versionFile = $this->versionManager->getVersionFile($user, $file, $version); $preview = $this->previewManager->getPreview($versionFile, $x, $y, true, IPreview::MODE_FILL, $versionFile->getMimetype()); - return new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]); + $response = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]); + $response->cacheFor(3600 * 24, false, true); + return $response; } catch (NotFoundException $e) { + // If we have no preview enabled, we can redirect to the mime icon if any + if ($mimeFallback && $versionFile !== null) { + $url = $this->mimeIconProvider->getMimeIconUrl($versionFile->getMimeType()); + if ($url !== null) { + return new RedirectResponse($url); + } + } + return new DataResponse([], Http::STATUS_NOT_FOUND); } catch (\InvalidArgumentException $e) { return new DataResponse([], Http::STATUS_BAD_REQUEST); diff --git a/apps/files_versions/lib/Db/VersionsMapper.php b/apps/files_versions/lib/Db/VersionsMapper.php index 289e5ce7b7e..318dd8f0d82 100644 --- a/apps/files_versions/lib/Db/VersionsMapper.php +++ b/apps/files_versions/lib/Db/VersionsMapper.php @@ -28,8 +28,8 @@ class VersionsMapper extends QBMapper { $qb = $this->db->getQueryBuilder(); $qb->select('*') - ->from($this->getTableName()) - ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))); + ->from($this->getTableName()) + ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))); return $this->findEntities($qb); } @@ -41,10 +41,10 @@ class VersionsMapper extends QBMapper { $qb = $this->db->getQueryBuilder(); $qb->select('*') - ->from($this->getTableName()) - ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) - ->orderBy('timestamp', 'DESC') - ->setMaxResults(1); + ->from($this->getTableName()) + ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) + ->orderBy('timestamp', 'DESC') + ->setMaxResults(1); return $this->findEntity($qb); } @@ -53,9 +53,9 @@ class VersionsMapper extends QBMapper { $qb = $this->db->getQueryBuilder(); $qb->select('*') - ->from($this->getTableName()) - ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) - ->andWhere($qb->expr()->eq('timestamp', $qb->createNamedParameter($timestamp))); + ->from($this->getTableName()) + ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) + ->andWhere($qb->expr()->eq('timestamp', $qb->createNamedParameter($timestamp))); return $this->findEntity($qb); } @@ -64,8 +64,8 @@ class VersionsMapper extends QBMapper { $qb = $this->db->getQueryBuilder(); return $qb->delete($this->getTableName()) - ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) - ->executeStatement(); + ->where($qb->expr()->eq('file_id', $qb->createNamedParameter($fileId))) + ->executeStatement(); } public function deleteAllVersionsForUser(int $storageId, ?string $path = null): void { diff --git a/apps/files_versions/lib/Events/CreateVersionEvent.php b/apps/files_versions/lib/Events/CreateVersionEvent.php index ea372ba8a05..92ed26b2dd6 100644 --- a/apps/files_versions/lib/Events/CreateVersionEvent.php +++ b/apps/files_versions/lib/Events/CreateVersionEvent.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -21,17 +22,15 @@ class CreateVersionEvent extends Event { /** @var bool */ private $createVersion; - /** @var Node */ - private $node; - /** * CreateVersionEvent constructor. * * @param Node $node */ - public function __construct(Node $node) { + public function __construct( + private Node $node, + ) { $this->createVersion = true; - $this->node = $node; } /** diff --git a/apps/files_versions/lib/Events/VersionCreatedEvent.php b/apps/files_versions/lib/Events/VersionCreatedEvent.php new file mode 100644 index 00000000000..4dc7a7cb505 --- /dev/null +++ b/apps/files_versions/lib/Events/VersionCreatedEvent.php @@ -0,0 +1,39 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Files_Versions\Events; + +use OCA\Files_Versions\Versions\IVersion; +use OCP\EventDispatcher\Event; +use OCP\Files\Node; + +/** + * Event dispatched after a successful creation of a version + */ +class VersionCreatedEvent extends Event { + public function __construct( + private Node $node, + private IVersion $version, + ) { + parent::__construct(); + } + + /** + * Node of the file that has been versioned + */ + public function getNode(): Node { + return $this->node; + } + + /** + * Version of the file that was created + */ + public function getVersion(): IVersion { + return $this->version; + } +} diff --git a/apps/files_versions/lib/Events/VersionRestoredEvent.php b/apps/files_versions/lib/Events/VersionRestoredEvent.php new file mode 100644 index 00000000000..12e91bd258d --- /dev/null +++ b/apps/files_versions/lib/Events/VersionRestoredEvent.php @@ -0,0 +1,33 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Files_Versions\Events; + +use OCA\Files_Versions\Versions\IVersion; +use OCP\EventDispatcher\Event; + +/** + * Class VersionRestoredEvent + * + * Event that is called after a successful restore of a previous version + * + * @package OCA\Files_Versions + */ +class VersionRestoredEvent extends Event { + public function __construct( + private IVersion $version, + ) { + } + + /** + * Version that was restored + */ + public function getVersion(): IVersion { + return $this->version; + } +} diff --git a/apps/files_versions/lib/Expiration.php b/apps/files_versions/lib/Expiration.php index 26088aa9838..1e04d93379f 100644 --- a/apps/files_versions/lib/Expiration.php +++ b/apps/files_versions/lib/Expiration.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -15,9 +16,6 @@ class Expiration { // how long do we keep files a version if no other value is defined in the config file (unit: days) public const NO_OBLIGATION = -1; - /** @var ITimeFactory */ - private $timeFactory; - /** @var string */ private $retentionObligation; @@ -30,12 +28,11 @@ class Expiration { /** @var bool */ private $canPurgeToSaveSpace; - /** @var LoggerInterface */ - private $logger; - - public function __construct(IConfig $config, ITimeFactory $timeFactory, LoggerInterface $logger) { - $this->timeFactory = $timeFactory; - $this->logger = $logger; + public function __construct( + IConfig $config, + private ITimeFactory $timeFactory, + private LoggerInterface $logger, + ) { $this->retentionObligation = $config->getSystemValue('versions_retention_obligation', 'auto'); if ($this->retentionObligation !== 'disabled') { @@ -103,6 +100,20 @@ class Expiration { } /** + * Get minimal retention obligation as a timestamp + * + * @return int|false + */ + public function getMinAgeAsTimestamp() { + $minAge = false; + if ($this->isEnabled() && $this->minAge !== self::NO_OBLIGATION) { + $time = $this->timeFactory->getTime(); + $minAge = $time - ($this->minAge * 86400); + } + return $minAge; + } + + /** * Get maximal retention obligation as a timestamp * * @return int|false diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php index c078f4bc347..969ca4ded45 100644 --- a/apps/files_versions/lib/Listener/FileEventsListener.php +++ b/apps/files_versions/lib/Listener/FileEventsListener.php @@ -12,6 +12,7 @@ use OC\DB\Exceptions\DbalException; use OC\Files\Filesystem; use OC\Files\Mount\MoveableMount; use OC\Files\Node\NonExistingFile; +use OC\Files\Node\NonExistingFolder; use OC\Files\View; use OCA\Files_Versions\Storage; use OCA\Files_Versions\Versions\INeedSyncVersionBackend; @@ -36,6 +37,7 @@ use OCP\Files\Folder; use OCP\Files\IMimeTypeLoader; use OCP\Files\IRootFolder; use OCP\Files\Node; +use OCP\Files\NotFoundException; use OCP\IUserSession; use Psr\Log\LoggerInterface; @@ -124,6 +126,22 @@ class FileEventsListener implements IEventListener { } public function touch_hook(Node $node): void { + // Do not handle folders. + if ($node instanceof Folder) { + return; + } + + if ($node instanceof NonExistingFile) { + $this->logger->error( + 'Failed to create or update version for {path}, node does not exist', + [ + 'path' => $node->getPath(), + ] + ); + + return; + } + $previousNode = $this->nodesTouched[$node->getId()] ?? null; if ($previousNode === null) { @@ -134,8 +152,10 @@ class FileEventsListener implements IEventListener { try { if ($node instanceof File && $this->versionManager instanceof INeedSyncVersionBackend) { + $revision = $this->versionManager->getRevision($previousNode); + // We update the timestamp of the version entity associated with the previousNode. - $this->versionManager->updateVersionEntity($node, $previousNode->getMTime(), ['timestamp' => $node->getMTime()]); + $this->versionManager->updateVersionEntity($node, $revision, ['timestamp' => $node->getMTime()]); } } catch (DbalException $ex) { // Ignore UniqueConstraintViolationException, as we are probably in the middle of a rollback @@ -151,7 +171,22 @@ class FileEventsListener implements IEventListener { public function created(Node $node): void { // Do not handle folders. - if ($node instanceof File && $this->versionManager instanceof INeedSyncVersionBackend) { + if (!($node instanceof File)) { + return; + } + + if ($node instanceof NonExistingFile) { + $this->logger->error( + 'Failed to create version for {path}, node does not exist', + [ + 'path' => $node->getPath(), + ] + ); + + return; + } + + if ($this->versionManager instanceof INeedSyncVersionBackend) { $this->versionManager->createVersionEntity($node); } } @@ -189,6 +224,17 @@ class FileEventsListener implements IEventListener { return; } + if ($node instanceof NonExistingFile) { + $this->logger->error( + 'Failed to create or update version for {path}, node does not exist', + [ + 'path' => $node->getPath(), + ] + ); + + return; + } + $writeHookInfo = $this->writeHookInfo[$node->getId()] ?? null; if ($writeHookInfo === null) { @@ -196,8 +242,8 @@ class FileEventsListener implements IEventListener { } if ( - $writeHookInfo['versionCreated'] && - $node->getMTime() !== $writeHookInfo['previousNode']->getMTime() + $writeHookInfo['versionCreated'] + && $node->getMTime() !== $writeHookInfo['previousNode']->getMTime() ) { // If a new version was created, insert a version in the DB for the current content. // If both versions have the same mtime, it means the latest version file simply got overrode, @@ -208,9 +254,11 @@ class FileEventsListener implements IEventListener { // If no new version was stored in the FS, no new version should be added in the DB. // So we simply update the associated version. if ($node instanceof File && $this->versionManager instanceof INeedSyncVersionBackend) { + $revision = $this->versionManager->getRevision($writeHookInfo['previousNode']); + $this->versionManager->updateVersionEntity( $node, - $writeHookInfo['previousNode']->getMtime(), + $revision, [ 'timestamp' => $node->getMTime(), 'size' => $node->getSize(), @@ -218,6 +266,15 @@ class FileEventsListener implements IEventListener { ], ); } + } catch (DoesNotExistException $e) { + // This happens if the versions app was not enabled while the file was created or updated the last time. + // meaning there is no such revision and we need to create this file. + if ($writeHookInfo['versionCreated']) { + $this->created($node); + } else { + // Normally this should not happen so we re-throw the exception to not hide any potential issues. + throw $e; + } } catch (Exception $e) { $this->logger->error('Failed to update existing version for ' . $node->getPath(), [ 'exception' => $e, @@ -241,7 +298,7 @@ class FileEventsListener implements IEventListener { /** * Erase versions of deleted file * - * This function is connected to the delete signal of OC_Filesystem + * This function is connected to the NodeDeletedEvent event * cleanup the versions directory if the actual file gets deleted */ public function remove_hook(Node $node): void { @@ -273,7 +330,7 @@ class FileEventsListener implements IEventListener { /** * rename/move versions of renamed/moved files * - * This function is connected to the rename signal of OC_Filesystem and adjust the name and location + * This function is connected to the NodeRenamedEvent event and adjust the name and location * of the stored versions along the actual file */ public function rename_hook(Node $source, Node $target): void { @@ -292,7 +349,7 @@ class FileEventsListener implements IEventListener { /** * copy versions of copied files * - * This function is connected to the copy signal of OC_Filesystem and copies the + * This function is connected to the NodeCopiedEvent event and copies the * the stored versions to the new location */ public function copy_hook(Node $source, Node $target): void { @@ -323,11 +380,19 @@ class FileEventsListener implements IEventListener { return; } - // if we rename a movable mount point, then the versions don't have - // to be renamed + // if we rename a movable mount point, then the versions don't have to be renamed $oldPath = $this->getPathForNode($source); $newPath = $this->getPathForNode($target); - $absOldPath = Filesystem::normalizePath('/' . \OC_User::getUser() . '/files' . $oldPath); + if ($oldPath === null || $newPath === null) { + return; + } + + $user = $this->userSession->getUser()?->getUID(); + if ($user === null) { + return; + } + + $absOldPath = Filesystem::normalizePath('/' . $user . '/files' . $oldPath); $manager = Filesystem::getMountManager(); $mount = $manager->find($absOldPath); $internalPath = $mount->getInternalPath($absOldPath); @@ -335,7 +400,7 @@ class FileEventsListener implements IEventListener { return; } - $view = new View(\OC_User::getUser() . '/files'); + $view = new View($user . '/files'); if ($view->file_exists($newPath)) { Storage::store($newPath); } else { @@ -359,7 +424,11 @@ class FileEventsListener implements IEventListener { } } - $owner = $node->getOwner()?->getUid(); + try { + $owner = $node->getOwner()?->getUid(); + } catch (NotFoundException) { + $owner = null; + } // If no owner, extract it from the path. // e.g. /user/files/foobar.txt @@ -380,6 +449,24 @@ class FileEventsListener implements IEventListener { } } + if (!($node instanceof NonExistingFile) && !($node instanceof NonExistingFolder)) { + $this->logger->debug('Failed to compute path for node', [ + 'node' => [ + 'path' => $node->getPath(), + 'owner' => $owner, + 'fileid' => $node->getId(), + 'size' => $node->getSize(), + 'mtime' => $node->getMTime(), + ] + ]); + } else { + $this->logger->debug('Failed to compute path for node', [ + 'node' => [ + 'path' => $node->getPath(), + 'owner' => $owner, + ] + ]); + } return null; } } diff --git a/apps/files_versions/lib/Listener/LegacyRollbackListener.php b/apps/files_versions/lib/Listener/LegacyRollbackListener.php new file mode 100644 index 00000000000..072c1511caa --- /dev/null +++ b/apps/files_versions/lib/Listener/LegacyRollbackListener.php @@ -0,0 +1,35 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Files_Versions\Listener; + +use OCA\Files_Versions\Events\VersionRestoredEvent; +use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IEventListener; + +/** + * This listener is designed to be compatible with third-party code + * that can still use a hook. This listener will be removed in + * the next version and the rollback hook will stop working. + * + * @deprecated 32.0.0 + * @template-implements IEventListener<VersionRestoredEvent> + */ +class LegacyRollbackListener implements IEventListener { + public function handle(Event $event): void { + if (!($event instanceof VersionRestoredEvent)) { + return; + } + $version = $event->getVersion(); + \OC_Hook::emit('\OCP\Versions', 'rollback', [ + 'path' => $version->getVersionPath(), + 'revision' => $version->getRevisionId(), + 'node' => $version->getSourceFile(), + ]); + } +} diff --git a/apps/files_versions/lib/Listener/VersionAuthorListener.php b/apps/files_versions/lib/Listener/VersionAuthorListener.php index 6f4e6c0ee57..9b93b1f888b 100644 --- a/apps/files_versions/lib/Listener/VersionAuthorListener.php +++ b/apps/files_versions/lib/Listener/VersionAuthorListener.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace OCA\Files_Versions\Listener; use OC\Files\Node\Folder; +use OCA\Files_Versions\Sabre\Plugin; use OCA\Files_Versions\Versions\IMetadataVersionBackend; use OCA\Files_Versions\Versions\IVersionManager; use OCP\EventDispatcher\Event; @@ -47,8 +48,9 @@ class VersionAuthorListener implements IEventListener { } // check if our version manager supports setting the metadata if ($this->versionManager instanceof IMetadataVersionBackend) { + $revision = $this->versionManager->getRevision($node); $author = $user->getUID(); - $this->versionManager->setMetadataValue($node, $node->getMTime(), 'author', $author); + $this->versionManager->setMetadataValue($node, $revision, Plugin::AUTHOR, $author); } } } diff --git a/apps/files_versions/lib/Listener/VersionStorageMoveListener.php b/apps/files_versions/lib/Listener/VersionStorageMoveListener.php index b4b00108e43..d0a0bcf4a92 100644 --- a/apps/files_versions/lib/Listener/VersionStorageMoveListener.php +++ b/apps/files_versions/lib/Listener/VersionStorageMoveListener.php @@ -11,6 +11,7 @@ namespace OCA\Files_Versions\Listener; use Exception; use OC\Files\Node\NonExistingFile; +use OC\Files\Node\NonExistingFolder; use OCA\Files_Versions\Versions\IVersionBackend; use OCA\Files_Versions\Versions\IVersionManager; use OCA\Files_Versions\Versions\IVersionsImporterBackend; @@ -64,7 +65,7 @@ class VersionStorageMoveListener implements IEventListener { $user = $this->userSession->getUser() ?? $source->getOwner(); if ($user === null) { - throw new Exception("Cannot move versions across storages without a user."); + throw new Exception('Cannot move versions across storages without a user.'); } if ($event instanceof BeforeNodeRenamedEvent) { @@ -130,7 +131,7 @@ class VersionStorageMoveListener implements IEventListener { } private function getNodeStorage(Node $node): IStorage { - if ($node instanceof NonExistingFile) { + if ($node instanceof NonExistingFile || $node instanceof NonExistingFolder) { return $node->getParent()->getStorage(); } else { return $node->getStorage(); diff --git a/apps/files_versions/lib/Migration/Version1020Date20221114144058.php b/apps/files_versions/lib/Migration/Version1020Date20221114144058.php index 71bfeab0a02..77c8c2201f3 100644 --- a/apps/files_versions/lib/Migration/Version1020Date20221114144058.php +++ b/apps/files_versions/lib/Migration/Version1020Date20221114144058.php @@ -29,11 +29,11 @@ class Version1020Date20221114144058 extends SimpleMigrationStep { /** @var ISchemaWrapper $schema */ $schema = $schemaClosure(); - if ($schema->hasTable("files_versions")) { + if ($schema->hasTable('files_versions')) { return null; } - $table = $schema->createTable("files_versions"); + $table = $schema->createTable('files_versions'); $table->addColumn('id', Types::BIGINT, [ 'autoincrement' => true, 'notnull' => true, diff --git a/apps/files_versions/lib/Sabre/Plugin.php b/apps/files_versions/lib/Sabre/Plugin.php index c2ffcdebe47..984c4a36e5b 100644 --- a/apps/files_versions/lib/Sabre/Plugin.php +++ b/apps/files_versions/lib/Sabre/Plugin.php @@ -24,6 +24,10 @@ use Sabre\HTTP\ResponseInterface; class Plugin extends ServerPlugin { private Server $server; + public const LABEL = 'label'; + + public const AUTHOR = 'author'; + public const VERSION_LABEL = '{http://nextcloud.org/ns}version-label'; public const VERSION_AUTHOR = '{http://nextcloud.org/ns}version-author'; // dav property for author @@ -76,9 +80,12 @@ class Plugin extends ServerPlugin { public function propFind(PropFind $propFind, INode $node): void { if ($node instanceof VersionFile) { - $propFind->handle(self::VERSION_LABEL, fn () => $node->getMetadataValue('label')); - $propFind->handle(self::VERSION_AUTHOR, fn () => $node->getMetadataValue("author")); - $propFind->handle(FilesPlugin::HAS_PREVIEW_PROPERTYNAME, fn () => $this->previewManager->isMimeSupported($node->getContentType())); + $propFind->handle(self::VERSION_LABEL, fn () => $node->getMetadataValue(self::LABEL)); + $propFind->handle(self::VERSION_AUTHOR, fn () => $node->getMetadataValue(self::AUTHOR)); + $propFind->handle( + FilesPlugin::HAS_PREVIEW_PROPERTYNAME, + fn (): string => $this->previewManager->isMimeSupported($node->getContentType()) ? 'true' : 'false', + ); } } @@ -86,7 +93,7 @@ class Plugin extends ServerPlugin { $node = $this->server->tree->getNodeForPath($path); if ($node instanceof VersionFile) { - $propPatch->handle(self::VERSION_LABEL, fn (string $label) => $node->setMetadataValue('label', $label)); + $propPatch->handle(self::VERSION_LABEL, fn (string $label) => $node->setMetadataValue(self::LABEL, $label)); } } } diff --git a/apps/files_versions/lib/Sabre/RootCollection.php b/apps/files_versions/lib/Sabre/RootCollection.php index 8ed397069f7..1e7129f23da 100644 --- a/apps/files_versions/lib/Sabre/RootCollection.php +++ b/apps/files_versions/lib/Sabre/RootCollection.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -16,33 +17,16 @@ use Sabre\DAVACL\PrincipalBackend; class RootCollection extends AbstractPrincipalCollection { - /** @var IRootFolder */ - private $rootFolder; - - /** @var IUserManager */ - private $userManager; - - /** @var IVersionManager */ - private $versionManager; - - /** @var IUserSession */ - private $userSession; - public function __construct( PrincipalBackend\BackendInterface $principalBackend, - IRootFolder $rootFolder, + private IRootFolder $rootFolder, IConfig $config, - IUserManager $userManager, - IVersionManager $versionManager, - IUserSession $userSession + private IUserManager $userManager, + private IVersionManager $versionManager, + private IUserSession $userSession, ) { parent::__construct($principalBackend, 'principals/users'); - $this->rootFolder = $rootFolder; - $this->userManager = $userManager; - $this->versionManager = $versionManager; - $this->userSession = $userSession; - $this->disableListing = !$config->getSystemValue('debug', false); } diff --git a/apps/files_versions/lib/Sabre/VersionCollection.php b/apps/files_versions/lib/Sabre/VersionCollection.php index 57510b72ff6..375d5cf99f2 100644 --- a/apps/files_versions/lib/Sabre/VersionCollection.php +++ b/apps/files_versions/lib/Sabre/VersionCollection.php @@ -18,19 +18,11 @@ use Sabre\DAV\ICollection; class VersionCollection implements ICollection { - /** @var File */ - private $file; - - /** @var IUser */ - private $user; - - /** @var IVersionManager */ - private $versionManager; - - public function __construct(File $file, IUser $user, IVersionManager $versionManager) { - $this->file = $file; - $this->user = $user; - $this->versionManager = $versionManager; + public function __construct( + private File $file, + private IUser $user, + private IVersionManager $versionManager, + ) { } public function createFile($name, $data = null) { diff --git a/apps/files_versions/lib/Sabre/VersionFile.php b/apps/files_versions/lib/Sabre/VersionFile.php index 55180a740a9..faa03473648 100644 --- a/apps/files_versions/lib/Sabre/VersionFile.php +++ b/apps/files_versions/lib/Sabre/VersionFile.php @@ -23,7 +23,7 @@ use Sabre\DAV\IFile; class VersionFile implements IFile { public function __construct( private IVersion $version, - private IVersionManager $versionManager + private IVersionManager $versionManager, ) { } @@ -75,7 +75,7 @@ class VersionFile implements IFile { $backend = $this->version->getBackend(); if ($backend instanceof IMetadataVersionBackend) { - $backend->setMetadataValue($this->version->getSourceFile(), $this->version->getRevisionId(), $key, $value); + $backend->setMetadataValue($this->version->getSourceFile(), $this->version->getTimestamp(), $key, $value); return true; } elseif ($key === 'label' && $backend instanceof INameableVersionBackend) { $backend->setVersionLabel($this->version, $value); diff --git a/apps/files_versions/lib/Sabre/VersionHome.php b/apps/files_versions/lib/Sabre/VersionHome.php index d89291a8cf8..07ac491f2a1 100644 --- a/apps/files_versions/lib/Sabre/VersionHome.php +++ b/apps/files_versions/lib/Sabre/VersionHome.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -14,23 +15,12 @@ use Sabre\DAV\ICollection; class VersionHome implements ICollection { - /** @var array */ - private $principalInfo; - - /** @var IRootFolder */ - private $rootFolder; - - /** @var IUserManager */ - private $userManager; - - /** @var IVersionManager */ - private $versionManager; - - public function __construct(array $principalInfo, IRootFolder $rootFolder, IUserManager $userManager, IVersionManager $versionManager) { - $this->principalInfo = $principalInfo; - $this->rootFolder = $rootFolder; - $this->userManager = $userManager; - $this->versionManager = $versionManager; + public function __construct( + private array $principalInfo, + private IRootFolder $rootFolder, + private IUserManager $userManager, + private IVersionManager $versionManager, + ) { } private function getUser() { diff --git a/apps/files_versions/lib/Sabre/VersionRoot.php b/apps/files_versions/lib/Sabre/VersionRoot.php index 014f06069ab..7f7014fbee3 100644 --- a/apps/files_versions/lib/Sabre/VersionRoot.php +++ b/apps/files_versions/lib/Sabre/VersionRoot.php @@ -18,19 +18,11 @@ use Sabre\DAV\ICollection; class VersionRoot implements ICollection { - /** @var IUser */ - private $user; - - /** @var IRootFolder */ - private $rootFolder; - - /** @var IVersionManager */ - private $versionManager; - - public function __construct(IUser $user, IRootFolder $rootFolder, IVersionManager $versionManager) { - $this->user = $user; - $this->rootFolder = $rootFolder; - $this->versionManager = $versionManager; + public function __construct( + private IUser $user, + private IRootFolder $rootFolder, + private IVersionManager $versionManager, + ) { } public function delete() { diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php index 57ed1529140..6d53a19a518 100644 --- a/apps/files_versions/lib/Storage.php +++ b/apps/files_versions/lib/Storage.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -8,10 +9,12 @@ namespace OCA\Files_Versions; use OC\Files\Filesystem; +use OC\Files\ObjectStore\ObjectStoreStorage; use OC\Files\Search\SearchBinaryOperator; use OC\Files\Search\SearchComparison; use OC\Files\Search\SearchQuery; use OC\Files\View; +use OC\User\NoUserException; use OC_User; use OCA\Files_Sharing\SharedMount; use OCA\Files_Versions\AppInfo\Application; @@ -22,20 +25,25 @@ use OCA\Files_Versions\Versions\IVersionManager; use OCP\AppFramework\Db\DoesNotExistException; use OCP\Command\IBus; use OCP\EventDispatcher\IEventDispatcher; +use OCP\Files; use OCP\Files\FileInfo; use OCP\Files\Folder; use OCP\Files\IMimeTypeDetector; use OCP\Files\IRootFolder; use OCP\Files\Node; use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; use OCP\Files\Search\ISearchBinaryOperator; use OCP\Files\Search\ISearchComparison; +use OCP\Files\Storage\IWriteStreamStorage; use OCP\Files\StorageInvalidException; use OCP\Files\StorageNotAvailableException; use OCP\IURLGenerator; use OCP\IUser; use OCP\IUserManager; use OCP\Lock\ILockingProvider; +use OCP\Server; +use OCP\Util; use Psr\Log\LoggerInterface; class Storage { @@ -67,7 +75,7 @@ class Storage { 6 => ['intervalEndsAfter' => -1, 'step' => 604800], ]; - /** @var \OCA\Files_Versions\AppInfo\Application */ + /** @var Application */ private static $application; /** @@ -76,11 +84,11 @@ class Storage { * * @param string $filename * @return array - * @throws \OC\User\NoUserException + * @throws NoUserException */ public static function getUidAndFilename($filename) { $uid = Filesystem::getOwner($filename); - $userManager = \OC::$server->get(IUserManager::class); + $userManager = Server::get(IUserManager::class); // if the user with the UID doesn't exists, e.g. because the UID points // to a remote user with a federated cloud ID we use the current logged-in // user. We need a valid local user to create the versions @@ -90,7 +98,7 @@ class Storage { Filesystem::initMountPoints($uid); if ($uid !== OC_User::getUser()) { $info = Filesystem::getFileInfo($filename); - $ownerView = new View('/'.$uid.'/files'); + $ownerView = new View('/' . $uid . '/files'); try { $filename = $ownerView->getPath($info['fileid']); // make sure that the file name doesn't end with a trailing slash @@ -163,10 +171,10 @@ class Storage { $uid = Filesystem::getView()->getOwner(''); /** @var IRootFolder $rootFolder */ - $rootFolder = \OC::$server->get(IRootFolder::class); + $rootFolder = Server::get(IRootFolder::class); $userFolder = $rootFolder->getUserFolder($uid); - $eventDispatcher = \OC::$server->get(IEventDispatcher::class); + $eventDispatcher = Server::get(IEventDispatcher::class); try { $file = $userFolder->get($filename); } catch (NotFoundException $e) { @@ -184,7 +192,7 @@ class Storage { } /** @var IUserManager $userManager */ - $userManager = \OC::$server->get(IUserManager::class); + $userManager = Server::get(IUserManager::class); $user = $userManager->get($uid); if (!$user) { @@ -203,7 +211,7 @@ class Storage { } /** @var IVersionManager $versionManager */ - $versionManager = \OC::$server->get(IVersionManager::class); + $versionManager = Server::get(IVersionManager::class); $versionManager->createVersion($user, $file); } @@ -275,9 +283,9 @@ class Storage { * Rename or copy versions of a file of the given paths * * @param string $sourcePath source path of the file to move, relative to - * the currently logged in user's "files" folder + * the currently logged in user's "files" folder * @param string $targetPath target path of the file to move, relative to - * the currently logged in user's "files" folder + * the currently logged in user's "files" folder * @param string $operation can be 'copy' or 'rename' */ public static function renameOrCopy($sourcePath, $targetPath, $operation) { @@ -302,7 +310,7 @@ class Storage { // does the directory exists for versions too ? if ($rootView->is_dir('/' . $sourceOwner . '/files_versions/' . $sourcePath)) { // create missing dirs if necessary - self::createMissingDirectories($targetPath, new View('/'. $targetOwner)); + self::createMissingDirectories($targetPath, new View('/' . $targetOwner)); // move the directory containing the versions $rootView->$operation( @@ -312,13 +320,13 @@ class Storage { } } elseif ($versions = Storage::getVersions($sourceOwner, '/' . $sourcePath)) { // create missing dirs if necessary - self::createMissingDirectories($targetPath, new View('/'. $targetOwner)); + self::createMissingDirectories($targetPath, new View('/' . $targetOwner)); foreach ($versions as $v) { // move each version one by one to the target directory $rootView->$operation( - '/' . $sourceOwner . '/files_versions/' . $sourcePath.'.v' . $v['version'], - '/' . $targetOwner . '/files_versions/' . $targetPath.'.v' . $v['version'] + '/' . $sourceOwner . '/files_versions/' . $sourcePath . '.v' . $v['version'], + '/' . $targetOwner . '/files_versions/' . $targetPath . '.v' . $v['version'] ); } } @@ -341,11 +349,11 @@ class Storage { $filename = '/' . ltrim($file, '/'); // Fetch the userfolder to trigger view hooks - $root = \OC::$server->get(IRootFolder::class); + $root = Server::get(IRootFolder::class); $userFolder = $root->getUserFolder($user->getUID()); - $users_view = new View('/'.$user->getUID()); - $files_view = new View('/'. $user->getUID().'/files'); + $users_view = new View('/' . $user->getUID()); + $files_view = new View('/' . $user->getUID() . '/files'); $versionCreated = false; @@ -357,9 +365,9 @@ class Storage { } //first create a new version - $version = 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename); + $version = 'files_versions' . $filename . '.v' . $users_view->filemtime('files' . $filename); if (!$users_view->file_exists($version)) { - $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename)); + $users_view->copy('files' . $filename, 'files_versions' . $filename . '.v' . $users_view->filemtime('files' . $filename)); $versionCreated = true; } @@ -374,7 +382,8 @@ class Storage { $fileInfo->getId(), [ 'encrypted' => $oldVersion, 'encryptedVersion' => $oldVersion, - 'size' => $oldFileInfo->getSize() + 'size' => $oldFileInfo->getData()['size'], + 'unencrypted_size' => $oldFileInfo->getData()['unencrypted_size'], ] ); @@ -383,8 +392,6 @@ class Storage { $files_view->touch($file, $revision); Storage::scheduleExpire($user->getUID(), $file); - $node = $userFolder->get($file); - return true; } elseif ($versionCreated) { self::deleteVersion($users_view, $version); @@ -413,12 +420,31 @@ class Storage { try { // TODO add a proper way of overwriting a file while maintaining file ids - if ($storage1->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage') || $storage2->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage')) { + if ($storage1->instanceOfStorage(ObjectStoreStorage::class) + || $storage2->instanceOfStorage(ObjectStoreStorage::class) + ) { $source = $storage1->fopen($internalPath1, 'r'); - $target = $storage2->fopen($internalPath2, 'w'); - [, $result] = \OC_Helper::streamCopy($source, $target); - fclose($source); - fclose($target); + $result = $source !== false; + if ($result) { + if ($storage2->instanceOfStorage(IWriteStreamStorage::class)) { + /** @var IWriteStreamStorage $storage2 */ + $storage2->writeStream($internalPath2, $source); + } else { + $target = $storage2->fopen($internalPath2, 'w'); + $result = $target !== false; + if ($result) { + [, $result] = Files::streamCopy($source, $target, true); + } + // explicit check as S3 library closes streams already + if (is_resource($target)) { + fclose($target); + } + } + } + // explicit check as S3 library closes streams already + if (is_resource($source)) { + fclose($source); + } if ($result !== false) { $storage1->unlink($internalPath1); @@ -472,7 +498,7 @@ class Storage { $pathparts = pathinfo($entryName); $timestamp = substr($pathparts['extension'] ?? '', 1); if (!is_numeric($timestamp)) { - \OC::$server->get(LoggerInterface::class)->error( + Server::get(LoggerInterface::class)->error( 'Version file {path} has incorrect name format', [ 'path' => $entryName, @@ -489,14 +515,14 @@ class Storage { $versions[$key]['preview'] = ''; } else { /** @var IURLGenerator $urlGenerator */ - $urlGenerator = \OC::$server->get(IURLGenerator::class); + $urlGenerator = Server::get(IURLGenerator::class); $versions[$key]['preview'] = $urlGenerator->linkToRoute('files_version.Preview.getPreview', ['file' => $userFullPath, 'version' => $timestamp]); } $versions[$key]['path'] = Filesystem::normalizePath($pathinfo['dirname'] . '/' . $filename); $versions[$key]['name'] = $versionedFile; $versions[$key]['size'] = $view->filesize($dir . '/' . $entryName); - $versions[$key]['mimetype'] = \OC::$server->get(IMimeTypeDetector::class)->detectPath($versionedFile); + $versions[$key]['mimetype'] = Server::get(IMimeTypeDetector::class)->detectPath($versionedFile); } } } @@ -516,7 +542,7 @@ class Storage { */ public static function expireOlderThanMaxForUser($uid) { /** @var IRootFolder $root */ - $root = \OC::$server->get(IRootFolder::class); + $root = Server::get(IRootFolder::class); try { /** @var Folder $versionsRoot */ $versionsRoot = $root->get('/' . $uid . '/files_versions'); @@ -540,7 +566,7 @@ class Storage { )); /** @var VersionsMapper $versionsMapper */ - $versionsMapper = \OC::$server->get(VersionsMapper::class); + $versionsMapper = Server::get(VersionsMapper::class); $userFolder = $root->getUserFolder($uid); $versionEntities = []; @@ -561,7 +587,7 @@ class Storage { } try { - $node = $userFolder->get(substr($path, 0, -strlen('.v'.$version))); + $node = $userFolder->get(substr($path, 0, -strlen('.v' . $version))); $versionEntity = $versionsMapper->findVersionForFileId($node->getId(), $version); $versionEntities[$info->getId()] = $versionEntity; @@ -571,7 +597,7 @@ class Storage { } catch (NotFoundException $e) { // Original node not found, delete the version return true; - } catch (StorageNotAvailableException | StorageInvalidException $e) { + } catch (StorageNotAvailableException|StorageInvalidException $e) { // Storage can't be used, but it might only be temporary so we can't always delete the version // since we can't determine if the version is named we take the safe route and don't expire return false; @@ -593,8 +619,12 @@ class Storage { $versionsMapper->delete($versionEntity); } - $version->delete(); - \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $internalPath, 'trigger' => self::DELETE_TRIGGER_RETENTION_CONSTRAINT]); + try { + $version->delete(); + \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $internalPath, 'trigger' => self::DELETE_TRIGGER_RETENTION_CONSTRAINT]); + } catch (NotPermittedException $e) { + Server::get(LoggerInterface::class)->error("Missing permissions to delete version: {$internalPath}", ['app' => 'files_versions', 'exception' => $e]); + } } } @@ -608,19 +638,19 @@ class Storage { $diff = time() - $timestamp; if ($diff < 60) { // first minute - return $diff . " seconds ago"; + return $diff . ' seconds ago'; } elseif ($diff < 3600) { //first hour - return round($diff / 60) . " minutes ago"; + return round($diff / 60) . ' minutes ago'; } elseif ($diff < 86400) { // first day - return round($diff / 3600) . " hours ago"; + return round($diff / 3600) . ' hours ago'; } elseif ($diff < 604800) { //first week - return round($diff / 86400) . " days ago"; + return round($diff / 86400) . ' days ago'; } elseif ($diff < 2419200) { //first month - return round($diff / 604800) . " weeks ago"; + return round($diff / 604800) . ' weeks ago'; } elseif ($diff < 29030400) { // first year - return round($diff / 2419200) . " months ago"; + return round($diff / 2419200) . ' months ago'; } else { - return round($diff / 29030400) . " years ago"; + return round($diff / 29030400) . ' years ago'; } } @@ -663,7 +693,7 @@ class Storage { ]; foreach ($versions as $key => $value) { - $size = $view->filesize(self::VERSIONS_ROOT.'/'.$value['path'].'.v'.$value['timestamp']); + $size = $view->filesize(self::VERSIONS_ROOT . '/' . $value['path'] . '.v' . $value['timestamp']); $filename = $value['path']; $result['all'][$key]['version'] = $value['timestamp']; @@ -689,7 +719,15 @@ class Storage { $expiration = self::getExpiration(); if ($expiration->shouldAutoExpire()) { - [$toDelete, $size] = self::getAutoExpireList($time, $versions); + // Exclude versions that are newer than the minimum age from the auto expiration logic. + $minAge = $expiration->getMinAgeAsTimestamp(); + if ($minAge !== false) { + $versionsToAutoExpire = array_filter($versions, fn ($version) => $version['version'] < $minAge); + } else { + $versionsToAutoExpire = $versions; + } + + [$toDelete, $size] = self::getAutoExpireList($time, $versionsToAutoExpire); } else { $size = 0; $toDelete = []; // versions we want to delete @@ -697,8 +735,8 @@ class Storage { foreach ($versions as $key => $version) { if (!is_numeric($version['version'])) { - \OC::$server->get(LoggerInterface::class)->error( - 'Found a non-numeric timestamp version: '. json_encode($version), + Server::get(LoggerInterface::class)->error( + 'Found a non-numeric timestamp version: ' . json_encode($version), ['app' => 'files_versions']); continue; } @@ -748,7 +786,7 @@ class Storage { //distance between two version too small, mark to delete $toDelete[$key] = $version['path'] . '.v' . $version['version']; $size += $version['size']; - \OC::$server->get(LoggerInterface::class)->info('Mark to expire '. $version['path'] .' next version should be ' . $nextVersion . " or smaller. (prevTimestamp: " . $prevTimestamp . "; step: " . $step, ['app' => 'files_versions']); + Server::get(LoggerInterface::class)->info('Mark to expire ' . $version['path'] . ' next version should be ' . $nextVersion . ' or smaller. (prevTimestamp: ' . $prevTimestamp . '; step: ' . $step, ['app' => 'files_versions']); } else { $nextVersion = $version['version'] - $step; $prevTimestamp = $version['version']; @@ -783,7 +821,7 @@ class Storage { if ($expiration->isEnabled()) { $command = new Expire($uid, $fileName); /** @var IBus $bus */ - $bus = \OC::$server->get(IBus::class); + $bus = Server::get(IBus::class); $bus->push($command); } } @@ -802,14 +840,14 @@ class Storage { $expiration = self::getExpiration(); /** @var LoggerInterface $logger */ - $logger = \OC::$server->get(LoggerInterface::class); + $logger = Server::get(LoggerInterface::class); if ($expiration->isEnabled()) { // get available disk space for user - $user = \OC::$server->get(IUserManager::class)->get($uid); + $user = Server::get(IUserManager::class)->get($uid); if (is_null($user)) { $logger->error('Backends provided no user object for ' . $uid, ['app' => 'files_versions']); - throw new \OC\User\NoUserException('Backends provided no user object for ' . $uid); + throw new NoUserException('Backends provided no user object for ' . $uid); } \OC_Util::setupFS($uid); @@ -828,7 +866,7 @@ class Storage { // file maybe renamed or deleted return false; } - $versionsFileview = new View('/'.$uid.'/files_versions'); + $versionsFileview = new View('/' . $uid . '/files_versions'); $softQuota = true; $quota = $user->getQuota(); @@ -836,7 +874,7 @@ class Storage { $quota = Filesystem::free_space('/'); $softQuota = false; } else { - $quota = \OCP\Util::computerFileSize($quota); + $quota = Util::computerFileSize($quota); } // make sure that we have the current size of the version history @@ -846,7 +884,7 @@ class Storage { // subtract size of files and current versions size from quota if ($quota >= 0) { if ($softQuota) { - $root = \OC::$server->get(IRootFolder::class); + $root = Server::get(IRootFolder::class); $userFolder = $root->getUserFolder($uid); if (is_null($userFolder)) { $availableSpace = 0; @@ -891,12 +929,12 @@ class Storage { // Make sure to cleanup version table relations as expire does not pass deleteVersion try { /** @var VersionsMapper $versionsMapper */ - $versionsMapper = \OC::$server->get(VersionsMapper::class); - $file = \OC::$server->get(IRootFolder::class)->getUserFolder($uid)->get($filename); + $versionsMapper = Server::get(VersionsMapper::class); + $file = Server::get(IRootFolder::class)->getUserFolder($uid)->get($filename); $pathparts = pathinfo($path); $timestamp = (int)substr($pathparts['extension'] ?? '', 1); $versionEntity = $versionsMapper->findVersionForFileId($file->getId(), $timestamp); - if ($versionEntity->getMetadataValue('label') !== '') { + if ($versionEntity->getMetadataValue('label') !== null && $versionEntity->getMetadataValue('label') !== '') { continue; } $versionsMapper->delete($versionEntity); @@ -920,10 +958,10 @@ class Storage { reset($allVersions); while ($availableSpace < 0 && $i < $numOfVersions) { $version = current($allVersions); - \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $version['path'].'.v'.$version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); + \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $version['path'] . '.v' . $version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); self::deleteVersion($versionsFileview, $version['path'] . '.v' . $version['version']); - \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $version['path'].'.v'.$version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); - $logger->info('running out of space! Delete oldest version: ' . $version['path'].'.v'.$version['version'], ['app' => 'files_versions']); + \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $version['path'] . '.v' . $version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); + $logger->info('running out of space! Delete oldest version: ' . $version['path'] . '.v' . $version['version'], ['app' => 'files_versions']); $versionsSize -= $version['size']; $availableSpace += $version['size']; next($allVersions); @@ -941,13 +979,13 @@ class Storage { * that match the given path to a file. * * @param string $filename $path to a file, relative to the user's - * "files" folder + * "files" folder * @param View $view view on data/user/ */ public static function createMissingDirectories($filename, $view) { $dirname = Filesystem::normalizePath(dirname($filename)); $dirParts = explode('/', $dirname); - $dir = "/files_versions"; + $dir = '/files_versions'; foreach ($dirParts as $part) { $dir = $dir . '/' . $part; if (!$view->file_exists($dir)) { @@ -962,7 +1000,7 @@ class Storage { */ protected static function getExpiration() { if (self::$application === null) { - self::$application = \OC::$server->get(Application::class); + self::$application = Server::get(Application::class); } return self::$application->getContainer()->get(Expiration::class); } diff --git a/apps/files_versions/lib/Versions/BackendNotFoundException.php b/apps/files_versions/lib/Versions/BackendNotFoundException.php index af903e9abeb..f1fbecb852a 100644 --- a/apps/files_versions/lib/Versions/BackendNotFoundException.php +++ b/apps/files_versions/lib/Versions/BackendNotFoundException.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/files_versions/lib/Versions/INeedSyncVersionBackend.php b/apps/files_versions/lib/Versions/INeedSyncVersionBackend.php index 4faeaa48513..e52e2f8e8bc 100644 --- a/apps/files_versions/lib/Versions/INeedSyncVersionBackend.php +++ b/apps/files_versions/lib/Versions/INeedSyncVersionBackend.php @@ -8,13 +8,18 @@ declare(strict_types=1); */ namespace OCA\Files_Versions\Versions; +use OCA\Files_Versions\Db\VersionEntity; use OCP\Files\File; /** * @since 28.0.0 */ interface INeedSyncVersionBackend { - public function createVersionEntity(File $file): void; + /** + * TODO: Convert return type to strong type once all implementations are fixed. + * @return null|VersionEntity + */ + public function createVersionEntity(File $file); public function updateVersionEntity(File $sourceFile, int $revision, array $properties): void; public function deleteVersionsEntity(File $file): void; } diff --git a/apps/files_versions/lib/Versions/IVersionBackend.php b/apps/files_versions/lib/Versions/IVersionBackend.php index 28e3f4dffcf..18f8c17f0ac 100644 --- a/apps/files_versions/lib/Versions/IVersionBackend.php +++ b/apps/files_versions/lib/Versions/IVersionBackend.php @@ -8,6 +8,7 @@ declare(strict_types=1); */ namespace OCA\Files_Versions\Versions; +use OC\Files\Node\Node; use OCP\Files\File; use OCP\Files\FileInfo; use OCP\Files\NotFoundException; @@ -78,4 +79,11 @@ interface IVersionBackend { * @since 15.0.0 */ public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File; + + /** + * Get the revision for a node + * + * @since 32.0.0 + */ + public function getRevision(Node $node): int; } diff --git a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php index 1483d03bcc6..48d69d31629 100644 --- a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php +++ b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php @@ -12,11 +12,10 @@ namespace OCA\Files_Versions\Versions; use Exception; use OC\Files\View; use OCA\DAV\Connector\Sabre\Exception\Forbidden; -use OCA\Files_Sharing\ISharedStorage; -use OCA\Files_Sharing\SharedStorage; use OCA\Files_Versions\Db\VersionEntity; use OCA\Files_Versions\Db\VersionsMapper; use OCA\Files_Versions\Storage; +use OCP\Constants; use OCP\Files\File; use OCP\Files\FileInfo; use OCP\Files\Folder; @@ -24,6 +23,7 @@ use OCP\Files\IMimeTypeLoader; use OCP\Files\IRootFolder; use OCP\Files\Node; use OCP\Files\NotFoundException; +use OCP\Files\Storage\ISharedStorage; use OCP\Files\Storage\IStorage; use OCP\IUser; use OCP\IUserManager; @@ -48,8 +48,12 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend public function getVersionsForFile(IUser $user, FileInfo $file): array { $storage = $file->getStorage(); - if ($storage->instanceOfStorage(SharedStorage::class)) { + if ($storage->instanceOfStorage(ISharedStorage::class)) { $owner = $storage->getOwner(''); + if ($owner === false) { + throw new NotFoundException('No owner for ' . $file->getPath()); + } + $user = $this->userManager->get($owner); $fileId = $file->getId(); @@ -66,7 +70,7 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend $file = $userFolder->getFirstNodeById($fileId); if (!$file) { - throw new NotFoundException("version file not found for share owner"); + throw new NotFoundException('version file not found for share owner'); } } else { $userFolder = $this->rootFolder->getUserFolder($user->getUID()); @@ -159,7 +163,7 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend } public function rollback(IVersion $version) { - if (!$this->currentUserHasPermissions($version->getSourceFile(), \OCP\Constants::PERMISSION_UPDATE)) { + if (!$this->currentUserHasPermissions($version->getSourceFile(), Constants::PERMISSION_UPDATE)) { throw new Forbidden('You cannot restore this version because you do not have update permissions on the source file.'); } @@ -192,7 +196,7 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend // Shared files have their versions in the owners root folder so we need to obtain them from there if ($storage->instanceOfStorage(ISharedStorage::class) && $owner) { - /** @var SharedStorage $storage */ + /** @var ISharedStorage $storage */ $userFolder = $this->rootFolder->getUserFolder($owner->getUID()); $user = $owner; $ownerPathInStorage = $sourceFile->getInternalPath(); @@ -208,8 +212,12 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend return $file; } + public function getRevision(Node $node): int { + return $node->getMTime(); + } + public function deleteVersion(IVersion $version): void { - if (!$this->currentUserHasPermissions($version->getSourceFile(), \OCP\Constants::PERMISSION_DELETE)) { + if (!$this->currentUserHasPermissions($version->getSourceFile(), Constants::PERMISSION_DELETE)) { throw new Forbidden('You cannot delete this version because you do not have delete permissions on the source file.'); } @@ -221,14 +229,35 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend $this->versionsMapper->delete($versionEntity); } - public function createVersionEntity(File $file): void { + public function createVersionEntity(File $file): ?VersionEntity { $versionEntity = new VersionEntity(); $versionEntity->setFileId($file->getId()); $versionEntity->setTimestamp($file->getMTime()); $versionEntity->setSize($file->getSize()); $versionEntity->setMimetype($this->mimeTypeLoader->getId($file->getMimetype())); $versionEntity->setMetadata([]); - $this->versionsMapper->insert($versionEntity); + + $tries = 1; + while ($tries < 5) { + try { + $this->versionsMapper->insert($versionEntity); + return $versionEntity; + } catch (\OCP\DB\Exception $e) { + if (!in_array($e->getReason(), [ + \OCP\DB\Exception::REASON_CONSTRAINT_VIOLATION, + \OCP\DB\Exception::REASON_UNIQUE_CONSTRAINT_VIOLATION, + ]) + ) { + throw $e; + } + /* Conflict with another version, increase mtime and try again */ + $versionEntity->setTimestamp($versionEntity->getTimestamp() + 1); + $tries++; + $this->logger->warning('Constraint violation while inserting version, retrying with increased timestamp', ['exception' => $e]); + } + } + + return null; } public function updateVersionEntity(File $sourceFile, int $revision, array $properties): void { @@ -257,7 +286,7 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend $currentUserId = $this->userSession->getUser()?->getUID(); if ($currentUserId === null) { - throw new NotFoundException("No user logged in"); + throw new NotFoundException('No user logged in'); } if ($sourceFile->getOwner()?->getUID() === $currentUserId) { @@ -267,7 +296,7 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend $nodes = $this->rootFolder->getUserFolder($currentUserId)->getById($sourceFile->getId()); if (count($nodes) === 0) { - throw new NotFoundException("Version file not accessible by current user"); + throw new NotFoundException('Version file not accessible by current user'); } foreach ($nodes as $node) { @@ -280,7 +309,7 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend } public function setMetadataValue(Node $node, int $revision, string $key, string $value): void { - if (!$this->currentUserHasPermissions($node, \OCP\Constants::PERMISSION_UPDATE)) { + if (!$this->currentUserHasPermissions($node, Constants::PERMISSION_UPDATE)) { throw new Forbidden('You cannot update the version\'s metadata because you do not have update permissions on the source file.'); } @@ -343,16 +372,20 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend * @inheritdoc */ public function clearVersionsForFile(IUser $user, Node $source, Node $target): void { - $userFolder = $this->rootFolder->getUserFolder($user->getUID()); + $userId = $user->getUID(); + $userFolder = $this->rootFolder->getUserFolder($userId); $relativePath = $userFolder->getRelativePath($source->getPath()); if ($relativePath === null) { - throw new Exception("Relative path not found for node with path: " . $source->getPath()); + throw new Exception('Relative path not found for node with path: ' . $source->getPath()); + } + + $versionFolder = $this->rootFolder->get($userId . '/files_versions'); + if (!$versionFolder instanceof Folder) { + throw new Exception('User versions folder does not exist'); } - $versions = Storage::getVersions($user->getUID(), $relativePath); - /** @var Folder versionFolder */ - $versionFolder = $this->rootFolder->get('admin/files_versions'); + $versions = Storage::getVersions($userId, $relativePath); foreach ($versions as $version) { $versionFolder->get($version['path'] . '.v' . (int)$version['version'])->delete(); } diff --git a/apps/files_versions/lib/Versions/VersionManager.php b/apps/files_versions/lib/Versions/VersionManager.php index c666192f3c0..9acea8c6513 100644 --- a/apps/files_versions/lib/Versions/VersionManager.php +++ b/apps/files_versions/lib/Versions/VersionManager.php @@ -8,6 +8,10 @@ declare(strict_types=1); */ namespace OCA\Files_Versions\Versions; +use OCA\Files_Versions\Db\VersionEntity; +use OCA\Files_Versions\Events\VersionCreatedEvent; +use OCA\Files_Versions\Events\VersionRestoredEvent; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\File; use OCP\Files\FileInfo; use OCP\Files\IRootFolder; @@ -18,11 +22,18 @@ use OCP\Files\Node; use OCP\Files\Storage\IStorage; use OCP\IUser; use OCP\Lock\ManuallyLockedException; +use OCP\Server; class VersionManager implements IVersionManager, IDeletableVersionBackend, INeedSyncVersionBackend, IMetadataVersionBackend { + /** @var (IVersionBackend[])[] */ private $backends = []; + public function __construct( + private IEventDispatcher $dispatcher, + ) { + } + public function registerBackend(string $storageType, IVersionBackend $backend) { if (!isset($this->backends[$storageType])) { $this->backends[$storageType] = []; @@ -51,8 +62,8 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed foreach ($backends as $type => $backendsForType) { if ( - $storage->instanceOfStorage($type) && - ($foundType === '' || is_subclass_of($type, $foundType)) + $storage->instanceOfStorage($type) + && ($foundType === '' || is_subclass_of($type, $foundType)) ) { foreach ($backendsForType as $backend) { /** @var IVersionBackend $backend */ @@ -86,11 +97,7 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed $result = self::handleAppLocks(fn (): ?bool => $backend->rollback($version)); // rollback doesn't have a return type yet and some implementations don't return anything if ($result === null || $result === true) { - \OC_Hook::emit('\OCP\Versions', 'rollback', [ - 'path' => $version->getVersionPath(), - 'revision' => $version->getRevisionId(), - 'node' => $version->getSourceFile(), - ]); + $this->dispatcher->dispatchTyped(new VersionRestoredEvent($version)); } return $result; } @@ -105,6 +112,11 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed return $backend->getVersionFile($user, $sourceFile, $revision); } + public function getRevision(Node $node): int { + $backend = $this->getBackendForStorage($node->getStorage()); + return $backend->getRevision($node); + } + public function useBackendForStorage(IStorage $storage): bool { return false; } @@ -119,7 +131,16 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed public function createVersionEntity(File $file): void { $backend = $this->getBackendForStorage($file->getStorage()); if ($backend instanceof INeedSyncVersionBackend) { - $backend->createVersionEntity($file); + $versionEntity = $backend->createVersionEntity($file); + + if ($versionEntity instanceof VersionEntity) { + foreach ($backend->getVersionsForFile($file->getOwner(), $file) as $version) { + if ($version->getRevisionId() === $versionEntity->getTimestamp()) { + $this->dispatcher->dispatchTyped(new VersionCreatedEvent($file, $version)); + break; + } + } + } } } @@ -167,8 +188,8 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed try { return $callback(); } catch (ManuallyLockedException $e) { - $owner = (string) $e->getOwner(); - $appsThatHandleUpdates = ["text", "richdocuments"]; + $owner = (string)$e->getOwner(); + $appsThatHandleUpdates = ['text', 'richdocuments']; if (!in_array($owner, $appsThatHandleUpdates)) { throw $e; } @@ -176,11 +197,11 @@ class VersionManager implements IVersionManager, IDeletableVersionBackend, INeed // when checking the lock against the current scope. // So we do not need to get the actual node here // and use the root node instead. - $root = \OC::$server->get(IRootFolder::class); + $root = Server::get(IRootFolder::class); $lockContext = new LockContext($root, ILock::TYPE_APP, $owner); - $lockManager = \OC::$server->get(ILockManager::class); + $lockManager = Server::get(ILockManager::class); $result = null; - $lockManager->runInScope($lockContext, function () use ($callback, &$result) { + $lockManager->runInScope($lockContext, function () use ($callback, &$result): void { $result = $callback(); }); return $result; diff --git a/apps/files_versions/openapi.json b/apps/files_versions/openapi.json index ee81923c905..aea18edf3ec 100644 --- a/apps/files_versions/openapi.json +++ b/apps/files_versions/openapi.json @@ -65,40 +65,59 @@ "basic_auth": [] } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "file": { - "type": "string", - "default": "", - "description": "Path of the file" - }, - "x": { - "type": "integer", - "format": "int64", - "default": 44, - "description": "Width of the preview" - }, - "y": { - "type": "integer", - "format": "int64", - "default": 44, - "description": "Height of the preview" - }, - "version": { - "type": "string", - "default": "", - "description": "Version of the file to get the preview for" - } - } - } + "parameters": [ + { + "name": "file", + "in": "query", + "description": "Path of the file", + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "x", + "in": "query", + "description": "Width of the preview", + "schema": { + "type": "integer", + "format": "int64", + "default": 44 + } + }, + { + "name": "y", + "in": "query", + "description": "Height of the preview", + "schema": { + "type": "integer", + "format": "int64", + "default": 44 + } + }, + { + "name": "version", + "in": "query", + "description": "Version of the file to get the preview for", + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "mimeFallback", + "in": "query", + "description": "Whether to fallback to the mime icon if no preview is available", + "schema": { + "type": "integer", + "default": 0, + "enum": [ + 0, + 1 + ] } } - }, + ], "responses": { "200": { "description": "Preview returned", @@ -126,6 +145,16 @@ "schema": {} } } + }, + "303": { + "description": "Redirect to the mime icon url if mimeFallback is true", + "headers": { + "Location": { + "schema": { + "type": "string" + } + } + } } } } diff --git a/apps/files_versions/src/components/Version.vue b/apps/files_versions/src/components/Version.vue index c6d44edaf06..dc36e4134f9 100644 --- a/apps/files_versions/src/components/Version.vue +++ b/apps/files_versions/src/components/Version.vue @@ -5,12 +5,13 @@ <template> <NcListItem class="version" :force-display-actions="true" + :actions-aria-label="t('files_versions', 'Actions for version from {versionHumanExplicitDate}', { versionHumanExplicitDate })" :data-files-versions-version="version.fileVersion" @click="click"> <!-- Icon --> <template #icon> <div v-if="!(loadPreview || previewLoaded)" class="version__image" /> - <img v-else-if="(isCurrent || version.hasPreview) && !previewErrored" + <img v-else-if="version.previewUrl && !previewErrored" :src="version.previewUrl" alt="" decoding="async" @@ -30,18 +31,24 @@ <div class="version__info"> <div v-if="versionLabel" class="version__info__label" + data-cy-files-version-label :title="versionLabel"> {{ versionLabel }} </div> - <div v-if="versionAuthor" class="version__info"> + <div v-if="versionAuthor" + class="version__info" + data-cy-files-version-author-name> <span v-if="versionLabel">•</span> <NcAvatar class="avatar" :user="version.author" - :size="16" - :disable-menu="true" - :disable-tooltip="true" + :size="20" + disable-menu + disable-tooltip :show-user-status="false" /> - <div>{{ versionAuthor }}</div> + <div class="version__info__author_name" + :title="versionAuthor"> + {{ versionAuthor }} + </div> </div> </div> </template> @@ -52,7 +59,7 @@ <NcDateTime class="version__info__date" relative-time="short" :timestamp="version.mtime" /> - <!-- Separate dot to improve alignement --> + <!-- Separate dot to improve alignment --> <span>•</span> <span>{{ humanReadableSize }}</span> </div> @@ -109,33 +116,35 @@ </template> </NcListItem> </template> - <script lang="ts"> import type { PropType } from 'vue' import type { Version } from '../utils/versions' +import { getCurrentUser } from '@nextcloud/auth' +import { Permission, formatFileSize } from '@nextcloud/files' +import { loadState } from '@nextcloud/initial-state' +import { t } from '@nextcloud/l10n' +import { joinPaths } from '@nextcloud/paths' +import { getRootUrl, generateUrl } from '@nextcloud/router' +import { defineComponent } from 'vue' + +import axios from '@nextcloud/axios' +import moment from '@nextcloud/moment' +import logger from '../utils/logger' + import BackupRestore from 'vue-material-design-icons/BackupRestore.vue' import Delete from 'vue-material-design-icons/Delete.vue' import Download from 'vue-material-design-icons/Download.vue' import FileCompare from 'vue-material-design-icons/FileCompare.vue' import ImageOffOutline from 'vue-material-design-icons/ImageOffOutline.vue' -import Pencil from 'vue-material-design-icons/Pencil.vue' - -import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' -import NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js' -import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js' -import NcDateTime from '@nextcloud/vue/dist/Components/NcDateTime.js' -import NcListItem from '@nextcloud/vue/dist/Components/NcListItem.js' -import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip.js' +import Pencil from 'vue-material-design-icons/PencilOutline.vue' -import { getRootUrl, generateOcsUrl } from '@nextcloud/router' -import { joinPaths } from '@nextcloud/paths' -import { loadState } from '@nextcloud/initial-state' -import { Permission, formatFileSize } from '@nextcloud/files' -import { translate as t } from '@nextcloud/l10n' -import { defineComponent } from 'vue' - -import axios from '@nextcloud/axios' +import NcActionButton from '@nextcloud/vue/components/NcActionButton' +import NcActionLink from '@nextcloud/vue/components/NcActionLink' +import NcAvatar from '@nextcloud/vue/components/NcAvatar' +import NcDateTime from '@nextcloud/vue/components/NcDateTime' +import NcListItem from '@nextcloud/vue/components/NcListItem' +import Tooltip from '@nextcloud/vue/directives/Tooltip' const hasPermission = (permissions: number, permission: number): boolean => (permissions & permission) !== 0 @@ -198,7 +207,7 @@ export default defineComponent({ previewLoaded: false, previewErrored: false, capabilities: loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }), - versionAuthor: '', + versionAuthor: '' as string | null, } }, @@ -225,6 +234,10 @@ export default defineComponent({ return label }, + versionHumanExplicitDate(): string { + return moment(this.version.mtime).format('LLLL') + }, + downloadURL(): string { if (this.isCurrent) { return getRootUrl() + joinPaths('/remote.php/webdav', this.fileInfo.path, this.fileInfo.name) @@ -259,7 +272,7 @@ export default defineComponent({ const downloadAttribute = this.fileInfo.shareAttributes .find((attribute) => attribute.scope === 'permissions' && attribute.key === 'download') || {} // If the download attribute is set to false, the file is not downloadable - if (downloadAttribute?.enabled === false) { + if (downloadAttribute?.value === false) { return false } } @@ -290,21 +303,26 @@ export default defineComponent({ }, async fetchDisplayName() { - // check to make sure that we have a valid author - in case database did not migrate, null author, etc. - if (this.version.author) { + this.versionAuthor = null + if (!this.version.author) { + return + } + + if (this.version.author === getCurrentUser()?.uid) { + this.versionAuthor = t('files_versions', 'You') + } else { try { - const { data } = await axios.get(generateOcsUrl(`/cloud/users/${this.version.author}`)) - this.versionAuthor = data.ocs.data.displayname - } catch (e) { - // Promise got rejected - default to null author to not try to load author profile - this.versionAuthor = null + const { data } = await axios.post(generateUrl('/displaynames'), { users: [this.version.author] }) + this.versionAuthor = data.users[this.version.author] + } catch (error) { + logger.warn('Could not load user display name', { error }) } } }, click() { if (!this.canView) { - window.location = this.downloadURL + window.location.href = this.downloadURL return } this.$emit('click', { version: this.version }) @@ -334,12 +352,19 @@ export default defineComponent({ gap: 0.5rem; color: var(--color-main-text); font-weight: 500; + overflow: hidden; &__label { font-weight: 700; // Fix overflow on narrow screens overflow: hidden; text-overflow: ellipsis; + min-width: 110px; + } + + &__author_name { + overflow: hidden; + text-overflow: ellipsis; } &__date { diff --git a/apps/files_versions/src/components/VersionLabelDialog.vue b/apps/files_versions/src/components/VersionLabelDialog.vue new file mode 100644 index 00000000000..760780cae61 --- /dev/null +++ b/apps/files_versions/src/components/VersionLabelDialog.vue @@ -0,0 +1,123 @@ +<!-- + - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> +<template> + <NcDialog :buttons="dialogButtons" + content-classes="version-label-modal" + is-form + :open="open" + size="normal" + :name="t('files_versions', 'Name this version')" + @update:open="$emit('update:open', $event)" + @submit="setVersionLabel(editedVersionLabel)"> + <NcTextField ref="labelInput" + class="version-label-modal__input" + :label="t('files_versions', 'Version name')" + :placeholder="t('files_versions', 'Version name')" + :value.sync="editedVersionLabel" /> + + <p class="version-label-modal__info"> + {{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }} + </p> + </NcDialog> +</template> + +<script lang="ts"> +import { t } from '@nextcloud/l10n' +import { defineComponent } from 'vue' +import svgCheck from '@mdi/svg/svg/check.svg?raw' + +import NcDialog from '@nextcloud/vue/components/NcDialog' +import NcTextField from '@nextcloud/vue/components/NcTextField' + +type Focusable = Vue & { focus: () => void } + +export default defineComponent({ + name: 'VersionLabelDialog', + components: { + NcDialog, + NcTextField, + }, + props: { + open: { + type: Boolean, + default: false, + }, + versionLabel: { + type: String, + default: '', + }, + }, + data() { + return { + editedVersionLabel: '', + } + }, + computed: { + dialogButtons() { + const buttons: unknown[] = [] + if (this.versionLabel.trim() === '') { + // If there is no label just offer a cancel action that just closes the dialog + buttons.push({ + label: t('files_versions', 'Cancel'), + }) + } else { + // If there is already a label set, offer to remove the version label + buttons.push({ + label: t('files_versions', 'Remove version name'), + type: 'error', + nativeType: 'reset', + callback: () => { this.setVersionLabel('') }, + }) + } + return [ + ...buttons, + { + label: t('files_versions', 'Save version name'), + type: 'primary', + nativeType: 'submit', + icon: svgCheck, + }, + ] + }, + }, + watch: { + versionLabel: { + immediate: true, + handler(label) { + this.editedVersionLabel = label ?? '' + }, + }, + open: { + immediate: true, + handler(open) { + if (open) { + this.$nextTick(() => (this.$refs.labelInput as Focusable).focus()) + } + this.editedVersionLabel = this.versionLabel + }, + }, + }, + methods: { + setVersionLabel(label: string) { + this.$emit('label-update', label) + }, + + t, + }, +}) +</script> + +<style scoped lang="scss"> +.version-label-modal { + &__info { + color: var(--color-text-maxcontrast); + margin-block: calc(3 * var(--default-grid-baseline)); + } + + &__input { + margin-block-start: calc(2 * var(--default-grid-baseline)); + } +} +</style> diff --git a/apps/files_versions/src/components/VersionLabelForm.vue b/apps/files_versions/src/components/VersionLabelForm.vue deleted file mode 100644 index a0efcbe47ee..00000000000 --- a/apps/files_versions/src/components/VersionLabelForm.vue +++ /dev/null @@ -1,99 +0,0 @@ -<!-- - - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors - - SPDX-License-Identifier: AGPL-3.0-or-later ---> -<template> - <form class="version-label-modal" - @submit.prevent="setVersionLabel(innerVersionLabel)"> - <label> - <div class="version-label-modal__title">{{ t('files_versions', 'Version name') }}</div> - <NcTextField ref="labelInput" - :value.sync="innerVersionLabel" - :placeholder="t('files_versions', 'Version name')" - :label-outside="true" /> - </label> - - <div class="version-label-modal__info"> - {{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }} - </div> - - <div class="version-label-modal__actions"> - <NcButton :disabled="innerVersionLabel.trim().length === 0" @click="setVersionLabel('')"> - {{ t('files_versions', 'Remove version name') }} - </NcButton> - <NcButton type="primary" native-type="submit"> - <template #icon> - <Check /> - </template> - {{ t('files_versions', 'Save version name') }} - </NcButton> - </div> - </form> -</template> - -<script lang="ts"> -import Check from 'vue-material-design-icons/Check.vue' -import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' -import NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js' -import { translate } from '@nextcloud/l10n' - -import { defineComponent } from 'vue' - -export default defineComponent({ - name: 'VersionLabelForm', - components: { - NcButton, - NcTextField, - Check, - }, - props: { - versionLabel: { - type: String, - default: '', - }, - }, - data() { - return { - innerVersionLabel: this.versionLabel, - } - }, - mounted() { - this.$nextTick(() => { - (this.$refs.labelInput as Vue).$el.getElementsByTagName('input')[0].focus() - }) - }, - methods: { - setVersionLabel(label: string) { - this.$emit('label-update', label) - }, - - t: translate, - }, -}) -</script> - -<style scoped lang="scss"> -.version-label-modal { - display: flex; - justify-content: space-between; - flex-direction: column; - height: 250px; - padding: 16px; - - &__title { - margin-bottom: 12px; - font-weight: 600; - } - - &__info { - margin-top: 12px; - color: var(--color-text-maxcontrast); - } - - &__actions { - display: flex; - justify-content: space-between; - margin-top: 64px; - } -} -</style> diff --git a/apps/files_versions/src/css/versions.css b/apps/files_versions/src/css/versions.css index b9914027738..1637394ef48 100644 --- a/apps/files_versions/src/css/versions.css +++ b/apps/files_versions/src/css/versions.css @@ -41,16 +41,16 @@ .versionsTabView img { cursor: pointer; - padding-right: 4px; + padding-inline-end: 4px; } .versionsTabView img.preview { position: relative; top: 6px; - left: 10px; + inset-inline-start: 10px; border: 1px solid var(--color-border-dark); cursor: default; - padding-right: 0; + padding-inline-end: 0; } .versionsTabView .version-container { @@ -63,7 +63,7 @@ } .versionsTabView .version-details { - text-align: left; + text-align: start; } .versionsTabView .version-details > span { @@ -73,7 +73,7 @@ .versionsTabView .revertVersion { cursor: pointer; float: right; - margin-right: 0; + margin-inline-end: 0; } .versionsTabView li.active .downloadVersion { @@ -95,7 +95,7 @@ } .version-container { - padding-left: 5px; + padding-inline-start: 5px; } .version-details { diff --git a/apps/files_versions/src/files_versions_tab.js b/apps/files_versions/src/files_versions_tab.js index 011cde11c04..12f36bad24a 100644 --- a/apps/files_versions/src/files_versions_tab.js +++ b/apps/files_versions/src/files_versions_tab.js @@ -7,14 +7,14 @@ import Vue from 'vue' import { translate as t, translatePlural as n } from '@nextcloud/l10n' import VersionTab from './views/VersionTab.vue' -import VTooltip from 'v-tooltip' +import VTooltipPlugin from 'v-tooltip' // eslint-disable-next-line n/no-missing-import, import/no-unresolved import BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw' Vue.prototype.t = t Vue.prototype.n = n -Vue.use(VTooltip) +Vue.use(VTooltipPlugin) // Init Sharing tab component const View = Vue.extend(VersionTab) diff --git a/apps/files_versions/src/utils/davClient.js b/apps/files_versions/src/utils/davClient.js index 094f9cee0f0..029373e9193 100644 --- a/apps/files_versions/src/utils/davClient.js +++ b/apps/files_versions/src/utils/davClient.js @@ -14,16 +14,16 @@ const client = createClient(remote) // set CSRF token header const setHeaders = (token) => { - client.setHeaders({ - // Add this so the server knows it is an request from the browser - 'X-Requested-With': 'XMLHttpRequest', - // Inject user auth - requesttoken: token ?? '', - }) + client.setHeaders({ + // Add this so the server knows it is an request from the browser + 'X-Requested-With': 'XMLHttpRequest', + // Inject user auth + requesttoken: token ?? '', + }) } // refresh headers when request token changes onRequestTokenUpdate(setHeaders) setHeaders(getRequestToken()) -export default client
\ No newline at end of file +export default client diff --git a/apps/files_versions/src/utils/versions.ts b/apps/files_versions/src/utils/versions.ts index b52f92ef462..6d5933f0bd9 100644 --- a/apps/files_versions/src/utils/versions.ts +++ b/apps/files_versions/src/utils/versions.ts @@ -28,7 +28,6 @@ export interface Version { type: string, // 'file' mtime: number, // Version creation date as a timestamp permissions: string, // Only readable: 'R' - hasPreview: boolean, // Whether the version has a preview previewUrl: string, // Preview URL of the version url: string, // Download URL of the version source: string, // The WebDAV endpoint of the ressource @@ -78,12 +77,12 @@ function formatVersion(version: any, fileInfo: any): Version { let previewUrl = '' if (mtime === fileInfo.mtime) { // Version is the current one - previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', { + previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', { fileId: fileInfo.id, fileEtag: fileInfo.etag, }) } else { - previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', { + previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', { file: joinPaths(fileInfo.path, fileInfo.name), fileVersion: version.basename, }) @@ -102,7 +101,6 @@ function formatVersion(version: any, fileInfo: any): Version { type: version.type, mtime, permissions: 'R', - hasPreview: version.props['has-preview'] === 1, previewUrl, url: joinPaths('/remote.php/dav', version.filename), source: generateRemoteUrl('dav') + encodePath(version.filename), diff --git a/apps/files_versions/src/views/VersionTab.vue b/apps/files_versions/src/views/VersionTab.vue index b656fc75d4f..a643aef439d 100644 --- a/apps/files_versions/src/views/VersionTab.vue +++ b/apps/files_versions/src/views/VersionTab.vue @@ -4,65 +4,65 @@ --> <template> <div class="versions-tab__container"> - <VirtualScrolling :sections="sections" + <VirtualScrolling v-slot="{ visibleSections }" + :sections="sections" :header-height="0"> - <template slot-scope="{visibleSections}"> - <ul data-files-versions-versions-list> - <template v-if="visibleSections.length === 1"> - <Version v-for="(row) of visibleSections[0].rows" - :key="row.items[0].mtime" - :can-view="canView" - :can-compare="canCompare" - :load-preview="isActive" - :version="row.items[0]" - :file-info="fileInfo" - :is-current="row.items[0].mtime === fileInfo.mtime" - :is-first-version="row.items[0].mtime === initialVersionMtime" - @click="openVersion" - @compare="compareVersion" - @restore="handleRestore" - @label-update-request="handleLabelUpdateRequest(row.items[0])" - @delete="handleDelete" /> - </template> - </ul> - </template> + <ul :aria-label="t('files_versions', 'File versions')" data-files-versions-versions-list> + <template v-if="visibleSections.length === 1"> + <Version v-for="(row) of visibleSections[0].rows" + :key="row.items[0].mtime" + :can-view="canView" + :can-compare="canCompare" + :load-preview="isActive" + :version="row.items[0]" + :file-info="fileInfo" + :is-current="row.items[0].mtime === fileInfo.mtime" + :is-first-version="row.items[0].mtime === initialVersionMtime" + @click="openVersion" + @compare="compareVersion" + @restore="handleRestore" + @label-update-request="handleLabelUpdateRequest(row.items[0])" + @delete="handleDelete" /> + </template> + </ul> <NcLoadingIcon v-if="loading" slot="loader" class="files-list-viewer__loader" /> </VirtualScrolling> - <NcModal v-if="showVersionLabelForm" - :title="t('files_versions', 'Name this version')" - @close="showVersionLabelForm = false"> - <VersionLabelForm :version-label="editedVersion.label" @label-update="handleLabelUpdate" /> - </NcModal> + <VersionLabelDialog v-if="editedVersion" + :open.sync="showVersionLabelForm" + :version-label="editedVersion.label" + @label-update="handleLabelUpdate" /> </div> </template> <script> import path from 'path' +import { getCurrentUser } from '@nextcloud/auth' import { showError, showSuccess } from '@nextcloud/dialogs' -import isMobile from '@nextcloud/vue/dist/Mixins/isMobile.js' import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus' -import { getCurrentUser } from '@nextcloud/auth' -import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js' -import NcModal from '@nextcloud/vue/dist/Components/NcModal.js' +import { useIsMobile } from '@nextcloud/vue/composables/useIsMobile' +import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' import { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.ts' import Version from '../components/Version.vue' import VirtualScrolling from '../components/VirtualScrolling.vue' -import VersionLabelForm from '../components/VersionLabelForm.vue' +import VersionLabelDialog from '../components/VersionLabelDialog.vue' export default { name: 'VersionTab', components: { Version, VirtualScrolling, - VersionLabelForm, + VersionLabelDialog, NcLoadingIcon, - NcModal, }, - mixins: [ - isMobile, - ], + + setup() { + return { + isMobile: useIsMobile(), + } + }, + data() { return { fileInfo: null, @@ -71,6 +71,7 @@ export default { versions: [], loading: false, showVersionLabelForm: false, + editedVersion: null, } }, computed: { @@ -179,7 +180,7 @@ export default { /** * Handle restored event from Version.vue * - * @param {import('../utils/versions.ts').Version} version + * @param {import('../utils/versions.ts').Version} version The version to restore */ async handleRestore(version) { // Update local copy of fileInfo as rendering depends on it. @@ -202,7 +203,7 @@ export default { try { await restoreVersion(version) - if (version.label !== '') { + if (version.label) { showSuccess(t('files_versions', `${version.label} restored`)) } else if (version.mtime === this.initialVersionMtime) { showSuccess(t('files_versions', 'Initial version restored')) @@ -219,7 +220,7 @@ export default { /** * Handle label-updated event from Version.vue - * @param {import('../utils/versions.ts').Version} version + * @param {import('../utils/versions.ts').Version} version The version to update */ handleLabelUpdateRequest(version) { this.showVersionLabelForm = true @@ -228,7 +229,7 @@ export default { /** * Handle label-updated event from Version.vue - * @param {string} newLabel + * @param {string} newLabel The new label */ async handleLabelUpdate(newLabel) { const oldLabel = this.editedVersion.label @@ -248,8 +249,7 @@ export default { /** * Handle deleted event from Version.vue * - * @param {import('../utils/versions.ts').Version} version - * @param {string} newName + * @param {import('../utils/versions.ts').Version} version The version to delete */ async handleDelete(version) { const index = this.versions.indexOf(version) @@ -277,13 +277,12 @@ export default { return } - // Versions previews are too small for our use case, so we override hasPreview and previewUrl + // Versions previews are too small for our use case, so we override previewUrl // which makes the viewer render the original file. // We also point to the original filename if the version is the current one. const versions = this.versions.map(version => ({ ...version, filename: version.mtime === this.fileInfo.mtime ? path.join('files', getCurrentUser()?.uid ?? '', this.fileInfo.path, this.fileInfo.name) : version.filename, - hasPreview: false, previewUrl: undefined, })) @@ -294,7 +293,7 @@ export default { }, compareVersion({ version }) { - const versions = this.versions.map(version => ({ ...version, hasPreview: false, previewUrl: undefined })) + const versions = this.versions.map(version => ({ ...version, previewUrl: undefined })) OCA.Viewer.compare(this.viewerFileInfo, versions.find(v => v.source === version.source)) }, diff --git a/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php b/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php index 7a35e9f5f39..21e88e86f90 100644 --- a/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php +++ b/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -16,17 +18,10 @@ use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class ExpireVersionsTest extends TestCase { - /** @var IConfig|MockObject */ - private $config; - - /** @var IUserManager|MockObject */ - private $userManager; - - /** @var Expiration|MockObject */ - private $expiration; - - /** @var IJobList|MockObject */ - private $jobList; + private IConfig&MockObject $config; + private IUserManager&MockObject $userManager; + private Expiration&MockObject $expiration; + private IJobList&MockObject $jobList; protected function setUp(): void { parent::setUp(); diff --git a/apps/files_versions/tests/Command/CleanupTest.php b/apps/files_versions/tests/Command/CleanupTest.php index 3b834ed974b..dd6665f5aef 100644 --- a/apps/files_versions/tests/Command/CleanupTest.php +++ b/apps/files_versions/tests/Command/CleanupTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -8,10 +10,13 @@ namespace OCA\Files_Versions\Tests\Command; use OC\User\Manager; use OCA\Files_Versions\Command\CleanUp; +use OCA\Files_Versions\Db\VersionsMapper; use OCP\Files\Cache\ICache; use OCP\Files\Folder; use OCP\Files\IRootFolder; use OCP\Files\Storage\IStorage; +use OCP\UserInterface; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; /** @@ -22,37 +27,26 @@ use Test\TestCase; * @package OCA\Files_Versions\Tests\Command */ class CleanupTest extends TestCase { - - /** @var CleanUp */ - protected $cleanup; - - /** @var \PHPUnit\Framework\MockObject\MockObject | Manager */ - protected $userManager; - - /** @var \PHPUnit\Framework\MockObject\MockObject | IRootFolder */ - protected $rootFolder; - - /** @var \PHPUnit\Framework\MockObject\MockObject | VersionsMapper */ - protected $versionMapper; + protected Manager&MockObject $userManager; + protected IRootFolder&MockObject $rootFolder; + protected VersionsMapper&MockObject $versionMapper; + protected CleanUp $cleanup; protected function setUp(): void { parent::setUp(); - $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder') - ->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('OC\User\Manager') - ->disableOriginalConstructor()->getMock(); - $this->versionMapper = $this->getMockBuilder('OCA\Files_Versions\Db\VersionsMapper') - ->disableOriginalConstructor()->getMock(); + $this->rootFolder = $this->createMock(IRootFolder::class); + $this->userManager = $this->createMock(Manager::class); + $this->versionMapper = $this->createMock(VersionsMapper::class); $this->cleanup = new CleanUp($this->rootFolder, $this->userManager, $this->versionMapper); } /** - * @dataProvider dataTestDeleteVersions * @param boolean $nodeExists */ - public function testDeleteVersions($nodeExists) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestDeleteVersions')] + public function testDeleteVersions(bool $nodeExists): void { $this->rootFolder->expects($this->once()) ->method('nodeExists') ->with('/testUser/files_versions') @@ -91,7 +85,7 @@ class CleanupTest extends TestCase { $this->invokePrivate($this->cleanup, 'deleteVersions', ['testUser']); } - public function dataTestDeleteVersions() { + public static function dataTestDeleteVersions(): array { return [ [true], [false] @@ -102,30 +96,28 @@ class CleanupTest extends TestCase { /** * test delete versions from users given as parameter */ - public function testExecuteDeleteListOfUsers() { + public function testExecuteDeleteListOfUsers(): void { $userIds = ['user1', 'user2', 'user3']; - $instance = $this->getMockBuilder('OCA\Files_Versions\Command\CleanUp') - ->setMethods(['deleteVersions']) + $instance = $this->getMockBuilder(CleanUp::class) + ->onlyMethods(['deleteVersions']) ->setConstructorArgs([$this->rootFolder, $this->userManager, $this->versionMapper]) ->getMock(); $instance->expects($this->exactly(count($userIds))) ->method('deleteVersions') - ->willReturnCallback(function ($user) use ($userIds) { + ->willReturnCallback(function ($user) use ($userIds): void { $this->assertTrue(in_array($user, $userIds)); }); $this->userManager->expects($this->exactly(count($userIds))) ->method('userExists')->willReturn(true); - $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface') - ->disableOriginalConstructor()->getMock(); + $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class); $inputInterface->expects($this->once())->method('getArgument') ->with('user_id') ->willReturn($userIds); - $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface') - ->disableOriginalConstructor()->getMock(); + $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class); $this->invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]); } @@ -133,16 +125,16 @@ class CleanupTest extends TestCase { /** * test delete versions of all users */ - public function testExecuteAllUsers() { + public function testExecuteAllUsers(): void { $userIds = []; $backendUsers = ['user1', 'user2']; - $instance = $this->getMockBuilder('OCA\Files_Versions\Command\CleanUp') - ->setMethods(['deleteVersions']) + $instance = $this->getMockBuilder(CleanUp::class) + ->onlyMethods(['deleteVersions']) ->setConstructorArgs([$this->rootFolder, $this->userManager, $this->versionMapper]) ->getMock(); - $backend = $this->getMockBuilder(\OCP\UserInterface::class) + $backend = $this->getMockBuilder(UserInterface::class) ->disableOriginalConstructor()->getMock(); $backend->expects($this->once())->method('getUsers') ->with('', 500, 0) @@ -150,22 +142,20 @@ class CleanupTest extends TestCase { $instance->expects($this->exactly(count($backendUsers))) ->method('deleteVersions') - ->willReturnCallback(function ($user) use ($backendUsers) { + ->willReturnCallback(function ($user) use ($backendUsers): void { $this->assertTrue(in_array($user, $backendUsers)); }); - $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface') - ->disableOriginalConstructor()->getMock(); + $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class); $inputInterface->expects($this->once())->method('getArgument') ->with('user_id') ->willReturn($userIds); - $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface') - ->disableOriginalConstructor()->getMock(); + $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class); $this->userManager->expects($this->once()) - ->method('getBackends') - ->willReturn([$backend]); + ->method('getBackends') + ->willReturn([$backend]); $this->invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]); } diff --git a/apps/files_versions/tests/Command/ExpireTest.php b/apps/files_versions/tests/Command/ExpireTest.php index ac1fc4ada7f..b74457a7fd6 100644 --- a/apps/files_versions/tests/Command/ExpireTest.php +++ b/apps/files_versions/tests/Command/ExpireTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -17,7 +19,7 @@ use Test\TestCase; * @package OCA\Files_Versions\Tests\Command */ class ExpireTest extends TestCase { - public function testExpireNonExistingUser() { + public function testExpireNonExistingUser(): void { $command = new Expire($this->getUniqueID('test'), ''); $command->handle(); diff --git a/apps/files_versions/tests/Controller/PreviewControllerTest.php b/apps/files_versions/tests/Controller/PreviewControllerTest.php index 1673a212f89..542ea2b6b34 100644 --- a/apps/files_versions/tests/Controller/PreviewControllerTest.php +++ b/apps/files_versions/tests/Controller/PreviewControllerTest.php @@ -1,18 +1,19 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\Files_Versions\Tests\Controller; use OCA\Files_Versions\Controller\PreviewController; use OCA\Files_Versions\Versions\IVersionManager; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; -use OCP\AppFramework\Http\FileDisplayResponse; use OCP\Files\File; use OCP\Files\Folder; -use OCP\Files\IMimeTypeDetector; use OCP\Files\IRootFolder; use OCP\Files\NotFoundException; use OCP\Files\SimpleFS\ISimpleFile; @@ -20,30 +21,19 @@ use OCP\IPreview; use OCP\IRequest; use OCP\IUser; use OCP\IUserSession; +use OCP\Preview\IMimeIconProvider; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class PreviewControllerTest extends TestCase { + private IRootFolder&MockObject $rootFolder; + private string $userId; + private IPreview&MockObject $previewManager; + private IUserSession&MockObject $userSession; + private IVersionManager&MockObject $versionManager; - /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */ - private $rootFolder; - - /** @var string */ - private $userId; - - /** @var IMimeTypeDetector|\PHPUnit\Framework\MockObject\MockObject */ - private $mimeTypeDetector; - - /** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */ - private $previewManager; - - /** @var PreviewController|\PHPUnit\Framework\MockObject\MockObject */ - private $controller; - - /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */ - private $userSession; - - /** @var IVersionManager|\PHPUnit\Framework\MockObject\MockObject */ - private $versionManager; + private IMimeIconProvider&MockObject $mimeIconProvider; + private PreviewController $controller; protected function setUp(): void { parent::setUp(); @@ -60,6 +50,7 @@ class PreviewControllerTest extends TestCase { ->method('getUser') ->willReturn($user); $this->versionManager = $this->createMock(IVersionManager::class); + $this->mimeIconProvider = $this->createMock(IMimeIconProvider::class); $this->controller = new PreviewController( 'files_versions', @@ -67,39 +58,40 @@ class PreviewControllerTest extends TestCase { $this->rootFolder, $this->userSession, $this->versionManager, - $this->previewManager + $this->previewManager, + $this->mimeIconProvider, ); } - public function testInvalidFile() { + public function testInvalidFile(): void { $res = $this->controller->getPreview(''); $expected = new DataResponse([], Http::STATUS_BAD_REQUEST); $this->assertEquals($expected, $res); } - public function testInvalidWidth() { + public function testInvalidWidth(): void { $res = $this->controller->getPreview('file', 0); $expected = new DataResponse([], Http::STATUS_BAD_REQUEST); $this->assertEquals($expected, $res); } - public function testInvalidHeight() { + public function testInvalidHeight(): void { $res = $this->controller->getPreview('file', 10, 0); $expected = new DataResponse([], Http::STATUS_BAD_REQUEST); $this->assertEquals($expected, $res); } - public function testInvalidVersion() { + public function testInvalidVersion(): void { $res = $this->controller->getPreview('file', 10, 0); $expected = new DataResponse([], Http::STATUS_BAD_REQUEST); $this->assertEquals($expected, $res); } - public function testValidPreview() { + public function testValidPreview(): void { $userFolder = $this->createMock(Folder::class); $userRoot = $this->createMock(Folder::class); @@ -131,12 +123,13 @@ class PreviewControllerTest extends TestCase { ->willReturn('previewMime'); $res = $this->controller->getPreview('file', 10, 10, '42'); - $expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'previewMime']); - $this->assertEquals($expected, $res); + $this->assertEquals('previewMime', $res->getHeaders()['Content-Type']); + $this->assertEquals(Http::STATUS_OK, $res->getStatus()); + $this->assertEquals($preview, $this->invokePrivate($res, 'file')); } - public function testVersionNotFound() { + public function testVersionNotFound(): void { $userFolder = $this->createMock(Folder::class); $userRoot = $this->createMock(Folder::class); diff --git a/apps/files_versions/tests/ExpirationTest.php b/apps/files_versions/tests/ExpirationTest.php index a998d3a3e9a..8cf412c3fe0 100644 --- a/apps/files_versions/tests/ExpirationTest.php +++ b/apps/files_versions/tests/ExpirationTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -15,7 +17,7 @@ use Psr\Log\LoggerInterface; class ExpirationTest extends \Test\TestCase { public const SECONDS_PER_DAY = 86400; //60*60*24 - public function expirationData() { + public static function expirationData(): array { $today = 100 * self::SECONDS_PER_DAY; $back10Days = (100 - 10) * self::SECONDS_PER_DAY; $back20Days = (100 - 20) * self::SECONDS_PER_DAY; @@ -79,16 +81,8 @@ class ExpirationTest extends \Test\TestCase { ]; } - /** - * @dataProvider expirationData - * - * @param string $retentionObligation - * @param int $timeNow - * @param int $timestamp - * @param bool $quotaExceeded - * @param string $expectedResult - */ - public function testExpiration($retentionObligation, $timeNow, $timestamp, $quotaExceeded, $expectedResult) { + #[\PHPUnit\Framework\Attributes\DataProvider('expirationData')] + public function testExpiration(string $retentionObligation, int $timeNow, int $timestamp, bool $quotaExceeded, bool $expectedResult): void { $mockedConfig = $this->getMockedConfig($retentionObligation); $mockedTimeFactory = $this->getMockedTimeFactory($timeNow); $mockedLogger = $this->createMock(LoggerInterface::class); @@ -100,11 +94,7 @@ class ExpirationTest extends \Test\TestCase { } - /** - * @param int $time - * @return ITimeFactory|MockObject - */ - private function getMockedTimeFactory($time) { + private function getMockedTimeFactory(int $time): ITimeFactory&MockObject { $mockedTimeFactory = $this->createMock(ITimeFactory::class); $mockedTimeFactory->expects($this->any()) ->method('getTime') @@ -113,11 +103,7 @@ class ExpirationTest extends \Test\TestCase { return $mockedTimeFactory; } - /** - * @param string $returnValue - * @return IConfig|MockObject - */ - private function getMockedConfig($returnValue) { + private function getMockedConfig(string $returnValue): IConfig&MockObject { $mockedConfig = $this->createMock(IConfig::class); $mockedConfig->expects($this->any()) ->method('getSystemValue') diff --git a/apps/files_versions/tests/StorageTest.php b/apps/files_versions/tests/StorageTest.php index ead125e905c..443cff3ee06 100644 --- a/apps/files_versions/tests/StorageTest.php +++ b/apps/files_versions/tests/StorageTest.php @@ -12,6 +12,7 @@ use OCA\Files_Versions\Expiration; use OCA\Files_Versions\Storage; use OCP\Files\IRootFolder; use OCP\Files\NotFoundException; +use OCP\Server; use Test\TestCase; use Test\Traits\UserTrait; @@ -23,7 +24,7 @@ class StorageTest extends TestCase { private $versionsRoot; private $userFolder; - private $expireTimestamp = 10; + private int $expireTimestamp = 10; protected function setUp(): void { parent::setUp(); @@ -40,22 +41,22 @@ class StorageTest extends TestCase { $this->createUser('version_test', ''); $this->loginAsUser('version_test'); /** @var IRootFolder $root */ - $root = \OC::$server->get(IRootFolder::class); + $root = Server::get(IRootFolder::class); $this->userFolder = $root->getUserFolder('version_test'); } - protected function createPastFile(string $path, int $mtime) { + protected function createPastFile(string $path, int $mtime): void { try { $file = $this->userFolder->get($path); + $file->putContent((string)$mtime); } catch (NotFoundException $e) { - $file = $this->userFolder->newFile($path); + $file = $this->userFolder->newFile($path, (string)$mtime); } - $file->putContent((string)$mtime); $file->touch($mtime); } - public function testExpireMaxAge() { + public function testExpireMaxAge(): void { $this->userFolder->newFolder('folder1'); $this->userFolder->newFolder('folder1/sub1'); $this->userFolder->newFolder('folder2'); diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php index 1560dc984f7..c9f7d27d7ab 100644 --- a/apps/files_versions/tests/VersioningTest.php +++ b/apps/files_versions/tests/VersioningTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -6,14 +8,28 @@ */ namespace OCA\Files_Versions\Tests; +use OC\AllConfig; +use OC\Files\Cache\Watcher; +use OC\Files\Filesystem; use OC\Files\Storage\Temporary; +use OC\Files\View; +use OC\SystemConfig; +use OC\User\NoUserException; +use OCA\Files_Sharing\AppInfo\Application; use OCA\Files_Versions\Db\VersionEntity; use OCA\Files_Versions\Db\VersionsMapper; +use OCA\Files_Versions\Events\VersionRestoredEvent; +use OCA\Files_Versions\Storage; use OCA\Files_Versions\Versions\IVersionManager; +use OCP\Constants; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\IMimeTypeLoader; use OCP\IConfig; use OCP\IUser; +use OCP\IUserManager; +use OCP\Server; use OCP\Share\IShare; +use OCP\Util; /** * Class Test_Files_versions @@ -27,7 +43,7 @@ class VersioningTest extends \Test\TestCase { public const USERS_VERSIONS_ROOT = '/test-versions-user/files_versions'; /** - * @var \OC\Files\View + * @var View */ private $rootView; /** @@ -44,7 +60,7 @@ class VersioningTest extends \Test\TestCase { public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); - $application = new \OCA\Files_Sharing\AppInfo\Application(); + $application = new Application(); // create test user self::loginHelper(self::TEST_VERSIONS_USER2, true); @@ -53,11 +69,11 @@ class VersioningTest extends \Test\TestCase { public static function tearDownAfterClass(): void { // cleanup test user - $user = \OC::$server->getUserManager()->get(self::TEST_VERSIONS_USER); + $user = Server::get(IUserManager::class)->get(self::TEST_VERSIONS_USER); if ($user !== null) { $user->delete(); } - $user = \OC::$server->getUserManager()->get(self::TEST_VERSIONS_USER2); + $user = Server::get(IUserManager::class)->get(self::TEST_VERSIONS_USER2); if ($user !== null) { $user->delete(); } @@ -68,32 +84,35 @@ class VersioningTest extends \Test\TestCase { protected function setUp(): void { parent::setUp(); - $config = \OC::$server->getConfig(); - $mockConfig = $this->createMock(IConfig::class); + $config = Server::get(IConfig::class); + $mockConfig = $this->getMockBuilder(AllConfig::class) + ->onlyMethods(['getSystemValue']) + ->setConstructorArgs([Server::get(SystemConfig::class)]) + ->getMock(); $mockConfig->expects($this->any()) ->method('getSystemValue') ->willReturnCallback(function ($key, $default) use ($config) { if ($key === 'filesystem_check_changes') { - return \OC\Files\Cache\Watcher::CHECK_ONCE; + return Watcher::CHECK_ONCE; } else { return $config->getSystemValue($key, $default); } }); - $this->overwriteService(\OC\AllConfig::class, $mockConfig); + $this->overwriteService(AllConfig::class, $mockConfig); // clear hooks \OC_Hook::clear(); - \OC::registerShareHooks(\OC::$server->getSystemConfig()); + \OC::registerShareHooks(Server::get(SystemConfig::class)); \OC::$server->boot(); self::loginHelper(self::TEST_VERSIONS_USER); - $this->rootView = new \OC\Files\View(); + $this->rootView = new View(); if (!$this->rootView->file_exists(self::USERS_VERSIONS_ROOT)) { $this->rootView->mkdir(self::USERS_VERSIONS_ROOT); } - $this->versionsMapper = \OCP\Server::get(VersionsMapper::class); - $this->mimeTypeLoader = \OCP\Server::get(IMimeTypeLoader::class); + $this->versionsMapper = Server::get(VersionsMapper::class); + $this->mimeTypeLoader = Server::get(IMimeTypeLoader::class); $this->user1 = $this->createMock(IUser::class); $this->user1->method('getUID') @@ -104,7 +123,7 @@ class VersioningTest extends \Test\TestCase { } protected function tearDown(): void { - $this->restoreService(\OC\AllConfig::class); + $this->restoreService(AllConfig::class); if ($this->rootView) { $this->rootView->deleteAll(self::TEST_VERSIONS_USER . '/files/'); @@ -121,9 +140,9 @@ class VersioningTest extends \Test\TestCase { /** * @medium * test expire logic - * @dataProvider versionsProvider */ - public function testGetExpireList($versions, $sizeOfAllDeletedFiles) { + #[\PHPUnit\Framework\Attributes\DataProvider('versionsProvider')] + public function testGetExpireList($versions, $sizeOfAllDeletedFiles): void { // last interval end at 2592000 $startTime = 5000000; @@ -137,61 +156,61 @@ class VersioningTest extends \Test\TestCase { // the deleted array should only contain versions which should be deleted foreach ($deleted as $key => $path) { unset($versions[$key]); - $this->assertEquals("delete", substr($path, 0, strlen("delete"))); + $this->assertEquals('delete', substr($path, 0, strlen('delete'))); } // the versions array should only contain versions which should be kept foreach ($versions as $version) { - $this->assertEquals("keep", $version['path']); + $this->assertEquals('keep', $version['path']); } } - public function versionsProvider() { + public static function versionsProvider(): array { return [ // first set of versions uniformly distributed versions [ [ // first slice (10sec) keep one version every 2 seconds - ["version" => 4999999, "path" => "keep", "size" => 1], - ["version" => 4999998, "path" => "delete", "size" => 1], - ["version" => 4999997, "path" => "keep", "size" => 1], - ["version" => 4999995, "path" => "keep", "size" => 1], - ["version" => 4999994, "path" => "delete", "size" => 1], + ['version' => 4999999, 'path' => 'keep', 'size' => 1], + ['version' => 4999998, 'path' => 'delete', 'size' => 1], + ['version' => 4999997, 'path' => 'keep', 'size' => 1], + ['version' => 4999995, 'path' => 'keep', 'size' => 1], + ['version' => 4999994, 'path' => 'delete', 'size' => 1], //next slice (60sec) starts at 4999990 keep one version every 10 secons - ["version" => 4999988, "path" => "keep", "size" => 1], - ["version" => 4999978, "path" => "keep", "size" => 1], - ["version" => 4999975, "path" => "delete", "size" => 1], - ["version" => 4999972, "path" => "delete", "size" => 1], - ["version" => 4999967, "path" => "keep", "size" => 1], - ["version" => 4999958, "path" => "delete", "size" => 1], - ["version" => 4999957, "path" => "keep", "size" => 1], + ['version' => 4999988, 'path' => 'keep', 'size' => 1], + ['version' => 4999978, 'path' => 'keep', 'size' => 1], + ['version' => 4999975, 'path' => 'delete', 'size' => 1], + ['version' => 4999972, 'path' => 'delete', 'size' => 1], + ['version' => 4999967, 'path' => 'keep', 'size' => 1], + ['version' => 4999958, 'path' => 'delete', 'size' => 1], + ['version' => 4999957, 'path' => 'keep', 'size' => 1], //next slice (3600sec) start at 4999940 keep one version every 60 seconds - ["version" => 4999900, "path" => "keep", "size" => 1], - ["version" => 4999841, "path" => "delete", "size" => 1], - ["version" => 4999840, "path" => "keep", "size" => 1], - ["version" => 4999780, "path" => "keep", "size" => 1], - ["version" => 4996401, "path" => "keep", "size" => 1], + ['version' => 4999900, 'path' => 'keep', 'size' => 1], + ['version' => 4999841, 'path' => 'delete', 'size' => 1], + ['version' => 4999840, 'path' => 'keep', 'size' => 1], + ['version' => 4999780, 'path' => 'keep', 'size' => 1], + ['version' => 4996401, 'path' => 'keep', 'size' => 1], // next slice (86400sec) start at 4996400 keep one version every 3600 seconds - ["version" => 4996350, "path" => "delete", "size" => 1], - ["version" => 4992800, "path" => "keep", "size" => 1], - ["version" => 4989800, "path" => "delete", "size" => 1], - ["version" => 4989700, "path" => "delete", "size" => 1], - ["version" => 4989200, "path" => "keep", "size" => 1], + ['version' => 4996350, 'path' => 'delete', 'size' => 1], + ['version' => 4992800, 'path' => 'keep', 'size' => 1], + ['version' => 4989800, 'path' => 'delete', 'size' => 1], + ['version' => 4989700, 'path' => 'delete', 'size' => 1], + ['version' => 4989200, 'path' => 'keep', 'size' => 1], // next slice (2592000sec) start at 4913600 keep one version every 86400 seconds - ["version" => 4913600, "path" => "keep", "size" => 1], - ["version" => 4852800, "path" => "delete", "size" => 1], - ["version" => 4827201, "path" => "delete", "size" => 1], - ["version" => 4827200, "path" => "keep", "size" => 1], - ["version" => 4777201, "path" => "delete", "size" => 1], - ["version" => 4777501, "path" => "delete", "size" => 1], - ["version" => 4740000, "path" => "keep", "size" => 1], + ['version' => 4913600, 'path' => 'keep', 'size' => 1], + ['version' => 4852800, 'path' => 'delete', 'size' => 1], + ['version' => 4827201, 'path' => 'delete', 'size' => 1], + ['version' => 4827200, 'path' => 'keep', 'size' => 1], + ['version' => 4777201, 'path' => 'delete', 'size' => 1], + ['version' => 4777501, 'path' => 'delete', 'size' => 1], + ['version' => 4740000, 'path' => 'keep', 'size' => 1], // final slice starts at 2408000 keep one version every 604800 secons - ["version" => 2408000, "path" => "keep", "size" => 1], - ["version" => 1803201, "path" => "delete", "size" => 1], - ["version" => 1803200, "path" => "keep", "size" => 1], - ["version" => 1800199, "path" => "delete", "size" => 1], - ["version" => 1800100, "path" => "delete", "size" => 1], - ["version" => 1198300, "path" => "keep", "size" => 1], + ['version' => 2408000, 'path' => 'keep', 'size' => 1], + ['version' => 1803201, 'path' => 'delete', 'size' => 1], + ['version' => 1803200, 'path' => 'keep', 'size' => 1], + ['version' => 1800199, 'path' => 'delete', 'size' => 1], + ['version' => 1800100, 'path' => 'delete', 'size' => 1], + ['version' => 1198300, 'path' => 'keep', 'size' => 1], ], 16 // size of all deleted files (every file has the size 1) ], @@ -202,28 +221,28 @@ class VersioningTest extends \Test\TestCase { // next slice (60sec) starts at 4999990 keep one version every 10 secons // next slice (3600sec) start at 4999940 keep one version every 60 seconds // next slice (86400sec) start at 4996400 keep one version every 3600 seconds - ["version" => 4996400, "path" => "keep", "size" => 1], - ["version" => 4996350, "path" => "delete", "size" => 1], - ["version" => 4996350, "path" => "delete", "size" => 1], - ["version" => 4992800, "path" => "keep", "size" => 1], - ["version" => 4989800, "path" => "delete", "size" => 1], - ["version" => 4989700, "path" => "delete", "size" => 1], - ["version" => 4989200, "path" => "keep", "size" => 1], + ['version' => 4996400, 'path' => 'keep', 'size' => 1], + ['version' => 4996350, 'path' => 'delete', 'size' => 1], + ['version' => 4996350, 'path' => 'delete', 'size' => 1], + ['version' => 4992800, 'path' => 'keep', 'size' => 1], + ['version' => 4989800, 'path' => 'delete', 'size' => 1], + ['version' => 4989700, 'path' => 'delete', 'size' => 1], + ['version' => 4989200, 'path' => 'keep', 'size' => 1], // next slice (2592000sec) start at 4913600 keep one version every 86400 seconds - ["version" => 4913600, "path" => "keep", "size" => 1], - ["version" => 4852800, "path" => "delete", "size" => 1], - ["version" => 4827201, "path" => "delete", "size" => 1], - ["version" => 4827200, "path" => "keep", "size" => 1], - ["version" => 4777201, "path" => "delete", "size" => 1], - ["version" => 4777501, "path" => "delete", "size" => 1], - ["version" => 4740000, "path" => "keep", "size" => 1], + ['version' => 4913600, 'path' => 'keep', 'size' => 1], + ['version' => 4852800, 'path' => 'delete', 'size' => 1], + ['version' => 4827201, 'path' => 'delete', 'size' => 1], + ['version' => 4827200, 'path' => 'keep', 'size' => 1], + ['version' => 4777201, 'path' => 'delete', 'size' => 1], + ['version' => 4777501, 'path' => 'delete', 'size' => 1], + ['version' => 4740000, 'path' => 'keep', 'size' => 1], // final slice starts at 2408000 keep one version every 604800 secons - ["version" => 2408000, "path" => "keep", "size" => 1], - ["version" => 1803201, "path" => "delete", "size" => 1], - ["version" => 1803200, "path" => "keep", "size" => 1], - ["version" => 1800199, "path" => "delete", "size" => 1], - ["version" => 1800100, "path" => "delete", "size" => 1], - ["version" => 1198300, "path" => "keep", "size" => 1], + ['version' => 2408000, 'path' => 'keep', 'size' => 1], + ['version' => 1803201, 'path' => 'delete', 'size' => 1], + ['version' => 1803200, 'path' => 'keep', 'size' => 1], + ['version' => 1800199, 'path' => 'delete', 'size' => 1], + ['version' => 1800100, 'path' => 'delete', 'size' => 1], + ['version' => 1198300, 'path' => 'keep', 'size' => 1], ], 11 // size of all deleted files (every file has the size 1) ], @@ -231,32 +250,32 @@ class VersioningTest extends \Test\TestCase { [ [ // first slice (10sec) keep one version every 2 seconds - ["version" => 4999999, "path" => "keep", "size" => 1], - ["version" => 4999998, "path" => "delete", "size" => 1], - ["version" => 4999997, "path" => "keep", "size" => 1], - ["version" => 4999995, "path" => "keep", "size" => 1], - ["version" => 4999994, "path" => "delete", "size" => 1], + ['version' => 4999999, 'path' => 'keep', 'size' => 1], + ['version' => 4999998, 'path' => 'delete', 'size' => 1], + ['version' => 4999997, 'path' => 'keep', 'size' => 1], + ['version' => 4999995, 'path' => 'keep', 'size' => 1], + ['version' => 4999994, 'path' => 'delete', 'size' => 1], //next slice (60sec) starts at 4999990 keep one version every 10 secons - ["version" => 4999988, "path" => "keep", "size" => 1], - ["version" => 4999978, "path" => "keep", "size" => 1], + ['version' => 4999988, 'path' => 'keep', 'size' => 1], + ['version' => 4999978, 'path' => 'keep', 'size' => 1], //next slice (3600sec) start at 4999940 keep one version every 60 seconds // next slice (86400sec) start at 4996400 keep one version every 3600 seconds - ["version" => 4989200, "path" => "keep", "size" => 1], + ['version' => 4989200, 'path' => 'keep', 'size' => 1], // next slice (2592000sec) start at 4913600 keep one version every 86400 seconds - ["version" => 4913600, "path" => "keep", "size" => 1], - ["version" => 4852800, "path" => "delete", "size" => 1], - ["version" => 4827201, "path" => "delete", "size" => 1], - ["version" => 4827200, "path" => "keep", "size" => 1], - ["version" => 4777201, "path" => "delete", "size" => 1], - ["version" => 4777501, "path" => "delete", "size" => 1], - ["version" => 4740000, "path" => "keep", "size" => 1], + ['version' => 4913600, 'path' => 'keep', 'size' => 1], + ['version' => 4852800, 'path' => 'delete', 'size' => 1], + ['version' => 4827201, 'path' => 'delete', 'size' => 1], + ['version' => 4827200, 'path' => 'keep', 'size' => 1], + ['version' => 4777201, 'path' => 'delete', 'size' => 1], + ['version' => 4777501, 'path' => 'delete', 'size' => 1], + ['version' => 4740000, 'path' => 'keep', 'size' => 1], // final slice starts at 2408000 keep one version every 604800 secons - ["version" => 2408000, "path" => "keep", "size" => 1], - ["version" => 1803201, "path" => "delete", "size" => 1], - ["version" => 1803200, "path" => "keep", "size" => 1], - ["version" => 1800199, "path" => "delete", "size" => 1], - ["version" => 1800100, "path" => "delete", "size" => 1], - ["version" => 1198300, "path" => "keep", "size" => 1], + ['version' => 2408000, 'path' => 'keep', 'size' => 1], + ['version' => 1803201, 'path' => 'delete', 'size' => 1], + ['version' => 1803200, 'path' => 'keep', 'size' => 1], + ['version' => 1800199, 'path' => 'delete', 'size' => 1], + ['version' => 1800100, 'path' => 'delete', 'size' => 1], + ['version' => 1198300, 'path' => 'keep', 'size' => 1], ], 9 // size of all deleted files (every file has the size 1) ], @@ -269,8 +288,8 @@ class VersioningTest extends \Test\TestCase { ]; } - public function testRename() { - \OC\Files\Filesystem::file_put_contents("test.txt", "test file"); + public function testRename(): void { + Filesystem::file_put_contents('test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -287,7 +306,7 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); // execute rename hook of versions app - \OC\Files\Filesystem::rename("test.txt", "test2.txt"); + Filesystem::rename('test.txt', 'test2.txt'); $this->runCommands(); @@ -298,10 +317,10 @@ class VersioningTest extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v2Renamed), 'version 2 of renamed file exists'); } - public function testRenameInSharedFolder() { - \OC\Files\Filesystem::mkdir('folder1'); - \OC\Files\Filesystem::mkdir('folder1/folder2'); - \OC\Files\Filesystem::file_put_contents("folder1/test.txt", "test file"); + public function testRenameInSharedFolder(): void { + Filesystem::mkdir('folder1'); + Filesystem::mkdir('folder1/folder2'); + Filesystem::file_put_contents('folder1/test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -319,21 +338,21 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder1'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_ALL); - $share = \OC::$server->getShareManager()->createShare($share); - \OC::$server->getShareManager()->acceptShare($share, self::TEST_VERSIONS_USER2); + ->setPermissions(Constants::PERMISSION_ALL); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + Server::get(\OCP\Share\IManager::class)->acceptShare($share, self::TEST_VERSIONS_USER2); self::loginHelper(self::TEST_VERSIONS_USER2); - $this->assertTrue(\OC\Files\Filesystem::file_exists('folder1/test.txt')); + $this->assertTrue(Filesystem::file_exists('folder1/test.txt')); // execute rename hook of versions app - \OC\Files\Filesystem::rename('/folder1/test.txt', '/folder1/folder2/test.txt'); + Filesystem::rename('/folder1/test.txt', '/folder1/folder2/test.txt'); $this->runCommands(); @@ -345,13 +364,13 @@ class VersioningTest extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed), 'version 1 of renamed file exists'); $this->assertTrue($this->rootView->file_exists($v2Renamed), 'version 2 of renamed file exists'); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); } - public function testMoveFolder() { - \OC\Files\Filesystem::mkdir('folder1'); - \OC\Files\Filesystem::mkdir('folder2'); - \OC\Files\Filesystem::file_put_contents('folder1/test.txt', 'test file'); + public function testMoveFolder(): void { + Filesystem::mkdir('folder1'); + Filesystem::mkdir('folder2'); + Filesystem::file_put_contents('folder1/test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -369,7 +388,7 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); // execute rename hook of versions app - \OC\Files\Filesystem::rename('folder1', 'folder2/folder1'); + Filesystem::rename('folder1', 'folder2/folder1'); $this->runCommands(); @@ -381,23 +400,23 @@ class VersioningTest extends \Test\TestCase { } - public function testMoveFileIntoSharedFolderAsRecipient() { - \OC\Files\Filesystem::mkdir('folder1'); - $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1'); + public function testMoveFileIntoSharedFolderAsRecipient(): void { + Filesystem::mkdir('folder1'); + $fileInfo = Filesystem::getFileInfo('folder1'); $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder1'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_ALL); - $share = \OC::$server->getShareManager()->createShare($share); - \OC::$server->getShareManager()->acceptShare($share, self::TEST_VERSIONS_USER2); + ->setPermissions(Constants::PERMISSION_ALL); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + Server::get(\OCP\Share\IManager::class)->acceptShare($share, self::TEST_VERSIONS_USER2); self::loginHelper(self::TEST_VERSIONS_USER2); $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions'; - \OC\Files\Filesystem::file_put_contents('test.txt', 'test file'); + Filesystem::file_put_contents('test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -413,8 +432,9 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); // move file into the shared folder as recipient - \OC\Files\Filesystem::rename('/test.txt', '/folder1/test.txt'); + $success = Filesystem::rename('/test.txt', '/folder1/test.txt'); + $this->assertTrue($success); $this->assertFalse($this->rootView->file_exists($v1)); $this->assertFalse($this->rootView->file_exists($v2)); @@ -428,26 +448,26 @@ class VersioningTest extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); } - public function testMoveFolderIntoSharedFolderAsRecipient() { - \OC\Files\Filesystem::mkdir('folder1'); + public function testMoveFolderIntoSharedFolderAsRecipient(): void { + Filesystem::mkdir('folder1'); $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder1'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_ALL); - $share = \OC::$server->getShareManager()->createShare($share); - \OC::$server->getShareManager()->acceptShare($share, self::TEST_VERSIONS_USER2); + ->setPermissions(Constants::PERMISSION_ALL); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + Server::get(\OCP\Share\IManager::class)->acceptShare($share, self::TEST_VERSIONS_USER2); self::loginHelper(self::TEST_VERSIONS_USER2); $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions'; - \OC\Files\Filesystem::mkdir('folder2'); - \OC\Files\Filesystem::file_put_contents('folder2/test.txt', 'test file'); + Filesystem::mkdir('folder2'); + Filesystem::file_put_contents('folder2/test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -464,7 +484,7 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); // move file into the shared folder as recipient - \OC\Files\Filesystem::rename('/folder2', '/folder1/folder2'); + Filesystem::rename('/folder2', '/folder1/folder2'); $this->assertFalse($this->rootView->file_exists($v1)); $this->assertFalse($this->rootView->file_exists($v2)); @@ -479,11 +499,11 @@ class VersioningTest extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); } - public function testRenameSharedFile() { - \OC\Files\Filesystem::file_put_contents("test.txt", "test file"); + public function testRenameSharedFile(): void { + Filesystem::file_put_contents('test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -502,21 +522,21 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('test.txt'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE); - $share = \OC::$server->getShareManager()->createShare($share); - \OC::$server->getShareManager()->acceptShare($share, self::TEST_VERSIONS_USER2); + ->setPermissions(Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + Server::get(\OCP\Share\IManager::class)->acceptShare($share, self::TEST_VERSIONS_USER2); self::loginHelper(self::TEST_VERSIONS_USER2); - $this->assertTrue(\OC\Files\Filesystem::file_exists('test.txt')); + $this->assertTrue(Filesystem::file_exists('test.txt')); // execute rename hook of versions app - \OC\Files\Filesystem::rename('test.txt', 'test2.txt'); + Filesystem::rename('test.txt', 'test2.txt'); self::loginHelper(self::TEST_VERSIONS_USER); @@ -528,11 +548,11 @@ class VersioningTest extends \Test\TestCase { $this->assertFalse($this->rootView->file_exists($v1Renamed)); $this->assertFalse($this->rootView->file_exists($v2Renamed)); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); } - public function testCopy() { - \OC\Files\Filesystem::file_put_contents("test.txt", "test file"); + public function testCopy(): void { + Filesystem::file_put_contents('test.txt', 'test file'); $t1 = time(); // second version is two weeks older, this way we make sure that no @@ -549,7 +569,7 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); // execute copy hook of versions app - \OC\Files\Filesystem::copy("test.txt", "test2.txt"); + Filesystem::copy('test.txt', 'test2.txt'); $this->runCommands(); @@ -564,7 +584,7 @@ class VersioningTest extends \Test\TestCase { * test if we find all versions and if the versions array contain * the correct 'path' and 'name' */ - public function testGetVersions() { + public function testGetVersions(): void { $t1 = time(); // second version is two weeks older, this way we make sure that no // version will be expired @@ -580,7 +600,7 @@ class VersioningTest extends \Test\TestCase { $this->rootView->file_put_contents($v2, 'version2'); // execute copy hook of versions app - $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, '/subfolder/test.txt'); + $versions = Storage::getVersions(self::TEST_VERSIONS_USER, '/subfolder/test.txt'); $this->assertCount(2, $versions); @@ -597,65 +617,65 @@ class VersioningTest extends \Test\TestCase { * test if we find all versions and if the versions array contain * the correct 'path' and 'name' */ - public function testGetVersionsEmptyFile() { + public function testGetVersionsEmptyFile(): void { // execute copy hook of versions app - $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, ''); + $versions = Storage::getVersions(self::TEST_VERSIONS_USER, ''); $this->assertCount(0, $versions); - $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, null); + $versions = Storage::getVersions(self::TEST_VERSIONS_USER, null); $this->assertCount(0, $versions); } - public function testExpireNonexistingFile() { + public function testExpireNonexistingFile(): void { $this->logout(); // needed to have a FS setup (the background job does this) \OC_Util::setupFS(self::TEST_VERSIONS_USER); - $this->assertFalse(\OCA\Files_Versions\Storage::expire('/void/unexist.txt', self::TEST_VERSIONS_USER)); + $this->assertFalse(Storage::expire('/void/unexist.txt', self::TEST_VERSIONS_USER)); } - public function testExpireNonexistingUser() { - $this->expectException(\OC\User\NoUserException::class); + public function testExpireNonexistingUser(): void { + $this->expectException(NoUserException::class); $this->logout(); // needed to have a FS setup (the background job does this) \OC_Util::setupFS(self::TEST_VERSIONS_USER); - \OC\Files\Filesystem::file_put_contents("test.txt", "test file"); + Filesystem::file_put_contents('test.txt', 'test file'); - $this->assertFalse(\OCA\Files_Versions\Storage::expire('test.txt', 'unexist')); + $this->assertFalse(Storage::expire('test.txt', 'unexist')); } - public function testRestoreSameStorage() { - \OC\Files\Filesystem::mkdir('sub'); + public function testRestoreSameStorage(): void { + Filesystem::mkdir('sub'); $this->doTestRestore(); } - public function testRestoreCrossStorage() { + public function testRestoreCrossStorage(): void { $storage2 = new Temporary([]); - \OC\Files\Filesystem::mount($storage2, [], self::TEST_VERSIONS_USER . '/files/sub'); + Filesystem::mount($storage2, [], self::TEST_VERSIONS_USER . '/files/sub'); $this->doTestRestore(); } - public function testRestoreNoPermission() { + public function testRestoreNoPermission(): void { $this->loginAsUser(self::TEST_VERSIONS_USER); $userHome = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER); $node = $userHome->newFolder('folder'); $file = $node->newFile('test.txt'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_READ); - $share = \OC::$server->getShareManager()->createShare($share); - \OC::$server->getShareManager()->acceptShare($share, self::TEST_VERSIONS_USER2); + ->setPermissions(Constants::PERMISSION_READ); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + Server::get(\OCP\Share\IManager::class)->acceptShare($share, self::TEST_VERSIONS_USER2); $versions = $this->createAndCheckVersions( - \OC\Files\Filesystem::getView(), + Filesystem::getView(), 'folder/test.txt' ); @@ -665,15 +685,15 @@ class VersioningTest extends \Test\TestCase { $firstVersion = current($versions); - $this->assertFalse(\OCA\Files_Versions\Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user2), 'Revert did not happen'); + $this->assertFalse(Storage::rollback('folder/test.txt', (int)$firstVersion['version'], $this->user2), 'Revert did not happen'); $this->loginAsUser(self::TEST_VERSIONS_USER); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); $this->assertEquals('test file', $file->getContent(), 'File content has not changed'); } - public function testRestoreMovedShare() { + public function testRestoreMovedShare(): void { $this->markTestSkipped('Unreliable test'); $this->loginAsUser(self::TEST_VERSIONS_USER); @@ -684,21 +704,21 @@ class VersioningTest extends \Test\TestCase { $userHome2 = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER2); $userHome2->newFolder('subfolder'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_ALL); - $share = \OC::$server->getShareManager()->createShare($share); - $shareManager = \OC::$server->getShareManager(); + ->setPermissions(Constants::PERMISSION_ALL); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + $shareManager = Server::get(\OCP\Share\IManager::class); $shareManager->acceptShare($share, self::TEST_VERSIONS_USER2); - $share->setTarget("subfolder/folder"); + $share->setTarget('subfolder/folder'); $shareManager->moveShare($share, self::TEST_VERSIONS_USER2); $versions = $this->createAndCheckVersions( - \OC\Files\Filesystem::getView(), + Filesystem::getView(), 'folder/test.txt' ); @@ -708,11 +728,11 @@ class VersioningTest extends \Test\TestCase { $firstVersion = current($versions); - $this->assertTrue(\OCA\Files_Versions\Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user1)); + $this->assertTrue(Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user1)); $this->loginAsUser(self::TEST_VERSIONS_USER); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); $this->assertEquals('version 2', $file->getContent(), 'File content has not changed'); } @@ -725,19 +745,19 @@ class VersioningTest extends \Test\TestCase { return; } - $eventHandler = $this->getMockBuilder(\stdclass::class) - ->setMethods(['callback']) + $eventHandler = $this->getMockBuilder(DummyHookListener::class) + ->onlyMethods(['callback']) ->getMock(); $eventHandler->expects($this->any()) ->method('callback') ->willReturnCallback( - function ($p) use (&$params) { + function ($p) use (&$params): void { $params = $p; } ); - \OCP\Util::connectHook( + Util::connectHook( '\OCP\Versions', $hookName, $eventHandler, @@ -745,7 +765,7 @@ class VersioningTest extends \Test\TestCase { ); } - private function doTestRestore() { + private function doTestRestore(): void { $filePath = self::TEST_VERSIONS_USER . '/files/sub/test.txt'; $this->rootView->file_put_contents($filePath, 'test file'); @@ -783,7 +803,7 @@ class VersioningTest extends \Test\TestCase { $versionEntity->setMetadata([]); $this->versionsMapper->insert($versionEntity); - $oldVersions = \OCA\Files_Versions\Storage::getVersions( + $oldVersions = Storage::getVersions( self::TEST_VERSIONS_USER, '/sub/test.txt' ); @@ -792,22 +812,22 @@ class VersioningTest extends \Test\TestCase { $this->assertEquals('test file', $this->rootView->file_get_contents($filePath)); $info1 = $this->rootView->getFileInfo($filePath); - $params = []; - $this->connectMockHooks('rollback', $params); + $eventDispatcher = Server::get(IEventDispatcher::class); + $eventFired = false; + $eventDispatcher->addListener(VersionRestoredEvent::class, function ($event) use (&$eventFired, $t2): void { + $eventFired = true; + $this->assertEquals('/sub/test.txt', $event->getVersion()->getVersionPath()); + $this->assertTrue($event->getVersion()->getRevisionId() > 0); + }); - $versionManager = \OCP\Server::get(IVersionManager::class); + $versionManager = Server::get(IVersionManager::class); $versions = $versionManager->getVersionsForFile($this->user1, $info1); $version = array_filter($versions, function ($version) use ($t2) { return $version->getRevisionId() === $t2; }); $this->assertTrue($versionManager->rollback(current($version))); - $expectedParams = [ - 'path' => '/sub/test.txt', - ]; - $this->assertEquals($expectedParams['path'], $params['path']); - $this->assertTrue(array_key_exists('revision', $params)); - $this->assertTrue($params['revision'] > 0); + $this->assertTrue($eventFired, 'VersionRestoredEvent was not fired'); $this->assertEquals('version2', $this->rootView->file_get_contents($filePath)); $info2 = $this->rootView->getFileInfo($filePath); @@ -828,7 +848,7 @@ class VersioningTest extends \Test\TestCase { 'Restored file has mtime from version' ); - $newVersions = \OCA\Files_Versions\Storage::getVersions( + $newVersions = Storage::getVersions( self::TEST_VERSIONS_USER, '/sub/test.txt' ); @@ -864,11 +884,11 @@ class VersioningTest extends \Test\TestCase { /** * Test whether versions are created when overwriting as owner */ - public function testStoreVersionAsOwner() { + public function testStoreVersionAsOwner(): void { $this->loginAsUser(self::TEST_VERSIONS_USER); $this->createAndCheckVersions( - \OC\Files\Filesystem::getView(), + Filesystem::getView(), 'test.txt' ); } @@ -876,30 +896,30 @@ class VersioningTest extends \Test\TestCase { /** * Test whether versions are created when overwriting as share recipient */ - public function testStoreVersionAsRecipient() { + public function testStoreVersionAsRecipient(): void { $this->loginAsUser(self::TEST_VERSIONS_USER); - \OC\Files\Filesystem::mkdir('folder'); - \OC\Files\Filesystem::file_put_contents('folder/test.txt', 'test file'); + Filesystem::mkdir('folder'); + Filesystem::file_put_contents('folder/test.txt', 'test file'); $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder'); - $share = \OC::$server->getShareManager()->newShare(); + $share = Server::get(\OCP\Share\IManager::class)->newShare(); $share->setNode($node) ->setShareType(IShare::TYPE_USER) ->setSharedBy(self::TEST_VERSIONS_USER) ->setSharedWith(self::TEST_VERSIONS_USER2) - ->setPermissions(\OCP\Constants::PERMISSION_ALL); - $share = \OC::$server->getShareManager()->createShare($share); - \OC::$server->getShareManager()->acceptShare($share, self::TEST_VERSIONS_USER2); + ->setPermissions(Constants::PERMISSION_ALL); + $share = Server::get(\OCP\Share\IManager::class)->createShare($share); + Server::get(\OCP\Share\IManager::class)->acceptShare($share, self::TEST_VERSIONS_USER2); $this->loginAsUser(self::TEST_VERSIONS_USER2); $this->createAndCheckVersions( - \OC\Files\Filesystem::getView(), + Filesystem::getView(), 'folder/test.txt' ); - \OC::$server->getShareManager()->deleteShare($share); + Server::get(\OCP\Share\IManager::class)->deleteShare($share); } /** @@ -909,25 +929,21 @@ class VersioningTest extends \Test\TestCase { * is logged in. File modification must still be able to find * the owner and create versions. */ - public function testStoreVersionAsAnonymous() { + public function testStoreVersionAsAnonymous(): void { $this->logout(); // note: public link upload does this, // needed to make the hooks fire \OC_Util::setupFS(self::TEST_VERSIONS_USER); - $userView = new \OC\Files\View('/' . self::TEST_VERSIONS_USER . '/files'); + $userView = new View('/' . self::TEST_VERSIONS_USER . '/files'); $this->createAndCheckVersions( $userView, 'test.txt' ); } - /** - * @param \OC\Files\View $view - * @param string $path - */ - private function createAndCheckVersions(\OC\Files\View $view, $path) { + private function createAndCheckVersions(View $view, string $path): array { $view->file_put_contents($path, 'test file'); $view->file_put_contents($path, 'version 1'); $view->file_put_contents($path, 'version 2'); @@ -938,7 +954,7 @@ class VersioningTest extends \Test\TestCase { [$rootStorage,] = $this->rootView->resolvePath(self::TEST_VERSIONS_USER . '/files_versions'); $rootStorage->getScanner()->scan('files_versions'); - $versions = \OCA\Files_Versions\Storage::getVersions( + $versions = Storage::getVersions( self::TEST_VERSIONS_USER, '/' . $path ); @@ -949,28 +965,29 @@ class VersioningTest extends \Test\TestCase { return $versions; } - /** - * @param string $user - * @param bool $create - */ - public static function loginHelper($user, $create = false) { + public static function loginHelper(string $user, bool $create = false) { if ($create) { $backend = new \Test\Util\User\Dummy(); $backend->createUser($user, $user); - \OC::$server->getUserManager()->registerBackend($backend); + Server::get(IUserManager::class)->registerBackend($backend); } \OC_Util::tearDownFS(); \OC_User::setUserId(''); - \OC\Files\Filesystem::tearDown(); + Filesystem::tearDown(); \OC_User::setUserId($user); \OC_Util::setupFS($user); \OC::$server->getUserFolder($user); } } +class DummyHookListener { + public function callback() { + } +} + // extend the original class to make it possible to test protected methods -class VersionStorageToTest extends \OCA\Files_Versions\Storage { +class VersionStorageToTest extends Storage { /** * @param integer $time diff --git a/apps/files_versions/tests/Versions/VersionManagerTest.php b/apps/files_versions/tests/Versions/VersionManagerTest.php index d621d67a6de..79caa65d5f1 100644 --- a/apps/files_versions/tests/Versions/VersionManagerTest.php +++ b/apps/files_versions/tests/Versions/VersionManagerTest.php @@ -6,12 +6,16 @@ declare(strict_types=1); * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\files_versions\tests\Versions; +namespace OCA\Files_Versions\Tests\Versions; use OC\Files\Storage\Local; +use OCA\Files_Versions\Events\VersionRestoredEvent; +use OCA\Files_Versions\Versions\IVersion; use OCA\Files_Versions\Versions\IVersionBackend; use OCA\Files_Versions\Versions\VersionManager; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Storage\IStorage; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class VersionManagerTest extends TestCase { @@ -22,23 +26,25 @@ class VersionManagerTest extends TestCase { return $backend; } - private function getStorage(string $class): IStorage { + private function getStorage(string $class): IStorage&MockObject { return $this->getMockBuilder($class) ->disableOriginalConstructor() - ->setMethodsExcept(['instanceOfStorage']) + ->onlyMethods(array_diff(get_class_methods($class), ['instanceOfStorage'])) ->getMock(); } - public function testGetBackendSingle() { - $manager = new VersionManager(); + public function testGetBackendSingle(): void { + $dispatcher = $this->createMock(IEventDispatcher::class); + $manager = new VersionManager($dispatcher); $backend = $this->getBackend(); $manager->registerBackend(IStorage::class, $backend); $this->assertEquals($backend, $manager->getBackendForStorage($this->getStorage(Local::class))); } - public function testGetBackendMoreSpecific() { - $manager = new VersionManager(); + public function testGetBackendMoreSpecific(): void { + $dispatcher = $this->createMock(IEventDispatcher::class); + $manager = new VersionManager($dispatcher); $backend1 = $this->getBackend(); $backend2 = $this->getBackend(); $manager->registerBackend(IStorage::class, $backend1); @@ -47,8 +53,9 @@ class VersionManagerTest extends TestCase { $this->assertEquals($backend2, $manager->getBackendForStorage($this->getStorage(Local::class))); } - public function testGetBackendNoUse() { - $manager = new VersionManager(); + public function testGetBackendNoUse(): void { + $dispatcher = $this->createMock(IEventDispatcher::class); + $manager = new VersionManager($dispatcher); $backend1 = $this->getBackend(); $backend2 = $this->getBackend(false); $manager->registerBackend(IStorage::class, $backend1); @@ -57,8 +64,9 @@ class VersionManagerTest extends TestCase { $this->assertEquals($backend1, $manager->getBackendForStorage($this->getStorage(Local::class))); } - public function testGetBackendMultiple() { - $manager = new VersionManager(); + public function testGetBackendMultiple(): void { + $dispatcher = $this->createMock(IEventDispatcher::class); + $manager = new VersionManager($dispatcher); $backend1 = $this->getBackend(); $backend2 = $this->getBackend(false); $backend3 = $this->getBackend(); @@ -68,4 +76,65 @@ class VersionManagerTest extends TestCase { $this->assertEquals($backend3, $manager->getBackendForStorage($this->getStorage(Local::class))); } + + public function testRollbackSuccess(): void { + $versionMock = $this->createMock(IVersion::class); + $backendMock = $this->createMock(IVersionBackend::class); + + $backendMock->expects($this->once()) + ->method('rollback') + ->with($versionMock) + ->willReturn(true); + + $versionMock->method('getBackend')->willReturn($backendMock); + + $dispatcherMock = $this->createMock(IEventDispatcher::class); + $dispatcherMock->expects($this->once()) + ->method('dispatchTyped') + ->with($this->isInstanceOf(VersionRestoredEvent::class)); + + $manager = new VersionManager($dispatcherMock); + + $this->assertTrue($manager->rollback($versionMock)); + } + + public function testRollbackNull(): void { + $versionMock = $this->createMock(IVersion::class); + $backendMock = $this->createMock(IVersionBackend::class); + + $backendMock->expects($this->once()) + ->method('rollback') + ->with($versionMock) + ->willReturn(null); + + $versionMock->method('getBackend')->willReturn($backendMock); + + $dispatcherMock = $this->createMock(IEventDispatcher::class); + $dispatcherMock->expects($this->once()) + ->method('dispatchTyped') + ->with($this->isInstanceOf(VersionRestoredEvent::class)); + + $manager = new VersionManager($dispatcherMock); + + $this->assertNull($manager->rollback($versionMock)); + } + + public function testRollbackFailure(): void { + $versionMock = $this->createMock(IVersion::class); + $backendMock = $this->createMock(IVersionBackend::class); + + $backendMock->expects($this->once()) + ->method('rollback') + ->with($versionMock) + ->willReturn(false); + + $versionMock->method('getBackend')->willReturn($backendMock); + + $dispatcherMock = $this->createMock(IEventDispatcher::class); + $dispatcherMock->expects($this->never())->method('dispatchTyped'); + + $manager = new VersionManager($dispatcherMock); + + $this->assertFalse($manager->rollback($versionMock)); + } } |