diff options
507 files changed, 4271 insertions, 1547 deletions
diff --git a/apps/encryption/appinfo/application.php b/apps/encryption/appinfo/application.php index 0d6f57f46e9..10ad610cd4a 100644 --- a/apps/encryption/appinfo/application.php +++ b/apps/encryption/appinfo/application.php @@ -104,7 +104,8 @@ class Application extends \OCP\AppFramework\App { $container->query('Crypt'), $container->query('KeyManager'), $container->query('Util'), - $container->getServer()->getLogger() + $container->getServer()->getLogger(), + $container->getServer()->getL10N($container->getAppName()) ); }); @@ -209,7 +210,8 @@ class Application extends \OCP\AppFramework\App { $c->query('Crypt'), $server->getLogger(), $server->getUserSession(), - $server->getConfig()); + $server->getConfig(), + $server->getUserManager()); }); } diff --git a/apps/encryption/css/settings-admin.css b/apps/encryption/css/settings-admin.css new file mode 100644 index 00000000000..47360e6bcf6 --- /dev/null +++ b/apps/encryption/css/settings-admin.css @@ -0,0 +1,23 @@ +/** + * @author Björn Schießle <schiessle@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +#encryptionAPI input[type=password] { + width: 300px; +} diff --git a/apps/encryption/js/settings-admin.js b/apps/encryption/js/settings-admin.js index fdc53c52152..39923718c21 100644 --- a/apps/encryption/js/settings-admin.js +++ b/apps/encryption/js/settings-admin.js @@ -8,37 +8,51 @@ */ $(document).ready(function () { + + $('input:button[name="enableRecoveryKey"]').click(function () { - $('input:radio[name="adminEnableRecovery"]').change( - function () { - var recoveryStatus = $(this).val(); - var oldStatus = (1 + parseInt(recoveryStatus)) % 2; - var recoveryPassword = $('#encryptionRecoveryPassword').val(); - var confirmPassword = $('#repeatEncryptionRecoveryPassword').val(); - OC.msg.startSaving('#encryptionSetRecoveryKey .msg'); - $.post( - OC.generateUrl('/apps/encryption/ajax/adminRecovery'), - { - adminEnableRecovery: recoveryStatus, - recoveryPassword: recoveryPassword, - confirmPassword: confirmPassword + var recoveryStatus = $(this).attr('status'); + var newRecoveryStatus = (1 + parseInt(recoveryStatus)) % 2; + var buttonValue = $(this).attr('value'); + + var recoveryPassword = $('#encryptionRecoveryPassword').val(); + var confirmPassword = $('#repeatEncryptionRecoveryPassword').val(); + OC.msg.startSaving('#encryptionSetRecoveryKey .msg'); + $.post( + OC.generateUrl('/apps/encryption/ajax/adminRecovery'), + { + adminEnableRecovery: newRecoveryStatus, + recoveryPassword: recoveryPassword, + confirmPassword: confirmPassword + } + ).done(function (data) { + OC.msg.finishedSuccess('#encryptionSetRecoveryKey .msg', data.data.message); + + if (newRecoveryStatus === 0) { + $('p[name="changeRecoveryPasswordBlock"]').addClass("hidden"); + $('input:button[name="enableRecoveryKey"]').attr('value', 'Enable recovery key'); + $('input:button[name="enableRecoveryKey"]').attr('status', '0'); + } else { + $('input:password[name="changeRecoveryPassword"]').val(""); + $('p[name="changeRecoveryPasswordBlock"]').removeClass("hidden"); + $('input:button[name="enableRecoveryKey"]').attr('value', 'Disable recovery key'); + $('input:button[name="enableRecoveryKey"]').attr('status', '1'); } - ).done(function (data) { - OC.msg.finishedSuccess('#encryptionSetRecoveryKey .msg', data.data.message); + }) + .fail(function (jqXHR) { + $('input:button[name="enableRecoveryKey"]').attr('value', buttonValue); + $('input:button[name="enableRecoveryKey"]').attr('status', recoveryStatus); + OC.msg.finishedError('#encryptionSetRecoveryKey .msg', JSON.parse(jqXHR.responseText).data.message); + }); + - if (recoveryStatus === "0") { - $('p[name="changeRecoveryPasswordBlock"]').addClass("hidden"); - } else { - $('input:password[name="changeRecoveryPassword"]').val(""); - $('p[name="changeRecoveryPasswordBlock"]').removeClass("hidden"); - } - }) - .fail(function (jqXHR) { - $('input:radio[name="adminEnableRecovery"][value="' + oldStatus.toString() + '"]').attr("checked", "true"); - OC.msg.finishedError('#encryptionSetRecoveryKey .msg', JSON.parse(jqXHR.responseText).data.message); - }); + }); + + $("#repeatEncryptionRecoveryPassword").keyup(function (event) { + if (event.keyCode == 13) { + $("#enableRecoveryKey").click(); } - ); + }); // change recovery password diff --git a/apps/encryption/js/settings-personal.js b/apps/encryption/js/settings-personal.js index 658ba2a86ec..fa94bea6bc5 100644 --- a/apps/encryption/js/settings-personal.js +++ b/apps/encryption/js/settings-personal.js @@ -12,7 +12,7 @@ OC.Encryption = { updatePrivateKeyPassword: function () { var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val(); var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val(); - OC.msg.startSaving('#encryption .msg'); + OC.msg.startSaving('#ocDefaultEncryptionModule .msg'); $.post( OC.generateUrl('/apps/encryption/ajax/updatePrivateKeyPassword'), { @@ -20,10 +20,10 @@ OC.Encryption = { newPassword: newPrivateKeyPassword } ).done(function (data) { - OC.msg.finishedSuccess('#encryption .msg', data.message); + OC.msg.finishedSuccess('#ocDefaultEncryptionModule .msg', data.message); }) .fail(function (jqXHR) { - OC.msg.finishedError('#encryption .msg', JSON.parse(jqXHR.responseText).message); + OC.msg.finishedError('#ocDefaultEncryptionModule .msg', JSON.parse(jqXHR.responseText).message); }); } }; diff --git a/apps/encryption/l10n/ar.js b/apps/encryption/l10n/ar.js index 446f2bda9a3..3e3d73ead26 100644 --- a/apps/encryption/l10n/ar.js +++ b/apps/encryption/l10n/ar.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", "Recovery key password" : "استعادة كلمة مرور المفتاح", - "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح", "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", - "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح", - "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح", - "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد", "Change Password" : "عدل كلمة السر", " If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", "Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول", diff --git a/apps/encryption/l10n/ar.json b/apps/encryption/l10n/ar.json index b1dd298d419..8cb0aa2e3a5 100644 --- a/apps/encryption/l10n/ar.json +++ b/apps/encryption/l10n/ar.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", "Recovery key password" : "استعادة كلمة مرور المفتاح", - "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح", "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", - "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح", - "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح", - "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد", "Change Password" : "عدل كلمة السر", " If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", "Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول", diff --git a/apps/encryption/l10n/ast.js b/apps/encryption/l10n/ast.js index b5d4796ade9..637a66d178c 100644 --- a/apps/encryption/l10n/ast.js +++ b/apps/encryption/l10n/ast.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación", "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Clave de recuperación vieya", - "New Recovery key password" : "Clave de recuperación nueva", - "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva", "Change Password" : "Camudar contraseña", "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", diff --git a/apps/encryption/l10n/ast.json b/apps/encryption/l10n/ast.json index f58905f762a..30f3c70aab8 100644 --- a/apps/encryption/l10n/ast.json +++ b/apps/encryption/l10n/ast.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación", "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Clave de recuperación vieya", - "New Recovery key password" : "Clave de recuperación nueva", - "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva", "Change Password" : "Camudar contraseña", "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", diff --git a/apps/encryption/l10n/az.js b/apps/encryption/l10n/az.js index f453f5aa757..b82034083e9 100644 --- a/apps/encryption/l10n/az.js +++ b/apps/encryption/l10n/az.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız", "Recovery key password" : "Açar şifrənin bərpa edilməsi", - "Repeat Recovery key password" : "Bərpa açarın şifrəsini təkrar edin", "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:", - "Old Recovery key password" : "Köhnə bərpa açarı şifrəsi", - "New Recovery key password" : "Yeni bərpa açarı şifrəsi", - "Repeat New Recovery key password" : "Yeni bərpa açarı şifrəsini təkrar edin", "Change Password" : "Şifrəni dəyişdir", "Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.", "Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ", diff --git a/apps/encryption/l10n/az.json b/apps/encryption/l10n/az.json index 72f5c2a29df..32f59791733 100644 --- a/apps/encryption/l10n/az.json +++ b/apps/encryption/l10n/az.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız", "Recovery key password" : "Açar şifrənin bərpa edilməsi", - "Repeat Recovery key password" : "Bərpa açarın şifrəsini təkrar edin", "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:", - "Old Recovery key password" : "Köhnə bərpa açarı şifrəsi", - "New Recovery key password" : "Yeni bərpa açarı şifrəsi", - "Repeat New Recovery key password" : "Yeni bərpa açarı şifrəsini təkrar edin", "Change Password" : "Şifrəni dəyişdir", "Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.", "Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ", diff --git a/apps/encryption/l10n/bg_BG.js b/apps/encryption/l10n/bg_BG.js index e6a064201eb..4683f2c05bc 100644 --- a/apps/encryption/l10n/bg_BG.js +++ b/apps/encryption/l10n/bg_BG.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", "Recovery key password" : "Парола за възстановяане на ключа", - "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа", "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", - "Old Recovery key password" : "Старата парола за въстановяване на ключа", - "New Recovery key password" : "Новата парола за възстановяване на ключа", - "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа", "Change Password" : "Промени Паролата", "Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.", "Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:", diff --git a/apps/encryption/l10n/bg_BG.json b/apps/encryption/l10n/bg_BG.json index 23df23adc79..562dd0d2af5 100644 --- a/apps/encryption/l10n/bg_BG.json +++ b/apps/encryption/l10n/bg_BG.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", "Recovery key password" : "Парола за възстановяане на ключа", - "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа", "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", - "Old Recovery key password" : "Старата парола за въстановяване на ключа", - "New Recovery key password" : "Новата парола за възстановяване на ключа", - "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа", "Change Password" : "Промени Паролата", "Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.", "Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:", diff --git a/apps/encryption/l10n/bn_BD.js b/apps/encryption/l10n/bn_BD.js index 83a18e92f88..f91008e2408 100644 --- a/apps/encryption/l10n/bn_BD.js +++ b/apps/encryption/l10n/bn_BD.js @@ -4,11 +4,7 @@ OC.L10N.register( "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", - "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", - "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", - "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ", - "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", "Change Password" : "কূটশব্দ পরিবর্তন করুন", "Enabled" : "কার্যকর", "Disabled" : "অকার্যকর" diff --git a/apps/encryption/l10n/bn_BD.json b/apps/encryption/l10n/bn_BD.json index 4ce04754e6b..375bbd517a7 100644 --- a/apps/encryption/l10n/bn_BD.json +++ b/apps/encryption/l10n/bn_BD.json @@ -2,11 +2,7 @@ "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", - "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", - "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", - "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ", - "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", "Change Password" : "কূটশব্দ পরিবর্তন করুন", "Enabled" : "কার্যকর", "Disabled" : "অকার্যকর" diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js index d9351d848a1..d1eff280140 100644 --- a/apps/encryption/l10n/ca.js +++ b/apps/encryption/l10n/ca.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", "Recovery key password" : "Clau de recuperació de la contrasenya", - "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya", "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", - "Old Recovery key password" : "Antiga clau de recuperació de contrasenya", - "New Recovery key password" : "Nova clau de recuperació de contrasenya", - "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya", "Change Password" : "Canvia la contrasenya", "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json index 16205e27683..0bb29d59c5a 100644 --- a/apps/encryption/l10n/ca.json +++ b/apps/encryption/l10n/ca.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", "Recovery key password" : "Clau de recuperació de la contrasenya", - "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya", "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", - "Old Recovery key password" : "Antiga clau de recuperació de contrasenya", - "New Recovery key password" : "Nova clau de recuperació de contrasenya", - "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya", "Change Password" : "Canvia la contrasenya", "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", diff --git a/apps/encryption/l10n/cs_CZ.js b/apps/encryption/l10n/cs_CZ.js index 1dc7a468233..4aeae1741de 100644 --- a/apps/encryption/l10n/cs_CZ.js +++ b/apps/encryption/l10n/cs_CZ.js @@ -23,17 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", - "ownCloud basic encryption module" : "ownCloud základní šifrovací modul", - "Enable recovery key: " : "Povolit záchranný klíč:", - "Recovery key password" : "Heslo klíče pro obnovu", - "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu", "Enable recovery key" : "Povolit záchranný klíč", "Disable recovery key" : "Vypnout záchranný klíč", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Záchranný klíč je dodatečný šifrovací klíč použitý pro\nšifrování souborů. S jeho pomocí lze obnovit soubory uživatele při zapomenutí hesla.", + "Recovery key password" : "Heslo klíče pro obnovu", + "Repeat recovery key password" : "Zopakovat heslo záchranného klíče", "Change recovery key password:" : "Změna hesla klíče pro obnovu:", - "Old Recovery key password" : "Původní heslo klíče pro obnovu", - "New Recovery key password" : "Nové heslo klíče pro obnovu", - "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu", + "Old recovery key password" : "Staré heslo záchranného klíče", + "New recovery key password" : "Nové heslo záchranného klíče", + "Repeat new recovery key password" : "Zopakujte nové heslo záchranného klíče", "Change Password" : "Změnit heslo", + "ownCloud basic encryption module" : "ownCloud základní šifrovací modul", "Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", "Set your old private key password to your current log-in password:" : "Změňte své staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", " If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete své původní heslo, můžete požádat správce o obnovu vašich souborů.", diff --git a/apps/encryption/l10n/cs_CZ.json b/apps/encryption/l10n/cs_CZ.json index 4c93ef45ac1..bea25e846c1 100644 --- a/apps/encryption/l10n/cs_CZ.json +++ b/apps/encryption/l10n/cs_CZ.json @@ -21,17 +21,17 @@ "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", - "ownCloud basic encryption module" : "ownCloud základní šifrovací modul", - "Enable recovery key: " : "Povolit záchranný klíč:", - "Recovery key password" : "Heslo klíče pro obnovu", - "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu", "Enable recovery key" : "Povolit záchranný klíč", "Disable recovery key" : "Vypnout záchranný klíč", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Záchranný klíč je dodatečný šifrovací klíč použitý pro\nšifrování souborů. S jeho pomocí lze obnovit soubory uživatele při zapomenutí hesla.", + "Recovery key password" : "Heslo klíče pro obnovu", + "Repeat recovery key password" : "Zopakovat heslo záchranného klíče", "Change recovery key password:" : "Změna hesla klíče pro obnovu:", - "Old Recovery key password" : "Původní heslo klíče pro obnovu", - "New Recovery key password" : "Nové heslo klíče pro obnovu", - "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu", + "Old recovery key password" : "Staré heslo záchranného klíče", + "New recovery key password" : "Nové heslo záchranného klíče", + "Repeat new recovery key password" : "Zopakujte nové heslo záchranného klíče", "Change Password" : "Změnit heslo", + "ownCloud basic encryption module" : "ownCloud základní šifrovací modul", "Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", "Set your old private key password to your current log-in password:" : "Změňte své staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", " If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete své původní heslo, můžete požádat správce o obnovu vašich souborů.", diff --git a/apps/encryption/l10n/da.js b/apps/encryption/l10n/da.js index 806a2a15e9a..233c3b7ae68 100644 --- a/apps/encryption/l10n/da.js +++ b/apps/encryption/l10n/da.js @@ -21,14 +21,10 @@ OC.L10N.register( "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.", - "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul", "Recovery key password" : "Gendannelsesnøgle kodeord", - "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", - "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord", - "New Recovery key password" : "Ny Gendannelsesnøgle kodeord", - "Repeat New Recovery key password" : "Gentag det nye gendannaleses nøglekodeord", "Change Password" : "Skift Kodeord", + "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul", "Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", "Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json index 0511170d8ff..a3c69c46a09 100644 --- a/apps/encryption/l10n/da.json +++ b/apps/encryption/l10n/da.json @@ -19,14 +19,10 @@ "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.", - "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul", "Recovery key password" : "Gendannelsesnøgle kodeord", - "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", - "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord", - "New Recovery key password" : "Ny Gendannelsesnøgle kodeord", - "Repeat New Recovery key password" : "Gentag det nye gendannaleses nøglekodeord", "Change Password" : "Skift Kodeord", + "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul", "Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", "Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js index defbd8ae8b2..5dc4453fd74 100644 --- a/apps/encryption/l10n/de.js +++ b/apps/encryption/l10n/de.js @@ -23,17 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.", - "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", - "Enable recovery key: " : "Wiederherstellungsschlüssel aktivieren:", - "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", - "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren", "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.", + "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", + "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen", "Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:", - "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort", - "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort", - "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", + "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel", + "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel", + "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen", "Change Password" : "Passwort ändern", + "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", "Your private key password no longer matches your log-in password." : "Dein Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.", "Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:", " If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json index a9d19846c93..abccb4016d1 100644 --- a/apps/encryption/l10n/de.json +++ b/apps/encryption/l10n/de.json @@ -21,17 +21,17 @@ "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.", - "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", - "Enable recovery key: " : "Wiederherstellungsschlüssel aktivieren:", - "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", - "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren", "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.", + "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", + "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen", "Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:", - "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort", - "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort", - "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", + "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel", + "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel", + "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen", "Change Password" : "Passwort ändern", + "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", "Your private key password no longer matches your log-in password." : "Dein Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.", "Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:", " If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js index 4e8276ec039..9b8e571518a 100644 --- a/apps/encryption/l10n/de_DE.js +++ b/apps/encryption/l10n/de_DE.js @@ -23,17 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.", - "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", - "Enable recovery key: " : "Wiederherstellungsschlüssel aktivieren:", - "Recovery key password" : "Wiederherstellungschlüsselpasswort", - "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren", "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.", + "Recovery key password" : "Wiederherstellungschlüsselpasswort", + "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen", "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", - "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", - "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", - "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen", + "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel", + "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel", + "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen", "Change Password" : "Passwort ändern", + "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.", "Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:", " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json index f8d984a081b..aee9e551163 100644 --- a/apps/encryption/l10n/de_DE.json +++ b/apps/encryption/l10n/de_DE.json @@ -21,17 +21,17 @@ "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.", - "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", - "Enable recovery key: " : "Wiederherstellungsschlüssel aktivieren:", - "Recovery key password" : "Wiederherstellungschlüsselpasswort", - "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren", "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.", + "Recovery key password" : "Wiederherstellungschlüsselpasswort", + "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen", "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", - "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", - "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", - "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen", + "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel", + "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel", + "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen", "Change Password" : "Passwort ändern", + "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul", "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.", "Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:", " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js index 635c65b98e3..ec6491dc055 100644 --- a/apps/encryption/l10n/el.js +++ b/apps/encryption/l10n/el.js @@ -8,11 +8,13 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", "Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", "Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", + "Missing parameters" : "Ελλιπείς παράμετροι", "Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς", "Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς", "Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς", "Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.", "Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", + "Recovery Key disabled" : "Κλειδί ανάκτησης απενεργοποιημένο", "Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο", "Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας", "Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης", @@ -21,14 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", - "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ", + "Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης", + "Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.", "Recovery key password" : "Επαναφορά κωδικού κλειδιού", - "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού", + "Repeat recovery key password" : "Επαναλάβετε τον κωδικό του κλειδιού ανάκτησης", "Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:", - "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού", - "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού", - "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", + "Old recovery key password" : "Παλιός κωδικός κλειδιού ανάκτησης", + "New recovery key password" : "Νέος κωδικός κλειδιού ανάκτησης", + "Repeat new recovery key password" : "Επαναλάβετε το νέο κωδικό κλειδιού ανάκτησης", "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", + "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ", "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", " If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json index 8d169b8e950..a94eac410da 100644 --- a/apps/encryption/l10n/el.json +++ b/apps/encryption/l10n/el.json @@ -6,11 +6,13 @@ "Could not enable recovery key. Please check your recovery key password!" : "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", "Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", "Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", + "Missing parameters" : "Ελλιπείς παράμετροι", "Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς", "Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς", "Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς", "Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.", "Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", + "Recovery Key disabled" : "Κλειδί ανάκτησης απενεργοποιημένο", "Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο", "Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας", "Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης", @@ -19,14 +21,17 @@ "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", - "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ", + "Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης", + "Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.", "Recovery key password" : "Επαναφορά κωδικού κλειδιού", - "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού", + "Repeat recovery key password" : "Επαναλάβετε τον κωδικό του κλειδιού ανάκτησης", "Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:", - "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού", - "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού", - "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", + "Old recovery key password" : "Παλιός κωδικός κλειδιού ανάκτησης", + "New recovery key password" : "Νέος κωδικός κλειδιού ανάκτησης", + "Repeat new recovery key password" : "Επαναλάβετε το νέο κωδικό κλειδιού ανάκτησης", "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", + "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ", "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", " If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js index a9668b26ab0..678c62f982d 100644 --- a/apps/encryption/l10n/en_GB.js +++ b/apps/encryption/l10n/en_GB.js @@ -21,14 +21,10 @@ OC.L10N.register( "Private key password successfully updated." : "Private key password updated successfully.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", - "ownCloud basic encryption module" : "ownCloud basic encryption module", "Recovery key password" : "Recovery key password", - "Repeat Recovery key password" : "Repeat recovery key password", "Change recovery key password:" : "Change recovery key password:", - "Old Recovery key password" : "Old recovery key password", - "New Recovery key password" : "New recovery key password", - "Repeat New Recovery key password" : "Repeat new recovery key password", "Change Password" : "Change Password", + "ownCloud basic encryption module" : "ownCloud basic encryption module", "Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.", "Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:", " If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.", diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json index 4d77e4353fb..6132868f396 100644 --- a/apps/encryption/l10n/en_GB.json +++ b/apps/encryption/l10n/en_GB.json @@ -19,14 +19,10 @@ "Private key password successfully updated." : "Private key password updated successfully.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", - "ownCloud basic encryption module" : "ownCloud basic encryption module", "Recovery key password" : "Recovery key password", - "Repeat Recovery key password" : "Repeat recovery key password", "Change recovery key password:" : "Change recovery key password:", - "Old Recovery key password" : "Old recovery key password", - "New Recovery key password" : "New recovery key password", - "Repeat New Recovery key password" : "Repeat new recovery key password", "Change Password" : "Change Password", + "ownCloud basic encryption module" : "ownCloud basic encryption module", "Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.", "Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:", " If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.", diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js index 7c7aa3b4085..a5a6f086fd0 100644 --- a/apps/encryption/l10n/es.js +++ b/apps/encryption/l10n/es.js @@ -8,11 +8,13 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor, ¡compruebe su contraseña de recuperación!", "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!", + "Missing parameters" : "Faltan parámetros", "Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación", "Please provide a new recovery password" : "Por favor, provea una nueva contraseña de recuperación", "Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación", "Password successfully changed." : "Su contraseña ha sido cambiada", "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", + "Recovery Key disabled" : "Desactivada la clave de recuperación", "Recovery Key enabled" : "Recuperación de clave habilitada", "Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador", "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.", @@ -21,14 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.", - "ownCloud basic encryption module" : "Módulo básico de encriptación ownCloud", + "Enable recovery key" : "Activa la clave de recuperación", + "Disable recovery key" : "Desactiva la clave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clave de recuperación es una clave de cifrado extra que se usa para cifrar ficheros. Permite la recuperación de los ficheros de un usuario si él o ella olvida su contraseña.", "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", + "Repeat recovery key password" : "Repita la contraseña de recuperación", "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", + "Old recovery key password" : "Antigua contraseña de recuperación", + "New recovery key password" : "Nueva contraseña de recuperación", + "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación.", "Change Password" : "Cambiar contraseña", + "ownCloud basic encryption module" : "Módulo básico de cifrado ownCloud", "Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.", "Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", diff --git a/apps/encryption/l10n/es.json b/apps/encryption/l10n/es.json index 2ffccb7be39..911d1f8b893 100644 --- a/apps/encryption/l10n/es.json +++ b/apps/encryption/l10n/es.json @@ -6,11 +6,13 @@ "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor, ¡compruebe su contraseña de recuperación!", "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!", + "Missing parameters" : "Faltan parámetros", "Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación", "Please provide a new recovery password" : "Por favor, provea una nueva contraseña de recuperación", "Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación", "Password successfully changed." : "Su contraseña ha sido cambiada", "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", + "Recovery Key disabled" : "Desactivada la clave de recuperación", "Recovery Key enabled" : "Recuperación de clave habilitada", "Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador", "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.", @@ -19,14 +21,17 @@ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.", - "ownCloud basic encryption module" : "Módulo básico de encriptación ownCloud", + "Enable recovery key" : "Activa la clave de recuperación", + "Disable recovery key" : "Desactiva la clave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clave de recuperación es una clave de cifrado extra que se usa para cifrar ficheros. Permite la recuperación de los ficheros de un usuario si él o ella olvida su contraseña.", "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", + "Repeat recovery key password" : "Repita la contraseña de recuperación", "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", + "Old recovery key password" : "Antigua contraseña de recuperación", + "New recovery key password" : "Nueva contraseña de recuperación", + "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación.", "Change Password" : "Cambiar contraseña", + "ownCloud basic encryption module" : "Módulo básico de cifrado ownCloud", "Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.", "Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", diff --git a/apps/encryption/l10n/es_AR.js b/apps/encryption/l10n/es_AR.js index c3e1d60982e..4b47a49e629 100644 --- a/apps/encryption/l10n/es_AR.js +++ b/apps/encryption/l10n/es_AR.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", "Recovery key password" : "Contraseña de recuperación de clave", - "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación", "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", - "Old Recovery key password" : "Contraseña antigua de recuperación de clave", - "New Recovery key password" : "Nueva contraseña de recuperación de clave", - "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación", "Change Password" : "Cambiar contraseña", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", "Old log-in password" : "Contraseña anterior", diff --git a/apps/encryption/l10n/es_AR.json b/apps/encryption/l10n/es_AR.json index b344e3e8f9e..9c5d2519333 100644 --- a/apps/encryption/l10n/es_AR.json +++ b/apps/encryption/l10n/es_AR.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", "Recovery key password" : "Contraseña de recuperación de clave", - "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación", "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", - "Old Recovery key password" : "Contraseña antigua de recuperación de clave", - "New Recovery key password" : "Nueva contraseña de recuperación de clave", - "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación", "Change Password" : "Cambiar contraseña", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", "Old log-in password" : "Contraseña anterior", diff --git a/apps/encryption/l10n/es_MX.js b/apps/encryption/l10n/es_MX.js index 3ee57f500f1..64bfc291f82 100644 --- a/apps/encryption/l10n/es_MX.js +++ b/apps/encryption/l10n/es_MX.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", "Change Password" : "Cambiar contraseña", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", "Old log-in password" : "Contraseña de acceso antigua", diff --git a/apps/encryption/l10n/es_MX.json b/apps/encryption/l10n/es_MX.json index f36f0dbd5fd..9115513d7b1 100644 --- a/apps/encryption/l10n/es_MX.json +++ b/apps/encryption/l10n/es_MX.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", "Change Password" : "Cambiar contraseña", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", "Old log-in password" : "Contraseña de acceso antigua", diff --git a/apps/encryption/l10n/et_EE.js b/apps/encryption/l10n/et_EE.js index 5805b8e8e1c..6e2684058fe 100644 --- a/apps/encryption/l10n/et_EE.js +++ b/apps/encryption/l10n/et_EE.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", "Recovery key password" : "Taastevõtme parool", - "Repeat Recovery key password" : "Korda taastevõtme parooli", "Change recovery key password:" : "Muuda taastevõtme parooli:", - "Old Recovery key password" : "Vana taastevõtme parool", - "New Recovery key password" : "Uus taastevõtme parool", - "Repeat New Recovery key password" : "Korda uut taastevõtme parooli", "Change Password" : "Muuda parooli", "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", diff --git a/apps/encryption/l10n/et_EE.json b/apps/encryption/l10n/et_EE.json index 37887eb73b2..66839779f67 100644 --- a/apps/encryption/l10n/et_EE.json +++ b/apps/encryption/l10n/et_EE.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", "Recovery key password" : "Taastevõtme parool", - "Repeat Recovery key password" : "Korda taastevõtme parooli", "Change recovery key password:" : "Muuda taastevõtme parooli:", - "Old Recovery key password" : "Vana taastevõtme parool", - "New Recovery key password" : "Uus taastevõtme parool", - "Repeat New Recovery key password" : "Korda uut taastevõtme parooli", "Change Password" : "Muuda parooli", "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", diff --git a/apps/encryption/l10n/eu.js b/apps/encryption/l10n/eu.js index 10afacfcfac..083bd125ba9 100644 --- a/apps/encryption/l10n/eu.js +++ b/apps/encryption/l10n/eu.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", "Recovery key password" : "Berreskuratze gako pasahitza", - "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza", "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", - "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra", - "New Recovery key password" : "Berreskuratze gako pasahitz berria", - "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza", "Change Password" : "Aldatu Pasahitza", "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", diff --git a/apps/encryption/l10n/eu.json b/apps/encryption/l10n/eu.json index e1355ce6b06..88639331be4 100644 --- a/apps/encryption/l10n/eu.json +++ b/apps/encryption/l10n/eu.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", "Recovery key password" : "Berreskuratze gako pasahitza", - "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza", "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", - "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra", - "New Recovery key password" : "Berreskuratze gako pasahitz berria", - "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza", "Change Password" : "Aldatu Pasahitza", "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", diff --git a/apps/encryption/l10n/fa.js b/apps/encryption/l10n/fa.js index dd1dff78984..493b3992a62 100644 --- a/apps/encryption/l10n/fa.js +++ b/apps/encryption/l10n/fa.js @@ -10,8 +10,6 @@ OC.L10N.register( "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.", "Recovery key password" : "رمزعبور کلید بازیابی", "Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:", - "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ", - "New Recovery key password" : "رمزعبور جدید کلید بازیابی", "Change Password" : "تغییر رمزعبور", " If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", "Old log-in password" : "رمزعبور قدیمی", diff --git a/apps/encryption/l10n/fa.json b/apps/encryption/l10n/fa.json index 9d059a7cc1e..ccb7949e7e5 100644 --- a/apps/encryption/l10n/fa.json +++ b/apps/encryption/l10n/fa.json @@ -8,8 +8,6 @@ "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.", "Recovery key password" : "رمزعبور کلید بازیابی", "Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:", - "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ", - "New Recovery key password" : "رمزعبور جدید کلید بازیابی", "Change Password" : "تغییر رمزعبور", " If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", "Old log-in password" : "رمزعبور قدیمی", diff --git a/apps/encryption/l10n/fi_FI.js b/apps/encryption/l10n/fi_FI.js index 6baefc8de4c..54b43463199 100644 --- a/apps/encryption/l10n/fi_FI.js +++ b/apps/encryption/l10n/fi_FI.js @@ -23,18 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", - "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli", - "Enable recovery key: " : "Ota palautusavain käyttöön:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "Palautusavain lisäturvaa tuova palautusavain, jolla salataan tiedostoja.\nSen avulla käyttäjien tiedostojen palauttaminen on mahdollista, jos käyttäjät unohtavat salasanansa.", - "Recovery key password" : "Palautusavaimen salasana", - "Repeat Recovery key password" : "Toista palautusavaimen salasana", "Enable recovery key" : "Ota palautusavain käyttöön", "Disable recovery key" : "Poista palautusavain käytöstä", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Palautusavain on ylimääräinen salausavain, jota käytetään tiedostojen salaamiseen. Sen avulla on mahdollista palauttaa käyttäjien tiedostot, vaikka käyttäjä unohtaisi oman salasanansa.", + "Recovery key password" : "Palautusavaimen salasana", + "Repeat recovery key password" : "Toista salausavaimen salasana", "Change recovery key password:" : "Vaihda palautusavaimen salasana:", - "Old Recovery key password" : "Vanha palautusavaimen salasana", - "New Recovery key password" : "Uusi palautusavaimen salasana", - "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana", + "Old recovery key password" : "Vanha salausavaimen salasana", + "New recovery key password" : "Uusi salausavaimen salasana", + "Repeat new recovery key password" : "Toista uusi salausavaimen salasana", "Change Password" : "Vaihda salasana", + "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli", "Your private key password no longer matches your log-in password." : "Salaisen avaimesi salasana ei enää vastaa kirjautumissalasanaasi.", "Set your old private key password to your current log-in password:" : "Aseta yksityisen avaimen vanha salasana vastaamaan nykyistä kirjautumissalasanaasi:", " If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", diff --git a/apps/encryption/l10n/fi_FI.json b/apps/encryption/l10n/fi_FI.json index a130fc98c77..c42f9928c6b 100644 --- a/apps/encryption/l10n/fi_FI.json +++ b/apps/encryption/l10n/fi_FI.json @@ -21,18 +21,17 @@ "Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", - "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli", - "Enable recovery key: " : "Ota palautusavain käyttöön:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "Palautusavain lisäturvaa tuova palautusavain, jolla salataan tiedostoja.\nSen avulla käyttäjien tiedostojen palauttaminen on mahdollista, jos käyttäjät unohtavat salasanansa.", - "Recovery key password" : "Palautusavaimen salasana", - "Repeat Recovery key password" : "Toista palautusavaimen salasana", "Enable recovery key" : "Ota palautusavain käyttöön", "Disable recovery key" : "Poista palautusavain käytöstä", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Palautusavain on ylimääräinen salausavain, jota käytetään tiedostojen salaamiseen. Sen avulla on mahdollista palauttaa käyttäjien tiedostot, vaikka käyttäjä unohtaisi oman salasanansa.", + "Recovery key password" : "Palautusavaimen salasana", + "Repeat recovery key password" : "Toista salausavaimen salasana", "Change recovery key password:" : "Vaihda palautusavaimen salasana:", - "Old Recovery key password" : "Vanha palautusavaimen salasana", - "New Recovery key password" : "Uusi palautusavaimen salasana", - "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana", + "Old recovery key password" : "Vanha salausavaimen salasana", + "New recovery key password" : "Uusi salausavaimen salasana", + "Repeat new recovery key password" : "Toista uusi salausavaimen salasana", "Change Password" : "Vaihda salasana", + "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli", "Your private key password no longer matches your log-in password." : "Salaisen avaimesi salasana ei enää vastaa kirjautumissalasanaasi.", "Set your old private key password to your current log-in password:" : "Aseta yksityisen avaimen vanha salasana vastaamaan nykyistä kirjautumissalasanaasi:", " If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js index 09910bf5fef..293626e95da 100644 --- a/apps/encryption/l10n/fr.js +++ b/apps/encryption/l10n/fr.js @@ -8,11 +8,13 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clef de récupération. Veuillez vérifier le mot de passe de votre clé de récupération !", "Recovery key successfully disabled" : "Clef de récupération désactivée avec succès", "Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !", + "Missing parameters" : "Paramètres manquants", "Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération", "Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération", "Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération", "Password successfully changed." : "Mot de passe changé avec succès.", "Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.", + "Recovery Key disabled" : "Clé de récupération désactivée", "Recovery Key enabled" : "Clef de récupération activée", "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clef de récupération. Veuillez essayer à nouveau ou contacter votre administrateur", "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.", @@ -21,14 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.", - "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud", + "Enable recovery key" : "Activer la clé de récupération", + "Disable recovery key" : "Désactiver la clé de récupération", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs en cas d'oubli de leur mot de passe.", "Recovery key password" : "Mot de passe de la clef de récupération", - "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération", + "Repeat recovery key password" : "Répétez le mot de passe de la clé de récupération", "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", - "Old Recovery key password" : "Ancien mot de passe de la clef de récupération", - "New Recovery key password" : "Nouveau mot de passe de la clef de récupération", - "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clef de récupération", + "Old recovery key password" : "Ancien mot de passe de la clé de récupération", + "New recovery key password" : "Nouveau mot de passe de la clé de récupération", + "Repeat new recovery key password" : "Répétez le nouveau mot de passe de la clé de récupération", "Change Password" : "Changer de mot de passe", + "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud", "Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", "Set your old private key password to your current log-in password:" : "Faites de votre mot de passe de connexion le mot de passe de votre clef privée :", " If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json index a18086cce05..c35d5d31296 100644 --- a/apps/encryption/l10n/fr.json +++ b/apps/encryption/l10n/fr.json @@ -6,11 +6,13 @@ "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clef de récupération. Veuillez vérifier le mot de passe de votre clé de récupération !", "Recovery key successfully disabled" : "Clef de récupération désactivée avec succès", "Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !", + "Missing parameters" : "Paramètres manquants", "Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération", "Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération", "Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération", "Password successfully changed." : "Mot de passe changé avec succès.", "Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.", + "Recovery Key disabled" : "Clé de récupération désactivée", "Recovery Key enabled" : "Clef de récupération activée", "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clef de récupération. Veuillez essayer à nouveau ou contacter votre administrateur", "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.", @@ -19,14 +21,17 @@ "Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.", - "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud", + "Enable recovery key" : "Activer la clé de récupération", + "Disable recovery key" : "Désactiver la clé de récupération", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs en cas d'oubli de leur mot de passe.", "Recovery key password" : "Mot de passe de la clef de récupération", - "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération", + "Repeat recovery key password" : "Répétez le mot de passe de la clé de récupération", "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", - "Old Recovery key password" : "Ancien mot de passe de la clef de récupération", - "New Recovery key password" : "Nouveau mot de passe de la clef de récupération", - "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clef de récupération", + "Old recovery key password" : "Ancien mot de passe de la clé de récupération", + "New recovery key password" : "Nouveau mot de passe de la clé de récupération", + "Repeat new recovery key password" : "Répétez le nouveau mot de passe de la clé de récupération", "Change Password" : "Changer de mot de passe", + "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud", "Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", "Set your old private key password to your current log-in password:" : "Faites de votre mot de passe de connexion le mot de passe de votre clef privée :", " If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", diff --git a/apps/encryption/l10n/gl.js b/apps/encryption/l10n/gl.js index 4cf00535490..6cc14cc80e4 100644 --- a/apps/encryption/l10n/gl.js +++ b/apps/encryption/l10n/gl.js @@ -1,17 +1,17 @@ OC.L10N.register( "encryption", { - "Missing recovery key password" : "Falta a chave de recuperación", - "Please repeat the recovery key password" : "Repita a chave de recuperación", - "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación estabelecida", + "Missing recovery key password" : "Falta o contrasinal da chave de recuperación", + "Please repeat the recovery key password" : "Repita o contrasinal da chave de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "A repetición do contrasinal da chave de recuperación non coincide co contrasinal da chave de recuperación fornecido", "Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación", "Could not enable recovery key. Please check your recovery key password!" : "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", "Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación", "Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", "Missing parameters" : "Faltan os parámetros", - "Please provide the old recovery password" : "Introduza a chave de recuperación antiga", + "Please provide the old recovery password" : "Introduza o antigo contrasinal de recuperación", "Please provide a new recovery password" : "Introduza a nova chave de recuperación", - "Please repeat the new recovery password" : "Repita a nova chave de recuperación", + "Please repeat the new recovery password" : "Repita o novo contrasinal de recuperación", "Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente", "Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", "Recovery Key disabled" : "Desactivada a chave de recuperación", @@ -23,18 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "A chave privada foi actualizada correctamente.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo", - "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud", - "Enable recovery key: " : "Activar a chave de recuperación:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "A chave de recuperación é unha chave de cifrado adicional utilizada\n\t\tpara cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se este esquece o seu contrasinal.", - "Recovery key password" : "Contrasinal da chave de recuperación", - "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", "Enable recovery key" : "Activar a chave de recuperación", "Disable recovery key" : "Desactivar a chave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperación é unha chave de cifrado adicional que se utiliza para cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se o usuario esquece o seu contrasinal.", + "Recovery key password" : "Contrasinal da chave de recuperación", + "Repeat recovery key password" : "Repita o contrasinal da chave de recuperación", "Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:", - "Old Recovery key password" : "Antigo contrasinal da chave de recuperación", - "New Recovery key password" : "Novo contrasinal da chave de recuperación", - "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación", + "Old recovery key password" : "Contrasinal antigo da chave de recuperación", + "New recovery key password" : "Novo contrasinal da chave de recuperación", + "Repeat new recovery key password" : "Repita o novo contrasinal da chave de recuperación", "Change Password" : "Cambiar o contrasinal", + "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud", "Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", "Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", diff --git a/apps/encryption/l10n/gl.json b/apps/encryption/l10n/gl.json index b1654e75a54..df89a75eecd 100644 --- a/apps/encryption/l10n/gl.json +++ b/apps/encryption/l10n/gl.json @@ -1,15 +1,15 @@ { "translations": { - "Missing recovery key password" : "Falta a chave de recuperación", - "Please repeat the recovery key password" : "Repita a chave de recuperación", - "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación estabelecida", + "Missing recovery key password" : "Falta o contrasinal da chave de recuperación", + "Please repeat the recovery key password" : "Repita o contrasinal da chave de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "A repetición do contrasinal da chave de recuperación non coincide co contrasinal da chave de recuperación fornecido", "Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación", "Could not enable recovery key. Please check your recovery key password!" : "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", "Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación", "Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", "Missing parameters" : "Faltan os parámetros", - "Please provide the old recovery password" : "Introduza a chave de recuperación antiga", + "Please provide the old recovery password" : "Introduza o antigo contrasinal de recuperación", "Please provide a new recovery password" : "Introduza a nova chave de recuperación", - "Please repeat the new recovery password" : "Repita a nova chave de recuperación", + "Please repeat the new recovery password" : "Repita o novo contrasinal de recuperación", "Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente", "Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", "Recovery Key disabled" : "Desactivada a chave de recuperación", @@ -21,18 +21,17 @@ "Private key password successfully updated." : "A chave privada foi actualizada correctamente.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo", - "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud", - "Enable recovery key: " : "Activar a chave de recuperación:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "A chave de recuperación é unha chave de cifrado adicional utilizada\n\t\tpara cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se este esquece o seu contrasinal.", - "Recovery key password" : "Contrasinal da chave de recuperación", - "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", "Enable recovery key" : "Activar a chave de recuperación", "Disable recovery key" : "Desactivar a chave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperación é unha chave de cifrado adicional que se utiliza para cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se o usuario esquece o seu contrasinal.", + "Recovery key password" : "Contrasinal da chave de recuperación", + "Repeat recovery key password" : "Repita o contrasinal da chave de recuperación", "Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:", - "Old Recovery key password" : "Antigo contrasinal da chave de recuperación", - "New Recovery key password" : "Novo contrasinal da chave de recuperación", - "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación", + "Old recovery key password" : "Contrasinal antigo da chave de recuperación", + "New recovery key password" : "Novo contrasinal da chave de recuperación", + "Repeat new recovery key password" : "Repita o novo contrasinal da chave de recuperación", "Change Password" : "Cambiar o contrasinal", + "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud", "Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", "Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", diff --git a/apps/encryption/l10n/hr.js b/apps/encryption/l10n/hr.js index b00d74e3e9e..40ad26f9daa 100644 --- a/apps/encryption/l10n/hr.js +++ b/apps/encryption/l10n/hr.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", "Recovery key password" : "Lozinka ključa za oporavak", - "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak", "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", - "Old Recovery key password" : "Stara lozinka ključa za oporavak", - "New Recovery key password" : "Nova lozinka ključa za oporavak", - "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak", "Change Password" : "Promijenite lozinku", "Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", "Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", diff --git a/apps/encryption/l10n/hr.json b/apps/encryption/l10n/hr.json index 95f1c004f1f..71f83db1bdf 100644 --- a/apps/encryption/l10n/hr.json +++ b/apps/encryption/l10n/hr.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", "Recovery key password" : "Lozinka ključa za oporavak", - "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak", "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", - "Old Recovery key password" : "Stara lozinka ključa za oporavak", - "New Recovery key password" : "Nova lozinka ključa za oporavak", - "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak", "Change Password" : "Promijenite lozinku", "Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", "Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", diff --git a/apps/encryption/l10n/hu_HU.js b/apps/encryption/l10n/hu_HU.js index edd92d670a6..be4df724ef8 100644 --- a/apps/encryption/l10n/hu_HU.js +++ b/apps/encryption/l10n/hu_HU.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", "Recovery key password" : "A helyreállítási kulcs jelszava", - "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát", "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", - "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava", - "New Recovery key password" : "Új Helyreállítási kulcs jelszava", - "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát", "Change Password" : "Jelszó megváltoztatása", " If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", "Old log-in password" : "Régi bejelentkezési jelszó", diff --git a/apps/encryption/l10n/hu_HU.json b/apps/encryption/l10n/hu_HU.json index 439e137d1c9..260a6ae3342 100644 --- a/apps/encryption/l10n/hu_HU.json +++ b/apps/encryption/l10n/hu_HU.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", "Recovery key password" : "A helyreállítási kulcs jelszava", - "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát", "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", - "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava", - "New Recovery key password" : "Új Helyreállítási kulcs jelszava", - "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát", "Change Password" : "Jelszó megváltoztatása", " If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", "Old log-in password" : "Régi bejelentkezési jelszó", diff --git a/apps/encryption/l10n/id.js b/apps/encryption/l10n/id.js index 37c538613d4..4feb1de4186 100644 --- a/apps/encryption/l10n/id.js +++ b/apps/encryption/l10n/id.js @@ -8,24 +8,32 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", "Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan", "Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", + "Missing parameters" : "Parameter salah", "Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama", "Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru", "Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru", "Password successfully changed." : "Sandi berhasil diubah", "Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", + "Recovery Key disabled" : "Kunci Pemulihan dinonaktifkan", + "Recovery Key enabled" : "Kunci Pemulihan diaktifkan", + "Could not enable the recovery key, please try again or contact your administrator" : "Tidak dapat mengaktifkan kunci pemulihan, silakan coba lagi atau hubungi administrator Anda", "Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.", "The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.", "The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.", "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", + "Enable recovery key" : "Aktifkan kunci pemulihan", + "Disable recovery key" : "Nonaktifkan kunci pemulihan", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Kunci pemulihan adalah kunci enkripsi tambahan yang digunakan untuk mengenkripsi berkas. Kunci pemulihan memungkinkan untuk memulihkan berkas-berkas pengguna ketika pengguna tersebut melupakan sandi mereka.", "Recovery key password" : "Sandi kunci pemulihan", - "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan", + "Repeat recovery key password" : "Ulangi sandi kunci pemulihan", "Change recovery key password:" : "Ubah sandi kunci pemulihan:", - "Old Recovery key password" : "Sandi kunci Pemulihan Lama", - "New Recovery key password" : "Sandi kunci Pemulihan Baru", - "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru", + "Old recovery key password" : "Sandi kunci pemulihan lama", + "New recovery key password" : "Sandi kunci pemulihan baru", + "Repeat new recovery key password" : "Ulangi sandi kunci pemulihan baru", "Change Password" : "Ubah Sandi", + "ownCloud basic encryption module" : "Modul enkripsi dasar ownCloud", "Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.", "Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:", " If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", diff --git a/apps/encryption/l10n/id.json b/apps/encryption/l10n/id.json index 949e4cd1d4c..da2bf575939 100644 --- a/apps/encryption/l10n/id.json +++ b/apps/encryption/l10n/id.json @@ -6,24 +6,32 @@ "Could not enable recovery key. Please check your recovery key password!" : "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", "Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan", "Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", + "Missing parameters" : "Parameter salah", "Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama", "Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru", "Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru", "Password successfully changed." : "Sandi berhasil diubah", "Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", + "Recovery Key disabled" : "Kunci Pemulihan dinonaktifkan", + "Recovery Key enabled" : "Kunci Pemulihan diaktifkan", + "Could not enable the recovery key, please try again or contact your administrator" : "Tidak dapat mengaktifkan kunci pemulihan, silakan coba lagi atau hubungi administrator Anda", "Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.", "The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.", "The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.", "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", + "Enable recovery key" : "Aktifkan kunci pemulihan", + "Disable recovery key" : "Nonaktifkan kunci pemulihan", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Kunci pemulihan adalah kunci enkripsi tambahan yang digunakan untuk mengenkripsi berkas. Kunci pemulihan memungkinkan untuk memulihkan berkas-berkas pengguna ketika pengguna tersebut melupakan sandi mereka.", "Recovery key password" : "Sandi kunci pemulihan", - "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan", + "Repeat recovery key password" : "Ulangi sandi kunci pemulihan", "Change recovery key password:" : "Ubah sandi kunci pemulihan:", - "Old Recovery key password" : "Sandi kunci Pemulihan Lama", - "New Recovery key password" : "Sandi kunci Pemulihan Baru", - "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru", + "Old recovery key password" : "Sandi kunci pemulihan lama", + "New recovery key password" : "Sandi kunci pemulihan baru", + "Repeat new recovery key password" : "Ulangi sandi kunci pemulihan baru", "Change Password" : "Ubah Sandi", + "ownCloud basic encryption module" : "Modul enkripsi dasar ownCloud", "Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.", "Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:", " If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", diff --git a/apps/encryption/l10n/it.js b/apps/encryption/l10n/it.js index 16714996de0..23b62b6d544 100644 --- a/apps/encryption/l10n/it.js +++ b/apps/encryption/l10n/it.js @@ -23,18 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", - "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud", - "Enable recovery key: " : "Abilita chiave di ripristino:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "La chiave di ripristino è un chiave di cifratura aggiuntiva utilizzata\n\t\tper cifrare i file. Consente il ripristino dei file di un utente nel caso in cui l'utente smarrisca la propria password.", - "Recovery key password" : "Password della chiave di recupero", - "Repeat Recovery key password" : "Ripeti la password della chiave di recupero", "Enable recovery key" : "Abilita chiave di ripristino", "Disable recovery key" : "Disabilita chiave di ripristino", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La chiave di ripristino è una chiave di cifratura aggiuntiva utilizzata per cifrare i file. Consente di ripristinare i file di un utente se l'utente dimentica la propria password.", + "Recovery key password" : "Password della chiave di recupero", + "Repeat recovery key password" : "Ripeti la password della chiave di ripristino", "Change recovery key password:" : "Cambia la password della chiave di recupero:", - "Old Recovery key password" : "Vecchia password della chiave di recupero", - "New Recovery key password" : "Nuova password della chiave di recupero", - "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero", + "Old recovery key password" : "Vecchia password della chiave di ripristino", + "New recovery key password" : "Nuova password della chiave di ripristino", + "Repeat new recovery key password" : "Ripeti la nuova password della chiave di ripristino", "Change Password" : "Modifica password", + "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud", "Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.", "Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", diff --git a/apps/encryption/l10n/it.json b/apps/encryption/l10n/it.json index ee3e75820d0..f4a5b12ff6f 100644 --- a/apps/encryption/l10n/it.json +++ b/apps/encryption/l10n/it.json @@ -21,18 +21,17 @@ "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", - "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud", - "Enable recovery key: " : "Abilita chiave di ripristino:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "La chiave di ripristino è un chiave di cifratura aggiuntiva utilizzata\n\t\tper cifrare i file. Consente il ripristino dei file di un utente nel caso in cui l'utente smarrisca la propria password.", - "Recovery key password" : "Password della chiave di recupero", - "Repeat Recovery key password" : "Ripeti la password della chiave di recupero", "Enable recovery key" : "Abilita chiave di ripristino", "Disable recovery key" : "Disabilita chiave di ripristino", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La chiave di ripristino è una chiave di cifratura aggiuntiva utilizzata per cifrare i file. Consente di ripristinare i file di un utente se l'utente dimentica la propria password.", + "Recovery key password" : "Password della chiave di recupero", + "Repeat recovery key password" : "Ripeti la password della chiave di ripristino", "Change recovery key password:" : "Cambia la password della chiave di recupero:", - "Old Recovery key password" : "Vecchia password della chiave di recupero", - "New Recovery key password" : "Nuova password della chiave di recupero", - "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero", + "Old recovery key password" : "Vecchia password della chiave di ripristino", + "New recovery key password" : "Nuova password della chiave di ripristino", + "Repeat new recovery key password" : "Ripeti la nuova password della chiave di ripristino", "Change Password" : "Modifica password", + "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud", "Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.", "Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", diff --git a/apps/encryption/l10n/ja.js b/apps/encryption/l10n/ja.js index 395a2bb292a..1f2cf3cf49d 100644 --- a/apps/encryption/l10n/ja.js +++ b/apps/encryption/l10n/ja.js @@ -21,14 +21,10 @@ OC.L10N.register( "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", - "ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール", "Recovery key password" : "リカバリキーのパスワード", - "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力", "Change recovery key password:" : "リカバリキーのパスワードを変更:", - "Old Recovery key password" : "古いリカバリキーのパスワード", - "New Recovery key password" : "新しいリカバリキーのパスワード", - "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力", "Change Password" : "パスワードを変更", + "ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール", "Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。", "Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:", " If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", diff --git a/apps/encryption/l10n/ja.json b/apps/encryption/l10n/ja.json index 49ce1522363..38f8a84d8c7 100644 --- a/apps/encryption/l10n/ja.json +++ b/apps/encryption/l10n/ja.json @@ -19,14 +19,10 @@ "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", - "ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール", "Recovery key password" : "リカバリキーのパスワード", - "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力", "Change recovery key password:" : "リカバリキーのパスワードを変更:", - "Old Recovery key password" : "古いリカバリキーのパスワード", - "New Recovery key password" : "新しいリカバリキーのパスワード", - "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力", "Change Password" : "パスワードを変更", + "ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール", "Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。", "Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:", " If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", diff --git a/apps/encryption/l10n/ko.js b/apps/encryption/l10n/ko.js index 8ec1b5173a3..b4f9049082d 100644 --- a/apps/encryption/l10n/ko.js +++ b/apps/encryption/l10n/ko.js @@ -5,27 +5,35 @@ OC.L10N.register( "Please repeat the recovery key password" : "복구 키 암호를 다시 입력하십시오", "Repeated recovery key password does not match the provided recovery key password" : "입력한 복구 키 암호가 서로 다릅니다", "Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다", - "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!", + "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!", "Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다", "Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!", + "Missing parameters" : "인자 부족함", "Please provide the old recovery password" : "이전 복구 암호를 입력하십시오", "Please provide a new recovery password" : "새 복구 암호를 입력하십시오", "Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오", "Password successfully changed." : "암호가 성공적으로 변경되었습니다", "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", + "Recovery Key disabled" : "복구 키가 비활성화됨", + "Recovery Key enabled" : "복구 키가 활성화됨", + "Could not enable the recovery key, please try again or contact your administrator" : "복구 키를 활성화할 수 없습니다. 다시 시도하거나 관리자에게 연락하십시오", "Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다", "The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.", "The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.", "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Enable recovery key" : "복구 키 활성화", + "Disable recovery key" : "복구 키 비활성화", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.", "Recovery key password" : "복구 키 암호", - "Repeat Recovery key password" : "복구 키 암호 재입력", + "Repeat recovery key password" : "복구 키 암호 확인", "Change recovery key password:" : "복구 키 암호 변경:", - "Old Recovery key password" : "이전 복구 키 암호", - "New Recovery key password" : "새 복구 키 암호", - "Repeat New Recovery key password" : "새 복구 키 암호 재입력", + "Old recovery key password" : "이전 복구 키 암호", + "New recovery key password" : "새 복구 키 암호", + "Repeat new recovery key password" : "새 복구 키 암호 확인", "Change Password" : "암호 변경", + "ownCloud basic encryption module" : "ownCloud 기본 암호화 모듈", "Your private key password no longer matches your log-in password." : "개인 키 암호와 로그인 암호가 일치하지 않습니다.", "Set your old private key password to your current log-in password:" : "기존 개인 키 암호를 로그인 암호와 동일하게 설정하십시오:", " If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", diff --git a/apps/encryption/l10n/ko.json b/apps/encryption/l10n/ko.json index c4411489401..4cb2f35540c 100644 --- a/apps/encryption/l10n/ko.json +++ b/apps/encryption/l10n/ko.json @@ -3,27 +3,35 @@ "Please repeat the recovery key password" : "복구 키 암호를 다시 입력하십시오", "Repeated recovery key password does not match the provided recovery key password" : "입력한 복구 키 암호가 서로 다릅니다", "Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다", - "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!", + "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!", "Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다", "Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!", + "Missing parameters" : "인자 부족함", "Please provide the old recovery password" : "이전 복구 암호를 입력하십시오", "Please provide a new recovery password" : "새 복구 암호를 입력하십시오", "Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오", "Password successfully changed." : "암호가 성공적으로 변경되었습니다", "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", + "Recovery Key disabled" : "복구 키가 비활성화됨", + "Recovery Key enabled" : "복구 키가 활성화됨", + "Could not enable the recovery key, please try again or contact your administrator" : "복구 키를 활성화할 수 없습니다. 다시 시도하거나 관리자에게 연락하십시오", "Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다", "The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.", "The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.", "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Enable recovery key" : "복구 키 활성화", + "Disable recovery key" : "복구 키 비활성화", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.", "Recovery key password" : "복구 키 암호", - "Repeat Recovery key password" : "복구 키 암호 재입력", + "Repeat recovery key password" : "복구 키 암호 확인", "Change recovery key password:" : "복구 키 암호 변경:", - "Old Recovery key password" : "이전 복구 키 암호", - "New Recovery key password" : "새 복구 키 암호", - "Repeat New Recovery key password" : "새 복구 키 암호 재입력", + "Old recovery key password" : "이전 복구 키 암호", + "New recovery key password" : "새 복구 키 암호", + "Repeat new recovery key password" : "새 복구 키 암호 확인", "Change Password" : "암호 변경", + "ownCloud basic encryption module" : "ownCloud 기본 암호화 모듈", "Your private key password no longer matches your log-in password." : "개인 키 암호와 로그인 암호가 일치하지 않습니다.", "Set your old private key password to your current log-in password:" : "기존 개인 키 암호를 로그인 암호와 동일하게 설정하십시오:", " If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", diff --git a/apps/encryption/l10n/lt_LT.js b/apps/encryption/l10n/lt_LT.js index 502c7b35268..2fd29ca7788 100644 --- a/apps/encryption/l10n/lt_LT.js +++ b/apps/encryption/l10n/lt_LT.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", "Recovery key password" : "Atkūrimo rakto slaptažodis", - "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį", "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", - "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis", - "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis", - "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį", "Change Password" : "Pakeisti slaptažodį", " If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", "Old log-in password" : "Senas prisijungimo slaptažodis", diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json index e73973b48ea..3e97937d60d 100644 --- a/apps/encryption/l10n/lt_LT.json +++ b/apps/encryption/l10n/lt_LT.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", "Recovery key password" : "Atkūrimo rakto slaptažodis", - "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį", "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", - "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis", - "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis", - "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį", "Change Password" : "Pakeisti slaptažodį", " If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", "Old log-in password" : "Senas prisijungimo slaptažodis", diff --git a/apps/encryption/l10n/mk.js b/apps/encryption/l10n/mk.js index 6a886626fb5..f1abdd2f518 100644 --- a/apps/encryption/l10n/mk.js +++ b/apps/encryption/l10n/mk.js @@ -3,9 +3,6 @@ OC.L10N.register( { "Password successfully changed." : "Лозинката е успешно променета.", "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", - "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување", - "Old Recovery key password" : "Старата лозинка за клучот на обновување ", - "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето", "Change Password" : "Смени лозинка", "Old log-in password" : "Старата лозинка за најавување", "Current log-in password" : "Тековната лозинка за најавување", diff --git a/apps/encryption/l10n/mk.json b/apps/encryption/l10n/mk.json index 4d6b7db5255..112d818347c 100644 --- a/apps/encryption/l10n/mk.json +++ b/apps/encryption/l10n/mk.json @@ -1,9 +1,6 @@ { "translations": { "Password successfully changed." : "Лозинката е успешно променета.", "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", - "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување", - "Old Recovery key password" : "Старата лозинка за клучот на обновување ", - "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето", "Change Password" : "Смени лозинка", "Old log-in password" : "Старата лозинка за најавување", "Current log-in password" : "Тековната лозинка за најавување", diff --git a/apps/encryption/l10n/nb_NO.js b/apps/encryption/l10n/nb_NO.js index b0b6a4d2c9b..205f9713583 100644 --- a/apps/encryption/l10n/nb_NO.js +++ b/apps/encryption/l10n/nb_NO.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", "Recovery key password" : "Passord for gjenopprettingsnøkkel", - "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", "Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:", - "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel", - "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel", - "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel", "Change Password" : "Endre passord", "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", diff --git a/apps/encryption/l10n/nb_NO.json b/apps/encryption/l10n/nb_NO.json index 2e402fb8b15..8f0a09d56b5 100644 --- a/apps/encryption/l10n/nb_NO.json +++ b/apps/encryption/l10n/nb_NO.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", "Recovery key password" : "Passord for gjenopprettingsnøkkel", - "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", "Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:", - "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel", - "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel", - "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel", "Change Password" : "Endre passord", "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", diff --git a/apps/encryption/l10n/nl.js b/apps/encryption/l10n/nl.js index d7da433965e..d455039cff0 100644 --- a/apps/encryption/l10n/nl.js +++ b/apps/encryption/l10n/nl.js @@ -23,18 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", - "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule", - "Enable recovery key: " : "Activeer herstelsleutel:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt\n\t\tom bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker het wachtwoord vergeet.", - "Recovery key password" : "Wachtwoord herstelsleulel", - "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord", "Enable recovery key" : "Activeer herstelsleutel", "Disable recovery key" : "Deactiveer herstelsleutel", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt om bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker zijn of haar wachtwoord vergeet.", + "Recovery key password" : "Wachtwoord herstelsleulel", + "Repeat recovery key password" : "Herhaal wachtwoord herstelsleutel", "Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:", - "Old Recovery key password" : "Oude wachtwoord herstelsleutel", - "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel", - "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord", + "Old recovery key password" : "Oude wachtwoord herstelsleutel", + "New recovery key password" : "Nieuwe wachtwoord herstelsleutel", + "Repeat new recovery key password" : "Herhaal nieuwe wachtwoord herstelsleutel", "Change Password" : "Wijzigen wachtwoord", + "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule", "Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", "Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", " If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", diff --git a/apps/encryption/l10n/nl.json b/apps/encryption/l10n/nl.json index 6374d983d89..6172a9fa3c8 100644 --- a/apps/encryption/l10n/nl.json +++ b/apps/encryption/l10n/nl.json @@ -21,18 +21,17 @@ "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", - "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule", - "Enable recovery key: " : "Activeer herstelsleutel:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt\n\t\tom bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker het wachtwoord vergeet.", - "Recovery key password" : "Wachtwoord herstelsleulel", - "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord", "Enable recovery key" : "Activeer herstelsleutel", "Disable recovery key" : "Deactiveer herstelsleutel", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt om bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker zijn of haar wachtwoord vergeet.", + "Recovery key password" : "Wachtwoord herstelsleulel", + "Repeat recovery key password" : "Herhaal wachtwoord herstelsleutel", "Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:", - "Old Recovery key password" : "Oude wachtwoord herstelsleutel", - "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel", - "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord", + "Old recovery key password" : "Oude wachtwoord herstelsleutel", + "New recovery key password" : "Nieuwe wachtwoord herstelsleutel", + "Repeat new recovery key password" : "Herhaal nieuwe wachtwoord herstelsleutel", "Change Password" : "Wijzigen wachtwoord", + "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule", "Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", "Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", " If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", diff --git a/apps/encryption/l10n/pl.js b/apps/encryption/l10n/pl.js index 287b2d6ede5..dd8ecd2081b 100644 --- a/apps/encryption/l10n/pl.js +++ b/apps/encryption/l10n/pl.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", "Recovery key password" : "Hasło klucza odzyskiwania", - "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania", "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", - "Old Recovery key password" : "Stare hasło klucza odzyskiwania", - "New Recovery key password" : "Nowe hasło klucza odzyskiwania", - "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania", "Change Password" : "Zmień hasło", "Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", "Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", diff --git a/apps/encryption/l10n/pl.json b/apps/encryption/l10n/pl.json index 472ab93b063..8e40fe41200 100644 --- a/apps/encryption/l10n/pl.json +++ b/apps/encryption/l10n/pl.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", "Recovery key password" : "Hasło klucza odzyskiwania", - "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania", "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", - "Old Recovery key password" : "Stare hasło klucza odzyskiwania", - "New Recovery key password" : "Nowe hasło klucza odzyskiwania", - "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania", "Change Password" : "Zmień hasło", "Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", "Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js index b4550578cf4..4d25a18c137 100644 --- a/apps/encryption/l10n/pt_BR.js +++ b/apps/encryption/l10n/pt_BR.js @@ -23,18 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", - "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud", - "Enable recovery key: " : "Habilitar recuperação de chave:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "A chave de recuperação é uma chave de criptografia extra que é usada para \ncriptografar arquivos. Ela permite a recuperação de arquivos de um usuário, se o usuário esquecer sua senha.", - "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Repita Recuperação de senha da chave", "Enable recovery key" : "Habilitar recuperação de chave", "Disable recovery key" : "Dasabilitar chave de recuperação", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperação é uma chave de encriptação extra que é utilizada para encriptar arquivos. Ela permite a recuperação de arquivos de um usuário esquecer sua senha.", + "Recovery key password" : "Senha da chave de recuperação", + "Repeat recovery key password" : "Repita senha da chave de recuperação", "Change recovery key password:" : "Mudar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha antiga da chave de recuperação", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação", + "Old recovery key password" : "Senha da chave de recuperação antiga", + "New recovery key password" : "Nova senha da chave de recuperação", + "Repeat new recovery key password" : "Repita a nova senha da chave de recuperação", "Change Password" : "Trocar Senha", + "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud", "Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.", "Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json index 44ba8f85fed..1c7b13e2e7d 100644 --- a/apps/encryption/l10n/pt_BR.json +++ b/apps/encryption/l10n/pt_BR.json @@ -21,18 +21,17 @@ "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", - "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud", - "Enable recovery key: " : "Habilitar recuperação de chave:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "A chave de recuperação é uma chave de criptografia extra que é usada para \ncriptografar arquivos. Ela permite a recuperação de arquivos de um usuário, se o usuário esquecer sua senha.", - "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Repita Recuperação de senha da chave", "Enable recovery key" : "Habilitar recuperação de chave", "Disable recovery key" : "Dasabilitar chave de recuperação", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperação é uma chave de encriptação extra que é utilizada para encriptar arquivos. Ela permite a recuperação de arquivos de um usuário esquecer sua senha.", + "Recovery key password" : "Senha da chave de recuperação", + "Repeat recovery key password" : "Repita senha da chave de recuperação", "Change recovery key password:" : "Mudar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha antiga da chave de recuperação", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação", + "Old recovery key password" : "Senha da chave de recuperação antiga", + "New recovery key password" : "Nova senha da chave de recuperação", + "Repeat new recovery key password" : "Repita a nova senha da chave de recuperação", "Change Password" : "Trocar Senha", + "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud", "Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.", "Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js index 947f91a955e..d3055cd4a40 100644 --- a/apps/encryption/l10n/pt_PT.js +++ b/apps/encryption/l10n/pt_PT.js @@ -21,14 +21,10 @@ OC.L10N.register( "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", - "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud", "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Contrassenha da chave de recuperação", "Change recovery key password:" : "Alterar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha da chave de recuperação antiga", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação", "Change Password" : "Alterar a Senha", + "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud", "Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.", "Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", diff --git a/apps/encryption/l10n/pt_PT.json b/apps/encryption/l10n/pt_PT.json index 1231a23b82b..57baaa64ff1 100644 --- a/apps/encryption/l10n/pt_PT.json +++ b/apps/encryption/l10n/pt_PT.json @@ -19,14 +19,10 @@ "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", - "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud", "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Contrassenha da chave de recuperação", "Change recovery key password:" : "Alterar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha da chave de recuperação antiga", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação", "Change Password" : "Alterar a Senha", + "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud", "Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.", "Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:", " If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", diff --git a/apps/encryption/l10n/ro.js b/apps/encryption/l10n/ro.js index f01bc68ff26..3f699577243 100644 --- a/apps/encryption/l10n/ro.js +++ b/apps/encryption/l10n/ro.js @@ -17,8 +17,8 @@ OC.L10N.register( "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", - "ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud", "Change Password" : "Schimbă parola", + "ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud", "Enabled" : "Activat", "Disabled" : "Dezactivat" }, diff --git a/apps/encryption/l10n/ro.json b/apps/encryption/l10n/ro.json index b7c12785ab1..e546b400935 100644 --- a/apps/encryption/l10n/ro.json +++ b/apps/encryption/l10n/ro.json @@ -15,8 +15,8 @@ "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", - "ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud", "Change Password" : "Schimbă parola", + "ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud", "Enabled" : "Activat", "Disabled" : "Dezactivat" },"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js index 4041b289ec5..03af392d19e 100644 --- a/apps/encryption/l10n/ru.js +++ b/apps/encryption/l10n/ru.js @@ -8,6 +8,7 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Невозможно включить ключ восстановления. Проверьте правильность пароля от ключа!", "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", + "Missing parameters" : "Отсутствуют параметры", "Please provide the old recovery password" : "Введите старый пароль восстановления", "Please provide a new recovery password" : "Введите новый пароль восстановления", "Please repeat the new recovery password" : "Повторите новый пароль восстановления", @@ -22,14 +23,12 @@ OC.L10N.register( "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново", - "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud", + "Enable recovery key" : "Включить ключ восстановления", + "Disable recovery key" : "Отключить ключ восстановления", "Recovery key password" : "Пароль ключа восстановления", - "Repeat Recovery key password" : "Повторите пароль ключа восстановления", "Change recovery key password:" : "Смена пароля ключа восстановления:", - "Old Recovery key password" : "Старый пароль ключа восстановления", - "New Recovery key password" : "Новый пароль ключа восстановления", - "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления", "Change Password" : "Изменить пароль", + "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud", "Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.", "Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.", " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json index d92b5d42b26..2e2bcfd0513 100644 --- a/apps/encryption/l10n/ru.json +++ b/apps/encryption/l10n/ru.json @@ -6,6 +6,7 @@ "Could not enable recovery key. Please check your recovery key password!" : "Невозможно включить ключ восстановления. Проверьте правильность пароля от ключа!", "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", + "Missing parameters" : "Отсутствуют параметры", "Please provide the old recovery password" : "Введите старый пароль восстановления", "Please provide a new recovery password" : "Введите новый пароль восстановления", "Please repeat the new recovery password" : "Повторите новый пароль восстановления", @@ -20,14 +21,12 @@ "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново", - "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud", + "Enable recovery key" : "Включить ключ восстановления", + "Disable recovery key" : "Отключить ключ восстановления", "Recovery key password" : "Пароль ключа восстановления", - "Repeat Recovery key password" : "Повторите пароль ключа восстановления", "Change recovery key password:" : "Смена пароля ключа восстановления:", - "Old Recovery key password" : "Старый пароль ключа восстановления", - "New Recovery key password" : "Новый пароль ключа восстановления", - "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления", "Change Password" : "Изменить пароль", + "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud", "Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.", "Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.", " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", diff --git a/apps/encryption/l10n/sk_SK.js b/apps/encryption/l10n/sk_SK.js index 40f594db21e..ff9f5df4b15 100644 --- a/apps/encryption/l10n/sk_SK.js +++ b/apps/encryption/l10n/sk_SK.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", "Recovery key password" : "Heslo obnovovacieho kľúča", - "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu", "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", - "Old Recovery key password" : "Staré heslo obnovovacieho kľúča", - "New Recovery key password" : "Nové heslo obnovovacieho kľúča", - "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu", "Change Password" : "Zmeniť heslo", "Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", "Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", diff --git a/apps/encryption/l10n/sk_SK.json b/apps/encryption/l10n/sk_SK.json index c9de838f9af..1dd03e0f9ea 100644 --- a/apps/encryption/l10n/sk_SK.json +++ b/apps/encryption/l10n/sk_SK.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", "Recovery key password" : "Heslo obnovovacieho kľúča", - "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu", "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", - "Old Recovery key password" : "Staré heslo obnovovacieho kľúča", - "New Recovery key password" : "Nové heslo obnovovacieho kľúča", - "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu", "Change Password" : "Zmeniť heslo", "Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", "Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", diff --git a/apps/encryption/l10n/sl.js b/apps/encryption/l10n/sl.js index df745a189ae..fe9f775fbef 100644 --- a/apps/encryption/l10n/sl.js +++ b/apps/encryption/l10n/sl.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", "Recovery key password" : "Ključ za obnovitev gesla", - "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla", "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", - "Old Recovery key password" : "Stari ključ za obnovitev gesla", - "New Recovery key password" : "Novi ključ za obnovitev gesla", - "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla", "Change Password" : "Spremeni geslo", "Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.", "Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:", diff --git a/apps/encryption/l10n/sl.json b/apps/encryption/l10n/sl.json index 71f2dfe4ea5..f650196eac1 100644 --- a/apps/encryption/l10n/sl.json +++ b/apps/encryption/l10n/sl.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", "Recovery key password" : "Ključ za obnovitev gesla", - "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla", "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", - "Old Recovery key password" : "Stari ključ za obnovitev gesla", - "New Recovery key password" : "Novi ključ za obnovitev gesla", - "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla", "Change Password" : "Spremeni geslo", "Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.", "Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:", diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js index f13fcf18a2e..b1e0feaa343 100644 --- a/apps/encryption/l10n/sr.js +++ b/apps/encryption/l10n/sr.js @@ -23,18 +23,17 @@ OC.L10N.register( "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.", - "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул", - "Enable recovery key: " : "Омогући кључ за опоравак:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "Кључ за опоравак је додатни кључ за шифровање који се користи\n\t\tза шифровање фајлова. Омогућује опоравак корисничких фајлова ако корисник заборави своју лозинку.", - "Recovery key password" : "Лозинка кључа за опоравак", - "Repeat Recovery key password" : "Поновите лозинку кључа за опоравак", "Enable recovery key" : "Омогући кључ за опоравак", "Disable recovery key" : "Онемогући кључ за опоравак", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", + "Recovery key password" : "Лозинка кључа за опоравак", + "Repeat recovery key password" : "Поновите лозинку кључа за опоравак", "Change recovery key password:" : "Измена лозинке кључа опоравка:", - "Old Recovery key password" : "Стара лозинка кључа опоравка", - "New Recovery key password" : "Нова лозинка кључа опоравка", - "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка", + "Old recovery key password" : "Стара лозинка кључа за опоравак", + "New recovery key password" : "Нова лозинка кључа за опоравак", + "Repeat new recovery key password" : "Поновите нову лозинку кључа за опоравак", "Change Password" : "Измени лозинку", + "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул", "Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.", "Set your old private key password to your current log-in password:" : "Поставите стару лозинку личног кључа као тренутну лозинку за пријаву:", " If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json index 8b4fc0f3fc0..f3139af14af 100644 --- a/apps/encryption/l10n/sr.json +++ b/apps/encryption/l10n/sr.json @@ -21,18 +21,17 @@ "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.", - "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул", - "Enable recovery key: " : "Омогући кључ за опоравак:", - "The recovery key is an extra encryption key that is used\n\t\tto encrypt files. It allows recovery of a user's files if the user forgets their password." : "Кључ за опоравак је додатни кључ за шифровање који се користи\n\t\tза шифровање фајлова. Омогућује опоравак корисничких фајлова ако корисник заборави своју лозинку.", - "Recovery key password" : "Лозинка кључа за опоравак", - "Repeat Recovery key password" : "Поновите лозинку кључа за опоравак", "Enable recovery key" : "Омогући кључ за опоравак", "Disable recovery key" : "Онемогући кључ за опоравак", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", + "Recovery key password" : "Лозинка кључа за опоравак", + "Repeat recovery key password" : "Поновите лозинку кључа за опоравак", "Change recovery key password:" : "Измена лозинке кључа опоравка:", - "Old Recovery key password" : "Стара лозинка кључа опоравка", - "New Recovery key password" : "Нова лозинка кључа опоравка", - "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка", + "Old recovery key password" : "Стара лозинка кључа за опоравак", + "New recovery key password" : "Нова лозинка кључа за опоравак", + "Repeat new recovery key password" : "Поновите нову лозинку кључа за опоравак", "Change Password" : "Измени лозинку", + "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул", "Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.", "Set your old private key password to your current log-in password:" : "Поставите стару лозинку личног кључа као тренутну лозинку за пријаву:", " If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js index 64998296df9..9ffea2b937f 100644 --- a/apps/encryption/l10n/sv.js +++ b/apps/encryption/l10n/sv.js @@ -20,11 +20,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", "Recovery key password" : "Lösenord för återställningsnyckel", - "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord", "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", - "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel", - "New Recovery key password" : "Nytt lösenord för återställningsnyckel", - "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel", "Change Password" : "Byt lösenord", "Your private key password no longer matches your log-in password." : "Ditt lösenord för din privata nyckel matchar inte längre ditt inloggningslösenord.", "Set your old private key password to your current log-in password:" : "Sätt ditt gamla privatnyckellösenord till ditt aktuella inloggningslösenord:", diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json index 1b46603a0e3..e977107ba21 100644 --- a/apps/encryption/l10n/sv.json +++ b/apps/encryption/l10n/sv.json @@ -18,11 +18,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", "Recovery key password" : "Lösenord för återställningsnyckel", - "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord", "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", - "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel", - "New Recovery key password" : "Nytt lösenord för återställningsnyckel", - "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel", "Change Password" : "Byt lösenord", "Your private key password no longer matches your log-in password." : "Ditt lösenord för din privata nyckel matchar inte längre ditt inloggningslösenord.", "Set your old private key password to your current log-in password:" : "Sätt ditt gamla privatnyckellösenord till ditt aktuella inloggningslösenord:", diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js index 36eb1b36e58..f462437912e 100644 --- a/apps/encryption/l10n/tr.js +++ b/apps/encryption/l10n/tr.js @@ -8,11 +8,13 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!", "Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı", "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", + "Missing parameters" : "Eksik parametreler", "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin", "Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin", "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin", "Password successfully changed." : "Parola başarıyla değiştirildi.", "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", + "Recovery Key disabled" : "Kurtarma anahtarı kapalı", "Recovery Key enabled" : "Kurtarma anahtarı etkin", "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun", "Could not update the private key password." : "Özel anahtar parolası güncellenemedi", @@ -21,14 +23,12 @@ OC.L10N.register( "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", - "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü", + "Enable recovery key" : "Kurtarma anahtarını aktif et", + "Disable recovery key" : "Kurtarma anahtarını kapat", "Recovery key password" : "Kurtarma anahtarı parolası", - "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin", "Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:", - "Old Recovery key password" : "Eski Kurtarma anahtarı parolası", - "New Recovery key password" : "Yeni Kurtarma anahtarı parolası", - "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin", "Change Password" : "Parola Değiştir", + "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü", "Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", "Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", " If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json index 209277acfc1..1f3dea88d57 100644 --- a/apps/encryption/l10n/tr.json +++ b/apps/encryption/l10n/tr.json @@ -6,11 +6,13 @@ "Could not enable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!", "Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı", "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", + "Missing parameters" : "Eksik parametreler", "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin", "Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin", "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin", "Password successfully changed." : "Parola başarıyla değiştirildi.", "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", + "Recovery Key disabled" : "Kurtarma anahtarı kapalı", "Recovery Key enabled" : "Kurtarma anahtarı etkin", "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun", "Could not update the private key password." : "Özel anahtar parolası güncellenemedi", @@ -19,14 +21,12 @@ "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", - "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü", + "Enable recovery key" : "Kurtarma anahtarını aktif et", + "Disable recovery key" : "Kurtarma anahtarını kapat", "Recovery key password" : "Kurtarma anahtarı parolası", - "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin", "Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:", - "Old Recovery key password" : "Eski Kurtarma anahtarı parolası", - "New Recovery key password" : "Yeni Kurtarma anahtarı parolası", - "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin", "Change Password" : "Parola Değiştir", + "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü", "Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", "Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", " If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js index faedb5391ba..de044e5a506 100644 --- a/apps/encryption/l10n/uk.js +++ b/apps/encryption/l10n/uk.js @@ -21,14 +21,10 @@ OC.L10N.register( "Private key password successfully updated." : "Пароль секретного ключа оновлено.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", - "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud", "Recovery key password" : "Пароль ключа відновлення", - "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення", "Change recovery key password:" : "Змінити пароль ключа відновлення:", - "Old Recovery key password" : "Старий пароль ключа відновлення", - "New Recovery key password" : "Новий пароль ключа відновлення", - "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення", "Change Password" : "Змінити Пароль", + "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud", "Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.", "Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:", " If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.", diff --git a/apps/encryption/l10n/uk.json b/apps/encryption/l10n/uk.json index 1dfca9a6f6f..f0ac6b8789a 100644 --- a/apps/encryption/l10n/uk.json +++ b/apps/encryption/l10n/uk.json @@ -19,14 +19,10 @@ "Private key password successfully updated." : "Пароль секретного ключа оновлено.", "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", - "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud", "Recovery key password" : "Пароль ключа відновлення", - "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення", "Change recovery key password:" : "Змінити пароль ключа відновлення:", - "Old Recovery key password" : "Старий пароль ключа відновлення", - "New Recovery key password" : "Новий пароль ключа відновлення", - "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення", "Change Password" : "Змінити Пароль", + "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud", "Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.", "Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:", " If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.", diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js index 01db2a8d3a8..05cfcca307c 100644 --- a/apps/encryption/l10n/zh_CN.js +++ b/apps/encryption/l10n/zh_CN.js @@ -18,11 +18,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", "Recovery key password" : "恢复密钥密码", - "Repeat Recovery key password" : "重复恢复密钥密码", "Change recovery key password:" : "更改恢复密钥密码", - "Old Recovery key password" : "旧的恢复密钥密码", - "New Recovery key password" : "新的恢复密钥密码", - "Repeat New Recovery key password" : "重复新的密钥恢复密码", "Change Password" : "修改密码", " If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", "Old log-in password" : "旧登录密码", diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json index 463c029b554..4106228b0d5 100644 --- a/apps/encryption/l10n/zh_CN.json +++ b/apps/encryption/l10n/zh_CN.json @@ -16,11 +16,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", "Recovery key password" : "恢复密钥密码", - "Repeat Recovery key password" : "重复恢复密钥密码", "Change recovery key password:" : "更改恢复密钥密码", - "Old Recovery key password" : "旧的恢复密钥密码", - "New Recovery key password" : "新的恢复密钥密码", - "Repeat New Recovery key password" : "重复新的密钥恢复密码", "Change Password" : "修改密码", " If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", "Old log-in password" : "旧登录密码", diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js index ddf2c2e2d8d..946dc001507 100644 --- a/apps/encryption/l10n/zh_TW.js +++ b/apps/encryption/l10n/zh_TW.js @@ -11,11 +11,7 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", "Recovery key password" : "還原金鑰密碼", - "Repeat Recovery key password" : "再輸入還原金鑰密碼一次", "Change recovery key password:" : "變更還原金鑰密碼:", - "Old Recovery key password" : "舊的還原金鑰密碼", - "New Recovery key password" : "新的還原金鑰密碼", - "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次", "Change Password" : "變更密碼", " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", "Old log-in password" : "舊登入密碼", diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json index 49d3b5df0ee..67878ea4bf4 100644 --- a/apps/encryption/l10n/zh_TW.json +++ b/apps/encryption/l10n/zh_TW.json @@ -9,11 +9,7 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", "Recovery key password" : "還原金鑰密碼", - "Repeat Recovery key password" : "再輸入還原金鑰密碼一次", "Change recovery key password:" : "變更還原金鑰密碼:", - "Old Recovery key password" : "舊的還原金鑰密碼", - "New Recovery key password" : "新的還原金鑰密碼", - "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次", "Change Password" : "變更密碼", " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", "Old log-in password" : "舊登入密碼", diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php index 1bc42ce032f..f527955b496 100644 --- a/apps/encryption/lib/crypto/encryption.php +++ b/apps/encryption/lib/crypto/encryption.php @@ -25,10 +25,12 @@ namespace OCA\Encryption\Crypto; +use OC\Encryption\Exceptions\DecryptionFailedException; use OCA\Encryption\Exceptions\PublicKeyMissingException; use OCA\Encryption\Util; use OCP\Encryption\IEncryptionModule; use OCA\Encryption\KeyManager; +use OCP\IL10N; use OCP\ILogger; class Encryption implements IEncryptionModule { @@ -68,25 +70,30 @@ class Encryption implements IEncryptionModule { /** @var Util */ private $util; - /** @var ILogger */ private $logger; + /** @var IL10N */ + private $l; + /** * * @param Crypt $crypt * @param KeyManager $keyManager * @param Util $util * @param ILogger $logger + * @param IL10N $il10n */ public function __construct(Crypt $crypt, KeyManager $keyManager, Util $util, - ILogger $logger) { + ILogger $logger, + IL10N $il10n) { $this->crypt = $crypt; $this->keyManager = $keyManager; $this->util = $util; $this->logger = $logger; + $this->l = $il10n; } /** @@ -268,8 +275,18 @@ class Encryption implements IEncryptionModule { * * @param string $data you want to decrypt * @return mixed decrypted data + * @throws DecryptionFailedException */ public function decrypt($data) { + if (empty($this->fileKey)) { + $msg = $this->l->t('Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.'); + $this->logger->error('Can not decrypt this file, + probably this is a shared file. + Please ask the file owner to reshare the file with you.'); + + throw new DecryptionFailedException($msg); + } + $result = ''; if (!empty($data)) { $result = $this->crypt->symmetricDecryptFileContent($data, $this->fileKey, $this->cipher); @@ -321,7 +338,7 @@ class Encryption implements IEncryptionModule { */ public function shouldEncrypt($path) { $parts = explode('/', $path); - if (count($parts) < 3) { + if (count($parts) < 4) { return false; } @@ -331,6 +348,9 @@ class Encryption implements IEncryptionModule { if ($parts[2] == 'files_versions') { return true; } + if ($parts[2] == 'files_trashbin') { + return true; + } return false; } @@ -346,6 +366,36 @@ class Encryption implements IEncryptionModule { } /** + * check if the encryption module is able to read the file, + * e.g. if all encryption keys exists + * + * @param string $path + * @param string $uid user for whom we want to check if he can read the file + * @return bool + * @throws DecryptionFailedException + */ + public function isReadable($path, $uid) { + $fileKey = $this->keyManager->getFileKey($path, $uid); + if (empty($fileKey)) { + $owner = $this->util->getOwner($path); + if ($owner !== $uid) { + // if it is a shared file we throw a exception with a useful + // error message because in this case it means that the file was + // shared with the user at a point where the user didn't had a + // valid private/public key + $msg = 'Encryption module "' . $this->getDisplayName() . + '" is not able to read ' . $path; + $hint = $this->l->t('Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.'); + $this->logger->warning($msg); + throw new DecryptionFailedException($msg, 0, null, $hint); + } + return false; + } + + return true; + } + + /** * @param string $path * @return string */ @@ -360,4 +410,5 @@ class Encryption implements IEncryptionModule { return $realPath; } + } diff --git a/apps/encryption/lib/keymanager.php b/apps/encryption/lib/keymanager.php index aa9614812bc..05d23873482 100644 --- a/apps/encryption/lib/keymanager.php +++ b/apps/encryption/lib/keymanager.php @@ -483,7 +483,7 @@ class KeyManager { } public function deleteAllFileKeys($path) { - return $this->keyStorage->deleteAllFileKeys($path, Encryption::ID); + return $this->keyStorage->deleteAllFileKeys($path); } /** diff --git a/apps/encryption/lib/util.php b/apps/encryption/lib/util.php index 51d5241122f..afed96aaa38 100644 --- a/apps/encryption/lib/util.php +++ b/apps/encryption/lib/util.php @@ -29,6 +29,7 @@ use OCA\Encryption\Crypto\Crypt; use OCP\IConfig; use OCP\ILogger; use OCP\IUser; +use OCP\IUserManager; use OCP\IUserSession; use OCP\PreConditionNotMetException; @@ -53,6 +54,10 @@ class Util { * @var IConfig */ private $config; + /** + * @var IUserManager + */ + private $userManager; /** * Util constructor. @@ -62,18 +67,21 @@ class Util { * @param ILogger $logger * @param IUserSession $userSession * @param IConfig $config + * @param IUserManager $userManager */ public function __construct(View $files, Crypt $crypt, ILogger $logger, IUserSession $userSession, - IConfig $config + IConfig $config, + IUserManager $userManager ) { $this->files = $files; $this->crypt = $crypt; $this->logger = $logger; $this->user = $userSession && $userSession->isLoggedIn() ? $userSession->getUser() : false; $this->config = $config; + $this->userManager = $userManager; } /** @@ -117,5 +125,26 @@ class Util { return $this->files->file_exists($uid . '/files'); } + /** + * get owner from give path, path relative to data/ expected + * + * @param string $path relative to data/ + * @return string + * @throws \BadMethodCallException + */ + public function getOwner($path) { + $owner = ''; + $parts = explode('/', $path, 3); + if (count($parts) > 1) { + $owner = $parts[1]; + if ($this->userManager->userExists($owner) === false) { + throw new \BadMethodCallException('Unknown user: ' . + 'method expects path to a user folder relative to the data folder'); + } + + } + + return $owner; + } } diff --git a/apps/encryption/settings/settings-personal.php b/apps/encryption/settings/settings-personal.php index 003a27da71d..3815626ee64 100644 --- a/apps/encryption/settings/settings-personal.php +++ b/apps/encryption/settings/settings-personal.php @@ -35,7 +35,8 @@ $util = new \OCA\Encryption\Util( $crypt, \OC::$server->getLogger(), $userSession, - \OC::$server->getConfig()); + \OC::$server->getConfig(), + \OC::$server->getUserManager()); $keyManager = new \OCA\Encryption\KeyManager( \OC::$server->getEncryptionKeyStorage(), diff --git a/apps/encryption/templates/settings-admin.php b/apps/encryption/templates/settings-admin.php index f1cb83f7457..81c7f0607d8 100644 --- a/apps/encryption/templates/settings-admin.php +++ b/apps/encryption/templates/settings-admin.php @@ -3,70 +3,57 @@ /** @var OC_L10N $l */ script('encryption', 'settings-admin'); script('core', 'multiselect'); +style('encryption', 'settings-admin'); ?> -<form id="encryption" class="section"> - <h2><?php p($l->t('ownCloud basic encryption module')); ?></h2> - +<form id="ocDefaultEncryptionModule" class="sub-section"> <?php if(!$_["initStatus"]): ?> <?php p($l->t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?> <?php else: ?> <p id="encryptionSetRecoveryKey"> - <?php p($l->t('Enable recovery key: ')); ?> + <?php $_["recoveryEnabled"] === '0' ? p($l->t("Enable recovery key")) : p($l->t("Disable recovery key")); ?> <span class="msg"></span> <br/> <em> - <?php p($l->t("The recovery key is an extra encryption key that is used - to encrypt files. It allows recovery of a user's files if the user forgets their password.")) ?> + <?php p($l->t("The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password.")) ?> </em> <br/> - <input type="password" name="encryptionRecoveryPassword" id="encryptionRecoveryPassword"/> - <label for="recoveryPassword"><?php p($l->t("Recovery key password")); ?></label> - <br/> - <input type="password" name="encryptionRecoveryPassword" id="repeatEncryptionRecoveryPassword"/> - <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat Recovery key password")); ?></label> - <br/> - <input - type='radio' - id='adminEnableRecovery' - name='adminEnableRecovery' - value='1' - <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : ''); ?> /> - <label for="adminEnableRecovery"><?php p($l->t("Enable recovery key")); ?></label> - <br/> - - <input - type='radio' - id='adminDisableRecovery' - name='adminEnableRecovery' - value='0' - <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : ''); ?> /> - <label for="adminDisableRecovery"><?php p($l->t("Disable recovery key")); ?></label> + <input type="password" + name="encryptionRecoveryPassword" + id="encryptionRecoveryPassword" + placeholder="<?php p($l->t("Recovery key password")); ?>"/> + <input type="password" + name="encryptionRecoveryPassword" + id="repeatEncryptionRecoveryPassword" + placeholder="<?php p($l->t("Repeat recovery key password")); ?>"/> + <input type="button" + name="enableRecoveryKey" + id="enableRecoveryKey" + status="<?php p($_["recoveryEnabled"]) ?>" + value="<?php $_["recoveryEnabled"] === '0' ? p($l->t("Enable recovery key")) : p($l->t("Disable recovery key")); ?>"/> </p> <br/><br/> - <p name="changeRecoveryPasswordBlock" id="encryptionChangeRecoveryKey" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>> - <strong><?php p($l->t("Change recovery key password:")); ?></strong> + <p name="changeRecoveryPasswordBlock" id="encryptionChangeRecoveryKey" <?php if($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>> + <?php p($l->t("Change recovery key password:")); ?> <span class="msg"></span> - <br/><br/> + <br/> <input type="password" name="changeRecoveryPassword" - id="oldEncryptionRecoveryPassword" /> - <label for="oldEncryptionRecoveryPassword"><?php p($l->t("Old Recovery key password")); ?></label> - <br/> - <br/> + id="oldEncryptionRecoveryPassword" + placeholder="<?php p($l->t("Old recovery key password")); ?>"/> + <br /> <input type="password" name="changeRecoveryPassword" - id="newEncryptionRecoveryPassword" /> - <label for="newEncryptionRecoveryPassword"><?php p($l->t("New Recovery key password")); ?></label> - <br/> + id="newEncryptionRecoveryPassword" + placeholder="<?php p($l->t("New recovery key password")); ?>"/> <input type="password" name="changeRecoveryPassword" - id="repeatedNewEncryptionRecoveryPassword" /> - <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat New Recovery key password")); ?></label> - <br/> + id="repeatedNewEncryptionRecoveryPassword" + placeholder="<?php p($l->t("Repeat new recovery key password")); ?>"/> + <button type="button" name="submitChangeRecoveryKey"> diff --git a/apps/encryption/templates/settings-personal.php b/apps/encryption/templates/settings-personal.php index 6b8821ca8a8..e0a7fc22eeb 100644 --- a/apps/encryption/templates/settings-personal.php +++ b/apps/encryption/templates/settings-personal.php @@ -4,7 +4,7 @@ script('encryption', 'settings-personal'); script('core', 'multiselect'); ?> -<form id="encryption" class="section"> +<form id="ocDefaultEncryptionModule" class="section"> <h2><?php p($l->t('ownCloud basic encryption module')); ?></h2> <?php if ($_["initialized"] === \OCA\Encryption\Session::NOT_INITIALIZED ): ?> diff --git a/apps/encryption/tests/lib/UtilTest.php b/apps/encryption/tests/lib/UtilTest.php index eab912b82d4..18cf0386793 100644 --- a/apps/encryption/tests/lib/UtilTest.php +++ b/apps/encryption/tests/lib/UtilTest.php @@ -28,11 +28,17 @@ use Test\TestCase; class UtilTest extends TestCase { private static $tempStorage = []; + + /** @var \PHPUnit_Framework_MockObject_MockObject */ private $configMock; + + /** @var \PHPUnit_Framework_MockObject_MockObject */ private $filesMock; - /** - * @var Util - */ + + /** @var \PHPUnit_Framework_MockObject_MockObject */ + private $userManagerMock; + + /** @var Util */ private $instance; public function testSetRecoveryForUser() { @@ -40,9 +46,6 @@ class UtilTest extends TestCase { $this->assertArrayHasKey('recoveryEnabled', self::$tempStorage); } - /** - * - */ public function testIsRecoveryEnabledForUser() { $this->assertTrue($this->instance->isRecoveryEnabledForUser('admin')); @@ -62,6 +65,7 @@ class UtilTest extends TestCase { protected function setUp() { parent::setUp(); $this->filesMock = $this->getMock('OC\Files\View'); + $this->userManagerMock = $this->getMock('\OCP\IUserManager'); $cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') ->disableOriginalConstructor() @@ -98,7 +102,7 @@ class UtilTest extends TestCase { ->method('setUserValue') ->will($this->returnCallback([$this, 'setValueTester'])); - $this->instance = new Util($this->filesMock, $cryptMock, $loggerMock, $userSessionMock, $configMock); + $this->instance = new Util($this->filesMock, $cryptMock, $loggerMock, $userSessionMock, $configMock, $this->userManagerMock); } /** diff --git a/apps/encryption/tests/lib/crypto/encryptionTest.php b/apps/encryption/tests/lib/crypto/encryptionTest.php index aa28a8b44a4..d33aff877bf 100644 --- a/apps/encryption/tests/lib/crypto/encryptionTest.php +++ b/apps/encryption/tests/lib/crypto/encryptionTest.php @@ -42,6 +42,9 @@ class EncryptionTest extends TestCase { /** @var \PHPUnit_Framework_MockObject_MockObject */ private $loggerMock; + /** @var \PHPUnit_Framework_MockObject_MockObject */ + private $l10nMock; + public function setUp() { parent::setUp(); @@ -57,12 +60,20 @@ class EncryptionTest extends TestCase { $this->loggerMock = $this->getMockBuilder('OCP\ILogger') ->disableOriginalConstructor() ->getMock(); + $this->l10nMock = $this->getMockBuilder('OCP\IL10N') + ->disableOriginalConstructor() + ->getMock(); + $this->l10nMock->expects($this->any()) + ->method('t') + ->with($this->anything()) + ->willReturnArgument(0); $this->instance = new Encryption( $this->cryptMock, $this->keyManagerMock, $this->utilMock, - $this->loggerMock + $this->loggerMock, + $this->l10nMock ); } @@ -220,4 +231,36 @@ class EncryptionTest extends TestCase { ); } + /** + * by default the encryption module should encrypt regular files, files in + * files_versions and files in files_trashbin + * + * @dataProvider dataTestShouldEncrypt + */ + public function testShouldEncrypt($path, $expected) { + $this->assertSame($expected, + $this->instance->shouldEncrypt($path) + ); + } + + public function dataTestShouldEncrypt() { + return array( + array('/user1/files/foo.txt', true), + array('/user1/files_versions/foo.txt', true), + array('/user1/files_trashbin/foo.txt', true), + array('/user1/some_folder/foo.txt', false), + array('/user1/foo.txt', false), + array('/user1/files', false), + array('/user1/files_trashbin', false), + array('/user1/files_versions', false), + ); + } + + /** + * @expectedException \OC\Encryption\Exceptions\DecryptionFailedException + * @expectedExceptionMessage Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you. + */ + public function testDecrypt() { + $this->instance->decrypt('abc'); + } } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 0181acab596..e88ea1ad5d7 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -950,7 +950,8 @@ if (fileData.isPreviewAvailable) { var iconDiv = filenameTd.find('.thumbnail'); // lazy load / newly inserted td ? - if (options.animate) { + // the typeof check ensures that the default value of animate is true + if (typeof(options.animate) === 'undefined' || !!options.animate) { this.lazyLoadPreview({ path: path + '/' + fileData.name, mime: mime, diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index b2cd08da2d3..9433acbf95e 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Slet", "Disconnect storage" : "Frakobl lager", "Unshare" : "Fjern deling", + "No permission to delete" : "Ingen rettigheder at slette", "Download" : "Download", "Select" : "Vælg", "Pending" : "Afventer", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index 2b368767a44..0fb4159ef5c 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -40,6 +40,7 @@ "Delete" : "Slet", "Disconnect storage" : "Frakobl lager", "Unshare" : "Fjern deling", + "No permission to delete" : "Ingen rettigheder at slette", "Download" : "Download", "Select" : "Vælg", "Pending" : "Afventer", diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js index a94d0486f4b..046e993f7f6 100644 --- a/apps/files/l10n/de_AT.js +++ b/apps/files/l10n/de_AT.js @@ -1,6 +1,7 @@ OC.L10N.register( "files", { + "Unknown error" : "Unbekannter Fehler", "Files" : "Dateien", "Delete" : "Löschen", "Unshare" : "Teilung zurücknehmen", @@ -16,6 +17,9 @@ OC.L10N.register( "You deleted %1$s" : "Du hast %1$s gelöscht", "%2$s deleted %1$s" : "%2$s löschte %1$s", "Save" : "Speichern", - "Settings" : "Einstellungen" + "Settings" : "Einstellungen", + "New folder" : "Neuer Ordner", + "Upload" : "Hochladen", + "Cancel upload" : "Hochladen abbrechen" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json index 89b99b5d001..b31eb12c490 100644 --- a/apps/files/l10n/de_AT.json +++ b/apps/files/l10n/de_AT.json @@ -1,4 +1,5 @@ { "translations": { + "Unknown error" : "Unbekannter Fehler", "Files" : "Dateien", "Delete" : "Löschen", "Unshare" : "Teilung zurücknehmen", @@ -14,6 +15,9 @@ "You deleted %1$s" : "Du hast %1$s gelöscht", "%2$s deleted %1$s" : "%2$s löschte %1$s", "Save" : "Speichern", - "Settings" : "Einstellungen" + "Settings" : "Einstellungen", + "New folder" : "Neuer Ordner", + "Upload" : "Hochladen", + "Cancel upload" : "Hochladen abbrechen" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js index 00507bf43d9..6fea601bdfc 100644 --- a/apps/files/l10n/is.js +++ b/apps/files/l10n/is.js @@ -42,4 +42,4 @@ OC.L10N.register( "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.", "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu." }, -"nplurals=2; plural=(n != 1);"); +"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"); diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json index e63dd585d17..1fe2dd93e2f 100644 --- a/apps/files/l10n/is.json +++ b/apps/files/l10n/is.json @@ -39,5 +39,5 @@ "Upload too large" : "Innsend skrá er of stór", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.", "Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu." -},"pluralForm" :"nplurals=2; plural=(n != 1);" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);" }
\ No newline at end of file diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index ca961a8fbbd..b49fcd33bc5 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "삭제", "Disconnect storage" : "저장소 연결 해제", "Unshare" : "공유 해제", + "No permission to delete" : "삭제할 권한 없음", "Download" : "다운로드", "Select" : "선택", "Pending" : "대기 중", @@ -70,6 +71,7 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생", "A new file or folder has been <strong>created</strong>" : "새 파일이나 폴더가 <strong>생성됨</strong>", "A file or folder has been <strong>changed</strong>" : "파일이나 폴더가 <strong>변경됨</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>즐겨찾는 파일</strong>의 생성 및 변경 사항에 대한 알림을 줄일 수 있습니다<em>(스트림에서만)</em>", "A file or folder has been <strong>deleted</strong>" : "파일이나 폴더가 <strong>삭제됨</strong>", "A file or folder has been <strong>restored</strong>" : "파일이나 폴더가 <strong>복원됨</strong>", "You created %1$s" : "내가 %1$s을(를) 생성함", @@ -88,6 +90,7 @@ OC.L10N.register( "Maximum upload size" : "최대 업로드 크기", "max. possible: " : "최대 가능:", "Save" : "저장", + "Can not be edited from here due to insufficient permissions." : "권한이 부족하므로 여기에서 편집할 수 없습니다.", "Settings" : "설정", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "WebDAV로 파일에 접근하려면 <a href=\"%s\" target=\"_blank\">이 주소를 사용하십시오</a>", @@ -98,6 +101,7 @@ OC.L10N.register( "Folder" : "폴더", "Upload" : "업로드", "Cancel upload" : "업로드 취소", + "No files in here" : "여기에 파일 없음", "Upload some content or sync with your devices!" : "파일을 업로드하거나 장치와 동기화하십시오!", "No entries found in this folder" : "이 폴더에 항목 없음", "Select all" : "모두 선택", diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index e8757da56b9..b9611b185b5 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -40,6 +40,7 @@ "Delete" : "삭제", "Disconnect storage" : "저장소 연결 해제", "Unshare" : "공유 해제", + "No permission to delete" : "삭제할 권한 없음", "Download" : "다운로드", "Select" : "선택", "Pending" : "대기 중", @@ -68,6 +69,7 @@ "An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생", "A new file or folder has been <strong>created</strong>" : "새 파일이나 폴더가 <strong>생성됨</strong>", "A file or folder has been <strong>changed</strong>" : "파일이나 폴더가 <strong>변경됨</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>즐겨찾는 파일</strong>의 생성 및 변경 사항에 대한 알림을 줄일 수 있습니다<em>(스트림에서만)</em>", "A file or folder has been <strong>deleted</strong>" : "파일이나 폴더가 <strong>삭제됨</strong>", "A file or folder has been <strong>restored</strong>" : "파일이나 폴더가 <strong>복원됨</strong>", "You created %1$s" : "내가 %1$s을(를) 생성함", @@ -86,6 +88,7 @@ "Maximum upload size" : "최대 업로드 크기", "max. possible: " : "최대 가능:", "Save" : "저장", + "Can not be edited from here due to insufficient permissions." : "권한이 부족하므로 여기에서 편집할 수 없습니다.", "Settings" : "설정", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "WebDAV로 파일에 접근하려면 <a href=\"%s\" target=\"_blank\">이 주소를 사용하십시오</a>", @@ -96,6 +99,7 @@ "Folder" : "폴더", "Upload" : "업로드", "Cancel upload" : "업로드 취소", + "No files in here" : "여기에 파일 없음", "Upload some content or sync with your devices!" : "파일을 업로드하거나 장치와 동기화하십시오!", "No entries found in this folder" : "이 폴더에 항목 없음", "Select all" : "모두 선택", diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js index 13e21643c97..fbda6b4d1fb 100644 --- a/apps/files/l10n/mk.js +++ b/apps/files/l10n/mk.js @@ -51,6 +51,7 @@ OC.L10N.register( "You deleted %1$s" : "Вие избришавте %1$s", "%2$s deleted %1$s" : "%2$s избришани %1$s", "%s could not be renamed" : "%s не може да биде преименуван", + "Upload (max. %s)" : "Префрлање (макс. %s)", "File handling" : "Ракување со датотеки", "Maximum upload size" : "Максимална големина за подигање", "max. possible: " : "макс. можно:", diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json index 12c4edc25c5..7eb9488916f 100644 --- a/apps/files/l10n/mk.json +++ b/apps/files/l10n/mk.json @@ -49,6 +49,7 @@ "You deleted %1$s" : "Вие избришавте %1$s", "%2$s deleted %1$s" : "%2$s избришани %1$s", "%s could not be renamed" : "%s не може да биде преименуван", + "Upload (max. %s)" : "Префрлање (макс. %s)", "File handling" : "Ракување со датотеки", "Maximum upload size" : "Максимална големина за подигање", "max. possible: " : "макс. можно:", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 83343a9444e..a55e0e88b69 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Excluir", "Disconnect storage" : "Desconectar armazenagem", "Unshare" : "Descompartilhar", + "No permission to delete" : "Sem permissão para excluir", "Download" : "Baixar", "Select" : "Selecionar", "Pending" : "Pendente", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 42bacf971b2..0129b544ab4 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -40,6 +40,7 @@ "Delete" : "Excluir", "Disconnect storage" : "Desconectar armazenagem", "Unshare" : "Descompartilhar", + "No permission to delete" : "Sem permissão para excluir", "Download" : "Baixar", "Select" : "Selecionar", "Pending" : "Pendente", diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js index 072141105c8..09974a0321d 100644 --- a/apps/files/l10n/pt_PT.js +++ b/apps/files/l10n/pt_PT.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Apagar", "Disconnect storage" : "Desconete o armazenamento", "Unshare" : "Deixar de partilhar", + "No permission to delete" : "Não tem permissão para apagar", "Download" : "Transferir", "Select" : "Selecionar", "Pending" : "Pendente", diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json index 66230a0e6c9..4172185936a 100644 --- a/apps/files/l10n/pt_PT.json +++ b/apps/files/l10n/pt_PT.json @@ -40,6 +40,7 @@ "Delete" : "Apagar", "Disconnect storage" : "Desconete o armazenamento", "Unshare" : "Deixar de partilhar", + "No permission to delete" : "Não tem permissão para apagar", "Download" : "Transferir", "Select" : "Selecionar", "Pending" : "Pendente", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 19e71acd491..f69b4a9817e 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -56,15 +56,15 @@ OC.L10N.register( "Name" : "Имя", "Size" : "Размер", "Modified" : "Изменён", - "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов"], - "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов"], + "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов","%n каталогов"], + "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов","%n файлов"], "You don’t have permission to upload or create files here" : "У вас нет прав для загрузки или создания файлов здесь.", - "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов"], + "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов","Закачка %n файлов"], "\"{name}\" is an invalid file name." : "\"{name}\" это неправильное имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", "Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.", "Your storage is almost full ({usedSpacePercent}%)" : "Ваше хранилище почти заполнено ({usedSpacePercent}%)", - "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"], "{dirs} and {files}" : "{dirs} и {files}", "Favorited" : "Избранное", "Favorite" : "Избранное", @@ -112,4 +112,4 @@ OC.L10N.register( "No favorites" : "Нет избранного", "Files and folders you mark as favorite will show up here" : "Здесь появятся файлы и каталоги, отмеченные как избранные" }, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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/l10n/ru.json b/apps/files/l10n/ru.json index 99e7b91861d..1099ca30b0d 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -54,15 +54,15 @@ "Name" : "Имя", "Size" : "Размер", "Modified" : "Изменён", - "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов"], - "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов"], + "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов","%n каталогов"], + "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов","%n файлов"], "You don’t have permission to upload or create files here" : "У вас нет прав для загрузки или создания файлов здесь.", - "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов"], + "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов","Закачка %n файлов"], "\"{name}\" is an invalid file name." : "\"{name}\" это неправильное имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", "Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.", "Your storage is almost full ({usedSpacePercent}%)" : "Ваше хранилище почти заполнено ({usedSpacePercent}%)", - "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"], "{dirs} and {files}" : "{dirs} и {files}", "Favorited" : "Избранное", "Favorite" : "Избранное", @@ -109,5 +109,5 @@ "Currently scanning" : "В настоящее время сканируется", "No favorites" : "Нет избранного", "Files and folders you mark as favorite will show up here" : "Здесь появятся файлы и каталоги, отмеченные как избранные" -},"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);" +},"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/l10n/uk.js b/apps/files/l10n/uk.js index a9496a55823..e8c0ccd8a6c 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Видалити", "Disconnect storage" : "Від’єднати сховище", "Unshare" : "Закрити доступ", + "No permission to delete" : "Недостатньо прав для видалення", "Download" : "Завантажити", "Select" : "Оберіть", "Pending" : "Очікування", diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index c34b8501ae9..82aa81d4cc1 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -40,6 +40,7 @@ "Delete" : "Видалити", "Disconnect storage" : "Від’єднати сховище", "Unshare" : "Закрити доступ", + "No permission to delete" : "Недостатньо прав для видалення", "Download" : "Завантажити", "Select" : "Оберіть", "Pending" : "Очікування", diff --git a/apps/files_external/l10n/de_AT.js b/apps/files_external/l10n/de_AT.js index c4a56bb7a5f..5dbc69e2966 100644 --- a/apps/files_external/l10n/de_AT.js +++ b/apps/files_external/l10n/de_AT.js @@ -4,9 +4,11 @@ OC.L10N.register( "Location" : "Ort", "Port" : "Port", "Host" : "Host", + "Username" : "Benutzername", "Password" : "Passwort", "Share" : "Freigeben", "Personal" : "Persönlich", + "Folder name" : "Ordner Name", "Delete" : "Löschen" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/de_AT.json b/apps/files_external/l10n/de_AT.json index 3dea5f2cd58..7fd1d456c58 100644 --- a/apps/files_external/l10n/de_AT.json +++ b/apps/files_external/l10n/de_AT.json @@ -2,9 +2,11 @@ "Location" : "Ort", "Port" : "Port", "Host" : "Host", + "Username" : "Benutzername", "Password" : "Passwort", "Share" : "Freigeben", "Personal" : "Persönlich", + "Folder name" : "Ordner Name", "Delete" : "Löschen" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/is.js b/apps/files_external/l10n/is.js index 0ef3945c353..644c4a06546 100644 --- a/apps/files_external/l10n/is.js +++ b/apps/files_external/l10n/is.js @@ -20,4 +20,4 @@ OC.L10N.register( "Delete" : "Eyða", "Enable User External Storage" : "Virkja ytra gagnasvæði notenda" }, -"nplurals=2; plural=(n != 1);"); +"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"); diff --git a/apps/files_external/l10n/is.json b/apps/files_external/l10n/is.json index c5d55bea9ce..512f0ed76b9 100644 --- a/apps/files_external/l10n/is.json +++ b/apps/files_external/l10n/is.json @@ -17,5 +17,5 @@ "Configuration" : "Uppsetning", "Delete" : "Eyða", "Enable User External Storage" : "Virkja ytra gagnasvæði notenda" -},"pluralForm" :"nplurals=2; plural=(n != 1);" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js index 164a6b4f5b0..61996d8ba27 100644 --- a/apps/files_external/l10n/ko.js +++ b/apps/files_external/l10n/ko.js @@ -44,6 +44,9 @@ OC.L10N.register( "URL" : "URL", "Secure https://" : "보안 https://", "Public key" : "공개 키", + "Storage with id \"%i\" not found" : "ID가 \"%i\"인 저장소를 찾을 수 없음", + "Invalid mount point" : "잘못된 마운트 지점", + "Invalid storage backend \"%s\"" : "잘못된 저장소 백엔드 \"%s\"", "Access granted" : "접근 허가됨", "Error configuring Dropbox storage" : "Dropbox 저장소 설정 오류", "Grant access" : "접근 권한 부여", @@ -53,12 +56,15 @@ OC.L10N.register( "All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오", "(group)" : "(그룹)", "Saved" : "저장됨", + "Generate keys" : "키 생성", + "Error generating key pair" : "키 쌍을 생성하는 중 오류 발생", "<b>Note:</b> " : "<b>메모:</b>", "and" : "그리고", "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP cURL 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP FTP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> \"%s\"이(가) 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "No external storage configured" : "외부 저장소가 설정되지 않았음", + "You can add external storages in the personal settings" : "개인 설정에서 외부 저장소를 추가할 수 있습니다", "Name" : "이름", "Storage type" : "저장소 종류", "Scope" : "범위", @@ -67,6 +73,7 @@ OC.L10N.register( "Configuration" : "설정", "Available for" : "다음으로 사용 가능", "Add storage" : "저장소 추가", + "Advanced settings" : "고급 설정", "Delete" : "삭제", "Enable User External Storage" : "사용자 외부 저장소 사용", "Allow users to mount the following external storage" : "사용자가 다음 외부 저장소를 마운트할 수 있도록 허용" diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json index b68e18e2581..d0fabd105e1 100644 --- a/apps/files_external/l10n/ko.json +++ b/apps/files_external/l10n/ko.json @@ -42,6 +42,9 @@ "URL" : "URL", "Secure https://" : "보안 https://", "Public key" : "공개 키", + "Storage with id \"%i\" not found" : "ID가 \"%i\"인 저장소를 찾을 수 없음", + "Invalid mount point" : "잘못된 마운트 지점", + "Invalid storage backend \"%s\"" : "잘못된 저장소 백엔드 \"%s\"", "Access granted" : "접근 허가됨", "Error configuring Dropbox storage" : "Dropbox 저장소 설정 오류", "Grant access" : "접근 권한 부여", @@ -51,12 +54,15 @@ "All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오", "(group)" : "(그룹)", "Saved" : "저장됨", + "Generate keys" : "키 생성", + "Error generating key pair" : "키 쌍을 생성하는 중 오류 발생", "<b>Note:</b> " : "<b>메모:</b>", "and" : "그리고", "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP cURL 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP FTP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> \"%s\"이(가) 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "No external storage configured" : "외부 저장소가 설정되지 않았음", + "You can add external storages in the personal settings" : "개인 설정에서 외부 저장소를 추가할 수 있습니다", "Name" : "이름", "Storage type" : "저장소 종류", "Scope" : "범위", @@ -65,6 +71,7 @@ "Configuration" : "설정", "Available for" : "다음으로 사용 가능", "Add storage" : "저장소 추가", + "Advanced settings" : "고급 설정", "Delete" : "삭제", "Enable User External Storage" : "사용자 외부 저장소 사용", "Allow users to mount the following external storage" : "사용자가 다음 외부 저장소를 마운트할 수 있도록 허용" diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js index 07bd765ff80..aafb4b36551 100644 --- a/apps/files_external/l10n/ru.js +++ b/apps/files_external/l10n/ru.js @@ -78,4 +78,4 @@ OC.L10N.register( "Enable User External Storage" : "Включить пользовательские внешние хранилища", "Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных" }, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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_external/l10n/ru.json b/apps/files_external/l10n/ru.json index 40ea8e23563..b01779e83d1 100644 --- a/apps/files_external/l10n/ru.json +++ b/apps/files_external/l10n/ru.json @@ -75,5 +75,5 @@ "Delete" : "Удалить", "Enable User External Storage" : "Включить пользовательские внешние хранилища", "Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +},"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_sharing/api/local.php b/apps/files_sharing/api/local.php index 00509bcee69..03812800c17 100644 --- a/apps/files_sharing/api/local.php +++ b/apps/files_sharing/api/local.php @@ -68,6 +68,7 @@ class Local { if (\OC::$server->getPreviewManager()->isMimeSupported($share['mimetype'])) { $share['isPreviewAvailable'] = true; } + $share['icon'] = substr(\OC_Helper::mimetypeIcon($share['mimetype']), 0, -3) . 'svg'; } } return new \OC_OCS_Result($shares); diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js index 2c7d6c7d43a..ca187940a08 100644 --- a/apps/files_sharing/js/sharedfilelist.js +++ b/apps/files_sharing/js/sharedfilelist.js @@ -176,6 +176,7 @@ .map(function(share) { var file = { id: share.file_source, + icon: share.icon, mimetype: share.mimetype }; if (share.item_type === 'folder') { diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js index 57e49f68ec4..93f63e25314 100644 --- a/apps/files_sharing/l10n/is.js +++ b/apps/files_sharing/l10n/is.js @@ -8,4 +8,4 @@ OC.L10N.register( "Name" : "Nafn", "Download" : "Niðurhal" }, -"nplurals=2; plural=(n != 1);"); +"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"); diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json index f7094b9cbe8..69493847d9b 100644 --- a/apps/files_sharing/l10n/is.json +++ b/apps/files_sharing/l10n/is.json @@ -5,5 +5,5 @@ "Password" : "Lykilorð", "Name" : "Nafn", "Download" : "Niðurhal" -},"pluralForm" :"nplurals=2; plural=(n != 1);" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index af8c0bdbcef..dde011c8b4d 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -21,6 +21,7 @@ OC.L10N.register( "Remote share password" : "リモート共有のパスワード", "Cancel" : "キャンセル", "Add remote share" : "リモート共有を追加", + "You can upload into this folder" : "このフォルダーにアップロードできます", "No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません", "Invalid ownCloud url" : "無効なownCloud URL です", "Share" : "共有", diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index ee1f81e8e0a..76d8d8e8968 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -19,6 +19,7 @@ "Remote share password" : "リモート共有のパスワード", "Cancel" : "キャンセル", "Add remote share" : "リモート共有を追加", + "You can upload into this folder" : "このフォルダーにアップロードできます", "No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません", "Invalid ownCloud url" : "無効なownCloud URL です", "Share" : "共有", diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index 4d94b883890..0373de3ca9d 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -21,6 +21,7 @@ OC.L10N.register( "Remote share password" : "원격 공유 암호", "Cancel" : "취소", "Add remote share" : "원격 공유 추가", + "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다", "No ownCloud installation (7 or higher) found at {remote}" : "{remote}에 ownCloud 7 이상이 설치되어 있지 않음", "Invalid ownCloud url" : "잘못된 ownCloud URL", "Share" : "공유", diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index cc0e793977d..054194ee7a7 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -19,6 +19,7 @@ "Remote share password" : "원격 공유 암호", "Cancel" : "취소", "Add remote share" : "원격 공유 추가", + "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다", "No ownCloud installation (7 or higher) found at {remote}" : "{remote}에 ownCloud 7 이상이 설치되어 있지 않음", "Invalid ownCloud url" : "잘못된 ownCloud URL", "Share" : "공유", diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js index 5561d011710..18a6dde9e3a 100644 --- a/apps/files_sharing/l10n/uk.js +++ b/apps/files_sharing/l10n/uk.js @@ -21,6 +21,7 @@ OC.L10N.register( "Remote share password" : "Пароль для віддаленої загальної теки", "Cancel" : "Відмінити", "Add remote share" : "Додати віддалену загальну теку", + "You can upload into this folder" : "Ви можете завантажити до цієї теки", "No ownCloud installation (7 or higher) found at {remote}" : "Немає установленого OwnCloud (7 або вище), можна знайти на {remote}", "Invalid ownCloud url" : "Невірний ownCloud URL", "Share" : "Поділитися", diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json index 13f2ac4fc6a..de200a1fe8f 100644 --- a/apps/files_sharing/l10n/uk.json +++ b/apps/files_sharing/l10n/uk.json @@ -19,6 +19,7 @@ "Remote share password" : "Пароль для віддаленої загальної теки", "Cancel" : "Відмінити", "Add remote share" : "Додати віддалену загальну теку", + "You can upload into this folder" : "Ви можете завантажити до цієї теки", "No ownCloud installation (7 or higher) found at {remote}" : "Немає установленого OwnCloud (7 або вище), можна знайти на {remote}", "Invalid ownCloud url" : "Невірний ownCloud URL", "Share" : "Поділитися", diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index bc01465cb4a..10a37c7dae9 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -31,7 +31,6 @@ namespace OC\Files\Storage; use OC\Files\Cache\ChangePropagator; use OC\Files\Filesystem; -use OC\Files\View; use OCA\Files_Sharing\ISharedStorage; use OCA\Files_Sharing\Propagator; use OCA\Files_Sharing\SharedMount; @@ -218,7 +217,13 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } public function isReadable($path) { - return $this->file_exists($path); + $isReadable = false; + if ($source = $this->getSourcePath($path)) { + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); + $isReadable = $storage->isReadable($internalPath); + } + + return $isReadable && $this->file_exists($path); } public function isUpdatable($path) { @@ -327,30 +332,32 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } } - // for part files we need to ask for the owner and path from the parent directory because - // the file cache doesn't return any results for part files - if ($isPartFile) { - list($user1, $path1) = \OCA\Files_Sharing\Helper::getUidAndFilename($pathinfo['dirname']); - $path1 = $path1 . '/' . $pathinfo['basename']; - } else { - list($user1, $path1) = \OCA\Files_Sharing\Helper::getUidAndFilename($relPath1); - } - $targetFilename = basename($relPath2); - list($user2, $path2) = \OCA\Files_Sharing\Helper::getUidAndFilename(dirname($relPath2)); - $rootView = new \OC\Files\View(''); - $rootView->getUpdater()->disable(); // dont update the cache here - $result = $rootView->rename('/' . $user1 . '/files/' . $path1, '/' . $user2 . '/files/' . $path2 . '/' . $targetFilename); - $rootView->getUpdater()->enable(); - return $result; + + /** + * @var \OC\Files\Storage\Storage $sourceStorage + */ + list($sourceStorage, $sourceInternalPath) = $this->resolvePath($path1); + /** + * @var \OC\Files\Storage\Storage $targetStorage + */ + list($targetStorage, $targetInternalPath) = $this->resolvePath($path2); + + return $targetStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); } public function copy($path1, $path2) { // Copy the file if CREATE permission is granted if ($this->isCreatable(dirname($path2))) { - $oldSource = $this->getSourcePath($path1); - $newSource = $this->getSourcePath(dirname($path2)) . '/' . basename($path2); - $rootView = new \OC\Files\View(''); - return $rootView->copy($oldSource, $newSource); + /** + * @var \OC\Files\Storage\Storage $sourceStorage + */ + list($sourceStorage, $sourceInternalPath) = $this->resolvePath($path1); + /** + * @var \OC\Files\Storage\Storage $targetStorage + */ + list($targetStorage, $targetInternalPath) = $this->resolvePath($path2); + + return $targetStorage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); } return false; } diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php index 45cf662d148..88bb68aa36e 100644 --- a/apps/files_sharing/lib/updater.php +++ b/apps/files_sharing/lib/updater.php @@ -28,13 +28,15 @@ namespace OC\Files\Cache; class Shared_Updater { /** - * walk up the users file tree and update the etags - * @param string $user - * @param string $path + * Walk up the users file tree and update the etags. + * + * @param string $user user id + * @param string $path share mount point path, relative to the user's "files" folder */ static private function correctUsersFolder($user, $path) { // $path points to the mount point which is a virtual folder, so we start with // the parent + $path = '/' . ltrim($path, '/'); $path = '/files' . dirname($path); \OC\Files\Filesystem::initMountPoints($user); $view = new \OC\Files\View('/' . $user); @@ -101,10 +103,10 @@ class Shared_Updater { foreach ($deletedShares as $share) { if ($share['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { foreach (\OC_Group::usersInGroup($share['shareWith']) as $user) { - self::correctUsersFolder($user, dirname($share['fileTarget'])); + self::correctUsersFolder($user, $share['fileTarget']); } } else { - self::correctUsersFolder($share['shareWith'], dirname($share['fileTarget'])); + self::correctUsersFolder($share['shareWith'], $share['fileTarget']); } } } @@ -119,10 +121,10 @@ class Shared_Updater { foreach ($params['unsharedItems'] as $item) { if ($item['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { foreach (\OC_Group::usersInGroup($item['shareWith']) as $user) { - self::correctUsersFolder($user, dirname($item['fileTarget'])); + self::correctUsersFolder($user, $item['fileTarget']); } } else { - self::correctUsersFolder($item['shareWith'], dirname($item['fileTarget'])); + self::correctUsersFolder($item['shareWith'], $item['fileTarget']); } } } diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php index 3be464c64f0..c2a16e933b3 100644 --- a/apps/files_sharing/publicwebdav.php +++ b/apps/files_sharing/publicwebdav.php @@ -48,7 +48,8 @@ $server->setBaseUri($baseuri); // Load plugins $defaults = new OC_Defaults(); $server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, $defaults->getName())); -$server->addPlugin(new \Sabre\DAV\Browser\Plugin(false)); // Show something in the Browser, but no upload +// FIXME: The following line is a workaround for legacy components relying on being able to send a GET to / +$server->addPlugin(new \OC\Connector\Sabre\DummyGetResponsePlugin()); $server->addPlugin(new \OC\Connector\Sabre\FilesPlugin($objectTree)); $server->addPlugin(new \OC\Connector\Sabre\MaintenancePlugin()); $server->addPlugin(new \OC\Connector\Sabre\ExceptionLoggerPlugin('webdav', \OC::$server->getLogger())); diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php index 041ed34ce11..60b7c525e35 100644 --- a/apps/files_sharing/tests/etagpropagation.php +++ b/apps/files_sharing/tests/etagpropagation.php @@ -32,6 +32,11 @@ class EtagPropagation extends TestCase { protected $fileIds = []; // [$user=>[$path=>$id]] protected $fileEtags = []; // [$id=>$etag] + public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + \OCA\Files_Sharing\Helper::registerHooks(); + } + protected function setUp() { parent::setUp(); $this->setUpShares(); @@ -239,6 +244,43 @@ class EtagPropagation extends TestCase { $this->assertAllUnchaged(); } + public function testOwnerUnshares() { + $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); + $folderInfo = $this->rootView->getFileInfo('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/sub1/sub2/folder'); + $folderId = $folderInfo->getId(); + $this->assertTrue( + \OCP\Share::unshare( + 'folder', + $folderId, + \OCP\Share::SHARE_TYPE_USER, + self::TEST_FILES_SHARING_API_USER2 + ) + ); + $this->assertEtagsForFoldersChanged([ + // direct recipient affected + self::TEST_FILES_SHARING_API_USER2, + // reshare recipient affected + self::TEST_FILES_SHARING_API_USER4, + ]); + + $this->assertAllUnchaged(); + } + + public function testRecipientUnsharesFromSelf() { + $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2); + $this->assertTrue( + $this->rootView->unlink('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub1/sub2/folder') + ); + $this->assertEtagsForFoldersChanged([ + // direct recipient affected + self::TEST_FILES_SHARING_API_USER2, + // reshare recipient affected + self::TEST_FILES_SHARING_API_USER4, + ]); + + $this->assertAllUnchaged(); + } + public function testRecipientWritesToShare() { $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2); Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar'); diff --git a/apps/files_sharing/tests/updater.php b/apps/files_sharing/tests/updater.php index 67c76c28ed2..294388bfe26 100644 --- a/apps/files_sharing/tests/updater.php +++ b/apps/files_sharing/tests/updater.php @@ -147,79 +147,6 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase { } /** - * if a file gets unshared by the owner the etag for the recipients root should change - */ - function testUnshareFile() { - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $beforeUnshare = \OC\Files\Filesystem::getFileInfo(''); - $etagBeforeUnshare = $beforeUnshare->getEtag(); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $afterUnshare = \OC\Files\Filesystem::getFileInfo(''); - $etagAfterUnshare = $afterUnshare->getEtag(); - - $this->assertTrue(is_string($etagBeforeUnshare)); - $this->assertTrue(is_string($etagAfterUnshare)); - $this->assertTrue($etagBeforeUnshare !== $etagAfterUnshare); - - } - - /** - * if a file gets unshared from self the etag for the recipients root should change - */ - function testUnshareFromSelfFile() { - $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER3, 31); - - $beforeUnshareUser2 = \OC\Files\Filesystem::getFileInfo(''); - $etagBeforeUnshareUser2 = $beforeUnshareUser2->getEtag(); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER3); - - $beforeUnshareUser3 = \OC\Files\Filesystem::getFileInfo(''); - $etagBeforeUnshareUser3 = $beforeUnshareUser3->getEtag(); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $result = \OC\Files\Filesystem::unlink($this->folder); - $this->assertTrue($result); - - $afterUnshareUser2 = \OC\Files\Filesystem::getFileInfo(''); - $etagAfterUnshareUser2 = $afterUnshareUser2->getEtag(); - - $this->loginHelper(self::TEST_FILES_SHARING_API_USER3); - - $afterUnshareUser3 = \OC\Files\Filesystem::getFileInfo(''); - $etagAfterUnshareUser3 = $afterUnshareUser3->getEtag(); - - $this->assertTrue(is_string($etagBeforeUnshareUser2)); - $this->assertTrue(is_string($etagBeforeUnshareUser3)); - $this->assertTrue(is_string($etagAfterUnshareUser2)); - $this->assertTrue(is_string($etagAfterUnshareUser3)); - $this->assertTrue($etagBeforeUnshareUser2 !== $etagAfterUnshareUser2); - $this->assertTrue($etagBeforeUnshareUser3 !== $etagAfterUnshareUser3); - - } - - /** * if a folder gets renamed all children mount points should be renamed too */ function testRename() { diff --git a/apps/files_trashbin/l10n/is.js b/apps/files_trashbin/l10n/is.js index 916875decea..de8522ed671 100644 --- a/apps/files_trashbin/l10n/is.js +++ b/apps/files_trashbin/l10n/is.js @@ -5,4 +5,4 @@ OC.L10N.register( "Name" : "Nafn", "Delete" : "Eyða" }, -"nplurals=2; plural=(n != 1);"); +"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"); diff --git a/apps/files_trashbin/l10n/is.json b/apps/files_trashbin/l10n/is.json index 35e1620df95..5ce58fc128b 100644 --- a/apps/files_trashbin/l10n/is.json +++ b/apps/files_trashbin/l10n/is.json @@ -2,5 +2,5 @@ "Error" : "Villa", "Name" : "Nafn", "Delete" : "Eyða" -},"pluralForm" :"nplurals=2; plural=(n != 1);" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);" }
\ No newline at end of file diff --git a/apps/files_trashbin/l10n/ru.js b/apps/files_trashbin/l10n/ru.js index 47b971180c3..b51486b6eb0 100644 --- a/apps/files_trashbin/l10n/ru.js +++ b/apps/files_trashbin/l10n/ru.js @@ -16,4 +16,4 @@ OC.L10N.register( "Deleted" : "Удалён", "Delete" : "Удалить" }, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json index 3d38b545ad7..9fecb3a9641 100644 --- a/apps/files_trashbin/l10n/ru.json +++ b/apps/files_trashbin/l10n/ru.json @@ -13,5 +13,5 @@ "Name" : "Имя", "Deleted" : "Удалён", "Delete" : "Удалить" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +},"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_trashbin/lib/storage.php b/apps/files_trashbin/lib/storage.php index 418d7d2f1fd..006971fb242 100644 --- a/apps/files_trashbin/lib/storage.php +++ b/apps/files_trashbin/lib/storage.php @@ -81,14 +81,39 @@ class Storage extends Wrapper { /** * Deletes the given file by moving it into the trashbin. * - * @param string $path + * @param string $path path of file or folder to delete + * + * @return bool true if the operation succeeded, false otherwise */ public function unlink($path) { + return $this->doDelete($path, 'unlink'); + } + + /** + * Deletes the given folder by moving it into the trashbin. + * + * @param string $path path of folder to delete + * + * @return bool true if the operation succeeded, false otherwise + */ + public function rmdir($path) { + return $this->doDelete($path, 'rmdir'); + } + + /** + * Run the delete operation with the given method + * + * @param string $path path of file or folder to delete + * @param string $method either "unlink" or "rmdir" + * + * @return bool true if the operation succeeded, false otherwise + */ + private function doDelete($path, $method) { if (self::$disableTrash || !\OC_App::isEnabled('files_trashbin') || (pathinfo($path, PATHINFO_EXTENSION) === 'part') ) { - return $this->storage->unlink($path); + return call_user_func_array([$this->storage, $method], [$path]); } $normalized = Filesystem::normalizePath($this->mountPoint . '/' . $path); $result = true; @@ -101,14 +126,14 @@ class Storage extends Wrapper { // in cross-storage cases the file will be copied // but not deleted, so we delete it here if ($result) { - $this->storage->unlink($path); + call_user_func_array([$this->storage, $method], [$path]); } } else { - $result = $this->storage->unlink($path); + $result = call_user_func_array([$this->storage, $method], [$path]); } unset($this->deletedFiles[$normalized]); } else if ($this->storage->file_exists($path)) { - $result = $this->storage->unlink($path); + $result = call_user_func_array([$this->storage, $method], [$path]); } return $result; diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php index 1c880735b5a..31d77c01c91 100644 --- a/apps/files_trashbin/lib/trashbin.php +++ b/apps/files_trashbin/lib/trashbin.php @@ -277,16 +277,16 @@ class Trashbin { } /** - * restore files from trash bin + * Restore a file or folder from trash bin * - * @param string $file path to the deleted file - * @param string $filename name of the file - * @param int $timestamp time when the file was deleted + * @param string $file path to the deleted file/folder relative to "files_trashbin/files/", + * including the timestamp suffix ".d12345678" + * @param string $filename name of the file/folder + * @param int $timestamp time when the file/folder was deleted * - * @return bool + * @return bool true on success, false otherwise */ public static function restore($file, $filename, $timestamp) { - $user = \OCP\User::getUser(); $view = new \OC\Files\View('/' . $user); @@ -311,6 +311,9 @@ class Trashbin { $source = \OC\Files\Filesystem::normalizePath('files_trashbin/files/' . $file); $target = \OC\Files\Filesystem::normalizePath('files/' . $location . '/' . $uniqueFilename); + if (!$view->file_exists($source)) { + return false; + } $mtime = $view->filemtime($source); // restore file @@ -762,6 +765,8 @@ class Trashbin { $name = pathinfo($filename, PATHINFO_FILENAME); $l = \OC::$server->getL10N('files_trashbin'); + $location = '/' . trim($location, '/'); + // if extension is not empty we set a dot in front of it if ($ext !== '') { $ext = '.' . $ext; diff --git a/apps/files_trashbin/tests/storage.php b/apps/files_trashbin/tests/storage.php index d1468522dc2..7415aba09e9 100644 --- a/apps/files_trashbin/tests/storage.php +++ b/apps/files_trashbin/tests/storage.php @@ -62,6 +62,8 @@ class Storage extends \Test\TestCase { $this->userView = new \OC\Files\View('/' . $this->user . '/files/'); $this->userView->file_put_contents('test.txt', 'foo'); + $this->userView->mkdir('folder'); + $this->userView->file_put_contents('folder/inside.txt', 'bar'); } protected function tearDown() { @@ -75,7 +77,7 @@ class Storage extends \Test\TestCase { /** * Test that deleting a file puts it into the trashbin. */ - public function testSingleStorageDelete() { + public function testSingleStorageDeleteFile() { $this->assertTrue($this->userView->file_exists('test.txt')); $this->userView->unlink('test.txt'); list($storage,) = $this->userView->resolvePath('test.txt'); @@ -90,12 +92,34 @@ class Storage extends \Test\TestCase { } /** + * Test that deleting a folder puts it into the trashbin. + */ + public function testSingleStorageDeleteFolder() { + $this->assertTrue($this->userView->file_exists('folder/inside.txt')); + $this->userView->rmdir('folder'); + list($storage,) = $this->userView->resolvePath('folder/inside.txt'); + $storage->getScanner()->scan(''); // make sure we check the storage + $this->assertFalse($this->userView->getFileInfo('folder')); + + // check if folder is in trashbin + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/'); + $this->assertEquals(1, count($results)); + $name = $results[0]->getName(); + $this->assertEquals('folder', substr($name, 0, strrpos($name, '.'))); + + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/' . $name . '/'); + $this->assertEquals(1, count($results)); + $name = $results[0]->getName(); + $this->assertEquals('inside.txt', $name); + } + + /** * Test that deleting a file from another mounted storage properly * lands in the trashbin. This is a cross-storage situation because * the trashbin folder is in the root storage while the mounted one * isn't. */ - public function testCrossStorageDelete() { + public function testCrossStorageDeleteFile() { $storage2 = new Temporary(array()); \OC\Files\Filesystem::mount($storage2, array(), $this->user . '/files/substorage'); @@ -116,9 +140,41 @@ class Storage extends \Test\TestCase { } /** + * Test that deleting a folder from another mounted storage properly + * lands in the trashbin. This is a cross-storage situation because + * the trashbin folder is in the root storage while the mounted one + * isn't. + */ + public function testCrossStorageDeleteFolder() { + $storage2 = new Temporary(array()); + \OC\Files\Filesystem::mount($storage2, array(), $this->user . '/files/substorage'); + + $this->userView->mkdir('substorage/folder'); + $this->userView->file_put_contents('substorage/folder/subfile.txt', 'bar'); + $storage2->getScanner()->scan(''); + $this->assertTrue($storage2->file_exists('folder/subfile.txt')); + $this->userView->rmdir('substorage/folder'); + + $storage2->getScanner()->scan(''); + $this->assertFalse($this->userView->getFileInfo('substorage/folder')); + $this->assertFalse($storage2->file_exists('folder/subfile.txt')); + + // check if folder is in trashbin + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files'); + $this->assertEquals(1, count($results)); + $name = $results[0]->getName(); + $this->assertEquals('folder', substr($name, 0, strrpos($name, '.'))); + + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/' . $name . '/'); + $this->assertEquals(1, count($results)); + $name = $results[0]->getName(); + $this->assertEquals('subfile.txt', $name); + } + + /** * Test that deleted versions properly land in the trashbin. */ - public function testDeleteVersions() { + public function testDeleteVersionsOfFile() { \OCA\Files_Versions\Hooks::connectHooks(); // trigger a version (multiple would not work because of the expire logic) @@ -137,7 +193,38 @@ class Storage extends \Test\TestCase { $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions'); $this->assertEquals(1, count($results)); $name = $results[0]->getName(); - $this->assertEquals('test.txt', substr($name, 0, strlen('test.txt'))); + $this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v'))); + } + + /** + * Test that deleted versions properly land in the trashbin. + */ + public function testDeleteVersionsOfFolder() { + \OCA\Files_Versions\Hooks::connectHooks(); + + // trigger a version (multiple would not work because of the expire logic) + $this->userView->file_put_contents('folder/inside.txt', 'v1'); + + $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/'); + $this->assertEquals(1, count($results)); + + $this->userView->rmdir('folder'); + + // rescan trash storage + list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin'); + $rootStorage->getScanner()->scan(''); + + // check if versions are in trashbin + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions'); + $this->assertEquals(1, count($results)); + $name = $results[0]->getName(); + $this->assertEquals('folder.d', substr($name, 0, strlen('folder.d'))); + + // check if versions are in trashbin + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/' . $name . '/'); + $this->assertEquals(1, count($results)); + $name = $results[0]->getName(); + $this->assertEquals('inside.txt.v', substr($name, 0, strlen('inside.txt.v'))); } /** @@ -145,7 +232,7 @@ class Storage extends \Test\TestCase { * storages. This is because rename() between storages would call * unlink() which should NOT trigger the version deletion logic. */ - public function testKeepFileAndVersionsWhenMovingBetweenStorages() { + public function testKeepFileAndVersionsWhenMovingFileBetweenStorages() { \OCA\Files_Versions\Hooks::connectHooks(); $storage2 = new Temporary(array()); @@ -162,7 +249,7 @@ class Storage extends \Test\TestCase { // move to another storage $this->userView->rename('test.txt', 'substorage/test.txt'); - $this->userView->file_exists('substorage/test.txt'); + $this->assertTrue($this->userView->file_exists('substorage/test.txt')); // rescan trash storage list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin'); @@ -182,9 +269,50 @@ class Storage extends \Test\TestCase { } /** + * Test that versions are not auto-trashed when moving a file between + * storages. This is because rename() between storages would call + * unlink() which should NOT trigger the version deletion logic. + */ + public function testKeepFileAndVersionsWhenMovingFolderBetweenStorages() { + \OCA\Files_Versions\Hooks::connectHooks(); + + $storage2 = new Temporary(array()); + \OC\Files\Filesystem::mount($storage2, array(), $this->user . '/files/substorage'); + + // trigger a version (multiple would not work because of the expire logic) + $this->userView->file_put_contents('folder/inside.txt', 'v1'); + + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files'); + $this->assertEquals(0, count($results)); + + $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/'); + $this->assertEquals(1, count($results)); + + // move to another storage + $this->userView->rename('folder', 'substorage/folder'); + $this->assertTrue($this->userView->file_exists('substorage/folder/inside.txt')); + + // rescan trash storage + list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin'); + $rootStorage->getScanner()->scan(''); + + // versions were moved too + $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/substorage/folder/'); + $this->assertEquals(1, count($results)); + + // check that nothing got trashed by the rename's unlink() call + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files'); + $this->assertEquals(0, count($results)); + + // check that versions were moved and not trashed + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/'); + $this->assertEquals(0, count($results)); + } + + /** * Delete should fail is the source file cant be deleted */ - public function testSingleStorageDeleteFail() { + public function testSingleStorageDeleteFileFail() { /** * @var \OC\Files\Storage\Temporary | \PHPUnit_Framework_MockObject_MockObject $storage */ @@ -194,9 +322,6 @@ class Storage extends \Test\TestCase { ->getMock(); $storage->expects($this->any()) - ->method('rename') - ->will($this->returnValue(false)); - $storage->expects($this->any()) ->method('unlink') ->will($this->returnValue(false)); @@ -214,4 +339,38 @@ class Storage extends \Test\TestCase { $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/'); $this->assertEquals(0, count($results)); } + + /** + * Delete should fail is the source folder cant be deleted + */ + public function testSingleStorageDeleteFolderFail() { + /** + * @var \OC\Files\Storage\Temporary | \PHPUnit_Framework_MockObject_MockObject $storage + */ + $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary') + ->setConstructorArgs([[]]) + ->setMethods(['rename', 'unlink', 'rmdir']) + ->getMock(); + + $storage->expects($this->any()) + ->method('rmdir') + ->will($this->returnValue(false)); + + $cache = $storage->getCache(); + + Filesystem::mount($storage, [], '/' . $this->user); + $storage->mkdir('files'); + $this->userView->mkdir('folder'); + $this->userView->file_put_contents('folder/test.txt', 'foo'); + $this->assertTrue($storage->file_exists('files/folder/test.txt')); + $this->assertFalse($this->userView->rmdir('files/folder')); + $this->assertTrue($storage->file_exists('files/folder')); + $this->assertTrue($storage->file_exists('files/folder/test.txt')); + $this->assertTrue($cache->inCache('files/folder')); + $this->assertTrue($cache->inCache('files/folder/test.txt')); + + // file should not be in the trashbin + $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/'); + $this->assertEquals(0, count($results)); + } } diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php index a2e1a9addf6..85c47b527b7 100644 --- a/apps/files_trashbin/tests/trashbin.php +++ b/apps/files_trashbin/tests/trashbin.php @@ -40,6 +40,11 @@ class Test_Trashbin extends \Test\TestCase { private static $rememberAutoExpire; /** + * @var bool + */ + private static $trashBinStatus; + + /** * @var \OC\Files\View */ private $rootView; @@ -47,6 +52,9 @@ class Test_Trashbin extends \Test\TestCase { public static function setUpBeforeClass() { parent::setUpBeforeClass(); + $appManager = \OC::$server->getAppManager(); + self::$trashBinStatus = $appManager->isEnabledForUser('files_trashbin'); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -89,12 +97,18 @@ class Test_Trashbin extends \Test\TestCase { \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin'); + if (self::$trashBinStatus) { + \OC::$server->getAppManager()->enableApp('files_trashbin'); + } + parent::tearDownAfterClass(); } protected function setUp() { parent::setUp(); + \OC::$server->getAppManager()->enableApp('files_trashbin'); + $this->trashRoot1 = '/' . self::TEST_TRASHBIN_USER1 . '/files_trashbin'; $this->trashRoot2 = '/' . self::TEST_TRASHBIN_USER2 . '/files_trashbin'; $this->rootView = new \OC\Files\View(); @@ -102,9 +116,18 @@ class Test_Trashbin extends \Test\TestCase { } protected function tearDown() { + // disable trashbin to be able to properly clean up + \OC::$server->getAppManager()->disableApp('files_trashbin'); + + $this->rootView->deleteAll('/' . self::TEST_TRASHBIN_USER1 . '/files'); + $this->rootView->deleteAll('/' . self::TEST_TRASHBIN_USER2 . '/files'); $this->rootView->deleteAll($this->trashRoot1); $this->rootView->deleteAll($this->trashRoot2); + // clear trash table + $connection = \OC::$server->getDatabaseConnection(); + $connection->executeUpdate('DELETE FROM `*PREFIX*files_trash`'); + parent::tearDown(); } @@ -295,6 +318,310 @@ class Test_Trashbin extends \Test\TestCase { } /** + * Test restoring a file + */ + public function testRestoreFileInRoot() { + $userFolder = \OC::$server->getUserFolder(); + $file = $userFolder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('file1.txt')); + + $file->delete(); + + $this->assertFalse($userFolder->nodeExists('file1.txt')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'file1.txt.d' . $trashedFile->getMtime(), + $trashedFile->getName(), + $trashedFile->getMtime() + ) + ); + + $file = $userFolder->get('file1.txt'); + $this->assertEquals('foo', $file->getContent()); + } + + /** + * Test restoring a file in subfolder + */ + public function testRestoreFileInSubfolder() { + $userFolder = \OC::$server->getUserFolder(); + $folder = $userFolder->newFolder('folder'); + $file = $folder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('folder/file1.txt')); + + $file->delete(); + + $this->assertFalse($userFolder->nodeExists('folder/file1.txt')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'file1.txt.d' . $trashedFile->getMtime(), + $trashedFile->getName(), + $trashedFile->getMtime() + ) + ); + + $file = $userFolder->get('folder/file1.txt'); + $this->assertEquals('foo', $file->getContent()); + } + + /** + * Test restoring a folder + */ + public function testRestoreFolder() { + $userFolder = \OC::$server->getUserFolder(); + $folder = $userFolder->newFolder('folder'); + $file = $folder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('folder')); + + $folder->delete(); + + $this->assertFalse($userFolder->nodeExists('folder')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFolder = $filesInTrash[0]; + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'folder.d' . $trashedFolder->getMtime(), + $trashedFolder->getName(), + $trashedFolder->getMtime() + ) + ); + + $file = $userFolder->get('folder/file1.txt'); + $this->assertEquals('foo', $file->getContent()); + } + + /** + * Test restoring a file from inside a trashed folder + */ + public function testRestoreFileFromTrashedSubfolder() { + $userFolder = \OC::$server->getUserFolder(); + $folder = $userFolder->newFolder('folder'); + $file = $folder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('folder')); + + $folder->delete(); + + $this->assertFalse($userFolder->nodeExists('folder')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'folder.d' . $trashedFile->getMtime() . '/file1.txt', + 'file1.txt', + $trashedFile->getMtime() + ) + ); + + $file = $userFolder->get('file1.txt'); + $this->assertEquals('foo', $file->getContent()); + } + + /** + * Test restoring a file whenever the source folder was removed. + * The file should then land in the root. + */ + public function testRestoreFileWithMissingSourceFolder() { + $userFolder = \OC::$server->getUserFolder(); + $folder = $userFolder->newFolder('folder'); + $file = $folder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('folder/file1.txt')); + + $file->delete(); + + $this->assertFalse($userFolder->nodeExists('folder/file1.txt')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + // delete source folder + $folder->delete(); + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'file1.txt.d' . $trashedFile->getMtime(), + $trashedFile->getName(), + $trashedFile->getMtime() + ) + ); + + $file = $userFolder->get('file1.txt'); + $this->assertEquals('foo', $file->getContent()); + } + + /** + * Test restoring a file in the root folder whenever there is another file + * with the same name in the root folder + */ + public function testRestoreFileDoesNotOverwriteExistingInRoot() { + $userFolder = \OC::$server->getUserFolder(); + $file = $userFolder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('file1.txt')); + + $file->delete(); + + $this->assertFalse($userFolder->nodeExists('file1.txt')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + // create another file + $file = $userFolder->newFile('file1.txt'); + $file->putContent('bar'); + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'file1.txt.d' . $trashedFile->getMtime(), + $trashedFile->getName(), + $trashedFile->getMtime() + ) + ); + + $anotherFile = $userFolder->get('file1.txt'); + $this->assertEquals('bar', $anotherFile->getContent()); + + $restoredFile = $userFolder->get('file1 (restored).txt'); + $this->assertEquals('foo', $restoredFile->getContent()); + } + + /** + * Test restoring a file whenever there is another file + * with the same name in the source folder + */ + public function testRestoreFileDoesNotOverwriteExistingInSubfolder() { + $userFolder = \OC::$server->getUserFolder(); + $folder = $userFolder->newFolder('folder'); + $file = $folder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('folder/file1.txt')); + + $file->delete(); + + $this->assertFalse($userFolder->nodeExists('folder/file1.txt')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + // create another file + $file = $folder->newFile('file1.txt'); + $file->putContent('bar'); + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'file1.txt.d' . $trashedFile->getMtime(), + $trashedFile->getName(), + $trashedFile->getMtime() + ) + ); + + $anotherFile = $userFolder->get('folder/file1.txt'); + $this->assertEquals('bar', $anotherFile->getContent()); + + $restoredFile = $userFolder->get('folder/file1 (restored).txt'); + $this->assertEquals('foo', $restoredFile->getContent()); + } + + /** + * Test restoring a non-existing file from trashbin, returns false + */ + public function testRestoreUnexistingFile() { + $this->assertFalse( + OCA\Files_Trashbin\Trashbin::restore( + 'unexist.txt.d123456', + 'unexist.txt', + '123456' + ) + ); + } + + /** + * Test restoring a file into a read-only folder, will restore + * the file to root instead + */ + public function testRestoreFileIntoReadOnlySourceFolder() { + $userFolder = \OC::$server->getUserFolder(); + $folder = $userFolder->newFolder('folder'); + $file = $folder->newFile('file1.txt'); + $file->putContent('foo'); + + $this->assertTrue($userFolder->nodeExists('folder/file1.txt')); + + $file->delete(); + + $this->assertFalse($userFolder->nodeExists('folder/file1.txt')); + + $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime'); + $this->assertCount(1, $filesInTrash); + + /** @var \OCP\Files\FileInfo */ + $trashedFile = $filesInTrash[0]; + + // delete source folder + list($storage, $internalPath) = $this->rootView->resolvePath('/' . self::TEST_TRASHBIN_USER1 . '/files/folder'); + $folderAbsPath = $storage->getSourcePath($internalPath); + // make folder read-only + chmod($folderAbsPath, 0555); + + $this->assertTrue( + OCA\Files_Trashbin\Trashbin::restore( + 'file1.txt.d' . $trashedFile->getMtime(), + $trashedFile->getName(), + $trashedFile->getMtime() + ) + ); + + $file = $userFolder->get('file1.txt'); + $this->assertEquals('foo', $file->getContent()); + + chmod($folderAbsPath, 0755); + } + + /** * @param string $user * @param bool $create * @param bool $password diff --git a/apps/files_versions/l10n/mk.js b/apps/files_versions/l10n/mk.js index a730ea89404..fa295501320 100644 --- a/apps/files_versions/l10n/mk.js +++ b/apps/files_versions/l10n/mk.js @@ -2,7 +2,7 @@ OC.L10N.register( "files_versions", { "Could not revert: %s" : "Не можев да го вратам: %s", - "Versions" : "Версии", + "Versions" : "Верзии", "Failed to revert {file} to revision {timestamp}." : "Не успеав да го вратам {file} на ревизијата {timestamp}.", "More versions..." : "Повеќе верзии...", "No other versions available" : "Не постојат други верзии", diff --git a/apps/files_versions/l10n/mk.json b/apps/files_versions/l10n/mk.json index 7e57aa91b55..cdef37ecde3 100644 --- a/apps/files_versions/l10n/mk.json +++ b/apps/files_versions/l10n/mk.json @@ -1,6 +1,6 @@ { "translations": { "Could not revert: %s" : "Не можев да го вратам: %s", - "Versions" : "Версии", + "Versions" : "Верзии", "Failed to revert {file} to revision {timestamp}." : "Не успеав да го вратам {file} на ревизијата {timestamp}.", "More versions..." : "Повеќе верзии...", "No other versions available" : "Не постојат други верзии", diff --git a/apps/files_versions/lib/storage.php b/apps/files_versions/lib/storage.php index 4a5b47d2c2b..98e486690b6 100644 --- a/apps/files_versions/lib/storage.php +++ b/apps/files_versions/lib/storage.php @@ -158,7 +158,7 @@ class Storage { // 1.5 times as large as the current version -> 2.5 $neededSpace = $files_view->filesize($filename) * 2.5; - self::scheduleExpire($filename, $versionsSize, $neededSpace); + self::scheduleExpire($uid, $filename, $versionsSize, $neededSpace); // store a new version of a file $mtime = $users_view->filemtime('files/' . $filename); @@ -223,40 +223,60 @@ class Storage { } /** - * rename or copy versions of a file - * @param string $old_path - * @param string $new_path + * 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 + * @param string $targetPath target path of the file to move, relative to + * the currently logged in user's "files" folder * @param string $operation can be 'copy' or 'rename' */ - public static function renameOrCopy($old_path, $new_path, $operation) { - list($uid, $oldpath) = self::getSourcePathAndUser($old_path); + public static function renameOrCopy($sourcePath, $targetPath, $operation) { + list($sourceOwner, $sourcePath) = self::getSourcePathAndUser($sourcePath); // it was a upload of a existing file if no old path exists // in this case the pre-hook already called the store method and we can // stop here - if ($oldpath === false) { + if ($sourcePath === false) { return true; } - list($uidn, $newpath) = self::getUidAndFilename($new_path); - $versions_view = new \OC\Files\View('/'.$uid .'/files_versions'); - $files_view = new \OC\Files\View('/'.$uid .'/files'); + list($targetOwner, $targetPath) = self::getUidAndFilename($targetPath); + + $sourcePath = ltrim($sourcePath, '/'); + $targetPath = ltrim($targetPath, '/'); + $rootView = new \OC\Files\View(''); + // did we move a directory ? + if ($rootView->is_dir('/' . $targetOwner . '/files/' . $targetPath)) { + // does the directory exists for versions too ? + if ($rootView->is_dir('/' . $sourceOwner . '/files_versions/' . $sourcePath)) { + // create missing dirs if necessary + self::createMissingDirectories($targetPath, new \OC\Files\View('/'. $targetOwner)); - if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) { - $versions_view->$operation($oldpath, $newpath); - } else if ( ($versions = Storage::getVersions($uid, $oldpath)) ) { + // move the directory containing the versions + $rootView->$operation( + '/' . $sourceOwner . '/files_versions/' . $sourcePath, + '/' . $targetOwner . '/files_versions/' . $targetPath + ); + } + } else if ($versions = Storage::getVersions($sourceOwner, '/' . $sourcePath)) { // create missing dirs if necessary - self::createMissingDirectories($newpath, new \OC\Files\View('/'. $uidn)); + self::createMissingDirectories($targetPath, new \OC\Files\View('/'. $targetOwner)); foreach ($versions as $v) { - $versions_view->$operation($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']); + // 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'] + ); } } - if (!$files_view->is_dir($newpath)) { - self::scheduleExpire($newpath); + // if we moved versions directly for a file, schedule expiration check for that file + if (!$rootView->is_dir('/' . $targetOwner . '/files/' . $targetPath)) { + self::scheduleExpire($targetOwner, $targetPath); } } @@ -289,7 +309,7 @@ class Storage { // rollback if (self::copyFileContents($users_view, 'files_versions' . $filename . '.v' . $revision, 'files' . $filename)) { $files_view->touch($file, $revision); - Storage::scheduleExpire($file); + Storage::scheduleExpire($uid, $file); return true; } else if ($versionCreated) { self::deleteVersion($users_view, $version); @@ -326,6 +346,9 @@ class Storage { */ public static function getVersions($uid, $filename, $userFullPath = '') { $versions = array(); + if ($filename === '') { + return $versions; + } // fetch for old versions $view = new \OC\Files\View('/' . $uid . '/'); @@ -509,12 +532,15 @@ class Storage { } /** - * @param string $fileName - * @param int|null $versionsSize - * @param int $neededSpace + * Schedule versions expiration for the given file + * + * @param string $uid owner of the file + * @param string $fileName file/folder for which to schedule expiration + * @param int|null $versionsSize current versions size + * @param int $neededSpace requested versions size */ - private static function scheduleExpire($fileName, $versionsSize = null, $neededSpace = 0) { - $command = new Expire(\OC::$server->getUserSession()->getUser()->getUID(), $fileName, $versionsSize, $neededSpace); + private static function scheduleExpire($uid, $fileName, $versionsSize = null, $neededSpace = 0) { + $command = new Expire($uid, $fileName, $versionsSize, $neededSpace); \OC::$server->getCommandBus()->push($command); } @@ -622,8 +648,11 @@ class Storage { } /** - * create recursively missing directories - * @param string $filename $path to a file + * Create recursively missing directories inside of files_versions + * that match the given path to a file. + * + * @param string $filename $path to a file, relative to the user's + * "files" folder * @param \OC\Files\View $view view on data/user/ */ private static function createMissingDirectories($filename, $view) { diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php index 5ea6d9ee5b9..97afcf715cb 100644 --- a/apps/files_versions/tests/versions.php +++ b/apps/files_versions/tests/versions.php @@ -45,10 +45,6 @@ class Test_Files_Versioning extends \Test\TestCase { public static function setUpBeforeClass() { parent::setUpBeforeClass(); - // clear share hooks - \OC_Hook::clear('OCP\\Share'); - \OC::registerShareHooks(); - \OCA\Files_Versions\Hooks::connectHooks(); $application = new \OCA\Files_Sharing\AppInfo\Application(); $application->registerMountProviders(); $application->setupPropagation(); @@ -69,6 +65,11 @@ class Test_Files_Versioning extends \Test\TestCase { protected function setUp() { parent::setUp(); + // clear hooks + \OC_Hook::clear(); + \OC::registerShareHooks(); + \OCA\Files_Versions\Hooks::connectHooks(); + self::loginHelper(self::TEST_VERSIONS_USER); $this->rootView = new \OC\Files\View(); if (!$this->rootView->file_exists(self::USERS_VERSIONS_ROOT)) { @@ -77,7 +78,12 @@ class Test_Files_Versioning extends \Test\TestCase { } protected function tearDown() { - $this->rootView->deleteAll(self::USERS_VERSIONS_ROOT); + $this->rootView->deleteAll(self::TEST_VERSIONS_USER . '/files/'); + $this->rootView->deleteAll(self::TEST_VERSIONS_USER2 . '/files/'); + $this->rootView->deleteAll(self::TEST_VERSIONS_USER . '/files_versions/'); + $this->rootView->deleteAll(self::TEST_VERSIONS_USER2 . '/files_versions/'); + + \OC_Hook::clear(); parent::tearDown(); } @@ -257,9 +263,6 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); - - //cleanup - \OC\Files\Filesystem::unlink('test2.txt'); } public function testRenameInSharedFolder() { @@ -304,9 +307,136 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); + } - //cleanup - \OC\Files\Filesystem::unlink('/folder1/folder2/test.txt'); + public function testMoveFolder() { + + \OC\Files\Filesystem::mkdir('folder1'); + \OC\Files\Filesystem::mkdir('folder2'); + \OC\Files\Filesystem::file_put_contents('folder1/test.txt', 'test file'); + + $t1 = time(); + // second version is two weeks older, this way we make sure that no + // version will be expired + $t2 = $t1 - 60 * 60 * 24 * 14; + + // create some versions + $this->rootView->mkdir(self::USERS_VERSIONS_ROOT . '/folder1'); + $v1 = self::USERS_VERSIONS_ROOT . '/folder1/test.txt.v' . $t1; + $v2 = self::USERS_VERSIONS_ROOT . '/folder1/test.txt.v' . $t2; + $v1Renamed = self::USERS_VERSIONS_ROOT . '/folder2/folder1/test.txt.v' . $t1; + $v2Renamed = self::USERS_VERSIONS_ROOT . '/folder2/folder1/test.txt.v' . $t2; + + $this->rootView->file_put_contents($v1, 'version1'); + $this->rootView->file_put_contents($v2, 'version2'); + + // execute rename hook of versions app + \OC\Files\Filesystem::rename('folder1', 'folder2/folder1'); + + $this->runCommands(); + + $this->assertFalse($this->rootView->file_exists($v1)); + $this->assertFalse($this->rootView->file_exists($v2)); + + $this->assertTrue($this->rootView->file_exists($v1Renamed)); + $this->assertTrue($this->rootView->file_exists($v2Renamed)); + } + + + public function testMoveFileIntoSharedFolderAsRecipient() { + + \OC\Files\Filesystem::mkdir('folder1'); + $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1'); + + \OCP\Share::shareItem( + 'folder', + $fileInfo['fileid'], + \OCP\Share::SHARE_TYPE_USER, + self::TEST_VERSIONS_USER2, + \OCP\Constants::PERMISSION_ALL + ); + + self::loginHelper(self::TEST_VERSIONS_USER2); + $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions'; + \OC\Files\Filesystem::file_put_contents('test.txt', 'test file'); + + $t1 = time(); + // second version is two weeks older, this way we make sure that no + // version will be expired + $t2 = $t1 - 60 * 60 * 24 * 14; + + $this->rootView->mkdir($versionsFolder2); + // create some versions + $v1 = $versionsFolder2 . '/test.txt.v' . $t1; + $v2 = $versionsFolder2 . '/test.txt.v' . $t2; + + $this->rootView->file_put_contents($v1, 'version1'); + $this->rootView->file_put_contents($v2, 'version2'); + + // move file into the shared folder as recipient + \OC\Files\Filesystem::rename('/test.txt', '/folder1/test.txt'); + + $this->assertFalse($this->rootView->file_exists($v1)); + $this->assertFalse($this->rootView->file_exists($v2)); + + self::loginHelper(self::TEST_VERSIONS_USER); + + $versionsFolder1 = '/' . self::TEST_VERSIONS_USER . '/files_versions'; + + $v1Renamed = $versionsFolder1 . '/folder1/test.txt.v' . $t1; + $v2Renamed = $versionsFolder1 . '/folder1/test.txt.v' . $t2; + + $this->assertTrue($this->rootView->file_exists($v1Renamed)); + $this->assertTrue($this->rootView->file_exists($v2Renamed)); + } + + public function testMoveFolderIntoSharedFolderAsRecipient() { + + \OC\Files\Filesystem::mkdir('folder1'); + $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1'); + + \OCP\Share::shareItem( + 'folder', + $fileInfo['fileid'], + \OCP\Share::SHARE_TYPE_USER, + self::TEST_VERSIONS_USER2, + \OCP\Constants::PERMISSION_ALL + ); + + 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'); + + $t1 = time(); + // second version is two weeks older, this way we make sure that no + // version will be expired + $t2 = $t1 - 60 * 60 * 24 * 14; + + $this->rootView->mkdir($versionsFolder2); + $this->rootView->mkdir($versionsFolder2 . '/folder2'); + // create some versions + $v1 = $versionsFolder2 . '/folder2/test.txt.v' . $t1; + $v2 = $versionsFolder2 . '/folder2/test.txt.v' . $t2; + + $this->rootView->file_put_contents($v1, 'version1'); + $this->rootView->file_put_contents($v2, 'version2'); + + // move file into the shared folder as recipient + \OC\Files\Filesystem::rename('/folder2', '/folder1/folder2'); + + $this->assertFalse($this->rootView->file_exists($v1)); + $this->assertFalse($this->rootView->file_exists($v2)); + + self::loginHelper(self::TEST_VERSIONS_USER); + + $versionsFolder1 = '/' . self::TEST_VERSIONS_USER . '/files_versions'; + + $v1Renamed = $versionsFolder1 . '/folder1/folder2/test.txt.v' . $t1; + $v2Renamed = $versionsFolder1 . '/folder1/folder2/test.txt.v' . $t2; + + $this->assertTrue($this->rootView->file_exists($v1Renamed)); + $this->assertTrue($this->rootView->file_exists($v2Renamed)); } public function testRenameSharedFile() { @@ -349,9 +479,6 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertFalse($this->rootView->file_exists($v1Renamed)); $this->assertFalse($this->rootView->file_exists($v2Renamed)); - - //cleanup - \OC\Files\Filesystem::unlink('/test.txt'); } public function testCopy() { @@ -382,10 +509,6 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Copied)); $this->assertTrue($this->rootView->file_exists($v2Copied)); - - //cleanup - \OC\Files\Filesystem::unlink('test.txt'); - \OC\Files\Filesystem::unlink('test2.txt'); } /** @@ -411,7 +534,7 @@ class Test_Files_Versioning extends \Test\TestCase { // execute copy hook of versions app $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, '/subfolder/test.txt'); - $this->assertSame(2, count($versions)); + $this->assertCount(2, $versions); foreach ($versions as $version) { $this->assertSame('/subfolder/test.txt', $version['path']); @@ -422,6 +545,17 @@ class Test_Files_Versioning extends \Test\TestCase { $this->rootView->deleteAll(self::USERS_VERSIONS_ROOT . '/subfolder'); } + /** + * test if we find all versions and if the versions array contain + * the correct 'path' and 'name' + */ + public function testGetVersionsEmptyFile() { + // execute copy hook of versions app + $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, ''); + + $this->assertCount(0, $versions); + } + public function testRestoreSameStorage() { \OC\Files\Filesystem::mkdir('sub'); $this->doTestRestore(); @@ -517,6 +651,85 @@ class Test_Files_Versioning extends \Test\TestCase { } /** + * Test whether versions are created when overwriting as owner + */ + public function testStoreVersionAsOwner() { + $this->loginAsUser(self::TEST_VERSIONS_USER); + + $this->createAndCheckVersions( + \OC\Files\Filesystem::getView(), + 'test.txt' + ); + } + + /** + * Test whether versions are created when overwriting as share recipient + */ + public function testStoreVersionAsRecipient() { + $this->loginAsUser(self::TEST_VERSIONS_USER); + + \OC\Files\Filesystem::mkdir('folder'); + \OC\Files\Filesystem::file_put_contents('folder/test.txt', 'test file'); + $fileInfo = \OC\Files\Filesystem::getFileInfo('folder'); + + \OCP\Share::shareItem( + 'folder', + $fileInfo['fileid'], + \OCP\Share::SHARE_TYPE_USER, + self::TEST_VERSIONS_USER2, + \OCP\Constants::PERMISSION_ALL + ); + + $this->loginAsUser(self::TEST_VERSIONS_USER2); + + $this->createAndCheckVersions( + \OC\Files\Filesystem::getView(), + 'folder/test.txt' + ); + } + + /** + * Test whether versions are created when overwriting anonymously. + * + * When uploading through a public link or publicwebdav, no user + * is logged in. File modification must still be able to find + * the owner and create versions. + */ + public function testStoreVersionAsAnonymous() { + $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'); + $this->createAndCheckVersions( + $userView, + 'test.txt' + ); + } + + private function createAndCheckVersions($view, $path) { + $view->file_put_contents($path, 'test file'); + $view->file_put_contents($path, 'version 1'); + $view->file_put_contents($path, 'version 2'); + + $this->loginAsUser(self::TEST_VERSIONS_USER); + + // need to scan for the versions + list($rootStorage,) = $this->rootView->resolvePath(self::TEST_VERSIONS_USER . '/files_versions'); + $rootStorage->getScanner()->scan('files_versions'); + + $versions = \OCA\Files_Versions\Storage::getVersions( + self::TEST_VERSIONS_USER, '/' . $path + ); + + // note: we cannot predict how many versions are created due to + // test run timing + $this->assertGreaterThan(0, count($versions)); + } + + /** * @param string $user * @param bool $create * @param bool $password diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php index 505a141c032..43cf22b071b 100644 --- a/apps/provisioning_api/lib/users.php +++ b/apps/provisioning_api/lib/users.php @@ -155,7 +155,14 @@ class Users { case 'quota': $quota = $parameters['_put']['value']; if($quota !== 'none' and $quota !== 'default') { - $quota = OC_Helper::computerFileSize($quota); + if (is_numeric($quota)) { + $quota = floatval($quota); + } else { + $quota = OC_Helper::computerFileSize($quota); + } + if ($quota === false) { + return new OC_OCS_Result(null, 103, "Invalid quota value {$parameters['_put']['value']}"); + } if($quota == 0) { $quota = 'default'; }else if($quota == -1){ diff --git a/apps/provisioning_api/tests/userstest.php b/apps/provisioning_api/tests/userstest.php index b7e83a3c4fe..c6a6133b7d2 100644 --- a/apps/provisioning_api/tests/userstest.php +++ b/apps/provisioning_api/tests/userstest.php @@ -187,20 +187,36 @@ class UsersTest extends TestCase { } - public function testEditOwnQuota() { + /** + * @dataProvider providesQuotas + * @param $expected + * @param $quota + */ + public function testEditOwnQuota($expected, $quota) { $user = $this->generateUsers(); + \OC_Group::addToGroup($user, 'admin'); \OC_User::setUserId($user); $result = \OCA\provisioning_API\Users::editUser( - array( + [ 'userid' => $user, - '_put' => array( + '_put' => [ 'key' => 'quota', - 'value' => '20G', - ), - ) + 'value' => $quota, + ], + ] ); $this->assertInstanceOf('OC_OCS_Result', $result); - $this->assertFalse($result->succeeded()); + $this->assertEquals($expected, $result->succeeded()); + } + + public function providesQuotas() { + return [ + [true, '20G'], + [true, '1234567'], + [true, 'none'], + [true, 'default'], + [false, 'qwertzu'], + ]; } public function testAdminEditOwnQuota() { diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php index 31f72a38e0b..f5fd5f23b87 100644 --- a/apps/user_ldap/ajax/testConfiguration.php +++ b/apps/user_ldap/ajax/testConfiguration.php @@ -34,16 +34,38 @@ $ldapWrapper = new OCA\user_ldap\lib\LDAP(); $connection = new \OCA\user_ldap\lib\Connection($ldapWrapper, '', null); //needs to be true, otherwise it will also fail with an irritating message $_POST['ldap_configuration_active'] = 1; -if($connection->setConfiguration($_POST)) { - //Configuration is okay - if($connection->bind()) { - OCP\JSON::success(array('message' + +try { + if ($connection->setConfiguration($_POST)) { + //Configuration is okay + if ($connection->bind()) { + /* + * This shiny if block is an ugly hack to find out whether anonymous + * bind is possible on AD or not. Because AD happily and constantly + * replies with success to any anonymous bind request, we need to + * fire up a broken operation. If AD does not allow anonymous bind, + * it will end up with LDAP error code 1 which is turned into an + * exception by the LDAP wrapper. We catch this. Other cases may + * pass (like e.g. expected syntax error). + */ + try { + $ldapWrapper->read($connection->getConnectionResource(), 'neverwhere', 'objectClass=*', array('dn')); + } catch (\Exception $e) { + if($e->getCode() === 1) { + OCP\JSON::error(array('message' => $l->t('The configuration is invalid: anonymous bind is not allowed.'))); + exit; + } + } + OCP\JSON::success(array('message' => $l->t('The configuration is valid and the connection could be established!'))); + } else { + OCP\JSON::error(array('message' + => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.'))); + } } else { OCP\JSON::error(array('message' - => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.'))); - } -} else { - OCP\JSON::error(array('message' => $l->t('The configuration is invalid. Please have a look at the logs for further details.'))); + } +} catch (\Exception $e) { + OCP\JSON::error(array('message' => $e->getMessage())); } diff --git a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js index 702c30a5a69..c9c3aeb241d 100644 --- a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js @@ -158,15 +158,19 @@ OCA = OCA || {}; /** * sets the selected groups * - * @param {Array} groups + * @param {string} groups */ setGroups: function(groups) { + if(typeof groups === 'string') { + groups = groups.split("\n"); + } if(!this.isComplexGroupChooser) { this.setElementValue(this.getGroupsItem().$element, groups); this.getGroupsItem().$element.multiselect('refresh'); } else { var $element = $(this.tabID).find('.ldapGroupListSelected'); this.equipMultiSelect($element, groups); + this.updateFilterOnType('selected'); } }, @@ -224,10 +228,10 @@ OCA = OCA || {}; $selectedGroups, $(this.tabID).find('.ldapManyGroupsSearch') )); } else { - if(_.isUndefined || only.toLowerCase() === 'available') { + if(_.isUndefined(only) || only.toLowerCase() === 'available') { this.filterOnType[0].updateOptions(); } - if(_.isUndefined || only.toLowerCase() === 'selected') { + if(_.isUndefined(only) || only.toLowerCase() === 'selected') { this.filterOnType[1].updateOptions(); } } @@ -357,7 +361,7 @@ OCA = OCA || {}; this._saveGroups(selected.concat($available.val())); $available.find('option:selected').prependTo($selected); - this.updateFilterOnType(); + this.updateFilterOnType('available'); // selected groups are not updated yet }, /** @@ -370,7 +374,7 @@ OCA = OCA || {}; this._saveGroups(selected); $selected.find('option:selected').appendTo($available); - this.updateFilterOnType(); + this.updateFilterOnType('available'); // selected groups are not updated yet } }); diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js index b8ab367dfd1..75664275a9c 100644 --- a/apps/user_ldap/js/wizard/wizardTabElementary.js +++ b/apps/user_ldap/js/wizard/wizardTabElementary.js @@ -165,6 +165,12 @@ OCA = OCA || {}; * @inheritdoc */ overrideErrorMessage: function(message, key) { + var original = message; + message = this._super(message, key); + if(original !== message) { + // we pass the parents change + return message; + } switch(key) { case 'ldap_port': if (message === 'Invalid credentials') { @@ -267,7 +273,8 @@ OCA = OCA || {}; message = t('user_ldap', objectsFound + ' entries available within the provided Base DN'); } } else { - message = t('user_ldap', 'An error occurred. Please check the Base DN, as well as connection settings and credentials.'); + message = view.overrideErrorMessage(payload.data.message); + message = message || t('user_ldap', 'An error occurred. Please check the Base DN, as well as connection settings and credentials.'); if(payload.data.message) { console.warn(payload.data.message); } diff --git a/apps/user_ldap/js/wizard/wizardTabGeneric.js b/apps/user_ldap/js/wizard/wizardTabGeneric.js index 720628fa609..b755f3ca060 100644 --- a/apps/user_ldap/js/wizard/wizardTabGeneric.js +++ b/apps/user_ldap/js/wizard/wizardTabGeneric.js @@ -70,6 +70,17 @@ OCA = OCA || {}; * @returns {string} */ overrideErrorMessage: function(message, key) { + if(message === 'LDAP authentication method rejected' + && !this.configModel.configuration.ldap_dn) + { + message = t('user_ldap', 'Anonymous bind is not allowed. Please provide a User DN and Password.'); + } else if (message === 'LDAP Operations error' + && !this.configModel.configuration.ldap_dn + && !this.configModel.configuration.ldap_agent_password) + { + message = t('user_ldap', 'LDAP Operations error. Anonymous bind might not be allowed.'); + } + return message; }, diff --git a/apps/user_ldap/js/wizard/wizardTabUserFilter.js b/apps/user_ldap/js/wizard/wizardTabUserFilter.js index 992c1ccf379..4fe223ee075 100644 --- a/apps/user_ldap/js/wizard/wizardTabUserFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabUserFilter.js @@ -122,6 +122,12 @@ OCA = OCA || {}; * @inheritdoc */ overrideErrorMessage: function(message, key) { + var original = message; + message = this._super(message, key); + if(original !== message) { + // we pass the parents change + return message; + } if( key === 'ldap_userfilter_groups' && message === 'memberOf is not supported by the server' ) { diff --git a/apps/user_ldap/l10n/ast.js b/apps/user_ldap/l10n/ast.js index 1ae219b25e6..3cc4b7d6b08 100644 --- a/apps/user_ldap/l10n/ast.js +++ b/apps/user_ldap/l10n/ast.js @@ -31,7 +31,6 @@ OC.L10N.register( "Help" : "Ayuda", "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.", - "Test Filter" : "Filtru de preba", "Other Attributes:" : "Otros atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define'l filtru a aplicar cuando s'intenta identificar. %%uid va trocar al nome d'usuariu nel procesu d'identificación. Por exemplu: \"uid=%%uid\"", "1. Server" : "1. Sirvidor", diff --git a/apps/user_ldap/l10n/ast.json b/apps/user_ldap/l10n/ast.json index 408febfb899..19b8c5fad14 100644 --- a/apps/user_ldap/l10n/ast.json +++ b/apps/user_ldap/l10n/ast.json @@ -29,7 +29,6 @@ "Help" : "Ayuda", "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.", - "Test Filter" : "Filtru de preba", "Other Attributes:" : "Otros atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define'l filtru a aplicar cuando s'intenta identificar. %%uid va trocar al nome d'usuariu nel procesu d'identificación. Por exemplu: \"uid=%%uid\"", "1. Server" : "1. Sirvidor", diff --git a/apps/user_ldap/l10n/be.js b/apps/user_ldap/l10n/be.js index dda51e8ac42..99117026327 100644 --- a/apps/user_ldap/l10n/be.js +++ b/apps/user_ldap/l10n/be.js @@ -3,4 +3,4 @@ OC.L10N.register( { "Advanced" : "Дасведчаны" }, -"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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/user_ldap/l10n/be.json b/apps/user_ldap/l10n/be.json index f70adabdbe1..987589ccd81 100644 --- a/apps/user_ldap/l10n/be.json +++ b/apps/user_ldap/l10n/be.json @@ -1,4 +1,4 @@ { "translations": { "Advanced" : "Дасведчаны" -},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +},"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/user_ldap/l10n/bg_BG.js b/apps/user_ldap/l10n/bg_BG.js index e363f1c897b..b2e12165deb 100644 --- a/apps/user_ldap/l10n/bg_BG.js +++ b/apps/user_ldap/l10n/bg_BG.js @@ -30,7 +30,6 @@ OC.L10N.register( "Help" : "Помощ", "Groups meeting these criteria are available in %s:" : "Групи спазващи тези критерии са разположени в %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтърът посочва кои LDAP групи ще имат достъп до %s инсталацията.", - "Test Filter" : "Тестов Филтър", "Other Attributes:" : "Други Атрибути:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Заявява филтърът, който да бъде приложен при опит за вписване. %%uid замества потребителското име в полето login action. Пример: \"uid=%%uid\".", "Test Loginname" : "Проверка на Потребителско име", diff --git a/apps/user_ldap/l10n/bg_BG.json b/apps/user_ldap/l10n/bg_BG.json index 250be5f00a3..39fc9b1e49b 100644 --- a/apps/user_ldap/l10n/bg_BG.json +++ b/apps/user_ldap/l10n/bg_BG.json @@ -28,7 +28,6 @@ "Help" : "Помощ", "Groups meeting these criteria are available in %s:" : "Групи спазващи тези критерии са разположени в %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтърът посочва кои LDAP групи ще имат достъп до %s инсталацията.", - "Test Filter" : "Тестов Филтър", "Other Attributes:" : "Други Атрибути:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Заявява филтърът, който да бъде приложен при опит за вписване. %%uid замества потребителското име в полето login action. Пример: \"uid=%%uid\".", "Test Loginname" : "Проверка на Потребителско име", diff --git a/apps/user_ldap/l10n/cs_CZ.js b/apps/user_ldap/l10n/cs_CZ.js index 1e993d66a6b..a5eb704c3e6 100644 --- a/apps/user_ldap/l10n/cs_CZ.js +++ b/apps/user_ldap/l10n/cs_CZ.js @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Upravit LDAP požadavek", "LDAP Filter:" : "LDAP filtr:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", - "Test Filter" : "Otestovat filtr", "Verify settings and count groups" : "Ověřit nastavení a spočítat skupiny", "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", diff --git a/apps/user_ldap/l10n/cs_CZ.json b/apps/user_ldap/l10n/cs_CZ.json index 061e77eedec..dbe157bb1ba 100644 --- a/apps/user_ldap/l10n/cs_CZ.json +++ b/apps/user_ldap/l10n/cs_CZ.json @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Upravit LDAP požadavek", "LDAP Filter:" : "LDAP filtr:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", - "Test Filter" : "Otestovat filtr", "Verify settings and count groups" : "Ověřit nastavení a spočítat skupiny", "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js index dd679fd842c..1b070f48a90 100644 --- a/apps/user_ldap/l10n/da.js +++ b/apps/user_ldap/l10n/da.js @@ -22,6 +22,7 @@ OC.L10N.register( "Could not detect Base DN, please enter it manually." : "Kunne ikke registrere Base DN - angiv den venligst manuelt.", "{nthServer}. Server" : "{nthServer}. server", "No object found in the given Base DN. Please revise." : "Intet objekt fundet i den givne Base DN. Gennemse venligst.", + "More than 1.000 directory entries available." : "Mere end 1.000 opslag tilgængelige", " entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN, såvel som forbindelsesindstillingerne og brugeroplysningerne.", "Do you really want to delete the current Server Configuration?" : "Ønsker du virkelig at slette den nuværende Server Konfiguration?", @@ -61,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Redigér LDAP-forespørgsel", "LDAP Filter:" : "LDAP-filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.", - "Test Filter" : "Test filter", "Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper", "When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:", "LDAP / AD Username:" : "LDAP/AD-brugernavn:", diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json index 6937eee04f6..acd0eaae13e 100644 --- a/apps/user_ldap/l10n/da.json +++ b/apps/user_ldap/l10n/da.json @@ -20,6 +20,7 @@ "Could not detect Base DN, please enter it manually." : "Kunne ikke registrere Base DN - angiv den venligst manuelt.", "{nthServer}. Server" : "{nthServer}. server", "No object found in the given Base DN. Please revise." : "Intet objekt fundet i den givne Base DN. Gennemse venligst.", + "More than 1.000 directory entries available." : "Mere end 1.000 opslag tilgængelige", " entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN, såvel som forbindelsesindstillingerne og brugeroplysningerne.", "Do you really want to delete the current Server Configuration?" : "Ønsker du virkelig at slette den nuværende Server Konfiguration?", @@ -59,7 +60,6 @@ "Edit LDAP Query" : "Redigér LDAP-forespørgsel", "LDAP Filter:" : "LDAP-filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.", - "Test Filter" : "Test filter", "Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper", "When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:", "LDAP / AD Username:" : "LDAP/AD-brugernavn:", diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index 34c37d7aa70..c06922818ca 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -35,7 +35,13 @@ OC.L10N.register( "Select attributes" : "Attribute auswählen", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfe Deine Loginattribute und Deinen Benutzernamen. Gültige Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>", "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwende möglicherweise einen engeren Filter.", + "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte prüfe die Einstellungen und die Logdatei.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfe Host, Port und Anmeldeinformationen.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.", + "Please provide a login name to test against" : "Bitte gib einen Benutzernamen an, um gegen diesen zu testen", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.", "_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"], "_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte gib es in den erweiterten LDAP-Einstellungen selber an.", @@ -56,10 +62,12 @@ OC.L10N.register( "Edit LDAP Query" : "LDAP-Abfrage bearbeiten", "LDAP Filter:" : "LDAP-Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.", - "Test Filter" : "Testfilter", "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen", + "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:", "LDAP / AD Username:" : "LDAP-/AD-Benutzername:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.", "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.", "Other Attributes:" : "Andere Attribute:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Test Loginname" : "Loginnamen testen", @@ -81,6 +89,7 @@ OC.L10N.register( "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.", "Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)", "Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.", "The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.", "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen", "Saving" : "Speichern", diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index 26bbc601601..7c6cb120559 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -33,7 +33,13 @@ "Select attributes" : "Attribute auswählen", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfe Deine Loginattribute und Deinen Benutzernamen. Gültige Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>", "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwende möglicherweise einen engeren Filter.", + "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte prüfe die Einstellungen und die Logdatei.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfe Host, Port und Anmeldeinformationen.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.", + "Please provide a login name to test against" : "Bitte gib einen Benutzernamen an, um gegen diesen zu testen", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.", "_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"], "_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte gib es in den erweiterten LDAP-Einstellungen selber an.", @@ -54,10 +60,12 @@ "Edit LDAP Query" : "LDAP-Abfrage bearbeiten", "LDAP Filter:" : "LDAP-Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.", - "Test Filter" : "Testfilter", "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen", + "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:", "LDAP / AD Username:" : "LDAP-/AD-Benutzername:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.", "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.", "Other Attributes:" : "Andere Attribute:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Test Loginname" : "Loginnamen testen", @@ -79,6 +87,7 @@ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.", "Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)", "Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.", "The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.", "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen", "Saving" : "Speichern", diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 4b582d0c48e..7f36fe64be0 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -35,7 +35,13 @@ OC.L10N.register( "Select attributes" : "Attribute auswählen", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfen Sie Ihre Loginattribute und Ihren Benutzernamen. Gültiger Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>", "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwenden Sie möglicherweise einen engeren Filter.", + "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte überprüfe die Einstellungen und die Logdatei.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfen Sie Host, Port und Anmeldeinformationen.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.", + "Please provide a login name to test against" : "Bitte geben Sie einen Benutzernamen an, um gegen diesen zu testen", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.", "_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"], "_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte geben Sie es in den erweiterten LDAP-Einstellungen selber an.", @@ -56,10 +62,12 @@ OC.L10N.register( "Edit LDAP Query" : "LDAP-Abfrage bearbeiten", "LDAP Filter:" : "LDAP-Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.", - "Test Filter" : "Testfilter", "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen", + "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:", "LDAP / AD Username:" : "LDAP-/AD-Benutzername:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.", "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.", "Other Attributes:" : "Andere Attribute:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Test Loginname" : "Loginnamen testen", @@ -81,6 +89,7 @@ OC.L10N.register( "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.", "Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)", "Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.", "The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.", "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen", "Saving" : "Speichern", diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 83b79938da6..27190826a20 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -33,7 +33,13 @@ "Select attributes" : "Attribute auswählen", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfen Sie Ihre Loginattribute und Ihren Benutzernamen. Gültiger Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>", "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwenden Sie möglicherweise einen engeren Filter.", + "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte überprüfe die Einstellungen und die Logdatei.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfen Sie Host, Port und Anmeldeinformationen.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.", + "Please provide a login name to test against" : "Bitte geben Sie einen Benutzernamen an, um gegen diesen zu testen", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.", "_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"], "_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte geben Sie es in den erweiterten LDAP-Einstellungen selber an.", @@ -54,10 +60,12 @@ "Edit LDAP Query" : "LDAP-Abfrage bearbeiten", "LDAP Filter:" : "LDAP-Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.", - "Test Filter" : "Testfilter", "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen", + "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:", "LDAP / AD Username:" : "LDAP-/AD-Benutzername:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.", "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.", "Other Attributes:" : "Andere Attribute:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Test Loginname" : "Loginnamen testen", @@ -79,6 +87,7 @@ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.", "Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)", "Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.", "The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.", "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen", "Saving" : "Speichern", diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js index a00a65f3b81..939edd4d045 100644 --- a/apps/user_ldap/l10n/el.js +++ b/apps/user_ldap/l10n/el.js @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Επεξεργασία ερωτήματος ", "LDAP Filter:" : "Φίλτρο LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.", - "Test Filter" : "Φίλτρο Ελέγχου", "Verify settings and count groups" : "Επιβεβαίωση ρυθμίσεων και καταμέτρηση ομάδων", "When logging in, %s will find the user based on the following attributes:" : "Κατά τη σύνδεση, το %s θα βρει το χρήστη βασιζόμενος στις ακόλουθες ιδιότητες:", "LDAP / AD Username:" : "Όνομα χρήστη LDAP / AD:", diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json index a98c2d0438e..1e0add9ee44 100644 --- a/apps/user_ldap/l10n/el.json +++ b/apps/user_ldap/l10n/el.json @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Επεξεργασία ερωτήματος ", "LDAP Filter:" : "Φίλτρο LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.", - "Test Filter" : "Φίλτρο Ελέγχου", "Verify settings and count groups" : "Επιβεβαίωση ρυθμίσεων και καταμέτρηση ομάδων", "When logging in, %s will find the user based on the following attributes:" : "Κατά τη σύνδεση, το %s θα βρει το χρήστη βασιζόμενος στις ακόλουθες ιδιότητες:", "LDAP / AD Username:" : "Όνομα χρήστη LDAP / AD:", diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js index 4f6e9c96a68..86c93e972d7 100644 --- a/apps/user_ldap/l10n/en_GB.js +++ b/apps/user_ldap/l10n/en_GB.js @@ -61,7 +61,6 @@ OC.L10N.register( "Edit LDAP Query" : "Edit LDAP Query", "LDAP Filter:" : "LDAP Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "The filter specifies which LDAP groups shall have access to the %s instance.", - "Test Filter" : "Test Filter", "Verify settings and count groups" : "Verify settings and count groups", "When logging in, %s will find the user based on the following attributes:" : "When logging in, %s will find the user based on the following attributes:", "LDAP / AD Username:" : "LDAP / AD Username:", diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json index 51df2fe845e..39366fd146b 100644 --- a/apps/user_ldap/l10n/en_GB.json +++ b/apps/user_ldap/l10n/en_GB.json @@ -59,7 +59,6 @@ "Edit LDAP Query" : "Edit LDAP Query", "LDAP Filter:" : "LDAP Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "The filter specifies which LDAP groups shall have access to the %s instance.", - "Test Filter" : "Test Filter", "Verify settings and count groups" : "Verify settings and count groups", "When logging in, %s will find the user based on the following attributes:" : "When logging in, %s will find the user based on the following attributes:", "LDAP / AD Username:" : "LDAP / AD Username:", diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js index 239488f2f82..fd90625352b 100644 --- a/apps/user_ldap/l10n/es.js +++ b/apps/user_ldap/l10n/es.js @@ -22,6 +22,7 @@ OC.L10N.register( "Could not detect Base DN, please enter it manually." : "No se pudo detectar Base DN, por favor ingrésela manualmente.", "{nthServer}. Server" : "{nthServer}. servidor", "No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.", + "More than 1.000 directory entries available." : "Más de 1.000 directorios disponibles.", " entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.", "Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?", @@ -61,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Editar consulta LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica que grupos LDAP tendrán acceso a %s.", - "Test Filter" : "Filtro de prueba", "Verify settings and count groups" : "Verificar configuraciones y contar grupos", "When logging in, %s will find the user based on the following attributes:" : "Cuando se inicia sesión, %s encontrará al usuario basado en los siguientes atributos:", "LDAP / AD Username:" : "Nombre de usuario LDAP /AD:", diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json index adb7a31bfbc..3e939e07de2 100644 --- a/apps/user_ldap/l10n/es.json +++ b/apps/user_ldap/l10n/es.json @@ -20,6 +20,7 @@ "Could not detect Base DN, please enter it manually." : "No se pudo detectar Base DN, por favor ingrésela manualmente.", "{nthServer}. Server" : "{nthServer}. servidor", "No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.", + "More than 1.000 directory entries available." : "Más de 1.000 directorios disponibles.", " entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.", "Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?", @@ -59,7 +60,6 @@ "Edit LDAP Query" : "Editar consulta LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica que grupos LDAP tendrán acceso a %s.", - "Test Filter" : "Filtro de prueba", "Verify settings and count groups" : "Verificar configuraciones y contar grupos", "When logging in, %s will find the user based on the following attributes:" : "Cuando se inicia sesión, %s encontrará al usuario basado en los siguientes atributos:", "LDAP / AD Username:" : "Nombre de usuario LDAP /AD:", diff --git a/apps/user_ldap/l10n/et_EE.js b/apps/user_ldap/l10n/et_EE.js index 08c696977d8..cfe06cf0d6e 100644 --- a/apps/user_ldap/l10n/et_EE.js +++ b/apps/user_ldap/l10n/et_EE.js @@ -30,7 +30,6 @@ OC.L10N.register( "Help" : "Abiinfo", "Groups meeting these criteria are available in %s:" : "Kriteeriumiga sobivad grupid on saadaval %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.", - "Test Filter" : "Testi filtrit", "Other Attributes:" : "Muud atribuudid:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime. Näide: \"uid=%%uid\"", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/et_EE.json b/apps/user_ldap/l10n/et_EE.json index 21b25b52d1a..b592f01087d 100644 --- a/apps/user_ldap/l10n/et_EE.json +++ b/apps/user_ldap/l10n/et_EE.json @@ -28,7 +28,6 @@ "Help" : "Abiinfo", "Groups meeting these criteria are available in %s:" : "Kriteeriumiga sobivad grupid on saadaval %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.", - "Test Filter" : "Testi filtrit", "Other Attributes:" : "Muud atribuudid:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime. Näide: \"uid=%%uid\"", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/eu.js b/apps/user_ldap/l10n/eu.js index b846dfa1e10..096973d2f1c 100644 --- a/apps/user_ldap/l10n/eu.js +++ b/apps/user_ldap/l10n/eu.js @@ -31,7 +31,6 @@ OC.L10N.register( "Help" : "Laguntza", "Groups meeting these criteria are available in %s:" : "Baldintza horiek betetzen dituzten taldeak bertan eskuragarri %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Iragazkiak zehazten du ze LDAP taldek izango duten sarrera %s instantziara:", - "Test Filter" : "Frogatu Iragazkia", "Other Attributes:" : "Bestelako atributuak:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definitu aplikatu beharreko iragazkia sartzen saiatzean. %%uid erabiltzailearen izena ordezten du sartzeko ekintzan. Adibidez: \"uid=%%uid\"", "1. Server" : "1. Zerbitzaria", diff --git a/apps/user_ldap/l10n/eu.json b/apps/user_ldap/l10n/eu.json index 247618ea884..84e8650d213 100644 --- a/apps/user_ldap/l10n/eu.json +++ b/apps/user_ldap/l10n/eu.json @@ -29,7 +29,6 @@ "Help" : "Laguntza", "Groups meeting these criteria are available in %s:" : "Baldintza horiek betetzen dituzten taldeak bertan eskuragarri %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Iragazkiak zehazten du ze LDAP taldek izango duten sarrera %s instantziara:", - "Test Filter" : "Frogatu Iragazkia", "Other Attributes:" : "Bestelako atributuak:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definitu aplikatu beharreko iragazkia sartzen saiatzean. %%uid erabiltzailearen izena ordezten du sartzeko ekintzan. Adibidez: \"uid=%%uid\"", "1. Server" : "1. Zerbitzaria", diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js index c924a9dd16f..eeb890c70c5 100644 --- a/apps/user_ldap/l10n/fr.js +++ b/apps/user_ldap/l10n/fr.js @@ -27,7 +27,7 @@ OC.L10N.register( "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Une erreur est survenue. Veuillez vérifier le DN de base, ainsi que les paramètres de connexion et les informations d'identification", "Do you really want to delete the current Server Configuration?" : "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?", "Confirm Deletion" : "Confirmer la suppression", - "Mappings cleared successfully!" : "Succès de la suppression des associations!", + "Mappings cleared successfully!" : "Associations supprimées avec succès !", "Error while clearing the mappings." : "Erreur lors de la suppression des associations.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "La sauvegarde a échoué. Veuillez vérifier que la base de données est opérationnelle. Rechargez avant de poursuivre.", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Changer de mode activera les requêtes LDAP automatiques. Selon la taille de votre annuaire LDAP, cela peut prendre du temps. Voulez-vous toujours changer de mode ?", @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Modifier la requête LDAP", "LDAP Filter:" : "Filtre LDAP :", "The filter specifies which LDAP groups shall have access to the %s instance." : "Le filtre spécifie quels groupes LDAP ont accès à l'instance %s.", - "Test Filter" : "Test du filtre", "Verify settings and count groups" : "Vérifier les paramètres et compter les groupes", "When logging in, %s will find the user based on the following attributes:" : "Au login, %s cherchera l'utilisateur sur base de ces attributs :", "LDAP / AD Username:" : "Nom d'utilisateur LDAP / AD :", diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json index fbb36e0201a..b6c1c9e9985 100644 --- a/apps/user_ldap/l10n/fr.json +++ b/apps/user_ldap/l10n/fr.json @@ -25,7 +25,7 @@ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Une erreur est survenue. Veuillez vérifier le DN de base, ainsi que les paramètres de connexion et les informations d'identification", "Do you really want to delete the current Server Configuration?" : "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?", "Confirm Deletion" : "Confirmer la suppression", - "Mappings cleared successfully!" : "Succès de la suppression des associations!", + "Mappings cleared successfully!" : "Associations supprimées avec succès !", "Error while clearing the mappings." : "Erreur lors de la suppression des associations.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "La sauvegarde a échoué. Veuillez vérifier que la base de données est opérationnelle. Rechargez avant de poursuivre.", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Changer de mode activera les requêtes LDAP automatiques. Selon la taille de votre annuaire LDAP, cela peut prendre du temps. Voulez-vous toujours changer de mode ?", @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Modifier la requête LDAP", "LDAP Filter:" : "Filtre LDAP :", "The filter specifies which LDAP groups shall have access to the %s instance." : "Le filtre spécifie quels groupes LDAP ont accès à l'instance %s.", - "Test Filter" : "Test du filtre", "Verify settings and count groups" : "Vérifier les paramètres et compter les groupes", "When logging in, %s will find the user based on the following attributes:" : "Au login, %s cherchera l'utilisateur sur base de ces attributs :", "LDAP / AD Username:" : "Nom d'utilisateur LDAP / AD :", diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js index 2dce42d9131..63f7a2cdaf1 100644 --- a/apps/user_ldap/l10n/gl.js +++ b/apps/user_ldap/l10n/gl.js @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Editar a consulta LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica que grupos LDAP teñen acceso á instancia %s.", - "Test Filter" : "Filtro de probas", "Verify settings and count groups" : "Verificar os axustes e contar os grupos", "When logging in, %s will find the user based on the following attributes:" : "Ao acceder, %s atopa o usuario en función dos seguintes atributos:", "LDAP / AD Username:" : "Nome de usuario LDAP / AD:", diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json index 58832e778f2..bcbef5d530e 100644 --- a/apps/user_ldap/l10n/gl.json +++ b/apps/user_ldap/l10n/gl.json @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Editar a consulta LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica que grupos LDAP teñen acceso á instancia %s.", - "Test Filter" : "Filtro de probas", "Verify settings and count groups" : "Verificar os axustes e contar os grupos", "When logging in, %s will find the user based on the following attributes:" : "Ao acceder, %s atopa o usuario en función dos seguintes atributos:", "LDAP / AD Username:" : "Nome de usuario LDAP / AD:", diff --git a/apps/user_ldap/l10n/hu_HU.js b/apps/user_ldap/l10n/hu_HU.js index d6fe2fde2d8..6d3ad2600f0 100644 --- a/apps/user_ldap/l10n/hu_HU.js +++ b/apps/user_ldap/l10n/hu_HU.js @@ -30,7 +30,6 @@ OC.L10N.register( "Help" : "Súgó", "Groups meeting these criteria are available in %s:" : "A %s szolgáltatás azon csoportok létezését veszi figyelembe, amik a következő feltételeknek felelnek meg:", "The filter specifies which LDAP groups shall have access to the %s instance." : "A szűrő meghatározza, hogy mely LDAP csoportok lesznek jogosultak %s elérésére.", - "Test Filter" : "Test szűrő ", "Other Attributes:" : "Más attribútumok:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"", "1. Server" : "1. Kiszolgáló", diff --git a/apps/user_ldap/l10n/hu_HU.json b/apps/user_ldap/l10n/hu_HU.json index d793887c0b2..19552648b73 100644 --- a/apps/user_ldap/l10n/hu_HU.json +++ b/apps/user_ldap/l10n/hu_HU.json @@ -28,7 +28,6 @@ "Help" : "Súgó", "Groups meeting these criteria are available in %s:" : "A %s szolgáltatás azon csoportok létezését veszi figyelembe, amik a következő feltételeknek felelnek meg:", "The filter specifies which LDAP groups shall have access to the %s instance." : "A szűrő meghatározza, hogy mely LDAP csoportok lesznek jogosultak %s elérésére.", - "Test Filter" : "Test szűrő ", "Other Attributes:" : "Más attribútumok:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"", "1. Server" : "1. Kiszolgáló", diff --git a/apps/user_ldap/l10n/id.js b/apps/user_ldap/l10n/id.js index 3433482319d..23170f99864 100644 --- a/apps/user_ldap/l10n/id.js +++ b/apps/user_ldap/l10n/id.js @@ -35,6 +35,8 @@ OC.L10N.register( "Select attributes" : "Pilih atribut", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Pengguna tidak ditemukan. Mohon periksa atribut login dan nama pengguna Anda. Penyaring efektif (salin dan tempel berikut untuk validasi baris perintah):\n<br/>", "User found and settings verified." : "Pengguna ditemukan dan pengaturan terverifikasi.", + "An unspecified error occurred. Please check the settings and the log." : "Terjadi kesalahan yang tidak disebutkan. Mohon periksa pengaturan dan log.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Penyaring pencarian tidak sah, kemungkinan karena masalah sintaks seperti jumlah kurung buka dan tutup tidak sama. Mohon diperiksa.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Terjadi kesalahan sambungan ke LDAP / AD, mohon periksa host, port dan kredensial.", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Kotak grup telah diaktifkan, karena server LDAP / AD tidak mendukung keanggotaan.", "_%s group found_::_%s groups found_" : ["%s grup ditemukan"], @@ -56,7 +58,6 @@ OC.L10N.register( "Selected groups" : "Grup terpilih", "Edit LDAP Query" : "Sunting Kueri LDAP", "LDAP Filter:" : "Penyaring LDAP:", - "Test Filter" : "Uji Penyaring", "LDAP / AD Username:" : "Nama pengguna LDAP / AD:", "LDAP / AD Email Address:" : "Alamat Email LDAP / AD:", "Other Attributes:" : "Atribut Lain:", diff --git a/apps/user_ldap/l10n/id.json b/apps/user_ldap/l10n/id.json index 0d1818f9a51..fa0a0a7be20 100644 --- a/apps/user_ldap/l10n/id.json +++ b/apps/user_ldap/l10n/id.json @@ -33,6 +33,8 @@ "Select attributes" : "Pilih atribut", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Pengguna tidak ditemukan. Mohon periksa atribut login dan nama pengguna Anda. Penyaring efektif (salin dan tempel berikut untuk validasi baris perintah):\n<br/>", "User found and settings verified." : "Pengguna ditemukan dan pengaturan terverifikasi.", + "An unspecified error occurred. Please check the settings and the log." : "Terjadi kesalahan yang tidak disebutkan. Mohon periksa pengaturan dan log.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Penyaring pencarian tidak sah, kemungkinan karena masalah sintaks seperti jumlah kurung buka dan tutup tidak sama. Mohon diperiksa.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Terjadi kesalahan sambungan ke LDAP / AD, mohon periksa host, port dan kredensial.", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Kotak grup telah diaktifkan, karena server LDAP / AD tidak mendukung keanggotaan.", "_%s group found_::_%s groups found_" : ["%s grup ditemukan"], @@ -54,7 +56,6 @@ "Selected groups" : "Grup terpilih", "Edit LDAP Query" : "Sunting Kueri LDAP", "LDAP Filter:" : "Penyaring LDAP:", - "Test Filter" : "Uji Penyaring", "LDAP / AD Username:" : "Nama pengguna LDAP / AD:", "LDAP / AD Email Address:" : "Alamat Email LDAP / AD:", "Other Attributes:" : "Atribut Lain:", diff --git a/apps/user_ldap/l10n/is.js b/apps/user_ldap/l10n/is.js index 1532ec7baff..b880fd3b059 100644 --- a/apps/user_ldap/l10n/is.js +++ b/apps/user_ldap/l10n/is.js @@ -9,4 +9,4 @@ OC.L10N.register( "Password" : "Lykilorð", "Advanced" : "Ítarlegt" }, -"nplurals=2; plural=(n != 1);"); +"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"); diff --git a/apps/user_ldap/l10n/is.json b/apps/user_ldap/l10n/is.json index c3ae29c3735..f9c82ebf49f 100644 --- a/apps/user_ldap/l10n/is.json +++ b/apps/user_ldap/l10n/is.json @@ -6,5 +6,5 @@ "Host" : "Netþjónn", "Password" : "Lykilorð", "Advanced" : "Ítarlegt" -},"pluralForm" :"nplurals=2; plural=(n != 1);" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js index 146b5f7d705..342808994e4 100644 --- a/apps/user_ldap/l10n/it.js +++ b/apps/user_ldap/l10n/it.js @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Modifica query LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.", - "Test Filter" : "Prova filtro", "Verify settings and count groups" : "Verifica le impostazioni e conta i gruppi", "When logging in, %s will find the user based on the following attributes:" : "Quando accedi, %s troverà l'utente sulla base dei seguenti attributi:", "LDAP / AD Username:" : "Nome utente LDAP / AD:", diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json index 705d3ddd212..42ab5158a28 100644 --- a/apps/user_ldap/l10n/it.json +++ b/apps/user_ldap/l10n/it.json @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Modifica query LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.", - "Test Filter" : "Prova filtro", "Verify settings and count groups" : "Verifica le impostazioni e conta i gruppi", "When logging in, %s will find the user based on the following attributes:" : "Quando accedi, %s troverà l'utente sulla base dei seguenti attributi:", "LDAP / AD Username:" : "Nome utente LDAP / AD:", diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js index 3f2c6e0130e..60c8fce22f6 100644 --- a/apps/user_ldap/l10n/ja.js +++ b/apps/user_ldap/l10n/ja.js @@ -16,6 +16,7 @@ OC.L10N.register( "Configuration OK" : "設定OK", "Select groups" : "グループを選択", "Select object classes" : "オブジェクトクラスを選択", + "Please specify the port, it could not be auto-detected." : "ポートを指定してください。自動認識できません。", "{nthServer}. Server" : "{nthServer}. サーバー", "Do you really want to delete the current Server Configuration?" : "現在のサーバー設定を本当に削除してもよろしいですか?", "Confirm Deletion" : "削除の確認", @@ -27,22 +28,27 @@ OC.L10N.register( "Invalid Host" : "無効なホスト", "Server" : "サーバー", "Users" : "ユーザー", + "Login Attributes" : "ログイン属性", "Groups" : "グループ", "Test Configuration" : "設定をテスト", "Help" : "ヘルプ", "Groups meeting these criteria are available in %s:" : "これらの基準を満たすグループが %s で利用可能:", + "Search groups" : "グループを検索", + "Available groups" : "利用可能なグループ", + "Selected groups" : "選択されたグループ", "LDAP Filter:" : "LDAP フィルタ:", "The filter specifies which LDAP groups shall have access to the %s instance." : "フィルターは、どの LDAP グループが %s にアクセスするかを指定します。", - "Test Filter" : "フィルターをテスト", "LDAP / AD Username:" : "LDAP/ADユーザー名:", "LDAP / AD Email Address:" : "LDAP / AD メールアドレス:", "Other Attributes:" : "その他の属性:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "ログイン実行時に適用するフィルターを定義します。%%uid にはログイン操作におけるユーザー名が入ります。例: \"uid=%%uid\"", + "Verify settings" : "設定のチェック", "1. Server" : "1. Server", "%s. Server:" : "%s. サーバー:", "Host" : "ホスト", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。", "Port" : "ポート", + "Detect Port" : "ポートの検出", "User DN" : "ユーザーDN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "どのクライアントユーザーのDNで接続するか指定します。例えば uid=agent,dc=example,dc=com になります。匿名アクセスの場合、DNとパスワードは空のままにしてください。", "Password" : "パスワード", diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json index 12ccf15788c..9b8433c18e3 100644 --- a/apps/user_ldap/l10n/ja.json +++ b/apps/user_ldap/l10n/ja.json @@ -14,6 +14,7 @@ "Configuration OK" : "設定OK", "Select groups" : "グループを選択", "Select object classes" : "オブジェクトクラスを選択", + "Please specify the port, it could not be auto-detected." : "ポートを指定してください。自動認識できません。", "{nthServer}. Server" : "{nthServer}. サーバー", "Do you really want to delete the current Server Configuration?" : "現在のサーバー設定を本当に削除してもよろしいですか?", "Confirm Deletion" : "削除の確認", @@ -25,22 +26,27 @@ "Invalid Host" : "無効なホスト", "Server" : "サーバー", "Users" : "ユーザー", + "Login Attributes" : "ログイン属性", "Groups" : "グループ", "Test Configuration" : "設定をテスト", "Help" : "ヘルプ", "Groups meeting these criteria are available in %s:" : "これらの基準を満たすグループが %s で利用可能:", + "Search groups" : "グループを検索", + "Available groups" : "利用可能なグループ", + "Selected groups" : "選択されたグループ", "LDAP Filter:" : "LDAP フィルタ:", "The filter specifies which LDAP groups shall have access to the %s instance." : "フィルターは、どの LDAP グループが %s にアクセスするかを指定します。", - "Test Filter" : "フィルターをテスト", "LDAP / AD Username:" : "LDAP/ADユーザー名:", "LDAP / AD Email Address:" : "LDAP / AD メールアドレス:", "Other Attributes:" : "その他の属性:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "ログイン実行時に適用するフィルターを定義します。%%uid にはログイン操作におけるユーザー名が入ります。例: \"uid=%%uid\"", + "Verify settings" : "設定のチェック", "1. Server" : "1. Server", "%s. Server:" : "%s. サーバー:", "Host" : "ホスト", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。", "Port" : "ポート", + "Detect Port" : "ポートの検出", "User DN" : "ユーザーDN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "どのクライアントユーザーのDNで接続するか指定します。例えば uid=agent,dc=example,dc=com になります。匿名アクセスの場合、DNとパスワードは空のままにしてください。", "Password" : "パスワード", diff --git a/apps/user_ldap/l10n/ko.js b/apps/user_ldap/l10n/ko.js index 94be236ab63..dab98051611 100644 --- a/apps/user_ldap/l10n/ko.js +++ b/apps/user_ldap/l10n/ko.js @@ -10,15 +10,38 @@ OC.L10N.register( "No configuration specified" : "설정이 지정되지 않음", "No data specified" : "데이터가 지정되지 않음", " Could not set configuration %s" : " 설정 %s을(를) 지정할 수 없음", + "Action does not exist" : "동작이 존재하지 않음", "Configuration incorrect" : "설정 올바르지 않음", "Configuration incomplete" : "설정 불완전함", "Configuration OK" : "설정 올바름", "Select groups" : "그룹 선택", "Select object classes" : "객체 클래스 선택", + "Please check the credentials, they seem to be wrong." : "인증 정보가 잘못된 것 같습니다. 다시 확인해 주십시오.", + "Please specify the port, it could not be auto-detected." : "포트를 자동으로 감지할 수 없습니다. 포트를 입력해 주십시오.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "기본 DN을 자동으로 감지할 수 없습니다. 인증 정보, 호스트, 포트를 다시 확인하십시오.", + "Could not detect Base DN, please enter it manually." : "기본 DN을 자동으로 감지할 수 없습니다. 직접 입력하십시오.", "{nthServer}. Server" : "{nthServer}. 서버", + "No object found in the given Base DN. Please revise." : "입력한 기본 DN에서 객체를 찾을 수 없습니다. 다시 입력하십시오.", + "More than 1.000 directory entries available." : "디렉터리 항목이 1,000개 이상 존재합니다.", + " entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "오류가 발생하였습니다. 기본 DN, 연결 설정, 인증 정보를 확인하십시오.", "Do you really want to delete the current Server Configuration?" : "현재 서버 설정을 지우시겠습니까?", "Confirm Deletion" : "삭제 확인", + "Mappings cleared successfully!" : "매핑을 삭제하였습니다!", + "Error while clearing the mappings." : "매핑을 삭제하는 중 오류가 발생하였습니다.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "저장할 수 없습니다. 데이터베이스 상태를 확인하십시오. 계속하기 전에 새로 고치십시오.", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "모드를 전환하면 자동 LDAP 쿼리를 활성화합니다. LDAP 크기에 따라서 시간이 걸릴 수도 있습니다. 모드를 전환하시겠습니까?", + "Mode switch" : "모드 전환", "Select attributes" : "속성 선택", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "사용자를 찾을 수 없습니다. 로그인 속성과 사용자 이름을 확인하십시오. 적용되는 필터(명령행에 붙여넣어 검증 가능):", + "User found and settings verified." : "사용자를 찾았고 설정을 확인하였습니다.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "설정을 확인하였으나 한 명의 사용자만 찾았습니다. 첫 사용자만 로그인할 수 있습니다. 더 좁은 필터를 지정하십시오.", + "An unspecified error occurred. Please check the settings and the log." : "알 수 없는 오류가 발생하였습니다. 설정과 로그를 확인하십시오.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "검색 필터가 잘못되었습니다. 열고 닫는 괄호 쌍이 맞지 않을 수도 있습니다. 확인 후 수정하십시오.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "LDAP/AD 연결 오류가 발생하였습니다. 호스트, 포트, 인증 정보를 확인하십시오.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "%uid 자리 비움자가 존재하지 않습니다. LDAP/AD에 조회할 때 로그인 사용자 이름으로 대체됩니다.", + "Please provide a login name to test against" : "테스트할 로그인 사용자 이름을 입력하십시오", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "LDAP/AD 서버에서 memberOf를 지원하지 않아서 그룹 상자를 비활성화합니다.", "_%s group found_::_%s groups found_" : ["그룹 %s개 찾음"], "_%s user found_::_%s users found_" : ["사용자 %s명 찾음"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "사용자 표시 이름을 결정할 수 없습니다. 고급 LDAP 설정에서 직접 입력하십시오.", @@ -26,29 +49,49 @@ OC.L10N.register( "Invalid Host" : "잘못된 호스트", "Server" : "서버", "Users" : "사용자", + "Login Attributes" : "로그인 속성", "Groups" : "그룹", "Test Configuration" : "설정 시험", "Help" : "도움말", "Groups meeting these criteria are available in %s:" : "이 조건을 만족하는 그룹은 %s에 있습니다:", + "Only these object classes:" : "다음 객체 클래스만:", + "Only from these groups:" : "다음 그룹만:", + "Search groups" : "그룹 검색", + "Available groups" : "사용 가능한 그룹", + "Selected groups" : "선택한 그룹", + "Edit LDAP Query" : "LDAP 쿼리 편집", + "LDAP Filter:" : "LDAP 필터:", "The filter specifies which LDAP groups shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.", - "Test Filter" : "필터 시험", + "Verify settings and count groups" : "설정을 확인하고 그룹 수 계산", + "When logging in, %s will find the user based on the following attributes:" : "로그인할 때 %s에서 다음 속성을 기반으로 사용자를 찾습니다:", + "LDAP / AD Username:" : "LDAP/AD 사용자 이름:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "uid 또는 samaccountname에 해당하는 LDAP/AD 사용자 이름으로 로그인을 허용합니다. 속성은 자동으로 감지됩니다.", + "LDAP / AD Email Address:" : "LDAP/AD 이메일 주소:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "이메일 속성으로 로그인을 허용합니다. Mail 및 mailPrimaryAddress를 허용합니다.", "Other Attributes:" : "기타 속성:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "로그인을 시도할 때 적용할 필터를 입력하십시오. %%uid는 로그인 동작의 사용자 이름으로 대체됩니다. 예: \"uid=%%uid\"", + "Test Loginname" : "로그인 이름 테스트", + "Verify settings" : "설정 검사", "1. Server" : "1. 서버", "%s. Server:" : "%s. 서버:", "Host" : "호스트", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL을 사용하지 않으면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.", "Port" : "포트", + "Detect Port" : "포트 감지", "User DN" : "사용자 DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", "Password" : "암호", "For anonymous access, leave DN and Password empty." : "익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", "One Base DN per line" : "기본 DN을 한 줄에 하나씩 입력하십시오", "You can specify Base DN for users and groups in the Advanced tab" : "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.", + "Detect Base DN" : "기본 DN 감지", + "Test Base DN" : "기본 DN 시험", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "자동 LDAP 요청을 줄입니다. 대형 사이트에서 유용하지만 LDAP에 관한 지식이 필요합니다.", "Manually enter LDAP filters (recommended for large directories)" : "수동으로 LDAP 필터 입력(대형 사이트에 추천)", "Limit %s access to users meeting these criteria:" : "다음 조건을 만족하는 사용자만 %s 접근 허용:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "일반적인 객체 클래스는 organizationalPerson, person, user, inetOrgPerson입니다. 어떤 객체 클래스를 사용해야 할 지 모르겠으면 디렉터리 서비스 관리자에게 연락하십시오.", "The filter specifies which LDAP users shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.", + "Verify settings and count users" : "설정을 확인하고 사용자 수 계산", "Saving" : "저장 중", "Back" : "뒤로", "Continue" : "계속", @@ -102,6 +145,7 @@ OC.L10N.register( "UUID Attribute for Users:" : "사용자 UUID 속성:", "UUID Attribute for Groups:" : "그룹 UUID 속성:", "Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오.", "Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기", "Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기" }, diff --git a/apps/user_ldap/l10n/ko.json b/apps/user_ldap/l10n/ko.json index d426febafcd..ef04a2c8d93 100644 --- a/apps/user_ldap/l10n/ko.json +++ b/apps/user_ldap/l10n/ko.json @@ -8,15 +8,38 @@ "No configuration specified" : "설정이 지정되지 않음", "No data specified" : "데이터가 지정되지 않음", " Could not set configuration %s" : " 설정 %s을(를) 지정할 수 없음", + "Action does not exist" : "동작이 존재하지 않음", "Configuration incorrect" : "설정 올바르지 않음", "Configuration incomplete" : "설정 불완전함", "Configuration OK" : "설정 올바름", "Select groups" : "그룹 선택", "Select object classes" : "객체 클래스 선택", + "Please check the credentials, they seem to be wrong." : "인증 정보가 잘못된 것 같습니다. 다시 확인해 주십시오.", + "Please specify the port, it could not be auto-detected." : "포트를 자동으로 감지할 수 없습니다. 포트를 입력해 주십시오.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "기본 DN을 자동으로 감지할 수 없습니다. 인증 정보, 호스트, 포트를 다시 확인하십시오.", + "Could not detect Base DN, please enter it manually." : "기본 DN을 자동으로 감지할 수 없습니다. 직접 입력하십시오.", "{nthServer}. Server" : "{nthServer}. 서버", + "No object found in the given Base DN. Please revise." : "입력한 기본 DN에서 객체를 찾을 수 없습니다. 다시 입력하십시오.", + "More than 1.000 directory entries available." : "디렉터리 항목이 1,000개 이상 존재합니다.", + " entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "오류가 발생하였습니다. 기본 DN, 연결 설정, 인증 정보를 확인하십시오.", "Do you really want to delete the current Server Configuration?" : "현재 서버 설정을 지우시겠습니까?", "Confirm Deletion" : "삭제 확인", + "Mappings cleared successfully!" : "매핑을 삭제하였습니다!", + "Error while clearing the mappings." : "매핑을 삭제하는 중 오류가 발생하였습니다.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "저장할 수 없습니다. 데이터베이스 상태를 확인하십시오. 계속하기 전에 새로 고치십시오.", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "모드를 전환하면 자동 LDAP 쿼리를 활성화합니다. LDAP 크기에 따라서 시간이 걸릴 수도 있습니다. 모드를 전환하시겠습니까?", + "Mode switch" : "모드 전환", "Select attributes" : "속성 선택", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "사용자를 찾을 수 없습니다. 로그인 속성과 사용자 이름을 확인하십시오. 적용되는 필터(명령행에 붙여넣어 검증 가능):", + "User found and settings verified." : "사용자를 찾았고 설정을 확인하였습니다.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "설정을 확인하였으나 한 명의 사용자만 찾았습니다. 첫 사용자만 로그인할 수 있습니다. 더 좁은 필터를 지정하십시오.", + "An unspecified error occurred. Please check the settings and the log." : "알 수 없는 오류가 발생하였습니다. 설정과 로그를 확인하십시오.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "검색 필터가 잘못되었습니다. 열고 닫는 괄호 쌍이 맞지 않을 수도 있습니다. 확인 후 수정하십시오.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "LDAP/AD 연결 오류가 발생하였습니다. 호스트, 포트, 인증 정보를 확인하십시오.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "%uid 자리 비움자가 존재하지 않습니다. LDAP/AD에 조회할 때 로그인 사용자 이름으로 대체됩니다.", + "Please provide a login name to test against" : "테스트할 로그인 사용자 이름을 입력하십시오", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "LDAP/AD 서버에서 memberOf를 지원하지 않아서 그룹 상자를 비활성화합니다.", "_%s group found_::_%s groups found_" : ["그룹 %s개 찾음"], "_%s user found_::_%s users found_" : ["사용자 %s명 찾음"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "사용자 표시 이름을 결정할 수 없습니다. 고급 LDAP 설정에서 직접 입력하십시오.", @@ -24,29 +47,49 @@ "Invalid Host" : "잘못된 호스트", "Server" : "서버", "Users" : "사용자", + "Login Attributes" : "로그인 속성", "Groups" : "그룹", "Test Configuration" : "설정 시험", "Help" : "도움말", "Groups meeting these criteria are available in %s:" : "이 조건을 만족하는 그룹은 %s에 있습니다:", + "Only these object classes:" : "다음 객체 클래스만:", + "Only from these groups:" : "다음 그룹만:", + "Search groups" : "그룹 검색", + "Available groups" : "사용 가능한 그룹", + "Selected groups" : "선택한 그룹", + "Edit LDAP Query" : "LDAP 쿼리 편집", + "LDAP Filter:" : "LDAP 필터:", "The filter specifies which LDAP groups shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.", - "Test Filter" : "필터 시험", + "Verify settings and count groups" : "설정을 확인하고 그룹 수 계산", + "When logging in, %s will find the user based on the following attributes:" : "로그인할 때 %s에서 다음 속성을 기반으로 사용자를 찾습니다:", + "LDAP / AD Username:" : "LDAP/AD 사용자 이름:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "uid 또는 samaccountname에 해당하는 LDAP/AD 사용자 이름으로 로그인을 허용합니다. 속성은 자동으로 감지됩니다.", + "LDAP / AD Email Address:" : "LDAP/AD 이메일 주소:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "이메일 속성으로 로그인을 허용합니다. Mail 및 mailPrimaryAddress를 허용합니다.", "Other Attributes:" : "기타 속성:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "로그인을 시도할 때 적용할 필터를 입력하십시오. %%uid는 로그인 동작의 사용자 이름으로 대체됩니다. 예: \"uid=%%uid\"", + "Test Loginname" : "로그인 이름 테스트", + "Verify settings" : "설정 검사", "1. Server" : "1. 서버", "%s. Server:" : "%s. 서버:", "Host" : "호스트", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL을 사용하지 않으면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.", "Port" : "포트", + "Detect Port" : "포트 감지", "User DN" : "사용자 DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", "Password" : "암호", "For anonymous access, leave DN and Password empty." : "익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", "One Base DN per line" : "기본 DN을 한 줄에 하나씩 입력하십시오", "You can specify Base DN for users and groups in the Advanced tab" : "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.", + "Detect Base DN" : "기본 DN 감지", + "Test Base DN" : "기본 DN 시험", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "자동 LDAP 요청을 줄입니다. 대형 사이트에서 유용하지만 LDAP에 관한 지식이 필요합니다.", "Manually enter LDAP filters (recommended for large directories)" : "수동으로 LDAP 필터 입력(대형 사이트에 추천)", "Limit %s access to users meeting these criteria:" : "다음 조건을 만족하는 사용자만 %s 접근 허용:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "일반적인 객체 클래스는 organizationalPerson, person, user, inetOrgPerson입니다. 어떤 객체 클래스를 사용해야 할 지 모르겠으면 디렉터리 서비스 관리자에게 연락하십시오.", "The filter specifies which LDAP users shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.", + "Verify settings and count users" : "설정을 확인하고 사용자 수 계산", "Saving" : "저장 중", "Back" : "뒤로", "Continue" : "계속", @@ -100,6 +143,7 @@ "UUID Attribute for Users:" : "사용자 UUID 속성:", "UUID Attribute for Groups:" : "그룹 UUID 속성:", "Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오.", "Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기", "Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/apps/user_ldap/l10n/nb_NO.js b/apps/user_ldap/l10n/nb_NO.js index c28947a62fb..146efa56dfc 100644 --- a/apps/user_ldap/l10n/nb_NO.js +++ b/apps/user_ldap/l10n/nb_NO.js @@ -31,7 +31,6 @@ OC.L10N.register( "Help" : "Hjelp", "Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-grupper som skal ha tilgang til %s-instansen.", - "Test Filter" : "Test filter", "Other Attributes:" : "Andre attributter:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer filteret som skal brukes når noen prøver å logge inn. %%uid erstatter brukernavnet i innloggingen. Eksempel: \"uid=%%uid\"", "1. Server" : "1. server", diff --git a/apps/user_ldap/l10n/nb_NO.json b/apps/user_ldap/l10n/nb_NO.json index cd399a4eb62..82950c884cb 100644 --- a/apps/user_ldap/l10n/nb_NO.json +++ b/apps/user_ldap/l10n/nb_NO.json @@ -29,7 +29,6 @@ "Help" : "Hjelp", "Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-grupper som skal ha tilgang til %s-instansen.", - "Test Filter" : "Test filter", "Other Attributes:" : "Andre attributter:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer filteret som skal brukes når noen prøver å logge inn. %%uid erstatter brukernavnet i innloggingen. Eksempel: \"uid=%%uid\"", "1. Server" : "1. server", diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js index 34340f65514..4600b251564 100644 --- a/apps/user_ldap/l10n/nl.js +++ b/apps/user_ldap/l10n/nl.js @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Bewerken LDAP bevraging", "LDAP Filter:" : "LDAP Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.", - "Test Filter" : "Testfilter", "Verify settings and count groups" : "Verifiëren instellingen en tel groepen", "When logging in, %s will find the user based on the following attributes:" : "Bij inloggen vindt %s de gebruiker gebaseerd op de volgende attributen:", "LDAP / AD Username:" : "LDAP / AD gebruikersnaam:", diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json index 31a73d6f93b..63d8720555d 100644 --- a/apps/user_ldap/l10n/nl.json +++ b/apps/user_ldap/l10n/nl.json @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Bewerken LDAP bevraging", "LDAP Filter:" : "LDAP Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.", - "Test Filter" : "Testfilter", "Verify settings and count groups" : "Verifiëren instellingen en tel groepen", "When logging in, %s will find the user based on the following attributes:" : "Bij inloggen vindt %s de gebruiker gebaseerd op de volgende attributen:", "LDAP / AD Username:" : "LDAP / AD gebruikersnaam:", diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index 1c8a4d17e7b..f0a6af6f6b8 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -31,7 +31,6 @@ OC.L10N.register( "Help" : "Pomoc", "Groups meeting these criteria are available in %s:" : "Przyłączenie do grupy z tymi ustawieniami dostępne jest w %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr określa, które grupy LDAP powinny mieć dostęp do instancji %s.", - "Test Filter" : "Testuj filtr", "Other Attributes:" : "Inne atrybuty:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Określa jakiego filtru użyć podczas próby zalogowania. %%uid zastępuje nazwę użytkownika w procesie logowania. Przykład: \"uid=%%uid\"", "1. Server" : "1. Serwer", diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index 28fba352023..ed5beeefaba 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -29,7 +29,6 @@ "Help" : "Pomoc", "Groups meeting these criteria are available in %s:" : "Przyłączenie do grupy z tymi ustawieniami dostępne jest w %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr określa, które grupy LDAP powinny mieć dostęp do instancji %s.", - "Test Filter" : "Testuj filtr", "Other Attributes:" : "Inne atrybuty:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Określa jakiego filtru użyć podczas próby zalogowania. %%uid zastępuje nazwę użytkownika w procesie logowania. Przykład: \"uid=%%uid\"", "1. Server" : "1. Serwer", diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js index 6c98f979128..37d5de96d38 100644 --- a/apps/user_ldap/l10n/pt_BR.js +++ b/apps/user_ldap/l10n/pt_BR.js @@ -22,6 +22,7 @@ OC.L10N.register( "Could not detect Base DN, please enter it manually." : "Não foi possível detectar a Base DN, por favor entre manualmente.", "{nthServer}. Server" : "Servidor {nthServer}.", "No object found in the given Base DN. Please revise." : "Nenhum objeto encontrado ba Base DN informada. Por favor revise.", + "More than 1.000 directory entries available." : "Mais de 1.000 entradas de diretórios disponíveis.", " entries available within the provided Base DN" : "entradas disponíveis na Base DN disponibilizada", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Um erro ocorreu. Por favor verifique a Base DN, e também a conexção e credenciais.", "Do you really want to delete the current Server Configuration?" : "Você quer realmente deletar as atuais Configurações de Servidor?", @@ -61,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Editar consulta LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.", - "Test Filter" : "Filtro Teste", "Verify settings and count groups" : "Verificar as configurações e grupos de conta", "When logging in, %s will find the user based on the following attributes:" : "Ao entrar, %s vai encontrar o usuário com base nos seguintes atributos:", "LDAP / AD Username:" : "Nome do usuário LDAP / AD:", diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json index 5f57180d93c..5980b372c8b 100644 --- a/apps/user_ldap/l10n/pt_BR.json +++ b/apps/user_ldap/l10n/pt_BR.json @@ -20,6 +20,7 @@ "Could not detect Base DN, please enter it manually." : "Não foi possível detectar a Base DN, por favor entre manualmente.", "{nthServer}. Server" : "Servidor {nthServer}.", "No object found in the given Base DN. Please revise." : "Nenhum objeto encontrado ba Base DN informada. Por favor revise.", + "More than 1.000 directory entries available." : "Mais de 1.000 entradas de diretórios disponíveis.", " entries available within the provided Base DN" : "entradas disponíveis na Base DN disponibilizada", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Um erro ocorreu. Por favor verifique a Base DN, e também a conexção e credenciais.", "Do you really want to delete the current Server Configuration?" : "Você quer realmente deletar as atuais Configurações de Servidor?", @@ -59,7 +60,6 @@ "Edit LDAP Query" : "Editar consulta LDAP", "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.", - "Test Filter" : "Filtro Teste", "Verify settings and count groups" : "Verificar as configurações e grupos de conta", "When logging in, %s will find the user based on the following attributes:" : "Ao entrar, %s vai encontrar o usuário com base nos seguintes atributos:", "LDAP / AD Username:" : "Nome do usuário LDAP / AD:", diff --git a/apps/user_ldap/l10n/pt_PT.js b/apps/user_ldap/l10n/pt_PT.js index 2b275908770..55cccb28022 100644 --- a/apps/user_ldap/l10n/pt_PT.js +++ b/apps/user_ldap/l10n/pt_PT.js @@ -10,6 +10,7 @@ OC.L10N.register( "No configuration specified" : "Nenhuma configuração especificada", "No data specified" : "Nenhuma data especificada", " Could not set configuration %s" : "Não foi possível definir a configuração %s", + "Action does not exist" : "Não existe esta acção", "Configuration incorrect" : "Configuração incorreta", "Configuration incomplete" : "Configuração incompleta", "Configuration OK" : "Configuração OK", @@ -31,7 +32,6 @@ OC.L10N.register( "Help" : "Ajuda", "Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância %s.", - "Test Filter" : "Testar Filtro", "Other Attributes:" : "Outros Atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a aplicar, quando se tenta uma sessão. %%uid substitui o nome de utilizador na ação de início de sessão. Exemplo: \"uid=%%uid\"", "1. Server" : "1. Servidor", diff --git a/apps/user_ldap/l10n/pt_PT.json b/apps/user_ldap/l10n/pt_PT.json index 9d94106818e..2b0c81a96f4 100644 --- a/apps/user_ldap/l10n/pt_PT.json +++ b/apps/user_ldap/l10n/pt_PT.json @@ -8,6 +8,7 @@ "No configuration specified" : "Nenhuma configuração especificada", "No data specified" : "Nenhuma data especificada", " Could not set configuration %s" : "Não foi possível definir a configuração %s", + "Action does not exist" : "Não existe esta acção", "Configuration incorrect" : "Configuração incorreta", "Configuration incomplete" : "Configuração incompleta", "Configuration OK" : "Configuração OK", @@ -29,7 +30,6 @@ "Help" : "Ajuda", "Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância %s.", - "Test Filter" : "Testar Filtro", "Other Attributes:" : "Outros Atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a aplicar, quando se tenta uma sessão. %%uid substitui o nome de utilizador na ação de início de sessão. Exemplo: \"uid=%%uid\"", "1. Server" : "1. Servidor", diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js index 84f4aef0585..50ec2122070 100644 --- a/apps/user_ldap/l10n/ru.js +++ b/apps/user_ldap/l10n/ru.js @@ -26,8 +26,8 @@ OC.L10N.register( "Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?", "Confirm Deletion" : "Подтверждение удаления", "Select attributes" : "Выберите атрибуты", - "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено"], - "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено"], + "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"], + "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не удалось автоматически определить атрибут содержащий отображаемое имя пользователя. Зайдите в расширенные настройки ldap и укажите его вручную.", "Could not find the desired feature" : "Не удается найти требуемую функциональность", "Invalid Host" : "Некорректный адрес сервера", @@ -41,7 +41,6 @@ OC.L10N.register( "Available groups" : "Доступные группы", "Selected groups" : "Выбранные группы", "The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.", - "Test Filter" : "Проверить фильтр", "LDAP / AD Username:" : "Имя пользователя LDAP/AD:", "Other Attributes:" : "Другие атрибуты:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"", @@ -117,4 +116,4 @@ OC.L10N.register( "Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP", "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP" }, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json index a1dc39252aa..1e828573fe2 100644 --- a/apps/user_ldap/l10n/ru.json +++ b/apps/user_ldap/l10n/ru.json @@ -24,8 +24,8 @@ "Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?", "Confirm Deletion" : "Подтверждение удаления", "Select attributes" : "Выберите атрибуты", - "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено"], - "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено"], + "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"], + "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не удалось автоматически определить атрибут содержащий отображаемое имя пользователя. Зайдите в расширенные настройки ldap и укажите его вручную.", "Could not find the desired feature" : "Не удается найти требуемую функциональность", "Invalid Host" : "Некорректный адрес сервера", @@ -39,7 +39,6 @@ "Available groups" : "Доступные группы", "Selected groups" : "Выбранные группы", "The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.", - "Test Filter" : "Проверить фильтр", "LDAP / AD Username:" : "Имя пользователя LDAP/AD:", "Other Attributes:" : "Другие атрибуты:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"", @@ -114,5 +113,5 @@ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется доменное имя (DN) для уменьшения числа обращений к LDAP, однако оно не используется для идентификации. Если доменное имя было изменено, об этом станет известно ownCloud. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.", "Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP", "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP" -},"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);" +},"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/user_ldap/l10n/sk_SK.js b/apps/user_ldap/l10n/sk_SK.js index a8f9cb398da..745f17a0145 100644 --- a/apps/user_ldap/l10n/sk_SK.js +++ b/apps/user_ldap/l10n/sk_SK.js @@ -36,7 +36,6 @@ OC.L10N.register( "Selected groups" : "Vybrané skupiny", "LDAP Filter:" : "LDAP filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.", - "Test Filter" : "Otestovať filter", "LDAP / AD Username:" : "Používateľské meno LDAP / AD:", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", "Other Attributes:" : "Iné atribúty:", diff --git a/apps/user_ldap/l10n/sk_SK.json b/apps/user_ldap/l10n/sk_SK.json index c7d877bae69..269ca3e076d 100644 --- a/apps/user_ldap/l10n/sk_SK.json +++ b/apps/user_ldap/l10n/sk_SK.json @@ -34,7 +34,6 @@ "Selected groups" : "Vybrané skupiny", "LDAP Filter:" : "LDAP filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.", - "Test Filter" : "Otestovať filter", "LDAP / AD Username:" : "Používateľské meno LDAP / AD:", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", "Other Attributes:" : "Iné atribúty:", diff --git a/apps/user_ldap/l10n/sl.js b/apps/user_ldap/l10n/sl.js index 82d64c27c70..925f802f3a9 100644 --- a/apps/user_ldap/l10n/sl.js +++ b/apps/user_ldap/l10n/sl.js @@ -42,7 +42,6 @@ OC.L10N.register( "Selected groups" : "Izbrane skupine", "LDAP Filter:" : "LDAP Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filter določa, katere skupine LDAP bodo imele dostop do %s.", - "Test Filter" : "Preizkusi filter", "Other Attributes:" : "Drugi atributi:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Določi filter, ki bo uveljavljen ob poskusu prijave. %%uid zamenja uporabniško ime pri prijavi, na primer: \"uid=%%uid\"", "Verify settings" : "Preveri nastavitve", diff --git a/apps/user_ldap/l10n/sl.json b/apps/user_ldap/l10n/sl.json index 6ff384a20d7..4674f513589 100644 --- a/apps/user_ldap/l10n/sl.json +++ b/apps/user_ldap/l10n/sl.json @@ -40,7 +40,6 @@ "Selected groups" : "Izbrane skupine", "LDAP Filter:" : "LDAP Filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filter določa, katere skupine LDAP bodo imele dostop do %s.", - "Test Filter" : "Preizkusi filter", "Other Attributes:" : "Drugi atributi:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Določi filter, ki bo uveljavljen ob poskusu prijave. %%uid zamenja uporabniško ime pri prijavi, na primer: \"uid=%%uid\"", "Verify settings" : "Preveri nastavitve", diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js index 45ccf5b1847..4e1402d95cf 100644 --- a/apps/user_ldap/l10n/sr.js +++ b/apps/user_ldap/l10n/sr.js @@ -62,7 +62,6 @@ OC.L10N.register( "Edit LDAP Query" : "Уреди ЛДАП упит", "LDAP Filter:" : "ЛДАП филтер:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.", - "Test Filter" : "Испробај филтер", "Verify settings and count groups" : "Провери поставке и преброј групе", "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:", "LDAP / AD Username:" : "ЛДАП / АД корисничко име:", diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json index 3c7dffd237d..c2a9c2898eb 100644 --- a/apps/user_ldap/l10n/sr.json +++ b/apps/user_ldap/l10n/sr.json @@ -60,7 +60,6 @@ "Edit LDAP Query" : "Уреди ЛДАП упит", "LDAP Filter:" : "ЛДАП филтер:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.", - "Test Filter" : "Испробај филтер", "Verify settings and count groups" : "Провери поставке и преброј групе", "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:", "LDAP / AD Username:" : "ЛДАП / АД корисничко име:", diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js index f9920f6ca7d..95921f20467 100644 --- a/apps/user_ldap/l10n/sv.js +++ b/apps/user_ldap/l10n/sv.js @@ -31,7 +31,6 @@ OC.L10N.register( "Help" : "Hjälp", "Groups meeting these criteria are available in %s:" : "Grupper som uppfyller dessa kriterier finns i %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtret specifierar vilka LDAD-grupper som ska ha åtkomst till %s instans", - "Test Filter" : "Testfilter", "Other Attributes:" : "Övriga attribut:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definierar filter som tillämpas vid inloggning. %%uid ersätter användarnamn vid inloggningen. Exempel: \"uid=%%uid\"", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json index 53155976d98..3f2b74e8dad 100644 --- a/apps/user_ldap/l10n/sv.json +++ b/apps/user_ldap/l10n/sv.json @@ -29,7 +29,6 @@ "Help" : "Hjälp", "Groups meeting these criteria are available in %s:" : "Grupper som uppfyller dessa kriterier finns i %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtret specifierar vilka LDAD-grupper som ska ha åtkomst till %s instans", - "Test Filter" : "Testfilter", "Other Attributes:" : "Övriga attribut:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definierar filter som tillämpas vid inloggning. %%uid ersätter användarnamn vid inloggningen. Exempel: \"uid=%%uid\"", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js index 449ad9334cc..e0e46731a59 100644 --- a/apps/user_ldap/l10n/tr.js +++ b/apps/user_ldap/l10n/tr.js @@ -36,7 +36,6 @@ OC.L10N.register( "Help" : "Yardım", "Groups meeting these criteria are available in %s:" : "Bu kriterlerle eşleşen gruplar %s içinde mevcut:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtre, %s örneğine erişmesi gereken LDAP gruplarını belirtir.", - "Test Filter" : "Filtreyi Test Et", "Other Attributes:" : "Diğer Nitelikler:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Oturum açma girişimi olduğunda uygulanacak filtreyi tanımlar. %%uid, oturum işleminde kullanıcı adı ile değiştirilir. Örneğin: \"uid=%%uid\"", "1. Server" : "1. Sunucu", diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json index 45945eb009f..01cfc4c94a4 100644 --- a/apps/user_ldap/l10n/tr.json +++ b/apps/user_ldap/l10n/tr.json @@ -34,7 +34,6 @@ "Help" : "Yardım", "Groups meeting these criteria are available in %s:" : "Bu kriterlerle eşleşen gruplar %s içinde mevcut:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtre, %s örneğine erişmesi gereken LDAP gruplarını belirtir.", - "Test Filter" : "Filtreyi Test Et", "Other Attributes:" : "Diğer Nitelikler:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Oturum açma girişimi olduğunda uygulanacak filtreyi tanımlar. %%uid, oturum işleminde kullanıcı adı ile değiştirilir. Örneğin: \"uid=%%uid\"", "1. Server" : "1. Sunucu", diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js index 40941e3479f..038657a5065 100644 --- a/apps/user_ldap/l10n/uk.js +++ b/apps/user_ldap/l10n/uk.js @@ -31,7 +31,6 @@ OC.L10N.register( "Help" : "Допомога", "Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.", - "Test Filter" : "Тест Фільтр", "Other Attributes:" : "Інші Атрибути:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Визначає фільтр, який слід застосовувати при спробі входу.\n%%uid замінює ім'я користувача при вході в систему. Приклад: \"uid=%%uid\"", "1. Server" : "1. Сервер", diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json index daa03c128d3..bfd877a1892 100644 --- a/apps/user_ldap/l10n/uk.json +++ b/apps/user_ldap/l10n/uk.json @@ -29,7 +29,6 @@ "Help" : "Допомога", "Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.", - "Test Filter" : "Тест Фільтр", "Other Attributes:" : "Інші Атрибути:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Визначає фільтр, який слід застосовувати при спробі входу.\n%%uid замінює ім'я користувача при вході в систему. Приклад: \"uid=%%uid\"", "1. Server" : "1. Сервер", diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index b9d83aad684..d6f4bdcde04 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -78,8 +78,6 @@ class Connection extends LDAPUtility { $memcache = \OC::$server->getMemCacheFactory(); if($memcache->isAvailable()) { $this->cache = $memcache->create(); - } else { - $this->cache = \OC\Cache::getGlobalCache(); } $this->hasPagedResultSupport = $this->ldap->hasPagedResultSupport(); @@ -195,7 +193,7 @@ class Connection extends LDAPUtility { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->configuration->ldapCacheTTL) { + if(is_null($this->cache) || !$this->configuration->ldapCacheTTL) { return null; } if(!$this->isCached($key)) { @@ -215,7 +213,7 @@ class Connection extends LDAPUtility { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->configuration->ldapCacheTTL) { + if(is_null($this->cache) || !$this->configuration->ldapCacheTTL) { return false; } $key = $this->getCacheKey($key); @@ -225,12 +223,15 @@ class Connection extends LDAPUtility { /** * @param string $key * @param mixed $value + * + * @return string */ public function writeToCache($key, $value) { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->configuration->ldapCacheTTL + if(is_null($this->cache) + || !$this->configuration->ldapCacheTTL || !$this->configuration->ldapConfigurationActive) { return null; } @@ -240,7 +241,9 @@ class Connection extends LDAPUtility { } public function clearCache() { - $this->cache->clear($this->getCacheKey(null)); + if(!is_null($this->cache)) { + $this->cache->clear($this->getCacheKey(null)); + } } /** diff --git a/apps/user_ldap/lib/ldap.php b/apps/user_ldap/lib/ldap.php index b4ca3499f49..4d45db2e155 100644 --- a/apps/user_ldap/lib/ldap.php +++ b/apps/user_ldap/lib/ldap.php @@ -26,6 +26,8 @@ namespace OCA\user_ldap\lib; +use OC\ServerNotAvailableException; + class LDAP implements ILDAPWrapper { protected $curFunc = ''; protected $curArgs = array(); @@ -283,6 +285,12 @@ class LDAP implements ILDAPWrapper { //for now } else if ($errorCode === 10) { //referrals, we switch them off, but then there is AD :) + } else if ($errorCode === -1) { + throw new ServerNotAvailableException('Lost connection to LDAP server.'); + } else if ($errorCode === 48) { + throw new \Exception('LDAP authentication method rejected', $errorCode); + } else if ($errorCode === 1) { + throw new \Exception('LDAP Operations error', $errorCode); } else { \OCP\Util::writeLog('user_ldap', 'LDAP error '.$errorMsg.' (' . diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php index 824923eecbf..6c39f406e83 100644 --- a/apps/user_ldap/lib/wizard.php +++ b/apps/user_ldap/lib/wizard.php @@ -657,12 +657,26 @@ class Wizard extends LDAPUtility { \OCP\Util::writeLog('user_ldap', 'Wiz: trying port '. $p . ', TLS '. $t, \OCP\Util::DEBUG); //connectAndBind may throw Exception, it needs to be catched by the //callee of this method - if($this->connectAndBind($p, $t) === true) { - $config = array('ldapPort' => $p, - 'ldapTLS' => intval($t) - ); + + // unallowed anonymous bind throws 48. But if it throws 48, we + // detected port and TLS, i.e. it is successful. + try { + $settingsFound = $this->connectAndBind($p, $t); + } catch (\Exception $e) { + if($e->getCode() === 48) { + $settingsFound = true; + } else { + throw $e; + } + } + + if ($settingsFound === true) { + $config = array( + 'ldapPort' => $p, + 'ldapTLS' => intval($t) + ); $this->configuration->setConfiguration($config); - \OCP\Util::writeLog('user_ldap', 'Wiz: detected Port '. $p, \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', 'Wiz: detected Port ' . $p, \OCP\Util::DEBUG); $this->result->addChange('ldap_port', $p); return $this->result; } diff --git a/apps/user_ldap/templates/part.wizard-groupfilter.php b/apps/user_ldap/templates/part.wizard-groupfilter.php index bfcfd115218..2f663b858e2 100644 --- a/apps/user_ldap/templates/part.wizard-groupfilter.php +++ b/apps/user_ldap/templates/part.wizard-groupfilter.php @@ -47,9 +47,6 @@ placeholder="<?php p($l->t('Edit LDAP Query'));?>" title="<?php p($l->t('The filter specifies which LDAP groups shall have access to the %s instance.', $theme->getName()));?>"> </textarea> - <button class="ldapGetEntryCount hidden" name="ldapGetEntryCount" type="button"> - <?php p($l->t('Test Filter'));?> - </button> </p> <p> <div class="ldapWizardInfo invisible"> </div> diff --git a/apps/user_ldap/templates/part.wizard-loginfilter.php b/apps/user_ldap/templates/part.wizard-loginfilter.php index fa17a9b430b..8d9fccf24b8 100644 --- a/apps/user_ldap/templates/part.wizard-loginfilter.php +++ b/apps/user_ldap/templates/part.wizard-loginfilter.php @@ -58,4 +58,4 @@ </p> <?php print_unescaped($_['wizardControls']); ?> </div> -</fieldset>
\ No newline at end of file +</fieldset> diff --git a/apps/user_ldap/tests/integration/exceptionOnLostConnection.php b/apps/user_ldap/tests/integration/exceptionOnLostConnection.php new file mode 100644 index 00000000000..a55d4822689 --- /dev/null +++ b/apps/user_ldap/tests/integration/exceptionOnLostConnection.php @@ -0,0 +1,192 @@ +<?php +/** + * @author Arthur Schiwon <blizzz@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +use OC\ServerNotAvailableException; +use OCA\user_ldap\lib\LDAP; + +/** + * Class ExceptionOnLostConnection + * + * integration test, ensures that an exception is thrown, when the connection is lost. + * + * LDAP must be available via toxiproxy. + * + * This test must be run manually. + * + */ +class ExceptionOnLostConnection { + /** @var string */ + private $toxiProxyHost; + + /** @var string */ + private $toxiProxyName; + + /** @var string */ + private $ldapBase; + + /** @var string|null */ + private $ldapBindDN; + + /** @var string|null */ + private $ldapBindPwd; + + /** @var string */ + private $ldapHost; + + /** @var OCA\user_ldap\lib\LDAP */ + private $ldap; + + /** @var bool */ + private $originalProxyState; + + /** + * @param string $proxyHost host of toxiproxy as url, like http://localhost:8474 + * @param string $proxyName name of the LDAP proxy service as configured in toxiProxy + * @param string $ldapBase any valid LDAP base DN + * @param null $bindDN optional, bind DN if anonymous bind is not possible + * @param null $bindPwd optional + */ + public function __construct($proxyHost, $proxyName, $ldapBase, $bindDN = null, $bindPwd = null) { + $this->toxiProxyHost = $proxyHost; + $this->toxiProxyName = $proxyName; + $this->ldapBase = $ldapBase; + $this->ldapBindDN = $bindDN; + $this->ldapBindPwd = $bindPwd; + + $this->setUp(); + } + + /** + * destructor + */ + public function __destruct() { + $this->cleanUp(); + } + + /** + * prepares everything for the test run. Includes loading ownCloud and + * the LDAP backend, as well as getting information about toxiproxy. + * Also creates an instance of the LDAP class, the testee + * + * @throws Exception + */ + public function setUp() { + require_once __DIR__ . '/../../../../lib/base.php'; + \OC_App::loadApps('user_ldap'); + + $ch = $this->getCurl(); + $proxyInfoJson = curl_exec($ch); + $this->checkCurlResult($ch, $proxyInfoJson); + $proxyInfo = json_decode($proxyInfoJson, true); + $this->originalProxyState = $proxyInfo['enabled']; + $this->ldapHost = 'ldap://' . $proxyInfo['listen']; // contains port as well + + $this->ldap = new LDAP(); + } + + /** + * restores original state of the LDAP proxy, if necessary + */ + public function cleanUp() { + if($this->originalProxyState === true) { + $this->setProxyState(true); + } + } + + /** + * runs the test and prints the result. Exit code is 0 if successful, 1 on + * fail + */ + public function run() { + if($this->originalProxyState === false) { + $this->setProxyState(true); + } + //host contains port, 2nd parameter will be ignored + $cr = $this->ldap->connect($this->ldapHost, 0); + $this->ldap->bind($cr, $this->ldapBindDN, $this->ldapBindPwd); + $this->ldap->search($cr, $this->ldapBase, 'objectClass=*', array('dn'), true, 5); + + // disable LDAP, will cause lost connection + $this->setProxyState(false); + try { + $this->ldap->search($cr, $this->ldapBase, 'objectClass=*', array('dn'), true, 5); + } catch (ServerNotAvailableException $e) { + print("Test PASSED" . PHP_EOL); + exit(0); + } + print("Test FAILED" . PHP_EOL); + exit(1); + } + + /** + * tests whether a curl operation ran successfully. If not, an exception + * is thrown + * + * @param resource $ch + * @param mixed $result + * @throws Exception + */ + private function checkCurlResult($ch, $result) { + if($result === false) { + $error = curl_error($ch); + curl_close($ch); + throw new \Exception($error); + } + } + + /** + * enables or disabled the LDAP proxy service in toxiproxy + * + * @param bool $isEnabled whether is should be enabled or disables + * @throws Exception + */ + private function setProxyState($isEnabled) { + if(!is_bool($isEnabled)) { + throw new \InvalidArgumentException('Bool expected'); + } + $postData = json_encode(['enabled' => $isEnabled]); + $ch = $this->getCurl(); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + 'Content-Type: application/json', + 'Content-Length: ' . strlen($postData)) + ); + $recvd = curl_exec($ch); + $this->checkCurlResult($ch, $recvd); + } + + /** + * initializes a curl handler towards the toxiproxy LDAP proxy service + * @return resource + */ + private function getCurl() { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $this->toxiProxyHost . '/proxies/' . $this->toxiProxyName); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + return $ch; + } +} + +$test = new ExceptionOnLostConnection('http://localhost:8474', 'ldap', 'dc=owncloud,dc=bzoc'); +$test->run(); + diff --git a/autotest.sh b/autotest.sh index 8b8017eba80..3ce88c64974 100755 --- a/autotest.sh +++ b/autotest.sh @@ -53,11 +53,18 @@ if ! [ -x "$PHPUNIT" ]; then exit 3 fi -PHPUNIT_VERSION=$("$PHP" "$PHPUNIT" --version | cut -d" " -f2) -PHPUNIT_MAJOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f1) -PHPUNIT_MINOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f2) +# PHPUnit might also be installed via a facade binary script +if [[ "$PHPUNIT" =~ \.phar$ ]]; then + PHPUNIT=( "$PHP" "$PHPUNIT" ) +else + PHPUNIT=( "$PHPUNIT" ) +fi + +PHPUNIT_VERSION=$($PHPUNIT --version | cut -d" " -f2) +PHPUNIT_MAJOR_VERSION=$(echo "$PHPUNIT_VERSION" | cut -d"." -f1) +PHPUNIT_MINOR_VERSION=$(echo "$PHPUNIT_VERSION" | cut -d"." -f2) -if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUNIT_MINOR_VERSION -ge 7 \) ]; then +if ! [ "$PHPUNIT_MAJOR_VERSION" -gt 3 -o \( "$PHPUNIT_MAJOR_VERSION" -eq 3 -a "$PHPUNIT_MINOR_VERSION" -ge 7 \) ]; then echo "phpunit version >= 3.7 required. Version found: $PHPUNIT_VERSION" >&2 exit 4 fi @@ -70,7 +77,7 @@ fi if [ "$1" ]; then FOUND=0 for DBCONFIG in $DBCONFIGS; do - if [ "$1" = $DBCONFIG ]; then + if [ "$1" = "$DBCONFIG" ]; then FOUND=1 break fi @@ -90,7 +97,7 @@ fi function cleanup_config { if [ ! -z "$DOCKER_CONTAINER_ID" ]; then echo "Kill the docker $DOCKER_CONTAINER_ID" - docker rm -f $DOCKER_CONTAINER_ID + docker rm -f "$DOCKER_CONTAINER_ID" fi cd "$BASEDIR" @@ -132,15 +139,15 @@ function execute_tests { # drop database if [ "$1" == "mysql" ] ; then - mysql -u $DATABASEUSER -powncloud -e "DROP DATABASE IF EXISTS $DATABASENAME" -h $DATABASEHOST || true + mysql -u "$DATABASEUSER" -powncloud -e "DROP DATABASE IF EXISTS $DATABASENAME" -h $DATABASEHOST || true fi if [ "$1" == "pgsql" ] ; then - dropdb -U $DATABASEUSER $DATABASENAME || true + dropdb -U "$DATABASEUSER" "$DATABASENAME" || true fi if [ "$1" == "oci" ] ; then echo "Fire up the oracle docker" - DOCKER_CONTAINER_ID=`docker run -d deepdiver/docker-oracle-xe-11g` - DATABASEHOST=`docker inspect $DOCKER_CONTAINER_ID | grep IPAddress | cut -d '"' -f 4` + DOCKER_CONTAINER_ID=$(docker run -d deepdiver/docker-oracle-xe-11g) + DATABASEHOST=$(docker inspect "$DOCKER_CONTAINER_ID" | grep IPAddress | cut -d '"' -f 4) echo "Waiting 60 seconds for Oracle initialization ... " sleep 60 @@ -151,7 +158,7 @@ function execute_tests { # trigger installation echo "Installing ...." - "$PHP" ./occ maintenance:install --database=$1 --database-name=$DATABASENAME --database-host=$DATABASEHOST --database-user=$DATABASEUSER --database-pass=owncloud --database-table-prefix=oc_ --admin-user=$ADMINLOGIN --admin-pass=admin --data-dir=$DATADIR + "$PHP" ./occ maintenance:install --database="$1" --database-name="$DATABASENAME" --database-host="$DATABASEHOST" --database-user="$DATABASEUSER" --database-pass=owncloud --database-table-prefix=oc_ --admin-user="$ADMINLOGIN" --admin-pass=admin --data-dir="$DATADIR" #test execution echo "Testing with $1 ..." @@ -160,11 +167,11 @@ function execute_tests { mkdir "coverage-html-$1" "$PHP" -f enable_all.php | grep -i -C9999 error && echo "Error during setup" && exit 101 if [ -z "$NOCOVERAGE" ]; then - "$PHP" "$PHPUNIT" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" --coverage-clover "autotest-clover-$1.xml" --coverage-html "coverage-html-$1" "$2" "$3" + "${PHPUNIT[@]}" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" --coverage-clover "autotest-clover-$1.xml" --coverage-html "coverage-html-$1" "$2" "$3" RESULT=$? else echo "No coverage" - "$PHP" "$PHPUNIT" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" "$2" "$3" + "${PHPUNIT[@]}" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" "$2" "$3" RESULT=$? fi } @@ -176,7 +183,7 @@ if [ -z "$1" ] then # run all known database configs for DBCONFIG in $DBCONFIGS; do - execute_tests $DBCONFIG + execute_tests "$DBCONFIG" done else FILENAME="$2" diff --git a/config/ca-bundle.crt b/config/ca-bundle.crt index 7366a6dfaf7..c93d3c4d4a7 100644 --- a/config/ca-bundle.crt +++ b/config/ca-bundle.crt @@ -1,7 +1,7 @@ ## ## Bundle of CA Root Certificates ## -## Certificate data from Mozilla as of: Wed Feb 25 16:40:11 2015 +## Certificate data from Mozilla as of: Mon Apr 27 08:58:04 2015 ## ## This is a bundle of X.509 certificates of public Certificate Authorities ## (CA). These were automatically extracted from Mozilla's root certificates @@ -14,7 +14,7 @@ ## Just configure this file as the SSLCACertificateFile. ## ## Conversion done with mk-ca-bundle.pl version 1.25. -## SHA1: f9bc9fa76145720d94124527f82a7185d921975e +## SHA1: ed3c0bbfb7912bcc00cd2033b0cb85c98d10559c ## @@ -174,23 +174,6 @@ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp -----END CERTIFICATE----- -Equifax Secure Global eBusiness CA -================================== ------BEGIN CERTIFICATE----- -MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp -bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx -HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds -b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV -PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN -qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn -hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j -BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs -MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN -I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY -NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV ------END CERTIFICATE----- - AddTrust Low-Value Services Root ================================ -----BEGIN CERTIFICATE----- @@ -1633,33 +1616,6 @@ JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk vQ== -----END CERTIFICATE----- -TC TrustCenter Class 3 CA II -============================ ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy -IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw -MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 -c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE -AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W -yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo -6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ -uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk -2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB -7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 -Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU -cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i -SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE -O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8 -yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9 -IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal -092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc -5A== ------END CERTIFICATE----- - TC TrustCenter Universal CA I ============================= -----BEGIN CERTIFICATE----- @@ -2277,28 +2233,6 @@ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi LXpUq3DDfSJlgnCW -----END CERTIFICATE----- -E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi -=================================================== ------BEGIN CERTIFICATE----- -MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz -ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3 -MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0 -cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u -aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY -8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y -jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI -JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk -9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD -AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG -SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d -F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq -D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4 -Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq -fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX ------END CERTIFICATE----- - GlobalSign Root CA - R3 ======================= -----BEGIN CERTIFICATE----- @@ -3857,4 +3791,198 @@ h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G3 +================================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y +olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t +x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy +EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K +Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur +mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 +1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp +07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo +FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE +41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu +yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq +KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 +v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA +8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b +8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r +mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq +1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI +JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV +tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su -----END CERTIFICATE-----
\ No newline at end of file diff --git a/console.php b/console.php index 2e55accab21..781905b04b5 100644 --- a/console.php +++ b/console.php @@ -28,6 +28,14 @@ use Symfony\Component\Console\Output\ConsoleOutput; define('OC_CONSOLE', 1); +// Show warning if a PHP version below 5.4.0 is used, this has to happen here +// because base.php will already use 5.4 syntax. +if (version_compare(PHP_VERSION, '5.4.0') === -1) { + echo 'This version of ownCloud requires at least PHP 5.4.0'.PHP_EOL; + echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.'.PHP_EOL; + return; +} + try { require_once 'lib/base.php'; diff --git a/core/command/encryption/disable.php b/core/command/encryption/disable.php index b5fce5cbd90..e3c0b8d7489 100644 --- a/core/command/encryption/disable.php +++ b/core/command/encryption/disable.php @@ -50,7 +50,7 @@ class Disable extends Command { $output->writeln('Encryption is already disabled'); } else { $this->config->setAppValue('core', 'encryption_enabled', 'no'); - $output->writeln('Encryption disabled'); + $output->writeln('<info>Encryption disabled</info>'); } } } diff --git a/core/command/encryption/enable.php b/core/command/encryption/enable.php index 0b403f86a68..b615a7f4f85 100644 --- a/core/command/encryption/enable.php +++ b/core/command/encryption/enable.php @@ -21,6 +21,7 @@ namespace OC\Core\Command\Encryption; +use OCP\Encryption\IManager; use OCP\IConfig; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; @@ -30,11 +31,17 @@ class Enable extends Command { /** @var IConfig */ protected $config; + /** @var IManager */ + protected $encryptionManager; + /** * @param IConfig $config + * @param IManager $encryptionManager */ - public function __construct(IConfig $config) { + public function __construct(IConfig $config, IManager $encryptionManager) { parent::__construct(); + + $this->encryptionManager = $encryptionManager; $this->config = $config; } @@ -50,9 +57,22 @@ class Enable extends Command { $output->writeln('Encryption is already enabled'); } else { $this->config->setAppValue('core', 'encryption_enabled', 'yes'); - $output->writeln('Encryption enabled'); + $output->writeln('<info>Encryption enabled</info>'); } + $output->writeln(''); - $output->writeln('Default module: ' . $this->config->getAppValue('core', 'default_encryption_module', 'OC_DEFAULT_MODULE')); + $modules = $this->encryptionManager->getEncryptionModules(); + if (empty($modules)) { + $output->writeln('<error>No encryption module is loaded</error>'); + } else { + $defaultModule = $this->config->getAppValue('core', 'default_encryption_module', null); + if ($defaultModule === null) { + $output->writeln('<error>No default module is set</error>'); + } else if (!isset($modules[$defaultModule])) { + $output->writeln('<error>The current default module does not exist: ' . $defaultModule . '</error>'); + } else { + $output->writeln('Default module: ' . $defaultModule); + } + } } } diff --git a/core/command/upgrade.php b/core/command/upgrade.php index 6d01288a404..7f5d943bb8b 100644 --- a/core/command/upgrade.php +++ b/core/command/upgrade.php @@ -130,6 +130,9 @@ class Upgrade extends Command { $updater->listen('\OC\Updater', 'thirdPartyAppDisabled', function ($app) use($output) { $output->writeln('<info>Disabled 3rd-party app: ' . $app . '</info>'); }); + $updater->listen('\OC\Updater', 'upgradeAppStoreApp', function ($app) use($output) { + $output->writeln('<info>Update 3rd-party app: ' . $app . '</info>'); + }); $updater->listen('\OC\Updater', 'repairWarning', function ($app) use($output) { $output->writeln('<error>Repair warning: ' . $app . '</error>'); }); diff --git a/core/css/apps.css b/core/css/apps.css index 9b662cc31af..57133729f15 100644 --- a/core/css/apps.css +++ b/core/css/apps.css @@ -495,6 +495,12 @@ button.loading { .section.hidden { display: none !important; } +.sub-section { + position: relative; + margin-top: 10px; + margin-left: 27px; + margin-bottom: 10px; +} /* no top border for first settings item */ #app-content > .section:first-child { border-top: none; diff --git a/core/css/multiselect.css b/core/css/multiselect.css index 274cec8253d..17fd81bf6c3 100644 --- a/core/css/multiselect.css +++ b/core/css/multiselect.css @@ -88,6 +88,7 @@ div.multiselect>span:first-child { overflow: hidden; text-overflow: ellipsis; width: 90%; + white-space: nowrap; } div.multiselect>span:last-child { diff --git a/core/css/styles.css b/core/css/styles.css index c8704066cf1..fe259e87d51 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -638,6 +638,9 @@ label.infield { /* Database selector */ #body-login form #selectDbType { text-align:center; white-space: nowrap; } +#body-login form #selectDbType .info { + white-space: normal; +} #body-login form #selectDbType label { position:static; margin:0 -3px 5px; padding:.4em; font-size:12px; background:#f8f8f8; color:#888; cursor:pointer; diff --git a/core/js/jquery.ocdialog.js b/core/js/jquery.ocdialog.js index e48e3e8df6a..ea034f0aff7 100644 --- a/core/js/jquery.ocdialog.js +++ b/core/js/jquery.ocdialog.js @@ -78,8 +78,12 @@ var pos = self.parent.position(); self.$dialog.css({ left: pos.left + ($(window).innerWidth() - self.$dialog.outerWidth())/2, - top: pos.top + ($(window).innerHeight() - self.$dialog.outerHeight())/2 + top: pos.top + ($(window).innerHeight() - self.$dialog.outerHeight())/2, + width: Math.min(self.options.width, $(window).innerWidth() - 20 ), + height: Math.min(self.options.height, $(window).innerHeight() - 20) }); + // set sizes of content + self._setSizes(); }); this._setOptions(this.options); diff --git a/core/js/maintenance-check.js b/core/js/maintenance-check.js index 061a434214b..663f7fb5f00 100644 --- a/core/js/maintenance-check.js +++ b/core/js/maintenance-check.js @@ -3,10 +3,7 @@ window.setInterval(checkStatus, 20000); function checkStatus() { var request = new XMLHttpRequest(); - var ocroot = location.pathname.substr( - 0, location.pathname.indexOf('index.php') - ); - request.open("GET", ocroot+'status.php', true); + request.open("GET", OC.webroot+'/status.php', true); request.onreadystatechange = function() { if (request.readyState === 4) { var response = request.responseText; diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index afd7debb695..0692a9df5ca 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -207,7 +207,8 @@ var OCdialogs = { self.$filePicker.ocdialog({ closeOnEscape: true, - width: (4/5)*$(document).width(), + // max-width of 600 + width: Math.min((4/5)*$(document).width(), 600), height: 420, modal: modal, buttons: buttonlist, diff --git a/core/js/setup.js b/core/js/setup.js index 95237165b40..fd2547867ff 100644 --- a/core/js/setup.js +++ b/core/js/setup.js @@ -9,6 +9,8 @@ $(document).ready(function() { }; $('#selectDbType').buttonset(); + // change links inside an info box back to their default appearance + $('#selectDbType p.info a').button('destroy'); if($('#hasSQLite').val()){ $('#use_other_db').hide(); diff --git a/core/js/share.js b/core/js/share.js index 6723b829ca5..121ee97d17f 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -839,6 +839,24 @@ OC.Share={ $('#defaultExpireMessage').slideDown(OC.menuSpeed); } $.datepicker.setDefaults(datePickerOptions); + }, + /** + * Get the default Expire date + * + * @return {String} The expire date + */ + getDefaultExpirationDate:function() { + var expireDateString = ''; + if (oc_appconfig.core.defaultExpireDateEnabled) { + var date = new Date().getTime(); + var expireAfterMs = oc_appconfig.core.defaultExpireDate * 24 * 60 * 60 * 1000; + var expireDate = new Date(date + expireAfterMs); + var month = expireDate.getMonth() + 1; + var year = expireDate.getFullYear(); + var day = expireDate.getDate(); + expireDateString = year + "-" + month + '-' + day + ' 00:00:00'; + } + return expireDateString; } }; @@ -986,18 +1004,15 @@ $(document).ready(function() { $('#linkPassText').attr('placeholder', t('core', 'Choose a password for the public link')); // Reset link $('#linkText').val(''); + $('#showPassword').prop('checked', false); + $('#linkPass').hide(); + $('#sharingDialogAllowPublicUpload').prop('checked', false); + $('#expirationCheckbox').prop('checked', false); + $('#expirationDate').hide(); var expireDateString = ''; - if (oc_appconfig.core.defaultExpireDateEnabled) { - var date = new Date().getTime(); - var expireAfterMs = oc_appconfig.core.defaultExpireDate * 24 * 60 * 60 * 1000; - var expireDate = new Date(date + expireAfterMs); - var month = expireDate.getMonth() + 1; - var year = expireDate.getFullYear(); - var day = expireDate.getDate(); - expireDateString = year + "-" + month + '-' + day + ' 00:00:00'; - } // Create a link if (oc_appconfig.core.enforcePasswordForPublicLink === false) { + expireDateString = OC.Share.getDefaultExpirationDate(); $loading.removeClass('hidden'); $button.addClass('hidden'); $button.prop('disabled', true); @@ -1135,8 +1150,10 @@ $(document).ready(function() { permissions = OC.PERMISSION_READ; } + var expireDateString = OC.Share.getDefaultExpirationDate(); + $loading.removeClass('hidden'); - OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, $('#linkPassText').val(), permissions, itemSourceName, function(data) { + OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, $('#linkPassText').val(), permissions, itemSourceName, expireDateString, function(data) { $loading.addClass('hidden'); linkPassText.val(''); linkPassText.attr('placeholder', t('core', 'Password protected')); @@ -1145,8 +1162,12 @@ $(document).ready(function() { OC.Share.showLink(data.token, "password set", itemSource); OC.Share.updateIcon(itemType, itemSource); } + $('#dropdown').trigger(new $.Event('sharesChanged', {shares: OC.Share.currentShares})); }); + if (expireDateString !== '') { + OC.Share.showExpirationDate(expireDateString); + } } }); diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js index 3e9a0b247d7..c075351b9f5 100644 --- a/core/js/tests/specs/shareSpec.js +++ b/core/js/tests/specs/shareSpec.js @@ -228,6 +228,112 @@ describe('OC.Share tests', function() { oc_appconfig.core.enforcePasswordForPublicLink = old; }); + it('reset password on toggle of share', function() { + $('#allowShareWithLink').val('yes'); + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + 31, + 'shared_file_name.txt' + ); + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + //Password protection should be unchecked and password field not visible + expect($('#dropdown [name=showPassword]').prop('checked')).toEqual(false); + expect($('#dropdown #linkPass').is(":visible")).toEqual(false); + + // Toggle and set password + $('#dropdown [name=showPassword]').click(); + $('#dropdown #linkPassText').val('foo'); + $('#dropdown #linkPassText').trigger(new $.Event('keyup', {keyCode: 13})); + fakeServer.requests[1].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz2'}, status: 'success'}) + ); + + // Unshare + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[2].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({status: 'success'}) + ); + + // Toggle share again + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[3].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz3'}, status: 'success'}) + ); + + + // Password checkbox should be unchecked + expect($('#dropdown [name=showPassword]').prop('checked')).toEqual(false); + expect($('#dropdown #linkPass').is(":visible")).toEqual(false); + }); + it('reset expiration on toggle of share', function() { + $('#allowShareWithLink').val('yes'); + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + 31, + 'shared_file_name.txt' + ); + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + //Expiration should be unchecked and expiration field not visible + expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(false); + expect($('#dropdown #expirationDate').is(":visible")).toEqual(false); + + // Toggle and set password + $('#dropdown [name=expirationCheckbox]').click(); + d = new Date(); + d.setDate(d.getDate() + 1); + date=d.getDate() + '-' + (d.getMonth()+1) + '-' + d.getFullYear(); + $('#dropdown #expirationDate').val(date); + $('#dropdown #expirationDate').change(); + fakeServer.requests[1].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz2'}, status: 'success'}) + ); + + // Unshare + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[2].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({status: 'success'}) + ); + + // Toggle share again + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[3].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz3'}, status: 'success'}) + ); + + // Recheck expire visibility + expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(false); + expect($('#dropdown #expirationDate').is(":visible")).toEqual(false); + }); it('shows populated link share when a link share exists', function() { loadItemStub.returns({ reshare: [], @@ -419,6 +525,7 @@ describe('OC.Share tests', function() { }; loadItemStub.returns(shareData); oc_appconfig.core.defaultExpireDate = 7; + oc_appconfig.core.enforcePasswordForPublicLink = false; oc_appconfig.core.defaultExpireDateEnabled = false; oc_appconfig.core.defaultExpireDateEnforced = false; }); @@ -474,6 +581,32 @@ describe('OC.Share tests', function() { $('#dropdown [name=expirationCheckbox]').click(); expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true); }); + it('enforces default date when enforced date setting is enabled and password is enforced', function() { + /* jshint camelcase:false */ + oc_appconfig.core.enforcePasswordForPublicLink = true; + oc_appconfig.core.defaultExpireDateEnabled = true; + oc_appconfig.core.defaultExpireDateEnforced = true; + showDropDown(); + $('#dropdown [name=linkCheckbox]').click(); + + //Enter password + $('#dropdown #linkPassText').val('foo'); + $('#dropdown #linkPassText').trigger(new $.Event('keyup', {keyCode: 13})); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true); + // TODO: those zeros must go... + expect($('#dropdown #expirationDate').val()).toEqual('2014-1-27 00:00:00'); + + // disabling is not allowed + expect($('#dropdown [name=expirationCheckbox]').prop('disabled')).toEqual(true); + $('#dropdown [name=expirationCheckbox]').click(); + expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true); + }); it('displayes email form when sending emails is enabled', function() { $('input[name=mailPublicNotificationEnabled]').val('yes'); showDropDown(); diff --git a/core/l10n/af_ZA.js b/core/l10n/af_ZA.js index e5a3b2541d3..43f895fce87 100644 --- a/core/l10n/af_ZA.js +++ b/core/l10n/af_ZA.js @@ -108,7 +108,6 @@ OC.L10N.register( "Database tablespace" : "Databasis tabelspasie", "Database host" : "Databasis gasheer", "Finish setup" : "Maak opstelling klaar", - "%s is available. Get more information on how to update." : "%s is beskikbaar. Kry meer inligting oor opdatering.", "Log out" : "Teken uit", "remember" : "onthou", "Log in" : "Teken aan", diff --git a/core/l10n/af_ZA.json b/core/l10n/af_ZA.json index b4a2b5df623..a919524c8c5 100644 --- a/core/l10n/af_ZA.json +++ b/core/l10n/af_ZA.json @@ -106,7 +106,6 @@ "Database tablespace" : "Databasis tabelspasie", "Database host" : "Databasis gasheer", "Finish setup" : "Maak opstelling klaar", - "%s is available. Get more information on how to update." : "%s is beskikbaar. Kry meer inligting oor opdatering.", "Log out" : "Teken uit", "remember" : "onthou", "Log in" : "Teken aan", diff --git a/core/l10n/ast.js b/core/l10n/ast.js index d80238d71d5..0eb8951a046 100644 --- a/core/l10n/ast.js +++ b/core/l10n/ast.js @@ -145,7 +145,6 @@ OC.L10N.register( "Database host" : "Agospiador de la base de datos", "Finish setup" : "Finar la configuración ", "Finishing …" : "Finando ...", - "%s is available. Get more information on how to update." : "Ta disponible %s. Consigui más información en cómo anovar·", "Log out" : "Zarrar sesión", "Search" : "Guetar", "Server side authentication failed!" : "Falló l'autenticación nel sirvidor!", diff --git a/core/l10n/ast.json b/core/l10n/ast.json index ec159007f04..4a6ffcbc03c 100644 --- a/core/l10n/ast.json +++ b/core/l10n/ast.json @@ -143,7 +143,6 @@ "Database host" : "Agospiador de la base de datos", "Finish setup" : "Finar la configuración ", "Finishing …" : "Finando ...", - "%s is available. Get more information on how to update." : "Ta disponible %s. Consigui más información en cómo anovar·", "Log out" : "Zarrar sesión", "Search" : "Guetar", "Server side authentication failed!" : "Falló l'autenticación nel sirvidor!", diff --git a/core/l10n/be.js b/core/l10n/be.js index a5ed364dc51..defe9f70337 100644 --- a/core/l10n/be.js +++ b/core/l10n/be.js @@ -29,4 +29,4 @@ OC.L10N.register( "The object type is not specified." : "Тып аб'екта не ўдакладняецца.", "Finish setup" : "Завяршыць ўстаноўку." }, -"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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/core/l10n/be.json b/core/l10n/be.json index 1c65371e88c..50e1a29dcaf 100644 --- a/core/l10n/be.json +++ b/core/l10n/be.json @@ -26,5 +26,5 @@ "Error" : "Памылка", "The object type is not specified." : "Тып аб'екта не ўдакладняецца.", "Finish setup" : "Завяршыць ўстаноўку." -},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +},"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/core/l10n/bg_BG.js b/core/l10n/bg_BG.js index d6799dd21bf..7c76dd9859e 100644 --- a/core/l10n/bg_BG.js +++ b/core/l10n/bg_BG.js @@ -191,7 +191,6 @@ OC.L10N.register( "Finish setup" : "Завършване на настройките", "Finishing …" : "Завършване...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Това приложение изисква JavaScript, за да функционира правилно. Моля, {linkstart}включи JavaScript{linkend} и презареди страницата.", - "%s is available. Get more information on how to update." : "%s е на разположение. Прочети повече как да обновиш. ", "Log out" : "Отписване", "Search" : "Търсене", "Server side authentication failed!" : "Удостоверяването от страна на сървъра е неуспешно!", diff --git a/core/l10n/bg_BG.json b/core/l10n/bg_BG.json index d1e57eddb1e..78e769f46f1 100644 --- a/core/l10n/bg_BG.json +++ b/core/l10n/bg_BG.json @@ -189,7 +189,6 @@ "Finish setup" : "Завършване на настройките", "Finishing …" : "Завършване...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Това приложение изисква JavaScript, за да функционира правилно. Моля, {linkstart}включи JavaScript{linkend} и презареди страницата.", - "%s is available. Get more information on how to update." : "%s е на разположение. Прочети повече как да обновиш. ", "Log out" : "Отписване", "Search" : "Търсене", "Server side authentication failed!" : "Удостоверяването от страна на сървъра е неуспешно!", diff --git a/core/l10n/bs.js b/core/l10n/bs.js index 011814fd92d..819308dd66e 100644 --- a/core/l10n/bs.js +++ b/core/l10n/bs.js @@ -166,7 +166,6 @@ OC.L10N.register( "Database host" : "Glavno računalo (host) baze podataka", "Finish setup" : "Završite postavke", "Finishing …" : "Završavanje...", - "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.", "Log out" : "Odjava", "Search" : "Potraži", "Server side authentication failed!" : "Autentikacija na strani servera nije uspjela!", diff --git a/core/l10n/bs.json b/core/l10n/bs.json index 6278af062ed..b1f860fda14 100644 --- a/core/l10n/bs.json +++ b/core/l10n/bs.json @@ -164,7 +164,6 @@ "Database host" : "Glavno računalo (host) baze podataka", "Finish setup" : "Završite postavke", "Finishing …" : "Završavanje...", - "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.", "Log out" : "Odjava", "Search" : "Potraži", "Server side authentication failed!" : "Autentikacija na strani servera nije uspjela!", diff --git a/core/l10n/ca.js b/core/l10n/ca.js index bacde34924a..8aa4c608f75 100644 --- a/core/l10n/ca.js +++ b/core/l10n/ca.js @@ -193,7 +193,6 @@ OC.L10N.register( "Need help?" : "Necessites ajuda?", "See the documentation" : "Consulti la documentació", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.", - "%s is available. Get more information on how to update." : "%s està disponible. Obtingueu més informació de com actualitzar.", "Log out" : "Surt", "Search" : "Cerca", "Server side authentication failed!" : "L'autenticació del servidor ha fallat!", diff --git a/core/l10n/ca.json b/core/l10n/ca.json index 92f7186558e..bb846a1d3ef 100644 --- a/core/l10n/ca.json +++ b/core/l10n/ca.json @@ -191,7 +191,6 @@ "Need help?" : "Necessites ajuda?", "See the documentation" : "Consulti la documentació", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.", - "%s is available. Get more information on how to update." : "%s està disponible. Obtingueu més informació de com actualitzar.", "Log out" : "Surt", "Search" : "Cerca", "Server side authentication failed!" : "L'autenticació del servidor ha fallat!", diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js index 99dced0c102..283f97c3be1 100644 --- a/core/l10n/cs_CZ.js +++ b/core/l10n/cs_CZ.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Ahoj {name}, je {weather}", "Hello {name}" : "Vítej, {name}", "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"], + "{version} is available. Get more information on how to update." : "Je dostupná {version}. Přečtěte si více informací jak aktualizovat.", "Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.", "Please reload the page." : "Načtěte stránku znovu, prosím.", "The update was unsuccessful. " : "Aktualizace nebyla úspěšná.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Potřebujete pomoc?", "See the documentation" : "Shlédnout dokumentaci", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím {linkstart}povolte JavaScript{linkend} a znovu načtěte stránku.", - "%s is available. Get more information on how to update." : "%s je dostupná. Získejte více informací k postupu aktualizace.", "Log out" : "Odhlásit se", "Search" : "Hledat", "Server side authentication failed!" : "Autentizace na serveru selhala!", diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json index 33514bac3cc..a2ff9f9dda1 100644 --- a/core/l10n/cs_CZ.json +++ b/core/l10n/cs_CZ.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Ahoj {name}, je {weather}", "Hello {name}" : "Vítej, {name}", "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"], + "{version} is available. Get more information on how to update." : "Je dostupná {version}. Přečtěte si více informací jak aktualizovat.", "Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.", "Please reload the page." : "Načtěte stránku znovu, prosím.", "The update was unsuccessful. " : "Aktualizace nebyla úspěšná.", @@ -202,7 +203,6 @@ "Need help?" : "Potřebujete pomoc?", "See the documentation" : "Shlédnout dokumentaci", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím {linkstart}povolte JavaScript{linkend} a znovu načtěte stránku.", - "%s is available. Get more information on how to update." : "%s je dostupná. Získejte více informací k postupu aktualizace.", "Log out" : "Odhlásit se", "Search" : "Hledat", "Server side authentication failed!" : "Autentizace na serveru selhala!", diff --git a/core/l10n/cy_GB.js b/core/l10n/cy_GB.js index 351634259bb..f72771889d6 100644 --- a/core/l10n/cy_GB.js +++ b/core/l10n/cy_GB.js @@ -79,7 +79,6 @@ OC.L10N.register( "Database tablespace" : "Tablespace cronfa ddata", "Database host" : "Gwesteiwr cronfa ddata", "Finish setup" : "Gorffen sefydlu", - "%s is available. Get more information on how to update." : "%s ar gael. Mwy o wybodaeth am sut i ddiweddaru.", "Log out" : "Allgofnodi", "Search" : "Chwilio", "remember" : "cofio", diff --git a/core/l10n/cy_GB.json b/core/l10n/cy_GB.json index 88cf0713eeb..a8cac06d4fb 100644 --- a/core/l10n/cy_GB.json +++ b/core/l10n/cy_GB.json @@ -77,7 +77,6 @@ "Database tablespace" : "Tablespace cronfa ddata", "Database host" : "Gwesteiwr cronfa ddata", "Finish setup" : "Gorffen sefydlu", - "%s is available. Get more information on how to update." : "%s ar gael. Mwy o wybodaeth am sut i ddiweddaru.", "Log out" : "Allgofnodi", "Search" : "Chwilio", "remember" : "cofio", diff --git a/core/l10n/da.js b/core/l10n/da.js index 4faab8d979d..92070deb47a 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hej {name}, vejret er {weather}", "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"], + "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.", "Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.", "Please reload the page." : "Genindlæs venligst siden", "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Brug for hjælp?", "See the documentation" : "Se dokumentationen", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden. ", - "%s is available. Get more information on how to update." : "%s er tilgængelig. Få mere information om, hvordan du opdaterer.", "Log out" : "Log ud", "Search" : "Søg", "Server side authentication failed!" : "Server side godkendelse mislykkedes!", diff --git a/core/l10n/da.json b/core/l10n/da.json index 1e14894735e..1e330003cfe 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hej {name}, vejret er {weather}", "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"], + "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.", "Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.", "Please reload the page." : "Genindlæs venligst siden", "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.", @@ -202,7 +203,6 @@ "Need help?" : "Brug for hjælp?", "See the documentation" : "Se dokumentationen", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden. ", - "%s is available. Get more information on how to update." : "%s er tilgængelig. Få mere information om, hvordan du opdaterer.", "Log out" : "Log ud", "Search" : "Søg", "Server side authentication failed!" : "Server side godkendelse mislykkedes!", diff --git a/core/l10n/de.js b/core/l10n/de.js index e3813f094a5..4177a028cd4 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], + "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.", "Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.", "Please reload the page." : "Bitte lade die Seite neu.", "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Hilfe nötig?", "See the documentation" : "Schau in die Dokumentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktiviere JavaScript{linkend} und lade die Seite neu.", - "%s is available. Get more information on how to update." : "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.", "Log out" : "Abmelden", "Search" : "Suche", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", diff --git a/core/l10n/de.json b/core/l10n/de.json index 469d72b1df3..9959c62385c 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], + "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.", "Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.", "Please reload the page." : "Bitte lade die Seite neu.", "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.", @@ -202,7 +203,6 @@ "Need help?" : "Hilfe nötig?", "See the documentation" : "Schau in die Dokumentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktiviere JavaScript{linkend} und lade die Seite neu.", - "%s is available. Get more information on how to update." : "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.", "Log out" : "Abmelden", "Search" : "Suche", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", diff --git a/core/l10n/de_AT.js b/core/l10n/de_AT.js index 360ddbeae90..7fafeb40208 100644 --- a/core/l10n/de_AT.js +++ b/core/l10n/de_AT.js @@ -21,11 +21,15 @@ OC.L10N.register( "November" : "November", "December" : "Dezember", "Settings" : "Einstellungen", + "No" : "Nein", + "Yes" : "Ja", "Cancel" : "Abbrechen", "Continue" : "Weiter", "Share" : "Freigeben", "Error" : "Fehler", + "Share link" : "Link teilen", "Password" : "Passwort", + "Send" : "Senden", "group" : "Gruppe", "Unshare" : "Teilung zurücknehmen", "can share" : "Kann teilen", @@ -33,6 +37,7 @@ OC.L10N.register( "Delete" : "Löschen", "Add" : "Hinzufügen", "Personal" : "Persönlich", - "Help" : "Hilfe" + "Help" : "Hilfe", + "Username" : "Benutzername" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/de_AT.json b/core/l10n/de_AT.json index 5acbc0a888f..56557d96d9c 100644 --- a/core/l10n/de_AT.json +++ b/core/l10n/de_AT.json @@ -19,11 +19,15 @@ "November" : "November", "December" : "Dezember", "Settings" : "Einstellungen", + "No" : "Nein", + "Yes" : "Ja", "Cancel" : "Abbrechen", "Continue" : "Weiter", "Share" : "Freigeben", "Error" : "Fehler", + "Share link" : "Link teilen", "Password" : "Passwort", + "Send" : "Senden", "group" : "Gruppe", "Unshare" : "Teilung zurücknehmen", "can share" : "Kann teilen", @@ -31,6 +35,7 @@ "Delete" : "Löschen", "Add" : "Hinzufügen", "Personal" : "Persönlich", - "Help" : "Hilfe" + "Help" : "Hilfe", + "Username" : "Benutzername" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index af00fd203c8..61cd7869768 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], + "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.", "Please reload the page." : "Bitte laden Sie die Seite neu.", "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Hilfe nötig?", "See the documentation" : "Schauen Sie in die Dokumentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktivieren Sie JavaScript{linkend} und laden Sie die Seite neu.", - "%s is available. Get more information on how to update." : "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Log out" : "Abmelden", "Search" : "Suche", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 79b71510c6f..86ec7e75b02 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"], + "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.", "Please reload the page." : "Bitte laden Sie die Seite neu.", "The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.", @@ -202,7 +203,6 @@ "Need help?" : "Hilfe nötig?", "See the documentation" : "Schauen Sie in die Dokumentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktivieren Sie JavaScript{linkend} und laden Sie die Seite neu.", - "%s is available. Get more information on how to update." : "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Log out" : "Abmelden", "Search" : "Suche", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", diff --git a/core/l10n/el.js b/core/l10n/el.js index dbcf71da33a..4c9cf8e018d 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Γειά σου {name}, ο καιρός είναι {weather}", "Hello {name}" : "Γεια σου {name}", "_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"], + "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.", "Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.", "Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.", "The update was unsuccessful. " : "Η ενημέρωση ήταν ανεπιτυχής.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Θέλετε βοήθεια;", "See the documentation" : "Δείτε την τεκμηρίωση", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Αυτή η εφαρμογή απαιτεί JavaScript για σωστή λειτουργία. Παρακαλώ {linkstart} ενεργοποιήστε τη JavaScrip {linkend} και επαναφορτώστε τη σελίδα.", - "%s is available. Get more information on how to update." : "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε.", "Log out" : "Αποσύνδεση", "Search" : "Αναζήτηση", "Server side authentication failed!" : "Η διαδικασία επικύρωσης απέτυχε από την πλευρά του διακομιστή!", diff --git a/core/l10n/el.json b/core/l10n/el.json index 1d303a0a5e3..3cf513b2e9a 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Γειά σου {name}, ο καιρός είναι {weather}", "Hello {name}" : "Γεια σου {name}", "_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"], + "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.", "Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.", "Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.", "The update was unsuccessful. " : "Η ενημέρωση ήταν ανεπιτυχής.", @@ -202,7 +203,6 @@ "Need help?" : "Θέλετε βοήθεια;", "See the documentation" : "Δείτε την τεκμηρίωση", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Αυτή η εφαρμογή απαιτεί JavaScript για σωστή λειτουργία. Παρακαλώ {linkstart} ενεργοποιήστε τη JavaScrip {linkend} και επαναφορτώστε τη σελίδα.", - "%s is available. Get more information on how to update." : "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε.", "Log out" : "Αποσύνδεση", "Search" : "Αναζήτηση", "Server side authentication failed!" : "Η διαδικασία επικύρωσης απέτυχε από την πλευρά του διακομιστή!", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index 3710c36940f..910419fc498 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -204,7 +204,6 @@ OC.L10N.register( "Need help?" : "Need help?", "See the documentation" : "See the documentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", - "%s is available. Get more information on how to update." : "%s is available. Get more information on how to update.", "Log out" : "Log out", "Search" : "Search", "Server side authentication failed!" : "Server side authentication failed!", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 0890e6e6cdb..6087dfcf4eb 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -202,7 +202,6 @@ "Need help?" : "Need help?", "See the documentation" : "See the documentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", - "%s is available. Get more information on how to update." : "%s is available. Get more information on how to update.", "Log out" : "Log out", "Search" : "Search", "Server side authentication failed!" : "Server side authentication failed!", diff --git a/core/l10n/eo.js b/core/l10n/eo.js index 384c60388e0..576ca002f1b 100644 --- a/core/l10n/eo.js +++ b/core/l10n/eo.js @@ -107,7 +107,6 @@ OC.L10N.register( "Database host" : "Datumbaza gastigo", "Finish setup" : "Fini la instalon", "Finishing …" : "Finante...", - "%s is available. Get more information on how to update." : "%s haveblas. Ekhavi pli da informo pri kiel ĝisdatigi.", "Log out" : "Elsaluti", "Search" : "Serĉi", "Please contact your administrator." : "Bonvolu kontakti vian administranton.", diff --git a/core/l10n/eo.json b/core/l10n/eo.json index ac1d5fdb05f..7a822177209 100644 --- a/core/l10n/eo.json +++ b/core/l10n/eo.json @@ -105,7 +105,6 @@ "Database host" : "Datumbaza gastigo", "Finish setup" : "Fini la instalon", "Finishing …" : "Finante...", - "%s is available. Get more information on how to update." : "%s haveblas. Ekhavi pli da informo pri kiel ĝisdatigi.", "Log out" : "Elsaluti", "Search" : "Serĉi", "Please contact your administrator." : "Bonvolu kontakti vian administranton.", diff --git a/core/l10n/es.js b/core/l10n/es.js index 3f6342db271..0f6239bac2f 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hola {name}, el día es {weather}", "Hello {name}" : "Hola {name}", "_download %n file_::_download %n files_" : ["descargar %n ficheros","descargar %n ficheros"], + "{version} is available. Get more information on how to update." : "Una nueva {version} está disponible. Consiga mas información de como actualizar.", "Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a la versión {version}. Esto puede tardar un poco.", "Please reload the page." : "Recargue/Actualice la página", "The update was unsuccessful. " : "La actualización ha fallado.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Necesita ayuda?", "See the documentation" : "Vea la documentación", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.", - "%s is available. Get more information on how to update." : "%s está disponible. Obtener más información de como actualizar.", "Log out" : "Salir", "Search" : "Buscar", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", diff --git a/core/l10n/es.json b/core/l10n/es.json index acede300e0e..f978e29c713 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hola {name}, el día es {weather}", "Hello {name}" : "Hola {name}", "_download %n file_::_download %n files_" : ["descargar %n ficheros","descargar %n ficheros"], + "{version} is available. Get more information on how to update." : "Una nueva {version} está disponible. Consiga mas información de como actualizar.", "Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a la versión {version}. Esto puede tardar un poco.", "Please reload the page." : "Recargue/Actualice la página", "The update was unsuccessful. " : "La actualización ha fallado.", @@ -202,7 +203,6 @@ "Need help?" : "Necesita ayuda?", "See the documentation" : "Vea la documentación", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.", - "%s is available. Get more information on how to update." : "%s está disponible. Obtener más información de como actualizar.", "Log out" : "Salir", "Search" : "Buscar", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js index 34de8d1bddf..5ab12bd93f2 100644 --- a/core/l10n/es_AR.js +++ b/core/l10n/es_AR.js @@ -126,7 +126,6 @@ OC.L10N.register( "Database host" : "Huésped de la base de datos", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando...", - "%s is available. Get more information on how to update." : "%s está disponible. Obtené más información sobre cómo actualizar.", "Log out" : "Cerrar la sesión", "Search" : "Buscar", "Server side authentication failed!" : "¡Falló la autenticación del servidor!", diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json index e6b66145b56..69c7732c436 100644 --- a/core/l10n/es_AR.json +++ b/core/l10n/es_AR.json @@ -124,7 +124,6 @@ "Database host" : "Huésped de la base de datos", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando...", - "%s is available. Get more information on how to update." : "%s está disponible. Obtené más información sobre cómo actualizar.", "Log out" : "Cerrar la sesión", "Search" : "Buscar", "Server side authentication failed!" : "¡Falló la autenticación del servidor!", diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index 12c213409d6..cc01b07c8c6 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -120,7 +120,6 @@ OC.L10N.register( "Database host" : "Host de la base de datos", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando …", - "%s is available. Get more information on how to update." : "%s esta disponible. Obtener mas información de como actualizar.", "Log out" : "Salir", "Search" : "Buscar", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index 9261effe9aa..265788ee9a8 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -118,7 +118,6 @@ "Database host" : "Host de la base de datos", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando …", - "%s is available. Get more information on how to update." : "%s esta disponible. Obtener mas información de como actualizar.", "Log out" : "Salir", "Search" : "Buscar", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 40195e2769c..f984f2ceac8 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -171,7 +171,6 @@ OC.L10N.register( "Database host" : "Andmebaasi host", "Finish setup" : "Lõpeta seadistamine", "Finishing …" : "Lõpetamine ...", - "%s is available. Get more information on how to update." : "%s on saadaval. Vaata lähemalt kuidas uuendada.", "Log out" : "Logi välja", "Search" : "Otsi", "Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index 3ab79a04cde..83b8ba6fb9c 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -169,7 +169,6 @@ "Database host" : "Andmebaasi host", "Finish setup" : "Lõpeta seadistamine", "Finishing …" : "Lõpetamine ...", - "%s is available. Get more information on how to update." : "%s on saadaval. Vaata lähemalt kuidas uuendada.", "Log out" : "Logi välja", "Search" : "Otsi", "Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!", diff --git a/core/l10n/eu.js b/core/l10n/eu.js index 60ff75b40c5..d5e5685241b 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -177,7 +177,6 @@ OC.L10N.register( "Database host" : "Datubasearen hostalaria", "Finish setup" : "Bukatu konfigurazioa", "Finishing …" : "Bukatzen...", - "%s is available. Get more information on how to update." : "%s erabilgarri dago. Eguneratzeaz argibide gehiago eskuratu.", "Log out" : "Saioa bukatu", "Search" : "Bilatu", "Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index f60ea87120c..96dbd223347 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -175,7 +175,6 @@ "Database host" : "Datubasearen hostalaria", "Finish setup" : "Bukatu konfigurazioa", "Finishing …" : "Bukatzen...", - "%s is available. Get more information on how to update." : "%s erabilgarri dago. Eguneratzeaz argibide gehiago eskuratu.", "Log out" : "Saioa bukatu", "Search" : "Bilatu", "Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!", diff --git a/core/l10n/fa.js b/core/l10n/fa.js index a454ba75ee0..7263c05da88 100644 --- a/core/l10n/fa.js +++ b/core/l10n/fa.js @@ -124,7 +124,6 @@ OC.L10N.register( "Database host" : "هاست پایگاه داده", "Finish setup" : "اتمام نصب", "Finishing …" : "در حال اتمام ...", - "%s is available. Get more information on how to update." : "%s در دسترس است. برای چگونگی به روز رسانی اطلاعات بیشتر را دریافت نمایید.", "Log out" : "خروج", "Search" : "جستوجو", "remember" : "بیاد آوری", diff --git a/core/l10n/fa.json b/core/l10n/fa.json index d7e58ef43ed..804a8a66fa1 100644 --- a/core/l10n/fa.json +++ b/core/l10n/fa.json @@ -122,7 +122,6 @@ "Database host" : "هاست پایگاه داده", "Finish setup" : "اتمام نصب", "Finishing …" : "در حال اتمام ...", - "%s is available. Get more information on how to update." : "%s در دسترس است. برای چگونگی به روز رسانی اطلاعات بیشتر را دریافت نمایید.", "Log out" : "خروج", "Search" : "جستوجو", "remember" : "بیاد آوری", diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js index 60a4a643bd4..47edd9464bf 100644 --- a/core/l10n/fi_FI.js +++ b/core/l10n/fi_FI.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hei {name}, sää on {weather}", "Hello {name}" : "Hei {name}", "_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"], + "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.", "Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.", "Please reload the page." : "Päivitä sivu.", "The update was unsuccessful. " : "Päivitys epäonnistui.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Tarvitsetko apua?", "See the documentation" : "Tutustu dokumentaatioon", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.", - "%s is available. Get more information on how to update." : "%s on saatavilla. Lue lisätietoja, miten päivitys asennetaan.", "Log out" : "Kirjaudu ulos", "Search" : "Etsi", "Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!", diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json index 48368424402..198bec2f9fb 100644 --- a/core/l10n/fi_FI.json +++ b/core/l10n/fi_FI.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hei {name}, sää on {weather}", "Hello {name}" : "Hei {name}", "_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"], + "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.", "Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.", "Please reload the page." : "Päivitä sivu.", "The update was unsuccessful. " : "Päivitys epäonnistui.", @@ -202,7 +203,6 @@ "Need help?" : "Tarvitsetko apua?", "See the documentation" : "Tutustu dokumentaatioon", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.", - "%s is available. Get more information on how to update." : "%s on saatavilla. Lue lisätietoja, miten päivitys asennetaan.", "Log out" : "Kirjaudu ulos", "Search" : "Etsi", "Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index f08e19415a1..8f5bff70d4e 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}", "Hello {name}" : "Hello {name}", "_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"], + "{version} is available. Get more information on how to update." : "La version {version} est disponible. Obtenez plus d'informations à propos de cette mise à jour.", "Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.", "Please reload the page." : "Veuillez recharger la page.", "The update was unsuccessful. " : "La mise à jour a échoué.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Besoin d'aide?", "See the documentation" : "Lire la documentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", - "%s is available. Get more information on how to update." : "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.", "Log out" : "Se déconnecter", "Search" : "Rechercher", "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 93e04bc39f7..6e0e9f4aa18 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}", "Hello {name}" : "Hello {name}", "_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"], + "{version} is available. Get more information on how to update." : "La version {version} est disponible. Obtenez plus d'informations à propos de cette mise à jour.", "Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.", "Please reload the page." : "Veuillez recharger la page.", "The update was unsuccessful. " : "La mise à jour a échoué.", @@ -202,7 +203,6 @@ "Need help?" : "Besoin d'aide?", "See the documentation" : "Lire la documentation", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", - "%s is available. Get more information on how to update." : "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.", "Log out" : "Se déconnecter", "Search" : "Rechercher", "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", diff --git a/core/l10n/gl.js b/core/l10n/gl.js index 789d24b13f3..79119d32ce2 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -43,7 +43,7 @@ OC.L10N.register( "Saving..." : "Gardando...", "Couldn't send reset email. Please contact your administrator." : "Non foi posíbel enviar o coreo do restablecemento. Póñase en contacto co administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "A ligazón para restabelecer o seu contrasinal foi enviada ao seu correo. Se non a recibe nun prazo razoábel de tempo, vexa o seu cartafol de correo lixo. <br> Se non está ali pregúntelle ao administrador local.", - "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere?", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere continuar?", "I know what I'm doing" : "Sei o estou a facer", "Password can not be changed. Please contact your administrator." : "Non é posíbel cambiar o contrasinal. Póñase en contacto co administrador.", "No" : "Non", @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Ola {name}, o tempo é {weather}", "Hello {name}" : "Ola {name}", "_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"], + "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar.", "Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.", "Please reload the page." : "Volva cargar a páxina.", "The update was unsuccessful. " : "Fracasou a actualización.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Precisa axuda?", "See the documentation" : "Vexa a documentación", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación require JavaScript para un correcto funcionamento. {linkstart}Active JavaScript{linkend} e volva cargar a páxina.", - "%s is available. Get more information on how to update." : "%s está dispoñíbel. Obteña máis información sobre como actualizar.", "Log out" : "Desconectar", "Search" : "Buscar", "Server side authentication failed!" : "A autenticación fracasou do lado do servidor!", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index 0800e96c699..c1d17291e45 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -41,7 +41,7 @@ "Saving..." : "Gardando...", "Couldn't send reset email. Please contact your administrator." : "Non foi posíbel enviar o coreo do restablecemento. Póñase en contacto co administrador.", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "A ligazón para restabelecer o seu contrasinal foi enviada ao seu correo. Se non a recibe nun prazo razoábel de tempo, vexa o seu cartafol de correo lixo. <br> Se non está ali pregúntelle ao administrador local.", - "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere?", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere continuar?", "I know what I'm doing" : "Sei o estou a facer", "Password can not be changed. Please contact your administrator." : "Non é posíbel cambiar o contrasinal. Póñase en contacto co administrador.", "No" : "Non", @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Ola {name}, o tempo é {weather}", "Hello {name}" : "Ola {name}", "_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"], + "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar.", "Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.", "Please reload the page." : "Volva cargar a páxina.", "The update was unsuccessful. " : "Fracasou a actualización.", @@ -202,7 +203,6 @@ "Need help?" : "Precisa axuda?", "See the documentation" : "Vexa a documentación", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación require JavaScript para un correcto funcionamento. {linkstart}Active JavaScript{linkend} e volva cargar a páxina.", - "%s is available. Get more information on how to update." : "%s está dispoñíbel. Obteña máis información sobre como actualizar.", "Log out" : "Desconectar", "Search" : "Buscar", "Server side authentication failed!" : "A autenticación fracasou do lado do servidor!", diff --git a/core/l10n/he.js b/core/l10n/he.js index a2eeb817fd4..e53e3f37b2f 100644 --- a/core/l10n/he.js +++ b/core/l10n/he.js @@ -82,7 +82,6 @@ OC.L10N.register( "Database tablespace" : "מרחב הכתובות של מסד הנתונים", "Database host" : "שרת בסיס נתונים", "Finish setup" : "סיום התקנה", - "%s is available. Get more information on how to update." : "%s זמינה להורדה. ניתן ללחוץ כדי לקבל מידע נוסף כיצד לעדכן.", "Log out" : "התנתקות", "Search" : "חיפוש", "remember" : "שמירת הססמה", diff --git a/core/l10n/he.json b/core/l10n/he.json index 0955e9283a1..6f6686240e3 100644 --- a/core/l10n/he.json +++ b/core/l10n/he.json @@ -80,7 +80,6 @@ "Database tablespace" : "מרחב הכתובות של מסד הנתונים", "Database host" : "שרת בסיס נתונים", "Finish setup" : "סיום התקנה", - "%s is available. Get more information on how to update." : "%s זמינה להורדה. ניתן ללחוץ כדי לקבל מידע נוסף כיצד לעדכן.", "Log out" : "התנתקות", "Search" : "חיפוש", "remember" : "שמירת הססמה", diff --git a/core/l10n/hr.js b/core/l10n/hr.js index 754e0e069b2..7647af84c51 100644 --- a/core/l10n/hr.js +++ b/core/l10n/hr.js @@ -177,7 +177,6 @@ OC.L10N.register( "Database host" : "Glavno računalo baze podataka", "Finish setup" : "Završite postavljanje", "Finishing …" : "Završavanje...", - "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.", "Log out" : "Odjavite se", "Search" : "pretraži", "Server side authentication failed!" : "Autentikacija na strani poslužitelja nije uspjela!", diff --git a/core/l10n/hr.json b/core/l10n/hr.json index 18dcfc5a01f..07d723f38e5 100644 --- a/core/l10n/hr.json +++ b/core/l10n/hr.json @@ -175,7 +175,6 @@ "Database host" : "Glavno računalo baze podataka", "Finish setup" : "Završite postavljanje", "Finishing …" : "Završavanje...", - "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.", "Log out" : "Odjavite se", "Search" : "pretraži", "Server side authentication failed!" : "Autentikacija na strani poslužitelja nije uspjela!", diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js index 071e9125589..c548bee3b34 100644 --- a/core/l10n/hu_HU.js +++ b/core/l10n/hu_HU.js @@ -179,7 +179,6 @@ OC.L10N.register( "Database host" : "Adatbázis szerver", "Finish setup" : "A beállítások befejezése", "Finishing …" : "Befejezés ...", - "%s is available. Get more information on how to update." : "%s rendelkezésre áll. További információ a frissítéshez.", "Log out" : "Kilépés", "Search" : "Keresés", "Server side authentication failed!" : "A szerveroldali hitelesítés sikertelen!", diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json index d52b8fb4cb4..9b5f39fcc2a 100644 --- a/core/l10n/hu_HU.json +++ b/core/l10n/hu_HU.json @@ -177,7 +177,6 @@ "Database host" : "Adatbázis szerver", "Finish setup" : "A beállítások befejezése", "Finishing …" : "Befejezés ...", - "%s is available. Get more information on how to update." : "%s rendelkezésre áll. További információ a frissítéshez.", "Log out" : "Kilépés", "Search" : "Keresés", "Server side authentication failed!" : "A szerveroldali hitelesítés sikertelen!", diff --git a/core/l10n/id.js b/core/l10n/id.js index facd8bb6311..29ad557fa4b 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -204,7 +204,6 @@ OC.L10N.register( "Need help?" : "Butuh bantuan?", "See the documentation" : "Lihat dokumentasi", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.", - "%s is available. Get more information on how to update." : "%s tersedia. Dapatkan informasi lebih lanjut tentang cara memperbarui.", "Log out" : "Keluar", "Search" : "Cari", "Server side authentication failed!" : "Otentikasi dari sisi server gagal!", diff --git a/core/l10n/id.json b/core/l10n/id.json index 8212cbc2a45..82bf45a48c0 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -202,7 +202,6 @@ "Need help?" : "Butuh bantuan?", "See the documentation" : "Lihat dokumentasi", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.", - "%s is available. Get more information on how to update." : "%s tersedia. Dapatkan informasi lebih lanjut tentang cara memperbarui.", "Log out" : "Keluar", "Search" : "Cari", "Server side authentication failed!" : "Otentikasi dari sisi server gagal!", diff --git a/core/l10n/is.js b/core/l10n/is.js index 16dd20521db..6b99bff9c0e 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -77,9 +77,8 @@ OC.L10N.register( "Database tablespace" : "Töflusvæði gagnagrunns", "Database host" : "Netþjónn gagnagrunns", "Finish setup" : "Virkja uppsetningu", - "%s is available. Get more information on how to update." : "%s er til boða. Fáðu meiri upplýsingar um hvernig þú uppfærir.", "Log out" : "Útskrá", "remember" : "muna eftir mér", "Log in" : "<strong>Skrá inn</strong>" }, -"nplurals=2; plural=(n != 1);"); +"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"); diff --git a/core/l10n/is.json b/core/l10n/is.json index dcd6fc4aa96..75958bafa55 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -75,9 +75,8 @@ "Database tablespace" : "Töflusvæði gagnagrunns", "Database host" : "Netþjónn gagnagrunns", "Finish setup" : "Virkja uppsetningu", - "%s is available. Get more information on how to update." : "%s er til boða. Fáðu meiri upplýsingar um hvernig þú uppfærir.", "Log out" : "Útskrá", "remember" : "muna eftir mér", "Log in" : "<strong>Skrá inn</strong>" -},"pluralForm" :"nplurals=2; plural=(n != 1);" +},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);" }
\ No newline at end of file diff --git a/core/l10n/it.js b/core/l10n/it.js index 4a248fe0f1b..eba7161cbea 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Ciao {name}, il tempo è {weather}", "Hello {name}" : "Ciao {name}", "_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"], + "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento.", "Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.", "Please reload the page." : "Ricarica la pagina.", "The update was unsuccessful. " : "L'aggiornamento non è riuscito.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Ti serve aiuto?", "See the documentation" : "Leggi la documentazione", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Questa applicazione richiede JavaScript per un corretto funzionamento. {linkstart}Abilita JavaScript{linkend} e ricarica la pagina.", - "%s is available. Get more information on how to update." : "%s è disponibile. Ottieni ulteriori informazioni sull'aggiornamento.", "Log out" : "Esci", "Search" : "Cerca", "Server side authentication failed!" : "Autenticazione lato server non riuscita!", diff --git a/core/l10n/it.json b/core/l10n/it.json index f32b2f18c53..361bf4b0d28 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Ciao {name}, il tempo è {weather}", "Hello {name}" : "Ciao {name}", "_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"], + "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento.", "Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.", "Please reload the page." : "Ricarica la pagina.", "The update was unsuccessful. " : "L'aggiornamento non è riuscito.", @@ -202,7 +203,6 @@ "Need help?" : "Ti serve aiuto?", "See the documentation" : "Leggi la documentazione", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Questa applicazione richiede JavaScript per un corretto funzionamento. {linkstart}Abilita JavaScript{linkend} e ricarica la pagina.", - "%s is available. Get more information on how to update." : "%s è disponibile. Ottieni ulteriori informazioni sull'aggiornamento.", "Log out" : "Esci", "Search" : "Cerca", "Server side authentication failed!" : "Autenticazione lato server non riuscita!", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index c1328a694aa..9fa8fa22585 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -194,7 +194,6 @@ OC.L10N.register( "Finish setup" : "セットアップを完了します", "Finishing …" : "作業を完了しています ...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "このアプリケーションの動作にはJavaScriptが必要です。\n {linkstart}JavaScriptを有効にし{linkend} 、ページを更新してください。 ", - "%s is available. Get more information on how to update." : "%s が利用可能です。アップデート方法について詳細情報を確認してください。", "Log out" : "ログアウト", "Search" : "検索", "Server side authentication failed!" : "サーバーサイドの認証に失敗しました!", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index 4ba0755d957..28be08048f0 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -192,7 +192,6 @@ "Finish setup" : "セットアップを完了します", "Finishing …" : "作業を完了しています ...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "このアプリケーションの動作にはJavaScriptが必要です。\n {linkstart}JavaScriptを有効にし{linkend} 、ページを更新してください。 ", - "%s is available. Get more information on how to update." : "%s が利用可能です。アップデート方法について詳細情報を確認してください。", "Log out" : "ログアウト", "Search" : "検索", "Server side authentication failed!" : "サーバーサイドの認証に失敗しました!", diff --git a/core/l10n/kn.js b/core/l10n/kn.js index 0f4e1cdea70..365a7ddb3fa 100644 --- a/core/l10n/kn.js +++ b/core/l10n/kn.js @@ -157,7 +157,6 @@ OC.L10N.register( "Database host" : "ದತ್ತಸಂಚಯದ ಅತಿಥೆಯ", "Finish setup" : "ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ", "Finishing …" : "ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ ...", - "%s is available. Get more information on how to update." : "%s ಲಭ್ಯವಿದೆ. ಹೇಗೆ ನವೀಕರಿಸಬಹುದೆಂದು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಿರಿ.", "Log out" : "ಈ ಆವೃತ್ತಿ ಇಂದ ನಿರ್ಗಮಿಸಿ", "Search" : "ಹುಡುಕು", "Please contact your administrator." : "ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಲು ಕೋರಲಾಗಿದೆ.", diff --git a/core/l10n/kn.json b/core/l10n/kn.json index 35873a31c45..9e03ebd496e 100644 --- a/core/l10n/kn.json +++ b/core/l10n/kn.json @@ -155,7 +155,6 @@ "Database host" : "ದತ್ತಸಂಚಯದ ಅತಿಥೆಯ", "Finish setup" : "ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ", "Finishing …" : "ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ ...", - "%s is available. Get more information on how to update." : "%s ಲಭ್ಯವಿದೆ. ಹೇಗೆ ನವೀಕರಿಸಬಹುದೆಂದು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಿರಿ.", "Log out" : "ಈ ಆವೃತ್ತಿ ಇಂದ ನಿರ್ಗಮಿಸಿ", "Search" : "ಹುಡುಕು", "Please contact your administrator." : "ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಲು ಕೋರಲಾಗಿದೆ.", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index 5b6bf2b3b98..36aff5f1090 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -8,11 +8,18 @@ OC.L10N.register( "Checked database schema update" : "데이터베이스 스키마 업데이트 확인됨", "Checked database schema update for apps" : "앱용 데이터베이스 스키마 업데이트 확인됨", "Updated \"%s\" to %s" : "\"%s\"을(를) %s(으)로 업데이트함", + "Repair warning: " : "수리 경고:", + "Repair error: " : "수리 오류:", + "Following incompatible apps have been disabled: %s" : "다음 호환되지 않는 앱이 비활성화되었습니다: %s", + "Following 3rd party apps have been disabled: %s" : "다음 제 3자 앱이 비활성화되었습니다: %s", + "Invalid file provided" : "잘못된 파일 지정됨", "No image or file provided" : "사진이나 파일이 없음", "Unknown filetype" : "알려지지 않은 파일 형식", "Invalid image" : "잘못된 사진", "No temporary profile picture available, try again" : "사용 가능한 프로필 사진이 없습니다. 다시 시도하십시오.", "No crop data provided" : "선택된 데이터가 없습니다.", + "No valid crop data provided" : "올바른 잘라내기 데이터가 지정되지 않음", + "Crop is not square" : "잘라내는 영역이 사각형이 아님", "Sunday" : "일요일", "Monday" : "월요일", "Tuesday" : "화요일", @@ -62,7 +69,14 @@ OC.L10N.register( "So-so password" : "그저 그런 암호", "Good password" : "좋은 암호", "Strong password" : "강력한 암호", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAV 서비스가 올바르게 작동하지 않아서 웹 서버에서 파일 동기화를 사용할 수 없습니다.", + "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "인터넷에서 데이터 디렉터리와 파일에 접근할 수 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 직접 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 경로 바깥에 두십시오.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "메모리 캐시가 설정되지 않았습니다. 성능을 향상시키려면 사용 가능한 경우 메모리 캐시를 설정하십시오. 더 많은 정보를 보려면 <a href=\"{docLink}\">문서</a>를 참고하십시오.", "Error occurred while checking server setup" : "서버 설정을 확인하는 중 오류 발생", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 헤더가 \"{expected}\"와(과) 같이 설정되지 않았습니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.", + "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP 헤더가 최소한 \"2,678,400\"초가 되도록 설정해야 합니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "이 사이트에 HTTP로 접근하고 있습니다. HTTPS를 사용하도록 설정하는 것을 추천합니다.", "Shared" : "공유됨", "Shared with {recipients}" : "{recipients} 님과 공유됨", "Share" : "공유", @@ -72,6 +86,9 @@ OC.L10N.register( "Error while changing permissions" : "권한 변경하는 중 오류 발생", "Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중", "Shared with you by {owner}" : "{owner} 님이 공유 중", + "Share with users or groups …" : "사용자 및 그룹과 공유...", + "Share with users, groups or remote users …" : "사용자, 그룹 및 원격 사용자와 공유...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud 형식으로 다른 ownCloud 사용자와 공유할 수 있습니다", "Share link" : "링크 공유", "The public link will expire no later than {days} days after it is created" : "공개 링크를 만든 후 최대 {days}일까지 유지됩니다", "Link" : "링크", @@ -84,6 +101,7 @@ OC.L10N.register( "Set expiration date" : "만료 날짜 설정", "Expiration" : "만료", "Expiration date" : "만료 날짜", + "An error occured. Please try again" : "오류가 발생하였습니다. 다시 시도하십시오.", "Adding user..." : "사용자 추가 중...", "group" : "그룹", "remote" : "원격", @@ -116,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "{name} 님 안녕하세요, 오늘 날씨는 {weather}입니다", "Hello {name}" : "{name} 님 안녕하세요", "_download %n file_::_download %n files_" : ["파일 %n개 다운로드"], + "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.", "Updating {productName} to version {version}, this may take a while." : "{productName}을(를) 버전 {version}으로 업데이트하고 있습니다. 시간이 걸릴 수 있습니다.", "Please reload the page." : "페이지를 새로 고치십시오.", "The update was unsuccessful. " : "업데이트가 실패하였습니다. ", @@ -157,11 +176,13 @@ OC.L10N.register( "Technical details" : "기술 정보", "Remote Address: %s" : "원격 주소: %s", "Request ID: %s" : "요청 ID: %s", + "Type: %s" : "종류: %s", "Code: %s" : "코드: %s", "Message: %s" : "메시지: %s", "File: %s" : "파일: %s", "Line: %s" : "줄: %s", "Trace" : "추적", + "Security warning" : "보안 경고", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : ".htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "올바른 서버 설정을 위한 정보는 <a href=\"%s\" target=\"_blank\">문서</a>를 참조하십시오.", "Create an <strong>admin account</strong>" : "<strong>관리자 계정</strong> 만들기", @@ -175,16 +196,21 @@ OC.L10N.register( "Database name" : "데이터베이스 이름", "Database tablespace" : "데이터베이스 테이블 공간", "Database host" : "데이터베이스 호스트", + "Performance warning" : "성능 경고", "SQLite will be used as database." : "데이터베이스로 SQLite를 사용하게 됩니다.", "For larger installations we recommend to choose a different database backend." : "대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드를 선택할 것을 권장합니다.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정일 때는, SQLite를 사용하지 않는 것이 좋습니다.", "Finish setup" : "설치 완료", "Finishing …" : "완료 중 ...", - "%s is available. Get more information on how to update." : "%s을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 자세한 정보를 얻으십시오.", + "Need help?" : "도움이 필요한가요?", + "See the documentation" : "문서 보기", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "이 프로그램이 올바르게 작동하려면 JavaScript가 필요합니다. {linkstart}JavaScript를 활성화{linkend}한 다음 페이지를 새로 고치십시오.", "Log out" : "로그아웃", "Search" : "검색", "Server side authentication failed!" : "서버 인증 실패!", "Please contact your administrator." : "관리자에게 문의하십시오.", + "An internal error occured." : "내부 오류가 발생하였습니다.", + "Please try again or contact your administrator." : "다시 시도하거나 관리자에게 연락하십시오.", "Forgot your password? Reset it!" : "암호를 잊으셨나요? 재설정하세요!", "remember" : "기억하기", "Log in" : "로그인", @@ -204,6 +230,7 @@ OC.L10N.register( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "계속하기 전에 데이터베이스, 설정 폴더, 데이터 폴더가 백업되어 있는지 확인하십시오.", "Start update" : "업데이트 시작", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "큰 파일을 설치하는 경우 시간이 초과될 수 있으므로, 설치 디렉터리에서 다음 명령을 실행하셔도 됩니다:", + "This %s instance is currently in maintenance mode, which may take a while." : "이 %s 인스턴스는 현재 점검 모드입니다. 시간이 걸릴 수도 있습니다.", "This page will refresh itself when the %s instance is available again." : "%s 인스턴스를 다시 사용할 수 있으면 자동으로 새로 고칩니다." }, "nplurals=1; plural=0;"); diff --git a/core/l10n/ko.json b/core/l10n/ko.json index 383c0eb7626..ea6e7c4bf4e 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -6,11 +6,18 @@ "Checked database schema update" : "데이터베이스 스키마 업데이트 확인됨", "Checked database schema update for apps" : "앱용 데이터베이스 스키마 업데이트 확인됨", "Updated \"%s\" to %s" : "\"%s\"을(를) %s(으)로 업데이트함", + "Repair warning: " : "수리 경고:", + "Repair error: " : "수리 오류:", + "Following incompatible apps have been disabled: %s" : "다음 호환되지 않는 앱이 비활성화되었습니다: %s", + "Following 3rd party apps have been disabled: %s" : "다음 제 3자 앱이 비활성화되었습니다: %s", + "Invalid file provided" : "잘못된 파일 지정됨", "No image or file provided" : "사진이나 파일이 없음", "Unknown filetype" : "알려지지 않은 파일 형식", "Invalid image" : "잘못된 사진", "No temporary profile picture available, try again" : "사용 가능한 프로필 사진이 없습니다. 다시 시도하십시오.", "No crop data provided" : "선택된 데이터가 없습니다.", + "No valid crop data provided" : "올바른 잘라내기 데이터가 지정되지 않음", + "Crop is not square" : "잘라내는 영역이 사각형이 아님", "Sunday" : "일요일", "Monday" : "월요일", "Tuesday" : "화요일", @@ -60,7 +67,14 @@ "So-so password" : "그저 그런 암호", "Good password" : "좋은 암호", "Strong password" : "강력한 암호", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAV 서비스가 올바르게 작동하지 않아서 웹 서버에서 파일 동기화를 사용할 수 없습니다.", + "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "인터넷에서 데이터 디렉터리와 파일에 접근할 수 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 직접 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 경로 바깥에 두십시오.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "메모리 캐시가 설정되지 않았습니다. 성능을 향상시키려면 사용 가능한 경우 메모리 캐시를 설정하십시오. 더 많은 정보를 보려면 <a href=\"{docLink}\">문서</a>를 참고하십시오.", "Error occurred while checking server setup" : "서버 설정을 확인하는 중 오류 발생", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 헤더가 \"{expected}\"와(과) 같이 설정되지 않았습니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.", + "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP 헤더가 최소한 \"2,678,400\"초가 되도록 설정해야 합니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "이 사이트에 HTTP로 접근하고 있습니다. HTTPS를 사용하도록 설정하는 것을 추천합니다.", "Shared" : "공유됨", "Shared with {recipients}" : "{recipients} 님과 공유됨", "Share" : "공유", @@ -70,6 +84,9 @@ "Error while changing permissions" : "권한 변경하는 중 오류 발생", "Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중", "Shared with you by {owner}" : "{owner} 님이 공유 중", + "Share with users or groups …" : "사용자 및 그룹과 공유...", + "Share with users, groups or remote users …" : "사용자, 그룹 및 원격 사용자와 공유...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud 형식으로 다른 ownCloud 사용자와 공유할 수 있습니다", "Share link" : "링크 공유", "The public link will expire no later than {days} days after it is created" : "공개 링크를 만든 후 최대 {days}일까지 유지됩니다", "Link" : "링크", @@ -82,6 +99,7 @@ "Set expiration date" : "만료 날짜 설정", "Expiration" : "만료", "Expiration date" : "만료 날짜", + "An error occured. Please try again" : "오류가 발생하였습니다. 다시 시도하십시오.", "Adding user..." : "사용자 추가 중...", "group" : "그룹", "remote" : "원격", @@ -114,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "{name} 님 안녕하세요, 오늘 날씨는 {weather}입니다", "Hello {name}" : "{name} 님 안녕하세요", "_download %n file_::_download %n files_" : ["파일 %n개 다운로드"], + "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.", "Updating {productName} to version {version}, this may take a while." : "{productName}을(를) 버전 {version}으로 업데이트하고 있습니다. 시간이 걸릴 수 있습니다.", "Please reload the page." : "페이지를 새로 고치십시오.", "The update was unsuccessful. " : "업데이트가 실패하였습니다. ", @@ -155,11 +174,13 @@ "Technical details" : "기술 정보", "Remote Address: %s" : "원격 주소: %s", "Request ID: %s" : "요청 ID: %s", + "Type: %s" : "종류: %s", "Code: %s" : "코드: %s", "Message: %s" : "메시지: %s", "File: %s" : "파일: %s", "Line: %s" : "줄: %s", "Trace" : "추적", + "Security warning" : "보안 경고", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : ".htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "올바른 서버 설정을 위한 정보는 <a href=\"%s\" target=\"_blank\">문서</a>를 참조하십시오.", "Create an <strong>admin account</strong>" : "<strong>관리자 계정</strong> 만들기", @@ -173,16 +194,21 @@ "Database name" : "데이터베이스 이름", "Database tablespace" : "데이터베이스 테이블 공간", "Database host" : "데이터베이스 호스트", + "Performance warning" : "성능 경고", "SQLite will be used as database." : "데이터베이스로 SQLite를 사용하게 됩니다.", "For larger installations we recommend to choose a different database backend." : "대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드를 선택할 것을 권장합니다.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정일 때는, SQLite를 사용하지 않는 것이 좋습니다.", "Finish setup" : "설치 완료", "Finishing …" : "완료 중 ...", - "%s is available. Get more information on how to update." : "%s을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 자세한 정보를 얻으십시오.", + "Need help?" : "도움이 필요한가요?", + "See the documentation" : "문서 보기", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "이 프로그램이 올바르게 작동하려면 JavaScript가 필요합니다. {linkstart}JavaScript를 활성화{linkend}한 다음 페이지를 새로 고치십시오.", "Log out" : "로그아웃", "Search" : "검색", "Server side authentication failed!" : "서버 인증 실패!", "Please contact your administrator." : "관리자에게 문의하십시오.", + "An internal error occured." : "내부 오류가 발생하였습니다.", + "Please try again or contact your administrator." : "다시 시도하거나 관리자에게 연락하십시오.", "Forgot your password? Reset it!" : "암호를 잊으셨나요? 재설정하세요!", "remember" : "기억하기", "Log in" : "로그인", @@ -202,6 +228,7 @@ "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "계속하기 전에 데이터베이스, 설정 폴더, 데이터 폴더가 백업되어 있는지 확인하십시오.", "Start update" : "업데이트 시작", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "큰 파일을 설치하는 경우 시간이 초과될 수 있으므로, 설치 디렉터리에서 다음 명령을 실행하셔도 됩니다:", + "This %s instance is currently in maintenance mode, which may take a while." : "이 %s 인스턴스는 현재 점검 모드입니다. 시간이 걸릴 수도 있습니다.", "This page will refresh itself when the %s instance is available again." : "%s 인스턴스를 다시 사용할 수 있으면 자동으로 새로 고칩니다." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/lb.js b/core/l10n/lb.js index 50d5bfe1399..2f383be3496 100644 --- a/core/l10n/lb.js +++ b/core/l10n/lb.js @@ -99,7 +99,6 @@ OC.L10N.register( "Database host" : "Datebank-Server", "Finish setup" : "Installatioun ofschléissen", "Finishing …" : "Schléissen of ...", - "%s is available. Get more information on how to update." : "%s ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.", "Log out" : "Ofmellen", "Search" : "Sichen", "remember" : "verhalen", diff --git a/core/l10n/lb.json b/core/l10n/lb.json index 7e36d60a79b..44445e3bdac 100644 --- a/core/l10n/lb.json +++ b/core/l10n/lb.json @@ -97,7 +97,6 @@ "Database host" : "Datebank-Server", "Finish setup" : "Installatioun ofschléissen", "Finishing …" : "Schléissen of ...", - "%s is available. Get more information on how to update." : "%s ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.", "Log out" : "Ofmellen", "Search" : "Sichen", "remember" : "verhalen", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index 6291880ac0a..7c27d780e38 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -120,7 +120,6 @@ OC.L10N.register( "Database host" : "Duomenų bazės serveris", "Finish setup" : "Baigti diegimą", "Finishing …" : "Baigiama ...", - "%s is available. Get more information on how to update." : "%s yra prieinama. Gaukite daugiau informacijos apie atnaujinimą.", "Log out" : "Atsijungti", "Search" : "Ieškoti", "Server side authentication failed!" : "Autentikacija serveryje nepavyko!", diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index 72faeb1fcbf..79184dfdb27 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -118,7 +118,6 @@ "Database host" : "Duomenų bazės serveris", "Finish setup" : "Baigti diegimą", "Finishing …" : "Baigiama ...", - "%s is available. Get more information on how to update." : "%s yra prieinama. Gaukite daugiau informacijos apie atnaujinimą.", "Log out" : "Atsijungti", "Search" : "Ieškoti", "Server side authentication failed!" : "Autentikacija serveryje nepavyko!", diff --git a/core/l10n/lv.js b/core/l10n/lv.js index dbc54d56ab0..1abec29f5b7 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -98,7 +98,6 @@ OC.L10N.register( "Database tablespace" : "Datubāzes tabulas telpa", "Database host" : "Datubāzes serveris", "Finish setup" : "Pabeigt iestatīšanu", - "%s is available. Get more information on how to update." : "%s ir pieejams. Uzziniet vairāk kā atjaunināt.", "Log out" : "Izrakstīties", "Search" : "Meklēt", "remember" : "atcerēties", diff --git a/core/l10n/lv.json b/core/l10n/lv.json index b2efc1f9047..acbb677e863 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -96,7 +96,6 @@ "Database tablespace" : "Datubāzes tabulas telpa", "Database host" : "Datubāzes serveris", "Finish setup" : "Pabeigt iestatīšanu", - "%s is available. Get more information on how to update." : "%s ir pieejams. Uzziniet vairāk kā atjaunināt.", "Log out" : "Izrakstīties", "Search" : "Meklēt", "remember" : "atcerēties", diff --git a/core/l10n/mk.js b/core/l10n/mk.js index 22b4304dd17..f42449e6610 100644 --- a/core/l10n/mk.js +++ b/core/l10n/mk.js @@ -1,12 +1,25 @@ OC.L10N.register( "core", { + "Couldn't send mail to following users: %s " : "Не можев да пратам порака на следниве корисници: %s", "Turned on maintenance mode" : "Вклучен е модот за одржување", "Turned off maintenance mode" : "Ислкучен е модот за одржување", "Updated database" : "Базата е надградена", + "Checked database schema update" : "Проверена е шемата за ажурурање на базата на податоци", + "Checked database schema update for apps" : "Проверена е шемата за ажурурање на базата на податоци за апликации", + "Updated \"%s\" to %s" : "Ажурирано е \"%s\" во %s", + "Repair warning: " : "Предупредувања при поправка:", + "Repair error: " : "Грешка при поправка:", + "Following incompatible apps have been disabled: %s" : "Следниве некомпатибилни апликации се оневозможени: %s", + "Following 3rd party apps have been disabled: %s" : "Следниве апликации од 3-ти лица се оневозможени: %s", + "Invalid file provided" : "Дадена е невалидна датотека", "No image or file provided" : "Не е доставена фотографија или датотека", "Unknown filetype" : "Непознат тип на датотека", "Invalid image" : "Невалидна фотографија", + "No temporary profile picture available, try again" : "Не е достапна привремена профилна слика, пробајте повторно", + "No crop data provided" : "Не се доставени податоци за сечење", + "No valid crop data provided" : "Нема валидни податоци за сечење", + "Crop is not square" : "Сечењето не е правоаголно", "Sunday" : "Недела", "Monday" : "Понеделник", "Tuesday" : "Вторник", @@ -28,11 +41,23 @@ OC.L10N.register( "December" : "Декември", "Settings" : "Подесувања", "Saving..." : "Снимам...", + "Couldn't send reset email. Please contact your administrator." : "Не можам да истпратам порака за ресетирање. Ве молам контактирајте го вашиот администратор.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Врската за ресетирање на вашата лозинка е испратена на вашата е-адреса. Ако не ја добиете во разумно време, проверете ги вашите папки за спам/ѓубре.<br>Ако не е таму прашајте го вашиот локален администратор.", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Вашите датотеки се шифрирани. Ако не сте го овозможиле клучот за враќање, нема да можете да ги повратите вашите податоци откога вашата лозинка ќе биде ресетирана.<br>Ако не сте сигурни што да правите, ве молам контактирајте го вашиот локален администратор пред да продолжите.<br/>Дали навистина сакате да продолжите?", + "I know what I'm doing" : "Знам што правам", + "Password can not be changed. Please contact your administrator." : "Лозинката не може да се промени. Ве молам контактирајте го вашиот администратор.", "No" : "Не", "Yes" : "Да", "Choose" : "Избери", + "Error loading file picker template: {error}" : "Грешка при вчитување на образецот за одбирач на датотеки: {error}", "Ok" : "Во ред", + "Error loading message template: {error}" : "Грешка при вчитување на образецот за порака: {error}", + "read-only" : "само за читање", "One file conflict" : "Конфликт со една датотека", + "New Files" : "Нови датотеки", + "Already existing files" : "Постоечки датотеки", + "Which files do you want to keep?" : "Кои датотеки сакате да ги задржите?", + "If you select both versions, the copied file will have a number added to its name." : "Ако ги одберете и двете верзии, копираната датотека ќе има број додаден на нејзиното име.", "Cancel" : "Откажи", "Continue" : "Продолжи", "(all selected)" : "(сите одбрани)", @@ -43,7 +68,16 @@ OC.L10N.register( "So-so password" : "Така така лозинка", "Good password" : "Добра лозинка", "Strong password" : "Јака лозинка", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Вашиот веб опслужувач сеуште не е точно подесен да овозможува синхронизација на датотеки бидејќи интерфејсот за WebDAV изгледа дека е расипан. ", + "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Овој опслужувач нема работна Интернет врска. Ова значи дека некои опции како што е монтирање на надворешни складишта, известувања за ажурирање или инсталации на апликации од 3-ти лица нема да работат. Пристапот на датотеки од далечина и праќање на пораки за известувања може исто така да не работат. Ви советуваме да овозможите Интернет врска за овој опслужувач ако сакате да ги имате сите опции. ", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Вашата папка за податоци и вашите датотеки се најверојатно достапни од интернет. Датотеката .htaccess не работи. Строго ви препорачуваме да го подесите вашиот веб опслужувач на начин на кој вашата папка за податоци не е веќе достапна од интернет или да ја преместите папката за податоци надвор од коренот на веб опслужувачот.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Не еконфигуриран кеш за меморијата. За да ги подобрите перформансите ве молам конфигурирајте memcache ако е достапно. Дополнителни информации можат да се најдат во нашата <a href=\"{docLink}\">документација</a>.", + "Error occurred while checking server setup" : "Се случи грешка при проверката на подесувањата на опслужувачот", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заглавието \"{header}\" не е конфигурирано да биде еднакво на \"{expected}\". Ова е потенцијално сигурносен ризик и препорачуваме да прилагодат подесувањата.", + "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP заглавието не е конфигурирано на најмалку \"2,678,400\" секунди. Ова е потенцијално сигурносен ризик и препорачуваме да се прилагодат подесувањата.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Пристапувате на страната преку HTTP. Строго ви препорачување да го подесите вашиот опслужувач да бара користење на HTTPS наместо тоа.", "Shared" : "Споделен", + "Shared with {recipients}" : "Споделено со {recipients}", "Share" : "Сподели", "Error" : "Грешка", "Error while sharing" : "Грешка при споделување", @@ -51,6 +85,8 @@ OC.L10N.register( "Error while changing permissions" : "Грешка при промена на привилегии", "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}", "Shared with you by {owner}" : "Споделено со Вас од {owner}", + "Share with users or groups …" : "Сподели со корисници или групи ...", + "Share with users, groups or remote users …" : "Споделено со корисници, групи или оддалечени корисници ...", "Share link" : "Сподели ја врската", "Password protect" : "Заштити со лозинка", "Password" : "Лозинка", diff --git a/core/l10n/mk.json b/core/l10n/mk.json index c7b3b28b720..6bb55b20d2e 100644 --- a/core/l10n/mk.json +++ b/core/l10n/mk.json @@ -1,10 +1,23 @@ { "translations": { + "Couldn't send mail to following users: %s " : "Не можев да пратам порака на следниве корисници: %s", "Turned on maintenance mode" : "Вклучен е модот за одржување", "Turned off maintenance mode" : "Ислкучен е модот за одржување", "Updated database" : "Базата е надградена", + "Checked database schema update" : "Проверена е шемата за ажурурање на базата на податоци", + "Checked database schema update for apps" : "Проверена е шемата за ажурурање на базата на податоци за апликации", + "Updated \"%s\" to %s" : "Ажурирано е \"%s\" во %s", + "Repair warning: " : "Предупредувања при поправка:", + "Repair error: " : "Грешка при поправка:", + "Following incompatible apps have been disabled: %s" : "Следниве некомпатибилни апликации се оневозможени: %s", + "Following 3rd party apps have been disabled: %s" : "Следниве апликации од 3-ти лица се оневозможени: %s", + "Invalid file provided" : "Дадена е невалидна датотека", "No image or file provided" : "Не е доставена фотографија или датотека", "Unknown filetype" : "Непознат тип на датотека", "Invalid image" : "Невалидна фотографија", + "No temporary profile picture available, try again" : "Не е достапна привремена профилна слика, пробајте повторно", + "No crop data provided" : "Не се доставени податоци за сечење", + "No valid crop data provided" : "Нема валидни податоци за сечење", + "Crop is not square" : "Сечењето не е правоаголно", "Sunday" : "Недела", "Monday" : "Понеделник", "Tuesday" : "Вторник", @@ -26,11 +39,23 @@ "December" : "Декември", "Settings" : "Подесувања", "Saving..." : "Снимам...", + "Couldn't send reset email. Please contact your administrator." : "Не можам да истпратам порака за ресетирање. Ве молам контактирајте го вашиот администратор.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Врската за ресетирање на вашата лозинка е испратена на вашата е-адреса. Ако не ја добиете во разумно време, проверете ги вашите папки за спам/ѓубре.<br>Ако не е таму прашајте го вашиот локален администратор.", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Вашите датотеки се шифрирани. Ако не сте го овозможиле клучот за враќање, нема да можете да ги повратите вашите податоци откога вашата лозинка ќе биде ресетирана.<br>Ако не сте сигурни што да правите, ве молам контактирајте го вашиот локален администратор пред да продолжите.<br/>Дали навистина сакате да продолжите?", + "I know what I'm doing" : "Знам што правам", + "Password can not be changed. Please contact your administrator." : "Лозинката не може да се промени. Ве молам контактирајте го вашиот администратор.", "No" : "Не", "Yes" : "Да", "Choose" : "Избери", + "Error loading file picker template: {error}" : "Грешка при вчитување на образецот за одбирач на датотеки: {error}", "Ok" : "Во ред", + "Error loading message template: {error}" : "Грешка при вчитување на образецот за порака: {error}", + "read-only" : "само за читање", "One file conflict" : "Конфликт со една датотека", + "New Files" : "Нови датотеки", + "Already existing files" : "Постоечки датотеки", + "Which files do you want to keep?" : "Кои датотеки сакате да ги задржите?", + "If you select both versions, the copied file will have a number added to its name." : "Ако ги одберете и двете верзии, копираната датотека ќе има број додаден на нејзиното име.", "Cancel" : "Откажи", "Continue" : "Продолжи", "(all selected)" : "(сите одбрани)", @@ -41,7 +66,16 @@ "So-so password" : "Така така лозинка", "Good password" : "Добра лозинка", "Strong password" : "Јака лозинка", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Вашиот веб опслужувач сеуште не е точно подесен да овозможува синхронизација на датотеки бидејќи интерфејсот за WebDAV изгледа дека е расипан. ", + "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Овој опслужувач нема работна Интернет врска. Ова значи дека некои опции како што е монтирање на надворешни складишта, известувања за ажурирање или инсталации на апликации од 3-ти лица нема да работат. Пристапот на датотеки од далечина и праќање на пораки за известувања може исто така да не работат. Ви советуваме да овозможите Интернет врска за овој опслужувач ако сакате да ги имате сите опции. ", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Вашата папка за податоци и вашите датотеки се најверојатно достапни од интернет. Датотеката .htaccess не работи. Строго ви препорачуваме да го подесите вашиот веб опслужувач на начин на кој вашата папка за податоци не е веќе достапна од интернет или да ја преместите папката за податоци надвор од коренот на веб опслужувачот.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Не еконфигуриран кеш за меморијата. За да ги подобрите перформансите ве молам конфигурирајте memcache ако е достапно. Дополнителни информации можат да се најдат во нашата <a href=\"{docLink}\">документација</a>.", + "Error occurred while checking server setup" : "Се случи грешка при проверката на подесувањата на опслужувачот", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заглавието \"{header}\" не е конфигурирано да биде еднакво на \"{expected}\". Ова е потенцијално сигурносен ризик и препорачуваме да прилагодат подесувањата.", + "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP заглавието не е конфигурирано на најмалку \"2,678,400\" секунди. Ова е потенцијално сигурносен ризик и препорачуваме да се прилагодат подесувањата.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Пристапувате на страната преку HTTP. Строго ви препорачување да го подесите вашиот опслужувач да бара користење на HTTPS наместо тоа.", "Shared" : "Споделен", + "Shared with {recipients}" : "Споделено со {recipients}", "Share" : "Сподели", "Error" : "Грешка", "Error while sharing" : "Грешка при споделување", @@ -49,6 +83,8 @@ "Error while changing permissions" : "Грешка при промена на привилегии", "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}", "Shared with you by {owner}" : "Споделено со Вас од {owner}", + "Share with users or groups …" : "Сподели со корисници или групи ...", + "Share with users, groups or remote users …" : "Споделено со корисници, групи или оддалечени корисници ...", "Share link" : "Сподели ја врската", "Password protect" : "Заштити со лозинка", "Password" : "Лозинка", diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js index a4c45b2d44a..707fd56605b 100644 --- a/core/l10n/nb_NO.js +++ b/core/l10n/nb_NO.js @@ -195,7 +195,6 @@ OC.L10N.register( "Finish setup" : "Fullfør oppsetting", "Finishing …" : "Ferdigstiller ...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikasjonen krever JavaScript for å fungere korrekt. Vennligst {linkstart}aktiver JavaScript{linkend} og last siden på nytt.", - "%s is available. Get more information on how to update." : "%s er tilgjengelig. Få mer informasjon om hvordan du kan oppdatere.", "Log out" : "Logg ut", "Search" : "Søk", "Server side authentication failed!" : "Autentisering feilet på serveren!", diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json index 175ee81fd71..b53af891bbf 100644 --- a/core/l10n/nb_NO.json +++ b/core/l10n/nb_NO.json @@ -193,7 +193,6 @@ "Finish setup" : "Fullfør oppsetting", "Finishing …" : "Ferdigstiller ...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikasjonen krever JavaScript for å fungere korrekt. Vennligst {linkstart}aktiver JavaScript{linkend} og last siden på nytt.", - "%s is available. Get more information on how to update." : "%s er tilgjengelig. Få mer informasjon om hvordan du kan oppdatere.", "Log out" : "Logg ut", "Search" : "Søk", "Server side authentication failed!" : "Autentisering feilet på serveren!", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index ca57a81fbb2..53cd4ce633f 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hallo {name}, het is hier {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"], + "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.", "Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.", "Please reload the page." : "Herlaad deze pagina.", "The update was unsuccessful. " : "De update is niet geslaagd.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Hulp nodig?", "See the documentation" : "Zie de documentatie", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.", - "%s is available. Get more information on how to update." : "%s is beschikbaar. Verkrijg meer informatie over het bijwerken.", "Log out" : "Afmelden", "Search" : "Zoeken", "Server side authentication failed!" : "Authenticatie bij de server mislukte!", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 81f60a1cb42..ebc4cf4d3a2 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hallo {name}, het is hier {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"], + "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.", "Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.", "Please reload the page." : "Herlaad deze pagina.", "The update was unsuccessful. " : "De update is niet geslaagd.", @@ -202,7 +203,6 @@ "Need help?" : "Hulp nodig?", "See the documentation" : "Zie de documentatie", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.", - "%s is available. Get more information on how to update." : "%s is beschikbaar. Verkrijg meer informatie over het bijwerken.", "Log out" : "Afmelden", "Search" : "Zoeken", "Server side authentication failed!" : "Authenticatie bij de server mislukte!", diff --git a/core/l10n/nn_NO.js b/core/l10n/nn_NO.js index 126d5d9f2c3..21ec7302c78 100644 --- a/core/l10n/nn_NO.js +++ b/core/l10n/nn_NO.js @@ -106,7 +106,6 @@ OC.L10N.register( "Database tablespace" : "Tabellnamnrom for database", "Database host" : "Databasetenar", "Finish setup" : "Fullfør oppsettet", - "%s is available. Get more information on how to update." : "%s er tilgjengeleg. Få meir informasjon om korleis du oppdaterer.", "Log out" : "Logg ut", "Search" : "Søk", "remember" : "hugs", diff --git a/core/l10n/nn_NO.json b/core/l10n/nn_NO.json index 081b51240bb..d2b7abbe394 100644 --- a/core/l10n/nn_NO.json +++ b/core/l10n/nn_NO.json @@ -104,7 +104,6 @@ "Database tablespace" : "Tabellnamnrom for database", "Database host" : "Databasetenar", "Finish setup" : "Fullfør oppsettet", - "%s is available. Get more information on how to update." : "%s er tilgjengeleg. Få meir informasjon om korleis du oppdaterer.", "Log out" : "Logg ut", "Search" : "Søk", "remember" : "hugs", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index 7d8de99d237..016c219ed30 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -184,7 +184,6 @@ OC.L10N.register( "Finish setup" : "Zakończ konfigurowanie", "Finishing …" : "Kończę ...", "Need help?" : "Potrzebujesz pomocy?", - "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" : "Wyloguj", "Search" : "Wyszukaj", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 2054c5b946d..591c4cbf51b 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -182,7 +182,6 @@ "Finish setup" : "Zakończ konfigurowanie", "Finishing …" : "Kończę ...", "Need help?" : "Potrzebujesz pomocy?", - "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" : "Wyloguj", "Search" : "Wyszukaj", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 075800cd012..00dd9989021 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Olá {name}, o clima está {weather}", "Hello {name}" : "Olá {name}", "_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"], + "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.", "Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.", "Please reload the page." : "Por favor recarregue a página", "The update was unsuccessful. " : "A atualização não foi bem sucedida.", @@ -203,7 +204,6 @@ OC.L10N.register( "Need help?" : "Precisa de ajuda?", "See the documentation" : "Veja a documentação", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para sua correta operação. Por favor {linkstart}habilite JavaScript{linkend} e recerregue a página.", - "%s is available. Get more information on how to update." : "%s está disponível. Obtenha mais informações sobre como atualizar.", "Log out" : "Sair", "Search" : "Perquisar", "Server side authentication failed!" : "Autenticação do servidor falhou!", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index ab0ea6fb3e2..6991f703840 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Olá {name}, o clima está {weather}", "Hello {name}" : "Olá {name}", "_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"], + "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.", "Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.", "Please reload the page." : "Por favor recarregue a página", "The update was unsuccessful. " : "A atualização não foi bem sucedida.", @@ -201,7 +202,6 @@ "Need help?" : "Precisa de ajuda?", "See the documentation" : "Veja a documentação", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para sua correta operação. Por favor {linkstart}habilite JavaScript{linkend} e recerregue a página.", - "%s is available. Get more information on how to update." : "%s está disponível. Obtenha mais informações sobre como atualizar.", "Log out" : "Sair", "Search" : "Perquisar", "Server side authentication failed!" : "Autenticação do servidor falhou!", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 07a36fb282f..0b06d843a18 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -203,7 +203,6 @@ OC.L10N.register( "Need help?" : "Precisa de ajuda?", "See the documentation" : "Veja a documentação", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para funcionar correctamente. Por favor, {linkstart}active o JavaScript{linkend} e recarregue a página.", - "%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.", "Log out" : "Terminar sessão", "Search" : "Procurar", "Server side authentication failed!" : "Autenticação do lado do servidor falhou!", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index 8da29e724dd..a51e2455055 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -201,7 +201,6 @@ "Need help?" : "Precisa de ajuda?", "See the documentation" : "Veja a documentação", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para funcionar correctamente. Por favor, {linkstart}active o JavaScript{linkend} e recarregue a página.", - "%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.", "Log out" : "Terminar sessão", "Search" : "Procurar", "Server side authentication failed!" : "Autenticação do lado do servidor falhou!", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index a9e34f6b43c..51ff60c64a5 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -128,7 +128,6 @@ OC.L10N.register( "Database tablespace" : "Tabela de spațiu a bazei de date", "Database host" : "Bază date", "Finish setup" : "Finalizează instalarea", - "%s is available. Get more information on how to update." : "%s este disponibil. Vezi mai multe informații despre procesul de actualizare.", "Log out" : "Ieșire", "Search" : "Căutare", "Forgot your password? Reset it!" : "Ți-ai uitat parola? Resetează!", diff --git a/core/l10n/ro.json b/core/l10n/ro.json index 0cdef73f4e5..bee38c7a4ae 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -126,7 +126,6 @@ "Database tablespace" : "Tabela de spațiu a bazei de date", "Database host" : "Bază date", "Finish setup" : "Finalizează instalarea", - "%s is available. Get more information on how to update." : "%s este disponibil. Vezi mai multe informații despre procesul de actualizare.", "Log out" : "Ieșire", "Search" : "Căutare", "Forgot your password? Reset it!" : "Ți-ai uitat parola? Resetează!", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index 71916e38afe..8495c606d6e 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -53,7 +53,7 @@ OC.L10N.register( "Ok" : "Ок", "Error loading message template: {error}" : "Ошибка загрузки шаблона сообщений: {error}", "read-only" : "только для чтения", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах"], + "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах","{count} конфликтов в файлах"], "One file conflict" : "Один конфликт в файлах", "New Files" : "Новые файлы", "Already existing files" : "Существующие файлы", @@ -133,7 +133,7 @@ OC.L10N.register( "sunny" : "солнечно", "Hello {name}, the weather is {weather}" : "Здравствуйте {name}, погода {weather}", "Hello {name}" : "Здравствуйте {name}", - "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов"], + "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов","скачать %n файлов"], "Updating {productName} to version {version}, this may take a while." : "Идет обновление {productName} до версии {version}, пожалуйста, подождите.", "Please reload the page." : "Обновите страницу.", "The update was unsuccessful. " : "Обновление не удалось.", @@ -148,7 +148,7 @@ OC.L10N.register( "Reset password" : "Сбросить пароль", "Searching other places" : "Идет поиск в других местах", "No search result in other places" : "В других местах ничего не найдено", - "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах"], + "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах","{count} результатов поиска в других местах"], "Personal" : "Личное", "Users" : "Пользователи", "Apps" : "Приложения", @@ -204,7 +204,6 @@ OC.L10N.register( "Need help?" : "Нужна помощь?", "See the documentation" : "Посмотреть документацию", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Это приложение требует включённый JavaScript для корректной работы. Пожалуйста, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включите JavaScript</a> и перезагрузите интерфейс.", - "%s is available. Get more information on how to update." : "Доступна версия %s. Получить дополнительную информацию о порядке обновления.", "Log out" : "Выйти", "Search" : "Найти", "Server side authentication failed!" : "Неудачная аутентификация с сервером!", @@ -233,4 +232,4 @@ OC.L10N.register( "This %s instance is currently in maintenance mode, which may take a while." : "Это %s находится в режиме технического обслуживания, которое может занять некоторое время.", "This page will refresh itself when the %s instance is available again." : "Эта страница обновится, когда экземпляр %s снова станет доступен." }, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); +"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/core/l10n/ru.json b/core/l10n/ru.json index ab800f8489e..695e139b7e1 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -51,7 +51,7 @@ "Ok" : "Ок", "Error loading message template: {error}" : "Ошибка загрузки шаблона сообщений: {error}", "read-only" : "только для чтения", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах"], + "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах","{count} конфликтов в файлах"], "One file conflict" : "Один конфликт в файлах", "New Files" : "Новые файлы", "Already existing files" : "Существующие файлы", @@ -131,7 +131,7 @@ "sunny" : "солнечно", "Hello {name}, the weather is {weather}" : "Здравствуйте {name}, погода {weather}", "Hello {name}" : "Здравствуйте {name}", - "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов"], + "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов","скачать %n файлов"], "Updating {productName} to version {version}, this may take a while." : "Идет обновление {productName} до версии {version}, пожалуйста, подождите.", "Please reload the page." : "Обновите страницу.", "The update was unsuccessful. " : "Обновление не удалось.", @@ -146,7 +146,7 @@ "Reset password" : "Сбросить пароль", "Searching other places" : "Идет поиск в других местах", "No search result in other places" : "В других местах ничего не найдено", - "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах"], + "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах","{count} результатов поиска в других местах"], "Personal" : "Личное", "Users" : "Пользователи", "Apps" : "Приложения", @@ -202,7 +202,6 @@ "Need help?" : "Нужна помощь?", "See the documentation" : "Посмотреть документацию", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Это приложение требует включённый JavaScript для корректной работы. Пожалуйста, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включите JavaScript</a> и перезагрузите интерфейс.", - "%s is available. Get more information on how to update." : "Доступна версия %s. Получить дополнительную информацию о порядке обновления.", "Log out" : "Выйти", "Search" : "Найти", "Server side authentication failed!" : "Неудачная аутентификация с сервером!", @@ -230,5 +229,5 @@ "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Чтобы избежать задержек в крупных установках, вы можете выполнить следующую команду в каталоге установки:", "This %s instance is currently in maintenance mode, which may take a while." : "Это %s находится в режиме технического обслуживания, которое может занять некоторое время.", "This page will refresh itself when the %s instance is available again." : "Эта страница обновится, когда экземпляр %s снова станет доступен." -},"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);" +},"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/core/l10n/sk_SK.js b/core/l10n/sk_SK.js index 1e6252b566d..34500b22216 100644 --- a/core/l10n/sk_SK.js +++ b/core/l10n/sk_SK.js @@ -189,7 +189,6 @@ OC.L10N.register( "Finishing …" : "Dokončujem...", "Need help?" : "Potrebujete pomoc?", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku", - "%s is available. Get more information on how to update." : "%s je dostupná. Získajte viac informácií o postupe aktualizácie.", "Log out" : "Odhlásiť", "Search" : "Hľadať", "Server side authentication failed!" : "Autentifikácia na serveri zlyhala!", diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json index 676270f879f..0cacdd3c10a 100644 --- a/core/l10n/sk_SK.json +++ b/core/l10n/sk_SK.json @@ -187,7 +187,6 @@ "Finishing …" : "Dokončujem...", "Need help?" : "Potrebujete pomoc?", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku", - "%s is available. Get more information on how to update." : "%s je dostupná. Získajte viac informácií o postupe aktualizácie.", "Log out" : "Odhlásiť", "Search" : "Hľadať", "Server side authentication failed!" : "Autentifikácia na serveri zlyhala!", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index a9556803da0..8c845051b90 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -178,7 +178,6 @@ OC.L10N.register( "SQLite will be used as database." : "Kot podatkovna zbirka bo uporabljena zbirka SQLite", "Finish setup" : "Končaj nastavitev", "Finishing …" : "Poteka zaključevanje opravila ...", - "%s is available. Get more information on how to update." : "%s je na voljo. Pridobite več podrobnosti za posodobitev.", "Log out" : "Odjava", "Search" : "Poišči", "Server side authentication failed!" : "Overitev s strežnika je spodletela!", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index ccf0293e481..3aecd5820d6 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -176,7 +176,6 @@ "SQLite will be used as database." : "Kot podatkovna zbirka bo uporabljena zbirka SQLite", "Finish setup" : "Končaj nastavitev", "Finishing …" : "Poteka zaključevanje opravila ...", - "%s is available. Get more information on how to update." : "%s je na voljo. Pridobite več podrobnosti za posodobitev.", "Log out" : "Odjava", "Search" : "Poišči", "Server side authentication failed!" : "Overitev s strežnika je spodletela!", diff --git a/core/l10n/sq.js b/core/l10n/sq.js index 998670e066a..cd6cc572cba 100644 --- a/core/l10n/sq.js +++ b/core/l10n/sq.js @@ -167,7 +167,6 @@ OC.L10N.register( "Database host" : "Pozicioni (host) i database-it", "Finish setup" : "Mbaro setup-in", "Finishing …" : "Duke përfunduar ...", - "%s is available. Get more information on how to update." : "%s është i disponueshëm. Merrni më shumë informacione mbi azhurnimin.", "Log out" : "Dalje", "Search" : "Kërko", "Server side authentication failed!" : "Verifikimi në krahun e serverit dështoi!", diff --git a/core/l10n/sq.json b/core/l10n/sq.json index b8f08ef8d14..a7554c582fe 100644 --- a/core/l10n/sq.json +++ b/core/l10n/sq.json @@ -165,7 +165,6 @@ "Database host" : "Pozicioni (host) i database-it", "Finish setup" : "Mbaro setup-in", "Finishing …" : "Duke përfunduar ...", - "%s is available. Get more information on how to update." : "%s është i disponueshëm. Merrni më shumë informacione mbi azhurnimin.", "Log out" : "Dalje", "Search" : "Kërko", "Server side authentication failed!" : "Verifikimi në krahun e serverit dështoi!", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index e0e52a23f5c..b59a3b35caa 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -41,9 +41,9 @@ OC.L10N.register( "December" : "децембар", "Settings" : "Поставке", "Saving..." : "Уписујем...", - "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за обнављање лозинке. Контактирајте администратора.", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за обнављање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.", - "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након обнављања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?", + "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за ресетовање лозинке. Контактирајте администратора.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за ресетовање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након ресетовања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?", "I know what I'm doing" : "Знам шта радим", "Password can not be changed. Please contact your administrator." : "Лозинка се не може променити. Контактирајте администратора.", "No" : "Не", @@ -74,7 +74,7 @@ OC.L10N.register( "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш директоријум са подацима и ваши фајлови су вероватно доступни са интернета. Фајл .htaccess не ради. Предлажемо да подесите ваш веб сервер на начин да директоријум са подацима не буде доступан или га изместите изван кореног директоријума веб сервера.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Није подешен меморијски кеш. Да бисте побољшали перформансе подесите „memcache“ ако је доступан. Више информација можете наћи у <a href=\"{docLink}\">документацији</a>.", "Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера", - "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово је потенцијални безбедносни или ризик за приватност и препоручујемо да подесите ову поставку.", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово потенцијално угрожава безбедност и приватност и препоручујемо да подесите ову поставку.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "ХТТП захлавље „Strict-Transport-Security“ није постављено на најмање \"2,678,400\" секунди. Ово је потенцијални безбедносни ризик и препоручујемо да подесите ову поставку.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Приступате сајту преко небезбедне (ХТТП) везе. Препоручујемо да подесите ваш сервер да захтева коришћење безбедне (ХТТПС) везе.", "Shared" : "Дељено", @@ -88,7 +88,7 @@ OC.L10N.register( "Shared with you by {owner}" : "{owner} дели са вама", "Share with users or groups …" : "Дели са корисницима или групама...", "Share with users, groups or remote users …" : "Дели са корисницима, групама или удаљеним корисницима...", - "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Подели са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Поделите са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud", "Share link" : "Веза дељења", "The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања", "Link" : "Веза", @@ -134,18 +134,19 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Здраво {name}, време је {weather}", "Hello {name}" : "Здраво {name}", "_download %n file_::_download %n files_" : ["преузми %n фајл","преузми %n фајла","преузми %n фајлова"], + "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.", "Updating {productName} to version {version}, this may take a while." : "Надограђујем {productName} на издање {version}. Ово би могло да потраје.", "Please reload the page." : "Поново учитајте страницу.", "The update was unsuccessful. " : "Ажурирање није успело.", "The update was successful. Redirecting you to ownCloud now." : "Ажурирање је успело. Преусмеравам вас на оунКлауд.", - "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку, јер je дигитални кључ неважећи", - "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за обнављање лозинке. Проверите да ли је корисничко име исправно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за обнављање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.", - "%s password reset" : "%s лозинка обновљена", - "Use the following link to reset your password: {link}" : "Употребите следећу везу да обновите своју лозинку: {link}", + "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку јер je токен неважећи", + "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање лозинке. Проверите да ли је корисничко име исправно.", + "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.", + "%s password reset" : "%s лозинка ресетована", + "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете своју лозинку: {link}", "New password" : "Нова лозинка", "New Password" : "Нова лозинка", - "Reset password" : "Обнови лозинку", + "Reset password" : "Ресетуј лозинку", "Searching other places" : "Претражујем остала места", "No search result in other places" : "Нема резултата претраге на осталим местима", "_{count} search result in other places_::_{count} search results in other places_" : ["{count} резултат претраге на осталим местима","{count} резултата претраге на осталим местима","{count} резултата претраге на осталим местима"], @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Треба вам помоћ?", "See the documentation" : "Погледајте документацију", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ова апликација захтева Јава скрипт за исправан рад. {linkstart}Омогућите Јава скрипт{linkend} и поново учитајте страницу.", - "%s is available. Get more information on how to update." : "%s је доступан. Сазнајте више о томе како да ажурирате.", "Log out" : "Одјава", "Search" : "Претражи", "Server side authentication failed!" : "Аутентификација на серверу није успела!", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index 41391e214cb..c4d15f4b25a 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -39,9 +39,9 @@ "December" : "децембар", "Settings" : "Поставке", "Saving..." : "Уписујем...", - "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за обнављање лозинке. Контактирајте администратора.", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за обнављање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.", - "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након обнављања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?", + "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за ресетовање лозинке. Контактирајте администратора.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за ресетовање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након ресетовања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?", "I know what I'm doing" : "Знам шта радим", "Password can not be changed. Please contact your administrator." : "Лозинка се не може променити. Контактирајте администратора.", "No" : "Не", @@ -72,7 +72,7 @@ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш директоријум са подацима и ваши фајлови су вероватно доступни са интернета. Фајл .htaccess не ради. Предлажемо да подесите ваш веб сервер на начин да директоријум са подацима не буде доступан или га изместите изван кореног директоријума веб сервера.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Није подешен меморијски кеш. Да бисте побољшали перформансе подесите „memcache“ ако је доступан. Више информација можете наћи у <a href=\"{docLink}\">документацији</a>.", "Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера", - "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово је потенцијални безбедносни или ризик за приватност и препоручујемо да подесите ову поставку.", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово потенцијално угрожава безбедност и приватност и препоручујемо да подесите ову поставку.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "ХТТП захлавље „Strict-Transport-Security“ није постављено на најмање \"2,678,400\" секунди. Ово је потенцијални безбедносни ризик и препоручујемо да подесите ову поставку.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Приступате сајту преко небезбедне (ХТТП) везе. Препоручујемо да подесите ваш сервер да захтева коришћење безбедне (ХТТПС) везе.", "Shared" : "Дељено", @@ -86,7 +86,7 @@ "Shared with you by {owner}" : "{owner} дели са вама", "Share with users or groups …" : "Дели са корисницима или групама...", "Share with users, groups or remote users …" : "Дели са корисницима, групама или удаљеним корисницима...", - "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Подели са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Поделите са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud", "Share link" : "Веза дељења", "The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања", "Link" : "Веза", @@ -132,18 +132,19 @@ "Hello {name}, the weather is {weather}" : "Здраво {name}, време је {weather}", "Hello {name}" : "Здраво {name}", "_download %n file_::_download %n files_" : ["преузми %n фајл","преузми %n фајла","преузми %n фајлова"], + "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.", "Updating {productName} to version {version}, this may take a while." : "Надограђујем {productName} на издање {version}. Ово би могло да потраје.", "Please reload the page." : "Поново учитајте страницу.", "The update was unsuccessful. " : "Ажурирање није успело.", "The update was successful. Redirecting you to ownCloud now." : "Ажурирање је успело. Преусмеравам вас на оунКлауд.", - "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку, јер je дигитални кључ неважећи", - "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за обнављање лозинке. Проверите да ли је корисничко име исправно.", - "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за обнављање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.", - "%s password reset" : "%s лозинка обновљена", - "Use the following link to reset your password: {link}" : "Употребите следећу везу да обновите своју лозинку: {link}", + "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку јер je токен неважећи", + "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање лозинке. Проверите да ли је корисничко име исправно.", + "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.", + "%s password reset" : "%s лозинка ресетована", + "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете своју лозинку: {link}", "New password" : "Нова лозинка", "New Password" : "Нова лозинка", - "Reset password" : "Обнови лозинку", + "Reset password" : "Ресетуј лозинку", "Searching other places" : "Претражујем остала места", "No search result in other places" : "Нема резултата претраге на осталим местима", "_{count} search result in other places_::_{count} search results in other places_" : ["{count} резултат претраге на осталим местима","{count} резултата претраге на осталим местима","{count} резултата претраге на осталим местима"], @@ -202,7 +203,6 @@ "Need help?" : "Треба вам помоћ?", "See the documentation" : "Погледајте документацију", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ова апликација захтева Јава скрипт за исправан рад. {linkstart}Омогућите Јава скрипт{linkend} и поново учитајте страницу.", - "%s is available. Get more information on how to update." : "%s је доступан. Сазнајте више о томе како да ажурирате.", "Log out" : "Одјава", "Search" : "Претражи", "Server side authentication failed!" : "Аутентификација на серверу није успела!", diff --git a/core/l10n/sr@latin.js b/core/l10n/sr@latin.js index 5d912f997fd..706f7bd3950 100644 --- a/core/l10n/sr@latin.js +++ b/core/l10n/sr@latin.js @@ -173,7 +173,6 @@ OC.L10N.register( "Database host" : "Domaćin baze", "Finish setup" : "Završi podešavanje", "Finishing …" : "Završavam ...", - "%s is available. Get more information on how to update." : "%s je dostupan. Pronađite više informacija kako da izvršite osvežavanje.", "Log out" : "Odjava", "Search" : "Traži", "Server side authentication failed!" : "Provera identiteta na stani servera nije uspela!", diff --git a/core/l10n/sr@latin.json b/core/l10n/sr@latin.json index 6ad7a38364a..ce5dba2d915 100644 --- a/core/l10n/sr@latin.json +++ b/core/l10n/sr@latin.json @@ -171,7 +171,6 @@ "Database host" : "Domaćin baze", "Finish setup" : "Završi podešavanje", "Finishing …" : "Završavam ...", - "%s is available. Get more information on how to update." : "%s je dostupan. Pronađite više informacija kako da izvršite osvežavanje.", "Log out" : "Odjava", "Search" : "Traži", "Server side authentication failed!" : "Provera identiteta na stani servera nije uspela!", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 7042b8cb657..2873fc26586 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -116,6 +116,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hej {name}, vädret är {weather}", "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["Ladda ner %n fil","Ladda ner %n filer"], + "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.", "Updating {productName} to version {version}, this may take a while." : "Uppdaterar {productName} till version {version}, detta kan ta en stund.", "Please reload the page." : "Vänligen ladda om sidan.", "The update was unsuccessful. " : "Uppdateringen misslyckades.", @@ -175,7 +176,8 @@ OC.L10N.register( "Database host" : "Databasserver", "Finish setup" : "Avsluta installation", "Finishing …" : "Avslutar ...", - "%s is available. Get more information on how to update." : "%s är tillgänglig. Få mer information om hur du går tillväga för att uppdatera.", + "Need help?" : "Behöver du hjälp?", + "See the documentation" : "Kolla dokumentationen", "Log out" : "Logga ut", "Search" : "Sök", "Server side authentication failed!" : "Servern misslyckades med autentisering!", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index 843f905ec55..11cb5abc953 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -114,6 +114,7 @@ "Hello {name}, the weather is {weather}" : "Hej {name}, vädret är {weather}", "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["Ladda ner %n fil","Ladda ner %n filer"], + "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.", "Updating {productName} to version {version}, this may take a while." : "Uppdaterar {productName} till version {version}, detta kan ta en stund.", "Please reload the page." : "Vänligen ladda om sidan.", "The update was unsuccessful. " : "Uppdateringen misslyckades.", @@ -173,7 +174,8 @@ "Database host" : "Databasserver", "Finish setup" : "Avsluta installation", "Finishing …" : "Avslutar ...", - "%s is available. Get more information on how to update." : "%s är tillgänglig. Få mer information om hur du går tillväga för att uppdatera.", + "Need help?" : "Behöver du hjälp?", + "See the documentation" : "Kolla dokumentationen", "Log out" : "Logga ut", "Search" : "Sök", "Server side authentication failed!" : "Servern misslyckades med autentisering!", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index db07becd788..3a59adebbe8 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya transferi için düzgün bir şekilde yapılandırılmamış. WevDAV arabirimini sorunlu gözüküyor.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya üçüncü parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için İnternet bağlantısını etkinleştirmenizi öneriyoruz.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "data dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Hafıza önbelleği ayarlanmamış. Performansın artması için eğer mümkünse memcache ayarlarınızı yapın lütfen. Detaylı bilgiye <a href=\"{docLink}\">kullanıcı kılavuzları</a>ndan ulaşabilirsiniz.", "Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP başlığı \"2,678,400\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir risk ve bu ayarı düzeltmenizi öneririz.", @@ -85,6 +86,9 @@ OC.L10N.register( "Error while changing permissions" : "İzinleri değiştirirken hata", "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış", "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı", + "Share with users or groups …" : "Kullanıcı ve gruplarla paylaş...", + "Share with users, groups or remote users …" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud şeklinde ownClouds kullanan diğer kullanıcılarla paylaş", "Share link" : "Paylaşma bağlantısı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek", "Link" : "Bağlantı", @@ -97,6 +101,7 @@ OC.L10N.register( "Set expiration date" : "Son kullanma tarihini ayarla", "Expiration" : "Bitiş", "Expiration date" : "Son kullanım tarihi", + "An error occured. Please try again" : "Bir hata oluştu. Lütfen yeniden deneyin", "Adding user..." : "Kullanıcı ekleniyor...", "group" : "grup", "remote" : "uzak", @@ -129,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}", "Hello {name}" : "Merhaba {name}", "_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"], + "{version} is available. Get more information on how to update." : "Sürüm {version} hazır. Nasıl güncelleyeceğinle ilgili daha fazla bilgi al.", "Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.", "Please reload the page." : "Lütfen sayfayı yeniden yükleyin.", "The update was unsuccessful. " : "Güncelleştirme başarısız.", @@ -176,6 +182,7 @@ OC.L10N.register( "File: %s" : "Dosya: %s", "Line: %s" : "Satır: %s", "Trace" : "İz", + "Security warning" : "Güvenlik uyarısı", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen <a href=\"%s\" target=\"_blank\">belgelendirme sayfasını</a> ziyaret edin.", "Create an <strong>admin account</strong>" : "Bir <strong>yönetici hesabı</strong> oluşturun", @@ -189,17 +196,21 @@ OC.L10N.register( "Database name" : "Veritabanı adı", "Database tablespace" : "Veritabanı tablo alanı", "Database host" : "Veritabanı sunucusu", + "Performance warning" : "Performans uyarısı", "SQLite will be used as database." : "Veritabanı olarak SQLite kullanılacak.", "For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için farklı bir veritabanı arka ucu seçmenizi öneriyoruz", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.", "Finish setup" : "Kurulumu tamamla", "Finishing …" : "Tamamlanıyor ...", + "Need help?" : "Yardım lazım mı?", + "See the documentation" : "Kullanım klavuzuna bak", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulama düzgün çalışabilmesi için JavaScript gerektirir. Lütfen {linkstart}JavaScript'i etkinleştirin{linkend} ve sayfayı yeniden yükleyin.", - "%s is available. Get more information on how to update." : "%s kullanılabilir. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.", "Log out" : "Çıkış yap", "Search" : "Ara", "Server side authentication failed!" : "Sunucu taraflı yetkilendirme başarısız!", "Please contact your administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.", + "An internal error occured." : "Dahili bir hata oluştu.", + "Please try again or contact your administrator." : "Lütfen yeniden deneyin veya yöneticinizle iletişim kurun.", "Forgot your password? Reset it!" : "Parolanızı mı unuttunuz? Sıfırlayın!", "remember" : "hatırla", "Log in" : "Giriş yap", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 16938b7db81..c2f5b6e04a4 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -70,6 +70,7 @@ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya transferi için düzgün bir şekilde yapılandırılmamış. WevDAV arabirimini sorunlu gözüküyor.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya üçüncü parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için İnternet bağlantısını etkinleştirmenizi öneriyoruz.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "data dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Hafıza önbelleği ayarlanmamış. Performansın artması için eğer mümkünse memcache ayarlarınızı yapın lütfen. Detaylı bilgiye <a href=\"{docLink}\">kullanıcı kılavuzları</a>ndan ulaşabilirsiniz.", "Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP başlığı \"2,678,400\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir risk ve bu ayarı düzeltmenizi öneririz.", @@ -83,6 +84,9 @@ "Error while changing permissions" : "İzinleri değiştirirken hata", "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış", "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı", + "Share with users or groups …" : "Kullanıcı ve gruplarla paylaş...", + "Share with users, groups or remote users …" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud şeklinde ownClouds kullanan diğer kullanıcılarla paylaş", "Share link" : "Paylaşma bağlantısı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek", "Link" : "Bağlantı", @@ -95,6 +99,7 @@ "Set expiration date" : "Son kullanma tarihini ayarla", "Expiration" : "Bitiş", "Expiration date" : "Son kullanım tarihi", + "An error occured. Please try again" : "Bir hata oluştu. Lütfen yeniden deneyin", "Adding user..." : "Kullanıcı ekleniyor...", "group" : "grup", "remote" : "uzak", @@ -127,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}", "Hello {name}" : "Merhaba {name}", "_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"], + "{version} is available. Get more information on how to update." : "Sürüm {version} hazır. Nasıl güncelleyeceğinle ilgili daha fazla bilgi al.", "Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.", "Please reload the page." : "Lütfen sayfayı yeniden yükleyin.", "The update was unsuccessful. " : "Güncelleştirme başarısız.", @@ -174,6 +180,7 @@ "File: %s" : "Dosya: %s", "Line: %s" : "Satır: %s", "Trace" : "İz", + "Security warning" : "Güvenlik uyarısı", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen <a href=\"%s\" target=\"_blank\">belgelendirme sayfasını</a> ziyaret edin.", "Create an <strong>admin account</strong>" : "Bir <strong>yönetici hesabı</strong> oluşturun", @@ -187,17 +194,21 @@ "Database name" : "Veritabanı adı", "Database tablespace" : "Veritabanı tablo alanı", "Database host" : "Veritabanı sunucusu", + "Performance warning" : "Performans uyarısı", "SQLite will be used as database." : "Veritabanı olarak SQLite kullanılacak.", "For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için farklı bir veritabanı arka ucu seçmenizi öneriyoruz", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.", "Finish setup" : "Kurulumu tamamla", "Finishing …" : "Tamamlanıyor ...", + "Need help?" : "Yardım lazım mı?", + "See the documentation" : "Kullanım klavuzuna bak", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulama düzgün çalışabilmesi için JavaScript gerektirir. Lütfen {linkstart}JavaScript'i etkinleştirin{linkend} ve sayfayı yeniden yükleyin.", - "%s is available. Get more information on how to update." : "%s kullanılabilir. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.", "Log out" : "Çıkış yap", "Search" : "Ara", "Server side authentication failed!" : "Sunucu taraflı yetkilendirme başarısız!", "Please contact your administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.", + "An internal error occured." : "Dahili bir hata oluştu.", + "Please try again or contact your administrator." : "Lütfen yeniden deneyin veya yöneticinizle iletişim kurun.", "Forgot your password? Reset it!" : "Parolanızı mı unuttunuz? Sıfırlayın!", "remember" : "hatırla", "Log in" : "Giriş yap", diff --git a/core/l10n/uk.js b/core/l10n/uk.js index 1d479a06311..72c66b90d4b 100644 --- a/core/l10n/uk.js +++ b/core/l10n/uk.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ", "Hello {name}" : "Привіт {name}", "_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"], + "{version} is available. Get more information on how to update." : "{version} вже є доступною. Отримати більш детальну інформацію про те, як оновити.", "Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.", "Please reload the page." : "Будь ласка, перезавантажте сторінку.", "The update was unsuccessful. " : "Оновлення завершилось невдачею.", @@ -204,7 +205,6 @@ OC.L10N.register( "Need help?" : "Потрібна допомога?", "See the documentation" : "Дивіться документацію", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте інтерфейс.", - "%s is available. Get more information on how to update." : "%s доступний. Отримай більше інформації про те, як оновити.", "Log out" : "Вихід", "Search" : "Знайти", "Server side authentication failed!" : "Невдала аутентифікація з сервером!", diff --git a/core/l10n/uk.json b/core/l10n/uk.json index ad3969d1402..074bc1eb9d7 100644 --- a/core/l10n/uk.json +++ b/core/l10n/uk.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ", "Hello {name}" : "Привіт {name}", "_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"], + "{version} is available. Get more information on how to update." : "{version} вже є доступною. Отримати більш детальну інформацію про те, як оновити.", "Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.", "Please reload the page." : "Будь ласка, перезавантажте сторінку.", "The update was unsuccessful. " : "Оновлення завершилось невдачею.", @@ -202,7 +203,6 @@ "Need help?" : "Потрібна допомога?", "See the documentation" : "Дивіться документацію", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте інтерфейс.", - "%s is available. Get more information on how to update." : "%s доступний. Отримай більше інформації про те, як оновити.", "Log out" : "Вихід", "Search" : "Знайти", "Server side authentication failed!" : "Невдала аутентифікація з сервером!", diff --git a/core/l10n/ur_PK.js b/core/l10n/ur_PK.js index ac43395406d..b0304997ac3 100644 --- a/core/l10n/ur_PK.js +++ b/core/l10n/ur_PK.js @@ -108,7 +108,6 @@ OC.L10N.register( "Database host" : "ڈیٹابیس ہوسٹ", "Finish setup" : "سیٹ اپ ختم کریں", "Finishing …" : "تکمیل ...", - "%s is available. Get more information on how to update." : "%s دستیاب ہے. اپ ڈیٹ کرنے کے بارے میں مزید معلومات حاصل کریں.", "Log out" : "لاگ آؤٹ", "Search" : "تلاش", "remember" : "یاد رکھیں", diff --git a/core/l10n/ur_PK.json b/core/l10n/ur_PK.json index 6f8d424a0eb..fe8fece8083 100644 --- a/core/l10n/ur_PK.json +++ b/core/l10n/ur_PK.json @@ -106,7 +106,6 @@ "Database host" : "ڈیٹابیس ہوسٹ", "Finish setup" : "سیٹ اپ ختم کریں", "Finishing …" : "تکمیل ...", - "%s is available. Get more information on how to update." : "%s دستیاب ہے. اپ ڈیٹ کرنے کے بارے میں مزید معلومات حاصل کریں.", "Log out" : "لاگ آؤٹ", "Search" : "تلاش", "remember" : "یاد رکھیں", diff --git a/core/l10n/vi.js b/core/l10n/vi.js index 8207cf98462..5caf47cfd16 100644 --- a/core/l10n/vi.js +++ b/core/l10n/vi.js @@ -118,7 +118,6 @@ OC.L10N.register( "Database host" : "Database host", "Finish setup" : "Cài đặt hoàn tất", "Finishing …" : "Đang hoàn thành ...", - "%s is available. Get more information on how to update." : "%s còn trống. Xem thêm thông tin cách cập nhật.", "Log out" : "Đăng xuất", "Search" : "Tìm kiếm", "Server side authentication failed!" : "Xác thực phía máy chủ không thành công!", diff --git a/core/l10n/vi.json b/core/l10n/vi.json index eb67b81e255..10603d28a93 100644 --- a/core/l10n/vi.json +++ b/core/l10n/vi.json @@ -116,7 +116,6 @@ "Database host" : "Database host", "Finish setup" : "Cài đặt hoàn tất", "Finishing …" : "Đang hoàn thành ...", - "%s is available. Get more information on how to update." : "%s còn trống. Xem thêm thông tin cách cập nhật.", "Log out" : "Đăng xuất", "Search" : "Tìm kiếm", "Server side authentication failed!" : "Xác thực phía máy chủ không thành công!", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index f9929fee3b5..6a0da0710c9 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -196,7 +196,6 @@ OC.L10N.register( "Finish setup" : "安装完成", "Finishing …" : "正在结束 ...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "对于正确的操作,该应用要求 JavaScript 。请 {linkstart} 打开 JavaScript {linkend} ,然后重新载入页面。", - "%s is available. Get more information on how to update." : "%s 可用。获取更多关于如何升级的信息。", "Log out" : "注销", "Search" : "搜索", "Server side authentication failed!" : "服务端验证失败!", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index c37cc262e67..a6d48105721 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -194,7 +194,6 @@ "Finish setup" : "安装完成", "Finishing …" : "正在结束 ...", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "对于正确的操作,该应用要求 JavaScript 。请 {linkstart} 打开 JavaScript {linkend} ,然后重新载入页面。", - "%s is available. Get more information on how to update." : "%s 可用。获取更多关于如何升级的信息。", "Log out" : "注销", "Search" : "搜索", "Server side authentication failed!" : "服务端验证失败!", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index e482d74666d..42c1aebcfde 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -163,7 +163,6 @@ OC.L10N.register( "Database host" : "資料庫主機", "Finish setup" : "完成設定", "Finishing …" : "即將完成…", - "%s is available. Get more information on how to update." : "%s 已經釋出,瞭解更多資訊以進行更新。", "Log out" : "登出", "Search" : "搜尋", "Server side authentication failed!" : "伺服器端認證失敗!", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 770968ea26e..c2af58eafa6 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -161,7 +161,6 @@ "Database host" : "資料庫主機", "Finish setup" : "完成設定", "Finishing …" : "即將完成…", - "%s is available. Get more information on how to update." : "%s 已經釋出,瞭解更多資訊以進行更新。", "Log out" : "登出", "Search" : "搜尋", "Server side authentication failed!" : "伺服器端認證失敗!", diff --git a/core/register_command.php b/core/register_command.php index 5e16abca0c0..801148aa55e 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -51,7 +51,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) { $application->add(new OC\Core\Command\Background\WebCron(\OC::$server->getConfig())); $application->add(new OC\Core\Command\Background\Ajax(\OC::$server->getConfig())); $application->add(new OC\Core\Command\Encryption\Disable(\OC::$server->getConfig())); - $application->add(new OC\Core\Command\Encryption\Enable(\OC::$server->getConfig())); + $application->add(new OC\Core\Command\Encryption\Enable(\OC::$server->getConfig(), \OC::$server->getEncryptionManager())); $application->add(new OC\Core\Command\Encryption\ListModules(\OC::$server->getEncryptionManager())); $application->add(new OC\Core\Command\Encryption\SetDefaultModule(\OC::$server->getEncryptionManager())); $application->add(new OC\Core\Command\Encryption\Status(\OC::$server->getEncryptionManager())); diff --git a/core/templates/installation.php b/core/templates/installation.php index 911bc05069f..b686a1ca68c 100644 --- a/core/templates/installation.php +++ b/core/templates/installation.php @@ -85,7 +85,12 @@ script('core', [ <div id="selectDbType"> <?php foreach($_['databases'] as $type => $label): ?> <?php if(count($_['databases']) === 1): ?> - <p class="info"><?php p($l->t( 'Only %s is available.', array($label) )); ?>.</p> + <p class="info"> + <?php p($l->t( 'Only %s is available.', array($label) )); ?> + <?php p($l->t( 'Install and activate additional PHP modules to choose other database types.' )); ?><br> + <a href="<?php print_unescaped(link_to_docs('admin-source_install')); ?>" target="_blank"> + <?php p($l->t( 'For more details check out the documentation.' )); ?> ↗</a> + </p> <input type="hidden" id="dbtype" name="dbtype" value="<?php p($type) ?>"> <?php else: ?> <input type="radio" name="dbtype" value="<?php p($type) ?>" id="<?php p($type) ?>" diff --git a/lib/base.php b/lib/base.php index a9d582dcc39..b7f19c96406 100644 --- a/lib/base.php +++ b/lib/base.php @@ -654,7 +654,7 @@ class OC { self::registerCacheHooks(); self::registerFilesystemHooks(); - if (\OC::$server->getSystemConfig()->getValue('enable_previews', false)) { + if (\OC::$server->getSystemConfig()->getValue('enable_previews', true)) { self::registerPreviewHooks(); } self::registerShareHooks(); @@ -727,6 +727,8 @@ class OC { if ($enabled) { \OCP\Util::connectHook('OCP\Share', 'post_shared', 'OC\Encryption\HookManager', 'postShared'); \OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OC\Encryption\HookManager', 'postUnshared'); + \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OC\Encryption\HookManager', 'postRename'); + \OCP\Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', 'OC\Encryption\HookManager', 'postRestore'); } } diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js index 52dedbaf1f6..1320491be01 100644 --- a/lib/l10n/bg_BG.js +++ b/lib/l10n/bg_BG.js @@ -113,8 +113,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.", "Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.", "PHP module %s not installed." : "PHP модулът %s не е инсталиран.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP е конфигуриран да запълва post данните от ниско ниво. От PHP 5.6 насам това води до връщането на грешки при абсолютно валиден код.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "За да поправите този проблем, задайте на <code>always_populate_raw_post_data</code> стойност <code>-1</code> във вашоя php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?", diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json index 3641d88e52d..60f21770939 100644 --- a/lib/l10n/bg_BG.json +++ b/lib/l10n/bg_BG.json @@ -111,8 +111,6 @@ "Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.", "Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.", "PHP module %s not installed." : "PHP модулът %s не е инсталиран.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP е конфигуриран да запълва post данните от ниско ниво. От PHP 5.6 насам това води до връщането на грешки при абсолютно валиден код.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "За да поправите този проблем, задайте на <code>always_populate_raw_post_data</code> стойност <code>-1</code> във вашоя php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?", diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js index 1608224356d..d19306a6d3f 100644 --- a/lib/l10n/cs_CZ.js +++ b/lib/l10n/cs_CZ.js @@ -133,8 +133,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "Úprava tohoto nastavení v php.ini opět rozběhne ownCloud", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload je nastaveno na \"%s\" místo očekávané hodnoty \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pro nápravu nastavte <code>mbstring.func_overload</code> na <code>0</code> v souboru php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurováno vytvářet raw post data. Od verze 5.6 bude toto nastavení vést PHP k vypisování hlášení i pro perfektně správný kód.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pro nápravu tohoto chování nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> ve svém php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?", diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json index d58dca2b2d7..3b4e01fefd1 100644 --- a/lib/l10n/cs_CZ.json +++ b/lib/l10n/cs_CZ.json @@ -131,8 +131,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "Úprava tohoto nastavení v php.ini opět rozběhne ownCloud", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload je nastaveno na \"%s\" místo očekávané hodnoty \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pro nápravu nastavte <code>mbstring.func_overload</code> na <code>0</code> v souboru php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurováno vytvářet raw post data. Od verze 5.6 bude toto nastavení vést PHP k vypisování hlášení i pro perfektně správný kód.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pro nápravu tohoto chování nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> ve svém php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?", diff --git a/lib/l10n/da.js b/lib/l10n/da.js index 51bea871103..0647d110366 100644 --- a/lib/l10n/da.js +++ b/lib/l10n/da.js @@ -131,8 +131,6 @@ OC.L10N.register( "PHP module %s not installed." : "PHP-modulet %s er ikke installeret.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-indstillingen \"%s\" er ikke angivet til \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Justeres denne indstilling i php.ini, så vil ownCloud kunne køre igen", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigureret til at udfylde rå postdata. Siden PHP 5.6 har dette ført til, at PHP smider med notitser for fuldstændig gyldig kode.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For at rette dette problem, så angiv <code>always_populate_raw_post_data</code> til <code>-1</code> i din php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator", "PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremstår stadig som fraværende?", diff --git a/lib/l10n/da.json b/lib/l10n/da.json index 52dbd980311..0fd2986f905 100644 --- a/lib/l10n/da.json +++ b/lib/l10n/da.json @@ -129,8 +129,6 @@ "PHP module %s not installed." : "PHP-modulet %s er ikke installeret.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-indstillingen \"%s\" er ikke angivet til \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Justeres denne indstilling i php.ini, så vil ownCloud kunne køre igen", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigureret til at udfylde rå postdata. Siden PHP 5.6 har dette ført til, at PHP smider med notitser for fuldstændig gyldig kode.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For at rette dette problem, så angiv <code>always_populate_raw_post_data</code> til <code>-1</code> i din php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator", "PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremstår stadig som fraværende?", diff --git a/lib/l10n/de.js b/lib/l10n/de.js index 68417b3f417..f501a65da8a 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -131,8 +131,8 @@ OC.L10N.register( "PHP module %s not installed." : "PHP-Modul %s nicht installiert.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.", "Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setze <code>always_populate_raw_post_data</code> in Deiner php.ini auf <code>-1</code>, um dieses Problem zu beheben.", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setze in Deiner php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index fa175edd990..2d384d00a48 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -129,8 +129,8 @@ "PHP module %s not installed." : "PHP-Modul %s nicht installiert.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.", "Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setze <code>always_populate_raw_post_data</code> in Deiner php.ini auf <code>-1</code>, um dieses Problem zu beheben.", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setze in Deiner php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?", diff --git a/lib/l10n/de_AT.js b/lib/l10n/de_AT.js index 93afb7482f4..3f534e7e9fb 100644 --- a/lib/l10n/de_AT.js +++ b/lib/l10n/de_AT.js @@ -2,6 +2,7 @@ OC.L10N.register( "lib", { "Help" : "Hilfe", - "Personal" : "Persönlich" + "Personal" : "Persönlich", + "seconds ago" : "Sekunden zuvor" }, "nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/de_AT.json b/lib/l10n/de_AT.json index ed22677418e..5702c60934e 100644 --- a/lib/l10n/de_AT.json +++ b/lib/l10n/de_AT.json @@ -1,5 +1,6 @@ { "translations": { "Help" : "Hilfe", - "Personal" : "Persönlich" + "Personal" : "Persönlich", + "seconds ago" : "Sekunden zuvor" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index 09646e0de0a..a813a654e35 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -131,8 +131,8 @@ OC.L10N.register( "PHP module %s not installed." : "PHP-Modul %s nicht installiert.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.", "Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>always_populate_raw_post_data</code> auf <code>-1</code>, um dieses Problem zu beheben.", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index 82d14e221b9..c92e972bdbb 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -129,8 +129,8 @@ "PHP module %s not installed." : "PHP-Modul %s nicht installiert.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.", "Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>always_populate_raw_post_data</code> auf <code>-1</code>, um dieses Problem zu beheben.", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?", diff --git a/lib/l10n/el.js b/lib/l10n/el.js index 0fe13da2095..9b15850dbdb 100644 --- a/lib/l10n/el.js +++ b/lib/l10n/el.js @@ -128,8 +128,8 @@ OC.L10N.register( "PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ", "PHP setting \"%s\" is not set to \"%s\"." : "Η ρύθμιση \"%s\"της PHP δεν είναι ορισμένη σε \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Η διόρθωση της ρύθμισης στο αρχείο php.ini θα επιτρέψει στο ownCloud να επαναλειτουργήσει", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "Η PHP έχει ρυθμιστεί για τη αρχικοποίηση των ακατέργαστων δεδομένων αποστολής. Από την PHP έκδοση 5.6 αυτό θα οδηγήσει την PHP στην παραγωγή ειδοποιήσεων σε απόλυτα έγκυρο κώδικα.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Για να διορθώσετε το πρόβλημα ορίστε το <code>always_populate_raw_post_data</code> ως <code>-1</code> στο αρχείο php.ini", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Για να διορθώσετε αυτό το πρόβλημα ορίστε το <code>mbstring.func_overload</code> σε <code>0</code> στο αρχείο php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;", diff --git a/lib/l10n/el.json b/lib/l10n/el.json index bc31ae390a4..45a39a98096 100644 --- a/lib/l10n/el.json +++ b/lib/l10n/el.json @@ -126,8 +126,8 @@ "PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ", "PHP setting \"%s\" is not set to \"%s\"." : "Η ρύθμιση \"%s\"της PHP δεν είναι ορισμένη σε \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Η διόρθωση της ρύθμισης στο αρχείο php.ini θα επιτρέψει στο ownCloud να επαναλειτουργήσει", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "Η PHP έχει ρυθμιστεί για τη αρχικοποίηση των ακατέργαστων δεδομένων αποστολής. Από την PHP έκδοση 5.6 αυτό θα οδηγήσει την PHP στην παραγωγή ειδοποιήσεων σε απόλυτα έγκυρο κώδικα.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Για να διορθώσετε το πρόβλημα ορίστε το <code>always_populate_raw_post_data</code> ως <code>-1</code> στο αρχείο php.ini", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Για να διορθώσετε αυτό το πρόβλημα ορίστε το <code>mbstring.func_overload</code> σε <code>0</code> στο αρχείο php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;", diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index dbaa543d153..eaa94cb2d1b 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -131,8 +131,6 @@ OC.L10N.register( "PHP module %s not installed." : "PHP module %s not installed.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP setting \"%s\" is not set to \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Adjusting this setting in php.ini will make ownCloud run again", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index 666ad11212f..8c7f2b820eb 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -129,8 +129,6 @@ "PHP module %s not installed." : "PHP module %s not installed.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP setting \"%s\" is not set to \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Adjusting this setting in php.ini will make ownCloud run again", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index 5487d9b27b3..c9259e77695 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -131,8 +131,8 @@ OC.L10N.register( "PHP module %s not installed." : "El módulo PHP %s no está instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "La opción PHP \"%s\" no es \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta opción en php.ini permitirá que ownCloud vuelva a funcionar", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para transmitir datos raw. Desde la versión 5.6 de PHP se permitirá enviar noticias perfectamente validas.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arreglar este error, cambia <code>always_populate_raw_post_data</code> a <code>-1</code> en su php.ini", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definida como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para solucionarlo, defina la función <code>mbstring.func_overload</code> a <code>0</code> en su php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 5e2e0d439f3..7d0978827e1 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -129,8 +129,8 @@ "PHP module %s not installed." : "El módulo PHP %s no está instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "La opción PHP \"%s\" no es \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta opción en php.ini permitirá que ownCloud vuelva a funcionar", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para transmitir datos raw. Desde la versión 5.6 de PHP se permitirá enviar noticias perfectamente validas.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arreglar este error, cambia <code>always_populate_raw_post_data</code> a <code>-1</code> en su php.ini", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definida como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para solucionarlo, defina la función <code>mbstring.func_overload</code> a <code>0</code> en su php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran", diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js index 84e2d3ff60d..60ee82cdb61 100644 --- a/lib/l10n/eu.js +++ b/lib/l10n/eu.js @@ -116,7 +116,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.", "Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.", "PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Hau konpontzeko ezarri <code>always_populate_raw_post_data</code> berdin <code>-1</code> zure php.inian", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?", diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json index 4158f94dca0..80a932eb70a 100644 --- a/lib/l10n/eu.json +++ b/lib/l10n/eu.json @@ -114,7 +114,6 @@ "Please install one of these locales on your system and restart your webserver." : "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.", "Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.", "PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Hau konpontzeko ezarri <code>always_populate_raw_post_data</code> berdin <code>-1</code> zure php.inian", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?", diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js index 3b8f7c04a0e..54161ba47e6 100644 --- a/lib/l10n/fi_FI.js +++ b/lib/l10n/fi_FI.js @@ -114,7 +114,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "Tämän asetuksen muuttaminen php.ini-tiedostossa saattaa ownCloudin jälleen toimintakykyiseksi", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload on asetettu arvoon \"%s\" odotetun arvon \"0\" sijaan", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Korjaa tämä ongelma asettamalla <code>mbstring.func_overload</code> arvoon <code>0</code> php.ini-tiedostossasi", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Korjaa ongelma asettamalla asetuksen <code>always_populate_raw_post_data</code> arvoksi <code>-1</code> php.ini-tiedostossa", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?", "Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan", diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json index fb648fb3ca8..35bf7f8257d 100644 --- a/lib/l10n/fi_FI.json +++ b/lib/l10n/fi_FI.json @@ -112,7 +112,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "Tämän asetuksen muuttaminen php.ini-tiedostossa saattaa ownCloudin jälleen toimintakykyiseksi", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload on asetettu arvoon \"%s\" odotetun arvon \"0\" sijaan", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Korjaa tämä ongelma asettamalla <code>mbstring.func_overload</code> arvoon <code>0</code> php.ini-tiedostossasi", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Korjaa ongelma asettamalla asetuksen <code>always_populate_raw_post_data</code> arvoksi <code>-1</code> php.ini-tiedostossa", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?", "Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan", diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js index f6d2512e250..45f6db84447 100644 --- a/lib/l10n/fr.js +++ b/lib/l10n/fr.js @@ -130,8 +130,8 @@ OC.L10N.register( "PHP module %s not installed." : "Le module PHP %s n’est pas installé.", "PHP setting \"%s\" is not set to \"%s\"." : "Le paramètre PHP \"%s\" n'est pas \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Ajuster ce paramètre dans php.ini permettra à ownCloud de fonctionner à nouveau", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP est configuré pour remplir des données brutes POST. A partir de PHP 5.6, cela va générer des Notices pour du code parfaitement valide.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pour corriger ce problème, configurez <code>always_populate_raw_post_data</code> à <code>-1</code> dans votre php.ini", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload est mis à \"%s\" au lieu de la valeur \"0\" attendue", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pour corriger ce problème mettez <code>mbstring.func_overload</code> à <code>0</code> dans votre php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes du code. Cela rendra plusieurs applications de base inaccessibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?", diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json index c36eed72923..6e706dae417 100644 --- a/lib/l10n/fr.json +++ b/lib/l10n/fr.json @@ -128,8 +128,8 @@ "PHP module %s not installed." : "Le module PHP %s n’est pas installé.", "PHP setting \"%s\" is not set to \"%s\"." : "Le paramètre PHP \"%s\" n'est pas \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Ajuster ce paramètre dans php.ini permettra à ownCloud de fonctionner à nouveau", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP est configuré pour remplir des données brutes POST. A partir de PHP 5.6, cela va générer des Notices pour du code parfaitement valide.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pour corriger ce problème, configurez <code>always_populate_raw_post_data</code> à <code>-1</code> dans votre php.ini", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload est mis à \"%s\" au lieu de la valeur \"0\" attendue", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pour corriger ce problème mettez <code>mbstring.func_overload</code> à <code>0</code> dans votre php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes du code. Cela rendra plusieurs applications de base inaccessibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?", diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js index 0db02664cca..10f10ec123d 100644 --- a/lib/l10n/gl.js +++ b/lib/l10n/gl.js @@ -133,8 +133,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "Facer este axuste en php.ini fará que ownCloud volva executarse", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está estabelecido a «%s» no canto do valor «0» agardado", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para arranxar este problema, estabeleza <code>mbstring.func_overload</code> a <code>0</code> no ficheiro php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para encher datos de código en bruto. Desde PHP 5.6 isto levará a que PHP forneza avisos con código perfectamente correcto.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arranxar este incidencia estabeleza <code>always_populate_raw_post_data</code> a <code>-1</code> no seu php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Parece que PHP foi configuración para substituír bloques de documentos en liña. Isto fará que varias aplicacións sexan inaccesíbeis.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto probabelmente se debe unha caché/acelerador como Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?", diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json index 307a9a90dcf..d31cf2c4284 100644 --- a/lib/l10n/gl.json +++ b/lib/l10n/gl.json @@ -131,8 +131,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "Facer este axuste en php.ini fará que ownCloud volva executarse", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está estabelecido a «%s» no canto do valor «0» agardado", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para arranxar este problema, estabeleza <code>mbstring.func_overload</code> a <code>0</code> no ficheiro php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para encher datos de código en bruto. Desde PHP 5.6 isto levará a que PHP forneza avisos con código perfectamente correcto.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arranxar este incidencia estabeleza <code>always_populate_raw_post_data</code> a <code>-1</code> no seu php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Parece que PHP foi configuración para substituír bloques de documentos en liña. Isto fará que varias aplicacións sexan inaccesíbeis.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto probabelmente se debe unha caché/acelerador como Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?", diff --git a/lib/l10n/id.js b/lib/l10n/id.js index 765ba6e64ce..e2bb862aefa 100644 --- a/lib/l10n/id.js +++ b/lib/l10n/id.js @@ -130,7 +130,6 @@ OC.L10N.register( "PHP module %s not installed." : "Module PHP %s tidak terinstal.", "PHP setting \"%s\" is not set to \"%s\"." : "Pengaturan PHP \"%s\" tidak diatur ke \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Menyesuaikan pengaturan ini dalam php.ini akan menyebabkan ownCloud berjalan kembali", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Untuk memperbaiki masalah ini, atur <code>always_populate_raw_post_data</code> menjadi <code>-1</code> pada berkas php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?", diff --git a/lib/l10n/id.json b/lib/l10n/id.json index 7ef8ce08f76..c74d5ab2121 100644 --- a/lib/l10n/id.json +++ b/lib/l10n/id.json @@ -128,7 +128,6 @@ "PHP module %s not installed." : "Module PHP %s tidak terinstal.", "PHP setting \"%s\" is not set to \"%s\"." : "Pengaturan PHP \"%s\" tidak diatur ke \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Menyesuaikan pengaturan ini dalam php.ini akan menyebabkan ownCloud berjalan kembali", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Untuk memperbaiki masalah ini, atur <code>always_populate_raw_post_data</code> menjadi <code>-1</code> pada berkas php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index ff923f915aa..b2ecb0c1b25 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -133,8 +133,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "La modifica di questa impostazione nel file php.ini permetterà nuovamente l'esecuzione di ownCloud", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload è impostata a \"%s\" invece del valore atteso \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Per correggere questo problema, imposta <code>mbstring.func_overload</code> a <code>0</code> nel tuo php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP è configurato per popolare dati grezzi di POST. A partire da PHP 5.6 saranno generati avvisi di PHP relativi a codice completamente valido.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Per correggere questo problema, imposta <code>always_populate_raw_post_data</code> a <code>-1</code> nel tuo php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Sembra che PHP sia configurato per rimuovere i blocchi di documentazione in linea. Ciò renderà inaccessibili diverse applicazioni principali.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ciò è causato probabilmente da una cache/acceleratore come Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index bd043d26344..bed8ecffbb9 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -131,8 +131,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "La modifica di questa impostazione nel file php.ini permetterà nuovamente l'esecuzione di ownCloud", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload è impostata a \"%s\" invece del valore atteso \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Per correggere questo problema, imposta <code>mbstring.func_overload</code> a <code>0</code> nel tuo php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP è configurato per popolare dati grezzi di POST. A partire da PHP 5.6 saranno generati avvisi di PHP relativi a codice completamente valido.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Per correggere questo problema, imposta <code>always_populate_raw_post_data</code> a <code>-1</code> nel tuo php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Sembra che PHP sia configurato per rimuovere i blocchi di documentazione in linea. Ciò renderà inaccessibili diverse applicazioni principali.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ciò è causato probabilmente da una cache/acceleratore come Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?", diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js index 5330ce9e81e..096d23d8b23 100644 --- a/lib/l10n/ja.js +++ b/lib/l10n/ja.js @@ -131,10 +131,8 @@ OC.L10N.register( "PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。", "PHP setting \"%s\" is not set to \"%s\"." : "PHP設定の\"%s\"は \"%s\"に設定されていません", "Adjusting this setting in php.ini will make ownCloud run again" : "php.ini 中の設定を調整するとownCloudはもう一度動作するでしょう。 ", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP で、populate raw post data が設定されています。この非推奨コードに対してPHP 5.6 から PHPの警告が表示されるようになりました。", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "この問題を修正するには、php.ini ファイルの<code>always_populate_raw_post_data</code> を <code>-1</code> に設定してください。", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。", "PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?", "Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です", diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json index c2a22ca52f7..239b1f88b8d 100644 --- a/lib/l10n/ja.json +++ b/lib/l10n/ja.json @@ -129,10 +129,8 @@ "PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。", "PHP setting \"%s\" is not set to \"%s\"." : "PHP設定の\"%s\"は \"%s\"に設定されていません", "Adjusting this setting in php.ini will make ownCloud run again" : "php.ini 中の設定を調整するとownCloudはもう一度動作するでしょう。 ", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP で、populate raw post data が設定されています。この非推奨コードに対してPHP 5.6 から PHPの警告が表示されるようになりました。", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "この問題を修正するには、php.ini ファイルの<code>always_populate_raw_post_data</code> を <code>-1</code> に設定してください。", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。", "PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?", "Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です", diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js index 3f615cdd20a..5773154ff70 100644 --- a/lib/l10n/ko.js +++ b/lib/l10n/ko.js @@ -22,6 +22,8 @@ OC.L10N.register( "Users" : "사용자", "Admin" : "관리자", "Recommended" : "추천", + "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud." : "앱 \"%s\"이(가) 이 버전의 ownCloud와 호환되지 않으므로 설치할 수 없습니다.", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "앱 \"%s\"의 다음 의존성을 만족하지 못하므로 설치할 수 없습니다: %s", "No app name specified" : "앱 이름이 지정되지 않았습니다.", "Unknown filetype" : "알 수 없는 파일 형식", "Invalid image" : "잘못된 사진", @@ -36,6 +38,12 @@ OC.L10N.register( "_%n minute ago_::_%n minutes ago_" : ["%n분 전"], "seconds ago" : "초 전", "web services under your control" : "내가 관리하는 웹 서비스", + "Empty filename is not allowed" : "파일 이름을 비워 둘 수 없음", + "Dot files are not allowed" : "점으로 시작하는 파일은 허용되지 않음", + "4-byte characters are not supported in file names" : "파일 이름에 4바이트 글자를 사용할 수 없음", + "File name is a reserved word" : "파일 이름이 예약된 단어임", + "File name contains at least one invalid character" : "파일 이름에 잘못된 글자가 한 자 이상 있음", + "File name is too long" : "파일 이름이 너무 김", "App directory already exists" : "앱 디렉터리가 이미 존재합니다.", "Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s", "No source specified when installing app" : "앱을 설치할 때 소스가 지정되지 않았습니다.", @@ -70,11 +78,13 @@ OC.L10N.register( "PostgreSQL username and/or password not valid" : "PostgreSQL 사용자 이름 또는 암호가 잘못되었습니다", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X은 지원하지 않으며 %s이(가) 이 플랫폼에서 올바르게 작동하지 않을 수도 있습니다. 본인 책임으로 사용하십시오! ", "For the best results, please consider using a GNU/Linux server instead." : "더 좋은 결과를 얻으려면 GNU/Linux 서버를 사용하는 것을 권장합니다.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "%s 인스턴스가 32비트 PHP 환경에서 실행 중이고 php.ini에 open_basedir이 설정되어 있습니다. 4GB 이상의 파일 처리에 문제가 생길 수 있으므로 추천하지 않습니다.", "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "php.ini의 open_basedir 설정을 삭제하거나 64비트 PHP로 전환하십시오.", "Set an admin username." : "관리자의 사용자 이름을 설정합니다.", "Set an admin password." : "관리자의 암호를 설정합니다.", "Can't create or write into the data directory %s" : "데이터 디렉터리 %s을(를) 만들거나 기록할 수 없음", "%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다", + "%s via %s" : "%s(%s 경유)", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %i 형식의 공유를 허용하지 않습니다", "Sharing %s failed, because the file does not exist" : "%s을(를) 공유할 수 없습니다. 파일이 존재하지 않습니다", "You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다", @@ -92,6 +102,7 @@ OC.L10N.register( "Setting permissions for %s failed, because the item was not found" : "%s의 권한을 설정할 수 없습니다. 항목을 찾을 수 없습니다", "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "만료 날짜를 설정할 수 없습니다. 최대 공유 허용 기한이 %s입니다.", "Cannot set expiration date. Expiration date is in the past" : "만료 날짜를 설정할 수 없습니다. 만료 날짜가 과거입니다", + "Cannot clear expiration date. Shares are required to have an expiration date." : "만료 날짜를 비워 둘 수 없습니다. 공유되는 항목에는 만료 날짜가 필요합니다.", "Sharing backend %s must implement the interface OCP\\Share_Backend" : "공유 백엔드 %s에서 OCP\\Share_Backend 인터페이스를 구현해야 함", "Sharing backend %s not found" : "공유 백엔드 %s을(를) 찾을 수 없음", "Sharing backend for %s not found" : "%s의 공유 백엔드를 찾을 수 없음", @@ -106,6 +117,8 @@ OC.L10N.register( "A valid password must be provided" : "올바른 암호를 입력해야 합니다", "The username is already being used" : "사용자 이름이 이미 존재합니다", "No database drivers (sqlite, mysql, or postgresql) installed." : "데이터베이스 드라이버(sqlite, mysql, postgresql)가 설치되지 않았습니다.", + "Microsoft Windows Platform is not supported" : "Microsoft Windows 플랫폼은 지원하지 않음", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "ownCloud 서버를 Microsoft Windows 환경에서 실행하는 것은 지원되지 않습니다. 서버를 이전할 수 없다면 가상 Linux 서버를 사용하는 것을 추천합니다. Linux 패키지 및 쉽게 배포 가능한 가상 머신 이미지는 <a href=\"%s\">%s</a>에서 찾을 수 있습니다. 기존 설치본을 Linux로 이전할 때 참고할 팁과 이전 스크립트는 <a href=\"%s\">문서</a>에서 찾을 수 있습니다.", "Cannot write into \"config\" directory" : "\"config\" 디렉터리에 기록할 수 없습니다", "Cannot write into \"apps\" directory" : "\"apps\" 디렉터리에 기록할 수 없습니다", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "%sapps 디렉터리에 웹 서버 쓰기 권한%s을 주거나 설정 파일에서 앱 스토어를 비활성화하면 해결됩니다.", @@ -116,8 +129,10 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "다음 중 하나 이상의 로캘을 시스템에 설치하고 웹 서버를 다시 시작하십시오.", "Please ask your server administrator to install the module." : "서버 관리자에게 모듈 설치를 요청하십시오.", "PHP module %s not installed." : "PHP 모듈 %s이(가) 설치되지 않았습니다.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP에서 원시 POST 데이터 값을 채워 넣도록 구성되어 있지 않습니다. 이 경우 PHP 5.6 버전부터는 완전히 유효한 코드에서도 알림 메시지를 발생시킵니다.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "이 문제를 해결하러면 php.ini 설정 파일에서 <code>always_populate_raw_post_data</code>의 값을 <code>-1</code>로 설정하십시오.", + "PHP setting \"%s\" is not set to \"%s\"." : "PHP 설정 \"%s\"이(가) \"%s\"(으)로 설정되어 있지 않습니다.", + "Adjusting this setting in php.ini will make ownCloud run again" : "php.ini에서 이 설정을 변경하면 ownCloud가 다시 실행됩니다", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload 값이 \"%s\"(으)로 설정되어 있으나 필요한 값은 \"0\"입니다", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "이 문제를 해결하려면 php.ini에서 <code>mbstring.func_overload</code> 값을 <code>0</code>으로 설정하십시오", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", "PHP modules have been installed, but they are still listed as missing?" : "PHP 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?", @@ -128,6 +143,8 @@ OC.L10N.register( "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL 버전 9 이상이 있는지 확인하시고, 자세한 정보는 로그를 확인하십시오", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.", "Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음", + "Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함", + "Check the value of \"datadirectory\" in your configuration" : "설정 중 \"datadirectory\" 값을 확인하십시오", "Data directory (%s) is invalid" : "데이터 디렉터리(%s)가 잘못됨", "Please check that the data directory contains a file \".ocdata\" in its root." : "데이터 디렉터리의 최상위 경로에 \".ocdata\" 파일이 있는지 확인하십시오.", "Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다." diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json index 833cc02d179..1e7f247ca76 100644 --- a/lib/l10n/ko.json +++ b/lib/l10n/ko.json @@ -20,6 +20,8 @@ "Users" : "사용자", "Admin" : "관리자", "Recommended" : "추천", + "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud." : "앱 \"%s\"이(가) 이 버전의 ownCloud와 호환되지 않으므로 설치할 수 없습니다.", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "앱 \"%s\"의 다음 의존성을 만족하지 못하므로 설치할 수 없습니다: %s", "No app name specified" : "앱 이름이 지정되지 않았습니다.", "Unknown filetype" : "알 수 없는 파일 형식", "Invalid image" : "잘못된 사진", @@ -34,6 +36,12 @@ "_%n minute ago_::_%n minutes ago_" : ["%n분 전"], "seconds ago" : "초 전", "web services under your control" : "내가 관리하는 웹 서비스", + "Empty filename is not allowed" : "파일 이름을 비워 둘 수 없음", + "Dot files are not allowed" : "점으로 시작하는 파일은 허용되지 않음", + "4-byte characters are not supported in file names" : "파일 이름에 4바이트 글자를 사용할 수 없음", + "File name is a reserved word" : "파일 이름이 예약된 단어임", + "File name contains at least one invalid character" : "파일 이름에 잘못된 글자가 한 자 이상 있음", + "File name is too long" : "파일 이름이 너무 김", "App directory already exists" : "앱 디렉터리가 이미 존재합니다.", "Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s", "No source specified when installing app" : "앱을 설치할 때 소스가 지정되지 않았습니다.", @@ -68,11 +76,13 @@ "PostgreSQL username and/or password not valid" : "PostgreSQL 사용자 이름 또는 암호가 잘못되었습니다", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X은 지원하지 않으며 %s이(가) 이 플랫폼에서 올바르게 작동하지 않을 수도 있습니다. 본인 책임으로 사용하십시오! ", "For the best results, please consider using a GNU/Linux server instead." : "더 좋은 결과를 얻으려면 GNU/Linux 서버를 사용하는 것을 권장합니다.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "%s 인스턴스가 32비트 PHP 환경에서 실행 중이고 php.ini에 open_basedir이 설정되어 있습니다. 4GB 이상의 파일 처리에 문제가 생길 수 있으므로 추천하지 않습니다.", "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "php.ini의 open_basedir 설정을 삭제하거나 64비트 PHP로 전환하십시오.", "Set an admin username." : "관리자의 사용자 이름을 설정합니다.", "Set an admin password." : "관리자의 암호를 설정합니다.", "Can't create or write into the data directory %s" : "데이터 디렉터리 %s을(를) 만들거나 기록할 수 없음", "%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다", + "%s via %s" : "%s(%s 경유)", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %i 형식의 공유를 허용하지 않습니다", "Sharing %s failed, because the file does not exist" : "%s을(를) 공유할 수 없습니다. 파일이 존재하지 않습니다", "You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다", @@ -90,6 +100,7 @@ "Setting permissions for %s failed, because the item was not found" : "%s의 권한을 설정할 수 없습니다. 항목을 찾을 수 없습니다", "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "만료 날짜를 설정할 수 없습니다. 최대 공유 허용 기한이 %s입니다.", "Cannot set expiration date. Expiration date is in the past" : "만료 날짜를 설정할 수 없습니다. 만료 날짜가 과거입니다", + "Cannot clear expiration date. Shares are required to have an expiration date." : "만료 날짜를 비워 둘 수 없습니다. 공유되는 항목에는 만료 날짜가 필요합니다.", "Sharing backend %s must implement the interface OCP\\Share_Backend" : "공유 백엔드 %s에서 OCP\\Share_Backend 인터페이스를 구현해야 함", "Sharing backend %s not found" : "공유 백엔드 %s을(를) 찾을 수 없음", "Sharing backend for %s not found" : "%s의 공유 백엔드를 찾을 수 없음", @@ -104,6 +115,8 @@ "A valid password must be provided" : "올바른 암호를 입력해야 합니다", "The username is already being used" : "사용자 이름이 이미 존재합니다", "No database drivers (sqlite, mysql, or postgresql) installed." : "데이터베이스 드라이버(sqlite, mysql, postgresql)가 설치되지 않았습니다.", + "Microsoft Windows Platform is not supported" : "Microsoft Windows 플랫폼은 지원하지 않음", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "ownCloud 서버를 Microsoft Windows 환경에서 실행하는 것은 지원되지 않습니다. 서버를 이전할 수 없다면 가상 Linux 서버를 사용하는 것을 추천합니다. Linux 패키지 및 쉽게 배포 가능한 가상 머신 이미지는 <a href=\"%s\">%s</a>에서 찾을 수 있습니다. 기존 설치본을 Linux로 이전할 때 참고할 팁과 이전 스크립트는 <a href=\"%s\">문서</a>에서 찾을 수 있습니다.", "Cannot write into \"config\" directory" : "\"config\" 디렉터리에 기록할 수 없습니다", "Cannot write into \"apps\" directory" : "\"apps\" 디렉터리에 기록할 수 없습니다", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "%sapps 디렉터리에 웹 서버 쓰기 권한%s을 주거나 설정 파일에서 앱 스토어를 비활성화하면 해결됩니다.", @@ -114,8 +127,10 @@ "Please install one of these locales on your system and restart your webserver." : "다음 중 하나 이상의 로캘을 시스템에 설치하고 웹 서버를 다시 시작하십시오.", "Please ask your server administrator to install the module." : "서버 관리자에게 모듈 설치를 요청하십시오.", "PHP module %s not installed." : "PHP 모듈 %s이(가) 설치되지 않았습니다.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP에서 원시 POST 데이터 값을 채워 넣도록 구성되어 있지 않습니다. 이 경우 PHP 5.6 버전부터는 완전히 유효한 코드에서도 알림 메시지를 발생시킵니다.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "이 문제를 해결하러면 php.ini 설정 파일에서 <code>always_populate_raw_post_data</code>의 값을 <code>-1</code>로 설정하십시오.", + "PHP setting \"%s\" is not set to \"%s\"." : "PHP 설정 \"%s\"이(가) \"%s\"(으)로 설정되어 있지 않습니다.", + "Adjusting this setting in php.ini will make ownCloud run again" : "php.ini에서 이 설정을 변경하면 ownCloud가 다시 실행됩니다", + "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload 값이 \"%s\"(으)로 설정되어 있으나 필요한 값은 \"0\"입니다", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "이 문제를 해결하려면 php.ini에서 <code>mbstring.func_overload</code> 값을 <code>0</code>으로 설정하십시오", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", "PHP modules have been installed, but they are still listed as missing?" : "PHP 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?", @@ -126,6 +141,8 @@ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL 버전 9 이상이 있는지 확인하시고, 자세한 정보는 로그를 확인하십시오", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.", "Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음", + "Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함", + "Check the value of \"datadirectory\" in your configuration" : "설정 중 \"datadirectory\" 값을 확인하십시오", "Data directory (%s) is invalid" : "데이터 디렉터리(%s)가 잘못됨", "Please check that the data directory contains a file \".ocdata\" in its root." : "데이터 디렉터리의 최상위 경로에 \".ocdata\" 파일이 있는지 확인하십시오.", "Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다." diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js index 2f450bb128b..67e073cf45e 100644 --- a/lib/l10n/nb_NO.js +++ b/lib/l10n/nb_NO.js @@ -128,8 +128,6 @@ OC.L10N.register( "PHP module %s not installed." : "PHP-modul %s er ikke installert.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-innstilling \"%s\" er ikke satt til \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Endring av denne innstillingen i php.ini vil få ownCloud til å kjøre igjen.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigurert til å fylle \"raw post data\". Fra og med PHP 5.6 vil dette føre til at PHP utsteder notiser for fullstendig gyldig kode.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For å fikse dette problemet, sett <code>always_populate_raw_post_data</code> til <code>-1</code> i php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut for at PHP er satt opp til å fjerne innebygde doc blocks. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?", diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json index 080426289c5..63f6d2c6699 100644 --- a/lib/l10n/nb_NO.json +++ b/lib/l10n/nb_NO.json @@ -126,8 +126,6 @@ "PHP module %s not installed." : "PHP-modul %s er ikke installert.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-innstilling \"%s\" er ikke satt til \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Endring av denne innstillingen i php.ini vil få ownCloud til å kjøre igjen.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigurert til å fylle \"raw post data\". Fra og med PHP 5.6 vil dette føre til at PHP utsteder notiser for fullstendig gyldig kode.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For å fikse dette problemet, sett <code>always_populate_raw_post_data</code> til <code>-1</code> i php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut for at PHP er satt opp til å fjerne innebygde doc blocks. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?", diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js index 6866fabf488..79dbfe309e0 100644 --- a/lib/l10n/nl.js +++ b/lib/l10n/nl.js @@ -133,8 +133,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "Het in php.ini bijstellen hiervan laat ownCloud weer werken", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload is ingesteld op \"%s\" in plaats van op de verwachte waarde \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Om dit op te lossen stel <code>mbstring.func_overload</code> in op <code>0</code> in uw php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is geconfigureerd om ruwe data van berichten te vullen. Vanaf PHP 5.6 leidt dit tot PHP meldingen voor echt wel geldige code.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Om dit op te lossen stel de waarde <code>always_populate_raw_post_data</code> in op <code>-1</code> in php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is blijkbaar zo ingesteld dat inline doc blokken worden gestript. Hierdoor worden verschillende kernmodules onbruikbaar.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dit wordt vermoedelijk veroorzaakt door een cache/accelerator, zoals Zend OPcache of eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?", diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json index 1b0a984462e..723bf8adce0 100644 --- a/lib/l10n/nl.json +++ b/lib/l10n/nl.json @@ -131,8 +131,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "Het in php.ini bijstellen hiervan laat ownCloud weer werken", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload is ingesteld op \"%s\" in plaats van op de verwachte waarde \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Om dit op te lossen stel <code>mbstring.func_overload</code> in op <code>0</code> in uw php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is geconfigureerd om ruwe data van berichten te vullen. Vanaf PHP 5.6 leidt dit tot PHP meldingen voor echt wel geldige code.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Om dit op te lossen stel de waarde <code>always_populate_raw_post_data</code> in op <code>-1</code> in php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is blijkbaar zo ingesteld dat inline doc blokken worden gestript. Hierdoor worden verschillende kernmodules onbruikbaar.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dit wordt vermoedelijk veroorzaakt door een cache/accelerator, zoals Zend OPcache of eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index ff0a0be72a8..49c21be6f42 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -130,8 +130,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta configuração no php.ini irá fazer o ownCloud rodar novamente", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definido para \"%s\" em vez do valor esperado \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corrigir esse problema defina <code>mbstring.func_overload</code> para <code>0</code> em seu php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para preencher os dados pós-dados. Desde o PHP 5.6 isto levará o PHP a enviar avisos para códigos perfeitamente válidos.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir esse problema configure <code> always_populate_raw_post_data </code> para <code> -1 </code> em seu arquivo de configuração php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP é, aparentemente, a configuração para retirar blocos doc inline. Isso fará com que vários aplicativos do núcleo fiquem inacessíveis.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isso provavelmente é causado por uma cache/acelerador, como Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index b59f082ade2..7227378b0cf 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -128,8 +128,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta configuração no php.ini irá fazer o ownCloud rodar novamente", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definido para \"%s\" em vez do valor esperado \"0\"", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corrigir esse problema defina <code>mbstring.func_overload</code> para <code>0</code> em seu php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para preencher os dados pós-dados. Desde o PHP 5.6 isto levará o PHP a enviar avisos para códigos perfeitamente válidos.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir esse problema configure <code> always_populate_raw_post_data </code> para <code> -1 </code> em seu arquivo de configuração php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP é, aparentemente, a configuração para retirar blocos doc inline. Isso fará com que vários aplicativos do núcleo fiquem inacessíveis.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isso provavelmente é causado por uma cache/acelerador, como Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?", diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js index 4150ae6ac1f..86b4a776a6f 100644 --- a/lib/l10n/pt_PT.js +++ b/lib/l10n/pt_PT.js @@ -127,8 +127,6 @@ OC.L10N.register( "PHP module %s not installed." : "O modulo %s PHP não está instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "Configuração PHP \"%s\" não está definida para \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Ajustar esta configuração no php.ini fará com que o ownCloud funcione de novo", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "O PHP está configurado para popular dados raw post. Desde o PHP 5.6 isto levará a que o PHP mostre avisos sobre código perfeitamente válido.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir este problema altere <code>always_populate_raw_post_data</code> para <code>-1</code> no seu php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado a remover blocos doc em linha. Isto vai fazer algumas aplicações basicas inacessíveis.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto é provavelmente causado por uma cache/acelerador como o Zend OPcache or eAcelerador.", "PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?", diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json index b5c11ad28b3..9737e2b3964 100644 --- a/lib/l10n/pt_PT.json +++ b/lib/l10n/pt_PT.json @@ -125,8 +125,6 @@ "PHP module %s not installed." : "O modulo %s PHP não está instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "Configuração PHP \"%s\" não está definida para \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Ajustar esta configuração no php.ini fará com que o ownCloud funcione de novo", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "O PHP está configurado para popular dados raw post. Desde o PHP 5.6 isto levará a que o PHP mostre avisos sobre código perfeitamente válido.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir este problema altere <code>always_populate_raw_post_data</code> para <code>-1</code> no seu php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado a remover blocos doc em linha. Isto vai fazer algumas aplicações basicas inacessíveis.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto é provavelmente causado por uma cache/acelerador como o Zend OPcache or eAcelerador.", "PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 6bb49040ba9..01ca1d60034 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -131,8 +131,6 @@ OC.L10N.register( "PHP module %s not installed." : "Не установлен PHP-модуль %s.", "PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не установлен в \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Установка этого параметра в php.ini позволит запуститься ownCloud снова.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "В PHP включена директива \"always_populate_raw_post_data\". PHP версии 5.6 и выше, при включенной директиве, добавляет уведомления в журнал даже для абсолютно рабочего кода.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Что-бы исправить эту ошибку, укажите значение <code>-1</code> в качестве значения параметра <code>always_populate_raw_post_data</code> в вашем php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Модули PHP были установлены, но они все еще перечислены как недостающие?", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 816dbfc4372..908970ec603 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -129,8 +129,6 @@ "PHP module %s not installed." : "Не установлен PHP-модуль %s.", "PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не установлен в \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Установка этого параметра в php.ini позволит запуститься ownCloud снова.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "В PHP включена директива \"always_populate_raw_post_data\". PHP версии 5.6 и выше, при включенной директиве, добавляет уведомления в журнал даже для абсолютно рабочего кода.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Что-бы исправить эту ошибку, укажите значение <code>-1</code> в качестве значения параметра <code>always_populate_raw_post_data</code> в вашем php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Модули PHP были установлены, но они все еще перечислены как недостающие?", diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js index f2813893468..38c18b431ef 100644 --- a/lib/l10n/sk_SK.js +++ b/lib/l10n/sk_SK.js @@ -119,8 +119,6 @@ OC.L10N.register( "PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.", "PHP setting \"%s\" is not set to \"%s\"." : "Voľba PHP „%s“ nie je nastavená na „%s“.", "Adjusting this setting in php.ini will make ownCloud run again" : "Zmenou tejto voľby v php.ini znovu uvediete váš ownCloud do prevádzky", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurovaný tak, aby vytváralo raw post dáta. Od verzie 5.6 to nastavenie bude PHP vypisovať oznámenia aj pre dokonale platný kód.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Ak chcete tento problém vyriešiť, nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> vo vašom php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky komentárov. To zneprístupní niekoľko základných aplikácií.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sa tvária, že chýbajú?", diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json index 67bc201fd81..031270747b7 100644 --- a/lib/l10n/sk_SK.json +++ b/lib/l10n/sk_SK.json @@ -117,8 +117,6 @@ "PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.", "PHP setting \"%s\" is not set to \"%s\"." : "Voľba PHP „%s“ nie je nastavená na „%s“.", "Adjusting this setting in php.ini will make ownCloud run again" : "Zmenou tejto voľby v php.ini znovu uvediete váš ownCloud do prevádzky", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurovaný tak, aby vytváralo raw post dáta. Od verzie 5.6 to nastavenie bude PHP vypisovať oznámenia aj pre dokonale platný kód.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Ak chcete tento problém vyriešiť, nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> vo vašom php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky komentárov. To zneprístupní niekoľko základných aplikácií.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sa tvária, že chýbajú?", diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js index 976e8d9ef7a..2f84515b1e5 100644 --- a/lib/l10n/sr.js +++ b/lib/l10n/sr.js @@ -133,8 +133,6 @@ OC.L10N.register( "Adjusting this setting in php.ini will make ownCloud run again" : "Подешавање ове поставке у php.ini фајлу ће омогућити да оунКлауд поново ради", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Вредност mbstring.func_overload је постављена на „%s“ уместо на очекивану вредност „0“", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Да би решили овај проблем поставите <code>mbstring.func_overload</code> на <code>0</code> у фајлу php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "ПХП је подешен да попуњава сирове податке. Од верзије 5.6 то може довести да ПХП шаље упозорења и за потпуно исправан код.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Да би решили овај проблем поставите <code>always_populate_raw_post_data</code> на <code>-1</code> у фајлу php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "ПХП је очигледно подешен да се скида уметнуте док блокова. То ће учинити неколико кључних апликација недоступним.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ово је вероватно изазвано кешом или акцелератором као што су ЗендОПкеш или еАкцелератор.", "PHP modules have been installed, but they are still listed as missing?" : "ПХП модули су инсталирани али се и даље воде као недостајући?", diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json index 9da0d9bce1a..d1fe5d4fe43 100644 --- a/lib/l10n/sr.json +++ b/lib/l10n/sr.json @@ -131,8 +131,6 @@ "Adjusting this setting in php.ini will make ownCloud run again" : "Подешавање ове поставке у php.ini фајлу ће омогућити да оунКлауд поново ради", "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Вредност mbstring.func_overload је постављена на „%s“ уместо на очекивану вредност „0“", "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Да би решили овај проблем поставите <code>mbstring.func_overload</code> на <code>0</code> у фајлу php.ini", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "ПХП је подешен да попуњава сирове податке. Од верзије 5.6 то може довести да ПХП шаље упозорења и за потпуно исправан код.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Да би решили овај проблем поставите <code>always_populate_raw_post_data</code> на <code>-1</code> у фајлу php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "ПХП је очигледно подешен да се скида уметнуте док блокова. То ће учинити неколико кључних апликација недоступним.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ово је вероватно изазвано кешом или акцелератором као што су ЗендОПкеш или еАкцелератор.", "PHP modules have been installed, but they are still listed as missing?" : "ПХП модули су инсталирани али се и даље воде као недостајући?", diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index ca0d8654d75..4a969e8e288 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -131,8 +131,6 @@ OC.L10N.register( "PHP module %s not installed." : "PHP modülü %s yüklü değil.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP ayarı \"%s\", \"%s\" olarak ayarlanmamış.", "Adjusting this setting in php.ini will make ownCloud run again" : "Bu ayarı php.ini içerisinde ayarlamak ownCloud'ı tekrar çalıştıracak.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP, ham gönderi verisini yerleştirmek üzere ayarlanmış. PHP 5.6'dan itibaren tamamen geçerli kod olmasına rağmen PHP bilgi mesajları gösterecektir.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Bu hatayı düzeltmek için php.ini içerisindeki <code>always_populate_raw_post_data</code> ayarını <code>-1</code> olarak ayarlayın", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP satıriçi doc bloklarını ayıklamak üzere yapılandırılmış gibi görünüyor. Bu, bazı çekirdek uygulamalarını erişilemez yapacak.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu, muhtemelen Zend OPcache veya eAccelerator gibi bir önbellek/hızlandırıcı nedeniyle meydana gelir.", "PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index a9bedb5bbf3..add5a27ad60 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -129,8 +129,6 @@ "PHP module %s not installed." : "PHP modülü %s yüklü değil.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP ayarı \"%s\", \"%s\" olarak ayarlanmamış.", "Adjusting this setting in php.ini will make ownCloud run again" : "Bu ayarı php.ini içerisinde ayarlamak ownCloud'ı tekrar çalıştıracak.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP, ham gönderi verisini yerleştirmek üzere ayarlanmış. PHP 5.6'dan itibaren tamamen geçerli kod olmasına rağmen PHP bilgi mesajları gösterecektir.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Bu hatayı düzeltmek için php.ini içerisindeki <code>always_populate_raw_post_data</code> ayarını <code>-1</code> olarak ayarlayın", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP satıriçi doc bloklarını ayıklamak üzere yapılandırılmış gibi görünüyor. Bu, bazı çekirdek uygulamalarını erişilemez yapacak.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu, muhtemelen Zend OPcache veya eAccelerator gibi bir önbellek/hızlandırıcı nedeniyle meydana gelir.", "PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?", diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js index e7e9192ead9..a3a1e55b685 100644 --- a/lib/l10n/uk.js +++ b/lib/l10n/uk.js @@ -128,8 +128,6 @@ OC.L10N.register( "PHP module %s not installed." : "%s модуль PHP не встановлено.", "PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не встановлено в \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Установка цього параметру в php.ini дозволяє запуститися ownCloud знову.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "У PHP включена директива \"always_populate_raw_post_data\". PHP версії 5.6 і вище, при включеній директиві, додає повідомлення в журнал навіть для абсолютно робочого коду.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Щоб виправити цю помилку, вкажіть значення <code> -1 </ code> як значення параметра <code> always_populate_raw_post_data </ code> у вашому php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Модулі PHP були встановлені, але вони все ще перераховані як відсутні?", diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json index 7cea0e7f309..609c498f56d 100644 --- a/lib/l10n/uk.json +++ b/lib/l10n/uk.json @@ -126,8 +126,6 @@ "PHP module %s not installed." : "%s модуль PHP не встановлено.", "PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не встановлено в \"%s\".", "Adjusting this setting in php.ini will make ownCloud run again" : "Установка цього параметру в php.ini дозволяє запуститися ownCloud знову.", - "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "У PHP включена директива \"always_populate_raw_post_data\". PHP версії 5.6 і вище, при включеній директиві, додає повідомлення в журнал навіть для абсолютно робочого коду.", - "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Щоб виправити цю помилку, вкажіть значення <code> -1 </ code> як значення параметра <code> always_populate_raw_post_data </ code> у вашому php.ini", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Модулі PHP були встановлені, але вони все ще перераховані як відсутні?", diff --git a/lib/private/app.php b/lib/private/app.php index aec67e6efd6..a4dd513a5d8 100644 --- a/lib/private/app.php +++ b/lib/private/app.php @@ -385,7 +385,13 @@ class OC_App { public static function getAppNavigationEntries($app) { if (is_file(self::getAppPath($app) . '/appinfo/app.php')) { OC::$server->getNavigationManager()->clear(); - require $app . '/appinfo/app.php'; + try { + require $app . '/appinfo/app.php'; + } catch (\OC\Encryption\Exceptions\ModuleAlreadyExistsException $e) { + // FIXME we should avoid getting this exception in first place, + // For now we just catch it, since we don't care about encryption modules + // when trying to find out, whether the app has a navigation entry. + } return OC::$server->getNavigationManager()->getAll(); } return array(); diff --git a/lib/private/appconfig.php b/lib/private/appconfig.php index a2095c571f3..37532616e1e 100644 --- a/lib/private/appconfig.php +++ b/lib/private/appconfig.php @@ -42,13 +42,14 @@ namespace OC; -use \OC\DB\Connection; +use OC\DB\Connection; +use OCP\IAppConfig; /** * This class provides an easy way for apps to store config values in the * database. */ -class AppConfig implements \OCP\IAppConfig { +class AppConfig implements IAppConfig { /** * @var \OC\DB\Connection $conn */ @@ -64,7 +65,7 @@ class AppConfig implements \OCP\IAppConfig { private $apps = null; /** - * @param \OC\DB\Connection $conn + * @param Connection $conn */ public function __construct(Connection $conn) { $this->conn = $conn; @@ -172,27 +173,31 @@ class AppConfig implements \OCP\IAppConfig { } /** - * sets a value in the appconfig + * Sets a value. If the key did not exist before it will be created. * * @param string $app app * @param string $key key * @param string $value value - * - * Sets a value. If the key did not exist before it will be created. + * @return void */ public function setValue($app, $key, $value) { + $inserted = false; // Does the key exist? no: insert, yes: update. if (!$this->hasKey($app, $key)) { - $data = array( + $inserted = (bool) $this->conn->insertIfNotExist('*PREFIX*appconfig', [ 'appid' => $app, 'configkey' => $key, 'configvalue' => $value, - ); - $this->conn->insert('*PREFIX*appconfig', $data); - } else { + ], [ + 'appid', + 'configkey', + ]); + } + + if (!$inserted) { $oldValue = $this->getValue($app, $key); if($oldValue === strval($value)) { - return true; + return; } $data = array( 'configvalue' => $value, diff --git a/lib/private/appframework/app.php b/lib/private/appframework/app.php index ede97180fe2..f6c1e31cddd 100644 --- a/lib/private/appframework/app.php +++ b/lib/private/appframework/app.php @@ -49,19 +49,22 @@ class App { */ public static function buildAppNamespace($appId, $topNamespace='OCA\\') { // first try to parse the app's appinfo/info.xml <namespace> tag - $filePath = OC_App::getAppPath($appId) . '/appinfo/info.xml'; - $loadEntities = libxml_disable_entity_loader(false); - $xml = @simplexml_load_file($filePath); - libxml_disable_entity_loader($loadEntities); - - if ($xml) { - $result = $xml->xpath('/info/namespace'); - if ($result && count($result) > 0) { - // take first namespace result - return $topNamespace . trim((string) $result[0]); + $appPath = OC_App::getAppPath($appId); + if ($appPath !== false) { + $filePath = "$appPath/appinfo/info.xml"; + if (is_file($filePath)) { + $loadEntities = libxml_disable_entity_loader(false); + $xml = @simplexml_load_file($filePath); + libxml_disable_entity_loader($loadEntities); + if ($xml) { + $result = $xml->xpath('/info/namespace'); + if ($result && count($result) > 0) { + // take first namespace result + return $topNamespace . trim((string) $result[0]); + } + } } } - // if the tag is not found, fall back to uppercasing the first letter return $topNamespace . ucfirst($appId); } diff --git a/lib/private/connector/sabre/dummygetresponseplugin.php b/lib/private/connector/sabre/dummygetresponseplugin.php index 7d57f6021fa..6057236b635 100644 --- a/lib/private/connector/sabre/dummygetresponseplugin.php +++ b/lib/private/connector/sabre/dummygetresponseplugin.php @@ -20,6 +20,8 @@ */ namespace OC\Connector\Sabre; +use Sabre\HTTP\ResponseInterface; +use Sabre\HTTP\RequestInterface; /** * Class DummyGetResponsePlugin is a plugin used to not show a "Not implemented" @@ -42,15 +44,25 @@ class DummyGetResponsePlugin extends \Sabre\DAV\ServerPlugin { * @param \Sabre\DAV\Server $server * @return void */ - function initialize(\Sabre\DAV\Server $server) { + function initialize(\Sabre\DAV\Server $server) { $this->server = $server; - $this->server->on('method:GET', [$this,'httpGet'], 200); + $this->server->on('method:GET', [$this, 'httpGet'], 200); } /** + * @param RequestInterface $request + * @param ResponseInterface $response * @return false */ - function httpGet() { + function httpGet(RequestInterface $request, ResponseInterface $response) { + $string = 'This is the WebDAV interface. It can only be accessed by ' . + 'WebDAV clients such as the ownCloud desktop sync client.'; + $stream = fopen('php://memory','r+'); + fwrite($stream, $string); + rewind($stream); + + $response->setBody($stream); + return false; } } diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php index 8ff5577629d..8e4460ef3b5 100644 --- a/lib/private/connector/sabre/file.php +++ b/lib/private/connector/sabre/file.php @@ -99,8 +99,8 @@ class File extends Node implements IFile { return $this->createFileChunked($data); } - list($storage) = $this->fileView->resolvePath($this->path); - $needsPartFile = $this->needsPartFile($storage) && (strlen($this->path) > 1); + list($partStorage) = $this->fileView->resolvePath($this->path); + $needsPartFile = $this->needsPartFile($partStorage) && (strlen($this->path) > 1); if ($needsPartFile) { // mark file as partial while uploading (ignored by the scanner) @@ -110,14 +110,16 @@ class File extends Node implements IFile { $partFilePath = $this->path; } + // the part file and target file might be on a different storage in case of a single file storage (e.g. single file share) + /** @var \OC\Files\Storage\Storage $partStorage */ + list($partStorage, $internalPartPath) = $this->fileView->resolvePath($partFilePath); /** @var \OC\Files\Storage\Storage $storage */ - list($storage, $internalPartPath) = $this->fileView->resolvePath($partFilePath); - list(, $internalPath) = $this->fileView->resolvePath($this->path); + list($storage, $internalPath) = $this->fileView->resolvePath($this->path); try { - $target = $storage->fopen($internalPartPath, 'wb'); + $target = $partStorage->fopen($internalPartPath, 'wb'); if ($target === false) { \OC_Log::write('webdav', '\OC\Files\Filesystem::fopen() failed', \OC_Log::ERROR); - $storage->unlink($internalPartPath); + $partStorage->unlink($internalPartPath); // because we have no clue about the cause we can only throw back a 500/Internal Server Error throw new Exception('Could not write file contents'); } @@ -130,7 +132,7 @@ class File extends Node implements IFile { if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['REQUEST_METHOD'] !== 'LOCK') { $expected = $_SERVER['CONTENT_LENGTH']; if ($count != $expected) { - $storage->unlink($internalPartPath); + $partStorage->unlink($internalPartPath); throw new BadRequest('expected filesize ' . $expected . ' got ' . $count); } } @@ -159,14 +161,38 @@ class File extends Node implements IFile { } try { + $view = \OC\Files\Filesystem::getView(); + $run = true; + if ($view) { + $hookPath = $view->getRelativePath($this->fileView->getAbsolutePath($this->path)); + + if (!$exists) { + \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_create, array( + \OC\Files\Filesystem::signal_param_path => $hookPath, + \OC\Files\Filesystem::signal_param_run => &$run, + )); + } else { + \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_update, array( + \OC\Files\Filesystem::signal_param_path => $hookPath, + \OC\Files\Filesystem::signal_param_run => &$run, + )); + } + \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_write, array( + \OC\Files\Filesystem::signal_param_path => $hookPath, + \OC\Files\Filesystem::signal_param_run => &$run, + )); + } + if ($needsPartFile) { // rename to correct path try { - $renameOkay = $storage->rename($internalPartPath, $internalPath); - $fileExists = $storage->file_exists($internalPath); - if ($renameOkay === false || $fileExists === false) { - \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR); - $storage->unlink($internalPartPath); + if ($run) { + $renameOkay = $storage->moveFromStorage($partStorage, $internalPartPath, $internalPath); + $fileExists = $storage->file_exists($internalPath); + } + if (!$run || $renameOkay === false || $fileExists === false) { + \OC_Log::write('webdav', 'renaming part file to final file failed', \OC_Log::ERROR); + $partStorage->unlink($internalPartPath); throw new Exception('Could not rename part file to final file'); } } catch (\OCP\Files\LockNotAcquiredException $e) { @@ -176,11 +202,9 @@ class File extends Node implements IFile { } // since we skipped the view we need to scan and emit the hooks ourselves - $storage->getScanner()->scanFile($internalPath); + $partStorage->getScanner()->scanFile($internalPath); - $view = \OC\Files\Filesystem::getView(); if ($view) { - $hookPath = $view->getRelativePath($this->fileView->getAbsolutePath($this->path)); $this->fileView->getUpdater()->propagate($hookPath); if (!$exists) { \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_post_create, array( diff --git a/lib/private/connector/sabre/quotaplugin.php b/lib/private/connector/sabre/quotaplugin.php index 51eab1bae6e..22b687b3508 100644 --- a/lib/private/connector/sabre/quotaplugin.php +++ b/lib/private/connector/sabre/quotaplugin.php @@ -89,6 +89,9 @@ class QuotaPlugin extends \Sabre\DAV\ServerPlugin { $uri = '/' . $uri; } list($parentUri, $newName) = \Sabre\HTTP\URLUtil::splitPath($uri); + if(is_null($parentUri)) { + $parentUri = ''; + } $req = $this->server->httpRequest; if ($req->getHeader('OC-Chunked')) { $info = \OC_FileChunking::decodeName($newName); diff --git a/lib/private/console/application.php b/lib/private/console/application.php index 6d24665e012..f2aacbfc0e6 100644 --- a/lib/private/console/application.php +++ b/lib/private/console/application.php @@ -35,7 +35,7 @@ class Application { if ($this->config->getSystemValue('installed', false)) { if (!\OCP\Util::needUpgrade()) { OC_App::loadApps(); - foreach (OC_App::getAllApps() as $app) { + foreach (\OC::$server->getAppManager()->getInstalledApps() as $app) { $file = OC_App::getAppPath($app) . '/appinfo/register_command.php'; if (file_exists($file)) { require $file; diff --git a/lib/private/encryption/exceptions/decryptionfailedexception.php b/lib/private/encryption/exceptions/decryptionfailedexception.php index 406ae12968e..7e9fa21eaef 100644 --- a/lib/private/encryption/exceptions/decryptionfailedexception.php +++ b/lib/private/encryption/exceptions/decryptionfailedexception.php @@ -27,4 +27,15 @@ use OCP\Encryption\Exceptions\GenericEncryptionException; class DecryptionFailedException extends GenericEncryptionException { + /** + * @param string $message + * @param int $code + * @param \Exception $previous + * @param string $hint + */ + public function __construct($message = '', $code = 0, \Exception $previous = null, $hint = '') { + parent::__construct($message, $code, $previous, $hint); + +} + } diff --git a/lib/private/encryption/hookmanager.php b/lib/private/encryption/hookmanager.php index c62583b4b47..31ecb2fbcf6 100644 --- a/lib/private/encryption/hookmanager.php +++ b/lib/private/encryption/hookmanager.php @@ -37,6 +37,14 @@ class HookManager { self::getUpdate()->postUnshared($params); } + public static function postRename($params) { + self::getUpdate()->postRename($params); + } + + public static function postRestore($params) { + self::getUpdate()->postRestore($params); + } + /** * @return Update */ diff --git a/lib/private/encryption/keys/storage.php b/lib/private/encryption/keys/storage.php index 118c8dc920d..6aa00c5b5ee 100644 --- a/lib/private/encryption/keys/storage.php +++ b/lib/private/encryption/keys/storage.php @@ -125,10 +125,9 @@ class Storage implements IStorage { /** * @inheritdoc */ - public function deleteAllFileKeys($path, $encryptionModuleId) { - $keyDir = $this->getFileKeyDir($encryptionModuleId, $path); - $path = dirname($keyDir); - return !$this->view->file_exists($path) || $this->view->deleteAll($path); + public function deleteAllFileKeys($path) { + $keyDir = $this->getFileKeyDir('', $path); + return !$this->view->file_exists($keyDir) || $this->view->deleteAll($keyDir); } /** @@ -208,17 +207,10 @@ class Storage implements IStorage { * @param string $encryptionModuleId * @param string $path path to the file, relative to data/ * @return string - * @throws GenericEncryptionException - * @internal param string $keyId */ private function getFileKeyDir($encryptionModuleId, $path) { - if ($this->view->is_dir($path)) { - throw new GenericEncryptionException("file was expected but directory was given: $path"); - } - list($owner, $filename) = $this->util->getUidAndFilename($path); - $filename = $this->util->stripPartialFileExtension($filename); // in case of system wide mount points the keys are stored directly in the data directory if ($this->util->isSystemWideMountPoint($filename, $owner)) { diff --git a/lib/private/encryption/update.php b/lib/private/encryption/update.php index ddcee3bae93..02579fd9136 100644 --- a/lib/private/encryption/update.php +++ b/lib/private/encryption/update.php @@ -108,13 +108,45 @@ class Update { } /** + * inform encryption module that a file was restored from the trash bin, + * e.g. to update the encryption keys + * + * @param array $params + */ + public function postRestore($params) { + if ($this->encryptionManager->isEnabled()) { + $path = Filesystem::normalizePath('/' . $this->uid . '/files/' . $params['filePath']); + $this->update($path); + } + } + + /** + * inform encryption module that a file was renamed, + * e.g. to update the encryption keys + * + * @param array $params + */ + public function postRename($params) { + $source = $params['oldpath']; + $target = $params['newpath']; + if( + $this->encryptionManager->isEnabled() && + dirname($source) !== dirname($target) + ) { + list($owner, $ownerPath) = $this->getOwnerPath($target); + $absPath = '/' . $owner . '/files/' . $ownerPath; + $this->update($absPath); + } + } + + /** * get owner and path relative to data/<owner>/files * * @param string $path path to file for current user * @return array ['owner' => $owner, 'path' => $path] * @throw \InvalidArgumentException */ - private function getOwnerPath($path) { + protected function getOwnerPath($path) { $info = Filesystem::getFileInfo($path); $owner = Filesystem::getOwner($path); $view = new View('/' . $owner . '/files'); diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php index 5ea9b8bdeaf..b77672d2f6b 100644 --- a/lib/private/encryption/util.php +++ b/lib/private/encryption/util.php @@ -357,7 +357,7 @@ class Util { public function isExcluded($path) { $normalizedPath = \OC\Files\Filesystem::normalizePath($path); $root = explode('/', $normalizedPath, 4); - if (count($root) > 2) { + if (count($root) > 1) { //detect system wide folders if (in_array($root[1], $this->excludedPaths)) { diff --git a/lib/private/files.php b/lib/private/files.php index 97f9d8163b1..6a739fc844c 100644 --- a/lib/private/files.php +++ b/lib/private/files.php @@ -129,52 +129,60 @@ class OC_Files { $zip = new ZipStreamer(false); } OC_Util::obEnd(); - if ($zip or \OC\Files\Filesystem::isReadable($filename)) { - self::sendHeaders($filename, $name, $zip); - } elseif (!\OC\Files\Filesystem::file_exists($filename)) { - header("HTTP/1.0 404 Not Found"); - $tmpl = new OC_Template('', '404', 'guest'); - $tmpl->printPage(); - } else { - header("HTTP/1.0 403 Forbidden"); - die('403 Forbidden'); - } - if($only_header) { - return ; - } - if ($zip) { - $executionTime = intval(ini_get('max_execution_time')); - set_time_limit(0); - if ($get_type === self::ZIP_FILES) { - foreach ($files as $file) { - $file = $dir . '/' . $file; - if (\OC\Files\Filesystem::is_file($file)) { - $fh = \OC\Files\Filesystem::fopen($file, 'r'); - $zip->addFileFromStream($fh, basename($file)); - fclose($fh); - } elseif (\OC\Files\Filesystem::is_dir($file)) { - self::zipAddDir($file, $zip); + + try { + + if ($zip or \OC\Files\Filesystem::isReadable($filename)) { + self::sendHeaders($filename, $name, $zip); + } elseif (!\OC\Files\Filesystem::file_exists($filename)) { + header("HTTP/1.0 404 Not Found"); + $tmpl = new OC_Template('', '404', 'guest'); + $tmpl->printPage(); + } else { + header("HTTP/1.0 403 Forbidden"); + die('403 Forbidden'); + } + if ($only_header) { + return; + } + if ($zip) { + $executionTime = intval(ini_get('max_execution_time')); + set_time_limit(0); + if ($get_type === self::ZIP_FILES) { + foreach ($files as $file) { + $file = $dir . '/' . $file; + if (\OC\Files\Filesystem::is_file($file)) { + $fh = \OC\Files\Filesystem::fopen($file, 'r'); + $zip->addFileFromStream($fh, basename($file)); + fclose($fh); + } elseif (\OC\Files\Filesystem::is_dir($file)) { + self::zipAddDir($file, $zip); + } } + } elseif ($get_type === self::ZIP_DIR) { + $file = $dir . '/' . $files; + self::zipAddDir($file, $zip); } - } elseif ($get_type === self::ZIP_DIR) { - $file = $dir . '/' . $files; - self::zipAddDir($file, $zip); - } - $zip->finalize(); - set_time_limit($executionTime); - } else { - if ($xsendfile) { - $view = \OC\Files\Filesystem::getView(); - /** @var $storage \OC\Files\Storage\Storage */ - list($storage) = $view->resolvePath($filename); - if ($storage->isLocal()) { - self::addSendfileHeader($filename); + $zip->finalize(); + set_time_limit($executionTime); + } else { + if ($xsendfile) { + $view = \OC\Files\Filesystem::getView(); + /** @var $storage \OC\Files\Storage\Storage */ + list($storage) = $view->resolvePath($filename); + if ($storage->isLocal()) { + self::addSendfileHeader($filename); + } else { + \OC\Files\Filesystem::readfile($filename); + } } else { \OC\Files\Filesystem::readfile($filename); } - } else { - \OC\Files\Filesystem::readfile($filename); } + } catch (\Exception $ex) { + $l = \OC::$server->getL10N('core'); + $hint = method_exists($ex, 'getHint') ? $ex->getHint() : ''; + \OC_Template::printErrorPage($l->t('Can\'t read file'), $hint); } } diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php index 3d9d48c7763..0ddfde15047 100644 --- a/lib/private/files/storage/dav.php +++ b/lib/private/files/storage/dav.php @@ -346,8 +346,12 @@ class DAV extends Common { curl_setopt($curl, CURLOPT_URL, $this->createBaseUri() . $this->encodePath($path)); curl_setopt($curl, CURLOPT_FILE, $fp); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); - curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); - curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); + if(defined('CURLOPT_PROTOCOLS')) { + curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); + } + if(defined('CURLOPT_REDIR_PROTOCOLS')) { + curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); + } if ($this->secure === true) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index c0c4c6979c2..5d146b2dd1d 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -206,8 +206,7 @@ class Encryption extends Wrapper { $encryptionModule = $this->getEncryptionModule($path); if ($encryptionModule) { - $this->keyStorage->deleteAllFileKeys($this->getFullPath($path), - $encryptionModule->getId()); + $this->keyStorage->deleteAllFileKeys($this->getFullPath($path)); } return $this->storage->unlink($path); @@ -231,13 +230,7 @@ class Encryption extends Wrapper { if (isset($this->unencryptedSize[$source])) { $this->unencryptedSize[$target] = $this->unencryptedSize[$source]; } - $keysRenamed = $this->keyStorage->renameKeys($source, $target); - if ($keysRenamed && - dirname($source) !== dirname($target) && - $this->util->isFile($target) - ) { - $this->update->update($target); - } + $this->keyStorage->renameKeys($source, $target); } } @@ -245,6 +238,49 @@ class Encryption extends Wrapper { } /** + * see http://php.net/manual/en/function.rmdir.php + * + * @param string $path + * @return bool + */ + public function rmdir($path) { + $result = $this->storage->rmdir($path); + $fullPath = $this->getFullPath($path); + if ($result && + $this->util->isExcluded($fullPath) === false && + $this->encryptionManager->isEnabled() + ) { + $this->keyStorage->deleteAllFileKeys($fullPath); + } + + return $result; + } + + /** + * check if a file can be read + * + * @param string $path + * @return bool + */ + public function isReadable($path) { + + $isReadable = true; + + $metaData = $this->getMetaData($path); + if ( + !$this->is_dir($path) && + isset($metaData['encrypted']) && + $metaData['encrypted'] === true + ) { + $fullPath = $this->getFullPath($path); + $module = $this->getEncryptionModule($path); + $isReadable = $module->isReadable($fullPath, $this->uid); + } + + return $this->storage->isReadable($path) && $isReadable; + } + + /** * see http://php.net/manual/en/function.copy.php * * @param string $path1 @@ -275,8 +311,13 @@ class Encryption extends Wrapper { } } $data = $this->getMetaData($path1); - $this->getCache()->put($path2, ['encrypted' => $data['encrypted']]); - $this->updateUnencryptedSize($fullPath2, $data['size']); + + if (isset($data['encrypted'])) { + $this->getCache()->put($path2, ['encrypted' => $data['encrypted']]); + } + if (isset($data['size'])) { + $this->updateUnencryptedSize($fullPath2, $data['size']); + } } return $result; diff --git a/lib/private/files/stream/encryption.php b/lib/private/files/stream/encryption.php index 0262405f367..f2f5b9c9af7 100644 --- a/lib/private/files/stream/encryption.php +++ b/lib/private/files/stream/encryption.php @@ -341,8 +341,8 @@ class Encryption extends Wrapper { } else { $data = ''; } + $this->unencryptedSize = max($this->unencryptedSize, $this->position); } - $this->unencryptedSize = max($this->unencryptedSize, $this->position); return $length; } @@ -356,24 +356,22 @@ class Encryption extends Wrapper { switch ($whence) { case SEEK_SET: - if ($offset < $this->unencryptedSize && $offset >= 0) { - $newPosition = $offset; - } + $newPosition = $offset; break; case SEEK_CUR: - if ($offset >= 0) { - $newPosition = $offset + $this->position; - } + $newPosition = $this->position + $offset; break; case SEEK_END: - if ($this->unencryptedSize + $offset >= 0) { - $newPosition = $this->unencryptedSize + $offset; - } + $newPosition = $this->unencryptedSize + $offset; break; default: return $return; } + if ($newPosition > $this->unencryptedSize || $newPosition < 0) { + return $return; + } + $newFilePosition = floor($newPosition / $this->unencryptedBlockSize) * $this->util->getBlockSize() + $this->headerSize; diff --git a/lib/private/helper.php b/lib/private/helper.php index 144ccbfe228..981447c213b 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -394,6 +394,9 @@ class OC_Helper { */ public static function computerFileSize($str) { $str = strtolower($str); + if (is_numeric($str)) { + return $str; + } $bytes_array = array( 'b' => 1, @@ -413,6 +416,8 @@ class OC_Helper { if (preg_match('#([kmgtp]?b?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) { $bytes *= $bytes_array[$matches[1]]; + } else { + return false; } $bytes = round($bytes); diff --git a/lib/private/l10n.php b/lib/private/l10n.php index b070a299a16..d367dbae690 100644 --- a/lib/private/l10n.php +++ b/lib/private/l10n.php @@ -385,6 +385,7 @@ class OC_L10N implements \OCP\IL10N { if ($locale === null) { $locale = self::findLanguage(); } + $locale = $this->transformToCLDRLocale($locale); $options = array_merge(array('width' => 'long'), $options); $width = $options['width']; @@ -538,6 +539,7 @@ class OC_L10N implements \OCP\IL10N { */ public function getDateFormat() { $locale = $this->getLanguageCode(); + $locale = $this->transformToCLDRLocale($locale); return Punic\Calendar::getDateFormat('short', $locale); } @@ -546,6 +548,15 @@ class OC_L10N implements \OCP\IL10N { */ public function getFirstWeekDay() { $locale = $this->getLanguageCode(); + $locale = $this->transformToCLDRLocale($locale); return Punic\Calendar::getFirstWeekday($locale); } + + private function transformToCLDRLocale($locale) { + if ($locale === 'sr@latin') { + return 'sr_latn'; + } + + return $locale; + } } diff --git a/lib/private/share/mailnotifications.php b/lib/private/share/mailnotifications.php index 1c15b6e3e1d..7120d8493b0 100644 --- a/lib/private/share/mailnotifications.php +++ b/lib/private/share/mailnotifications.php @@ -122,6 +122,11 @@ class MailNotifications { $args = array( 'dir' => $filename, ); + } else if (strpos($filename, '/')) { + $args = array( + 'dir' => '/' . dirname($filename), + 'scrollto' => basename($filename), + ); } else { $args = array( 'dir' => '/', diff --git a/lib/private/util.php b/lib/private/util.php index 367199f7735..3842d775b24 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -1335,7 +1335,7 @@ class OC_Util { if (ini_get('xcache.admin.enable_auth')) { OC_Log::write('core', 'XCache opcode cache will not be cleared because "xcache.admin.enable_auth" is enabled.', \OC_Log::WARN); } else { - xcache_clear_cache(XC_TYPE_PHP, 0); + @xcache_clear_cache(XC_TYPE_PHP, 0); } } // Opcache (PHP >= 5.5) diff --git a/lib/public/encryption/exceptions/genericencryptionexception.php b/lib/public/encryption/exceptions/genericencryptionexception.php index be96450d431..e97f00c88bf 100644 --- a/lib/public/encryption/exceptions/genericencryptionexception.php +++ b/lib/public/encryption/exceptions/genericencryptionexception.php @@ -30,17 +30,26 @@ namespace OCP\Encryption\Exceptions; */ class GenericEncryptionException extends \Exception { + /** @var string */ + protected $hint; + /** * @param string $message * @param int $code * @param \Exception $previous * @since 8.1.0 */ - public function __construct($message = '', $code = 0, \Exception $previous = null) { + public function __construct($message = '', $code = 0, \Exception $previous = null, $hint = '') { if (empty($message)) { $message = 'Unspecified encryption exception'; } parent::__construct($message, $code, $previous); + + $this->hint = $hint; + } + + public function getHint() { + return $this->hint; } } diff --git a/lib/public/encryption/iencryptionmodule.php b/lib/public/encryption/iencryptionmodule.php index 0dda042d759..975e57744e9 100644 --- a/lib/public/encryption/iencryptionmodule.php +++ b/lib/public/encryption/iencryptionmodule.php @@ -119,4 +119,16 @@ interface IEncryptionModule { * @since 8.1.0 */ public function getUnencryptedBlockSize(); + + /** + * check if the encryption module is able to read the file, + * e.g. if all encryption keys exists + * + * @param string $path + * @param string $uid user for whom we want to check if he can read the file + * @return boolean + * @since 8.1.0 + */ + public function isReadable($path, $uid); + } diff --git a/lib/public/encryption/keys/istorage.php b/lib/public/encryption/keys/istorage.php index 752c073375d..17677814107 100644 --- a/lib/public/encryption/keys/istorage.php +++ b/lib/public/encryption/keys/istorage.php @@ -129,12 +129,11 @@ interface IStorage { * delete all file keys for a given file * * @param string $path to the file - * @param string $encryptionModuleId * * @return boolean False when the keys could not be deleted * @since 8.1.0 */ - public function deleteAllFileKeys($path, $encryptionModuleId); + public function deleteAllFileKeys($path); /** * delete system-wide encryption keys not related to a specific user, diff --git a/lib/public/lock/ilockingprovider.php b/lib/public/lock/ilockingprovider.php index a584ec02ef6..0b17580faac 100644 --- a/lib/public/lock/ilockingprovider.php +++ b/lib/public/lock/ilockingprovider.php @@ -35,7 +35,7 @@ interface ILockingProvider { /** * @param string $path * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE - * @throws \OCP\Files\Lock\LockedException + * @throws \OCP\Lock\LockedException */ public function acquireLock($path, $type); diff --git a/settings/admin.php b/settings/admin.php index e8d9c6530db..5720bd9f99c 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -141,9 +141,10 @@ if ($request->getServerProtocol() !== 'https' || !OC_Util::isAnnotationsWorking $formsAndMore[] = array('anchor' => 'security-warning', 'section-name' => $l->t('Security & setup warnings')); } $formsAndMore[] = array('anchor' => 'shareAPI', 'section-name' => $l->t('Sharing')); +$formsAndMore[] = ['anchor' => 'encryptionAPI', 'section-name' => $l->t('Server-side encryption')]; // Prioritize fileSharingSettings and files_external and move updater to the version -$fileSharingSettings = $filesExternal = $updaterAppPanel = ''; +$fileSharingSettings = $filesExternal = $updaterAppPanel = $ocDefaultEncryptionModulePanel = ''; foreach ($forms as $index => $form) { if (strpos($form, 'id="fileSharingSettings"')) { $fileSharingSettings = $form; @@ -160,6 +161,11 @@ foreach ($forms as $index => $form) { unset($forms[$index]); continue; } + if (strpos($form, 'id="ocDefaultEncryptionModule"')) { + $ocDefaultEncryptionModulePanel = $form; + unset($forms[$index]); + continue; + } } if ($filesExternal) { $formsAndMore[] = array('anchor' => 'files_external', 'section-name' => $l->t('External Storage')); @@ -168,6 +174,7 @@ if ($filesExternal) { $template->assign('fileSharingSettings', $fileSharingSettings); $template->assign('filesExternal', $filesExternal); $template->assign('updaterAppPanel', $updaterAppPanel); +$template->assign('ocDefaultEncryptionModulePanel', $ocDefaultEncryptionModulePanel); $formsMap = array_map(function ($form) { if (preg_match('%(<h2[^>]*>.*?</h2>)%i', $form, $regs)) { @@ -190,7 +197,6 @@ $formsMap = array_map(function ($form) { $formsAndMore = array_merge($formsAndMore, $formsMap); // add bottom hardcoded forms from the template -$formsAndMore[] = ['anchor' => 'encryptionAPI', 'section-name' => $l->t('Server-side encryption')]; $formsAndMore[] = ['anchor' => 'backgroundjobs', 'section-name' => $l->t('Cron')]; $formsAndMore[] = ['anchor' => 'mail_general_settings', 'section-name' => $l->t('Email server')]; $formsAndMore[] = ['anchor' => 'log-section', 'section-name' => $l->t('Log')]; diff --git a/settings/changepassword/controller.php b/settings/changepassword/controller.php index 4a68636d3f8..69b7ca710a9 100644 --- a/settings/changepassword/controller.php +++ b/settings/changepassword/controller.php @@ -89,7 +89,8 @@ class Controller { $crypt, \OC::$server->getLogger(), \OC::$server->getUserSession(), - \OC::$server->getConfig()); + \OC::$server->getConfig(), + \OC::$server->getUserManager()); $keyManager = new \OCA\Encryption\KeyManager( $keyStorage, $crypt, @@ -113,30 +114,27 @@ class Controller { $recoveryEnabledForUser = false; if ($recoveryAdminEnabled) { $validRecoveryPassword = $keyManager->checkRecoveryPassword($recoveryPassword); - $recoveryEnabledForUser = $recovery->isRecoveryEnabledForUser(); + $recoveryEnabledForUser = $recovery->isRecoveryEnabledForUser($username); } + $l = new \OC_L10n('settings'); if ($recoveryEnabledForUser && $recoveryPassword === '') { - $l = new \OC_L10n('settings'); \OC_JSON::error(array('data' => array( 'message' => $l->t('Please provide an admin recovery password, otherwise all user data will be lost') ))); } elseif ($recoveryEnabledForUser && ! $validRecoveryPassword) { - $l = new \OC_L10n('settings'); \OC_JSON::error(array('data' => array( 'message' => $l->t('Wrong admin recovery password. Please check the password and try again.') ))); } else { // now we know that everything is fine regarding the recovery password, let's try to change the password $result = \OC_User::setPassword($username, $password, $recoveryPassword); if (!$result && $recoveryEnabledForUser) { - $l = new \OC_L10n('settings'); \OC_JSON::error(array( "data" => array( "message" => $l->t("Backend doesn't support password change, but the user's encryption key was successfully updated.") ) )); } elseif (!$result && !$recoveryEnabledForUser) { - $l = new \OC_L10n('settings'); \OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change password" ) ))); } else { \OC_JSON::success(array("data" => array( "username" => $username ))); @@ -147,7 +145,6 @@ class Controller { if (!is_null($password) && \OC_User::setPassword($username, $password)) { \OC_JSON::success(array('data' => array('username' => $username))); } else { - $l = new \OC_L10n('settings'); \OC_JSON::error(array('data' => array('message' => $l->t('Unable to change password')))); } } diff --git a/settings/controller/certificatecontroller.php b/settings/controller/certificatecontroller.php index d9026cd42af..ea20b7c587f 100644 --- a/settings/controller/certificatecontroller.php +++ b/settings/controller/certificatecontroller.php @@ -54,6 +54,9 @@ class CertificateController extends Controller { /** * Add a new personal root certificate to the users' trust store + * + * @NoAdminRequired + * @NoSubadminRequired * @return array */ public function addPersonalRootCertificate() { @@ -82,6 +85,9 @@ class CertificateController extends Controller { /** * Removes a personal root certificate from the users' trust store + * + * @NoAdminRequired + * @NoSubadminRequired * @param string $certificateIdentifier * @return DataResponse */ diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php index e9ffc36904e..d0b5267e3c8 100644 --- a/settings/controller/userscontroller.php +++ b/settings/controller/userscontroller.php @@ -122,10 +122,10 @@ class UsersController extends Controller { $this->subAdminFactory = $subAdminFactory; // check for encryption state - TODO see formatUserForIndex - $this->isEncryptionAppEnabled = $appManager->isEnabledForUser('files_encryption'); + $this->isEncryptionAppEnabled = $appManager->isEnabledForUser('encryption'); if($this->isEncryptionAppEnabled) { // putting this directly in empty is possible in PHP 5.5+ - $result = $config->getAppValue('files_encryption', 'recoveryAdminEnabled', 0); + $result = $config->getAppValue('encryption', 'recoveryAdminEnabled', 0); $this->isRestoreEnabled = !empty($result); } } @@ -148,7 +148,7 @@ class UsersController extends Controller { if ($this->isEncryptionAppEnabled) { if ($this->isRestoreEnabled) { // check for the users recovery setting - $recoveryMode = $this->config->getUserValue($user->getUID(), 'files_encryption', 'recovery_enabled', '0'); + $recoveryMode = $this->config->getUserValue($user->getUID(), 'encryption', 'recoveryEnabled', '0'); // method call inside empty is possible with PHP 5.5+ $recoveryModeEnabled = !empty($recoveryMode); if ($recoveryModeEnabled) { diff --git a/settings/css/settings.css b/settings/css/settings.css index 4e398c64c4e..e0fe9b446be 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -116,7 +116,14 @@ li.active span.utils .delete:hover, li.active .rename:hover { opacity: 1; } span.utils .delete, .rename { display: none; } #app-navigation ul li.active > span.utils .delete, #app-navigation ul li.active > span.utils .rename { display: block; } -#usersearchform { position: absolute; top: 2px; right: 250px; } +#usersearchform { + position: absolute; + top: 2px; + right: 0; +} +#usersearchform input { + width: 150px; +} #usersearchform label { font-weight: 700; } /* display table at full width */ diff --git a/settings/help.php b/settings/help.php index 116c2083b64..aa89277d883 100644 --- a/settings/help.php +++ b/settings/help.php @@ -36,10 +36,10 @@ OC_App::setActiveNavigationEntry( "help" ); if(isset($_GET['mode']) and $_GET['mode'] === 'admin') { $url=OC_Helper::linkToAbsolute( 'core', 'doc/admin/index.html' ); $style1=''; - $style2=' pressed'; + $style2=' active'; }else{ $url=OC_Helper::linkToAbsolute( 'core', 'doc/user/index.html' ); - $style1=' pressed'; + $style1=' active'; $style2=''; } diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js index 88b54e0b637..a6c16fa5f55 100644 --- a/settings/l10n/cs_CZ.js +++ b/settings/l10n/cs_CZ.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Upozornění zabezpečení a nastavení", "Sharing" : "Sdílení", - "External Storage" : "Externí úložiště", "Server-side encryption" : "Šifrování na serveru", + "External Storage" : "Externí úložiště", "Cron" : "Cron", "Email server" : "Emailový server", "Log" : "Záznam", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.", "Enable server-side encryption" : "Povolit šifrování na straně serveru", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Zašifrování je nevratný proces. Po zapnutí šifrování jsou poté všechny soubory na serveru šifrovány a to již poté nelze vypnout. Toto je poslední varování: Opravdu si přejete zapnout šifrování?", + "Enable encryption" : "Povolit šifrování", + "No encryption module loaded, please enable an encryption module in the app menu." : "Není načten žádný šifrovací modul, povolte ho prosím v menu aplikací.", + "Select default encryption module:" : "Vybrat výchozí šifrovací modul:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Povolte prosím \"ownCloud Default Encryption Module\" a spusťte 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.", "Start migration" : "Spustit migraci", "This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.", "Send mode" : "Mód odesílání", diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json index 89576802882..627f21b95b2 100644 --- a/settings/l10n/cs_CZ.json +++ b/settings/l10n/cs_CZ.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Upozornění zabezpečení a nastavení", "Sharing" : "Sdílení", - "External Storage" : "Externí úložiště", "Server-side encryption" : "Šifrování na serveru", + "External Storage" : "Externí úložiště", "Cron" : "Cron", "Email server" : "Emailový server", "Log" : "Záznam", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.", "Enable server-side encryption" : "Povolit šifrování na straně serveru", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Zašifrování je nevratný proces. Po zapnutí šifrování jsou poté všechny soubory na serveru šifrovány a to již poté nelze vypnout. Toto je poslední varování: Opravdu si přejete zapnout šifrování?", + "Enable encryption" : "Povolit šifrování", + "No encryption module loaded, please enable an encryption module in the app menu." : "Není načten žádný šifrovací modul, povolte ho prosím v menu aplikací.", + "Select default encryption module:" : "Vybrat výchozí šifrovací modul:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Povolte prosím \"ownCloud Default Encryption Module\" a spusťte 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.", "Start migration" : "Spustit migraci", "This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.", "Send mode" : "Mód odesílání", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index 107fcf2196c..e0bf022dd39 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", - "External Storage" : "Externer Speicher", "Server-side encryption" : "Serverseitige Verschlüsselung", + "External Storage" : "Externer Speicher", "Cron" : "Cron", "Email server" : "E-Mail-Server", "Log" : "Log", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutze den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", "Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchtest Du die Verschlüsselung wirklich aktivieren?", + "Enable encryption" : "Verschlüsselung aktivieren", + "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.", + "Select default encryption module:" : "Bite Standard-Verschlüsselungs-Modul auswählen:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktiviere das \"ownCloud Default Encryption Module\" und rufe 'occ encryption:migrate' auf.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.", "Start migration" : "Migration beginnen", "This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index 6e40990ec33..f0a2efdbf91 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", - "External Storage" : "Externer Speicher", "Server-side encryption" : "Serverseitige Verschlüsselung", + "External Storage" : "Externer Speicher", "Cron" : "Cron", "Email server" : "E-Mail-Server", "Log" : "Log", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutze den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", "Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchtest Du die Verschlüsselung wirklich aktivieren?", + "Enable encryption" : "Verschlüsselung aktivieren", + "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.", + "Select default encryption module:" : "Bite Standard-Verschlüsselungs-Modul auswählen:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktiviere das \"ownCloud Default Encryption Module\" und rufe 'occ encryption:migrate' auf.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.", "Start migration" : "Migration beginnen", "This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", diff --git a/settings/l10n/de_AT.js b/settings/l10n/de_AT.js index 973ce0df192..d1584ae9451 100644 --- a/settings/l10n/de_AT.js +++ b/settings/l10n/de_AT.js @@ -9,8 +9,10 @@ OC.L10N.register( "Port" : "Port", "by" : "von", "Password" : "Passwort", + "Change password" : "Passwort ändern", "Email" : "E-Mail", "Cancel" : "Abbrechen", + "Username" : "Benutzername", "Other" : "Anderes" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/de_AT.json b/settings/l10n/de_AT.json index ed5c5b46f03..98ae6547481 100644 --- a/settings/l10n/de_AT.json +++ b/settings/l10n/de_AT.json @@ -7,8 +7,10 @@ "Port" : "Port", "by" : "von", "Password" : "Passwort", + "Change password" : "Passwort ändern", "Email" : "E-Mail", "Cancel" : "Abbrechen", + "Username" : "Benutzername", "Other" : "Anderes" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index a4e3867a51a..4b8f056b4e4 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", - "External Storage" : "Externer Speicher", "Server-side encryption" : "Serverseitige Verschlüsselung", + "External Storage" : "Externer Speicher", "Cron" : "Cron", "Email server" : "E-Mail-Server", "Log" : "Log", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", "Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?", + "Enable encryption" : "Verschlüsselung aktivieren", + "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.", + "Select default encryption module:" : "Standard-Verschlüsselungs-Modul auswählen:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktivieren Sie das \"ownCloud Default Encryption Module\" und rufen Sie 'occ encryption:migrate' auf.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.", "Start migration" : "Migration beginnen", "This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 9c615638b1f..977ade2a79b 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", - "External Storage" : "Externer Speicher", "Server-side encryption" : "Serverseitige Verschlüsselung", + "External Storage" : "Externer Speicher", "Cron" : "Cron", "Email server" : "E-Mail-Server", "Log" : "Log", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", "Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?", + "Enable encryption" : "Verschlüsselung aktivieren", + "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.", + "Select default encryption module:" : "Standard-Verschlüsselungs-Modul auswählen:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktivieren Sie das \"ownCloud Default Encryption Module\" und rufen Sie 'occ encryption:migrate' auf.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.", "Start migration" : "Migration beginnen", "This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index 255053ef87c..76b269cf443 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων", "Sharing" : "Διαμοιρασμός", - "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", "Server-side encryption" : "Κρυπτογράφηση από τον Διακομιστή", + "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", "Cron" : "Cron", "Email server" : "Διακομιστής Email", "Log" : "Καταγραφές", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.", "Enable server-side encryption" : "Ενεργοποίηση κρυπτογράφησης από το διακομιστή", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Η κρυπτογράφηση είναι μια μη αντιστρεπτή διαδικασία. Μόλις ενεργοποιηθεί, όλα τα αρχεία από αυτό το σημείο και μετά θα κρυπτογραφηθούν στο διακομιστή και η κρυπτογράφηση δεν είναι δυνατόν να απενεργοποιηθεί αργότερα. Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;", + "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης", + "No encryption module loaded, please enable an encryption module in the app menu." : "Δεν έχει φορτωθεί μονάδα κρυπτογράφησης, παρακαλούμε φορτώστε μια μονάδα κρυπτογράφησης από το μενού εφαρμογών.", + "Select default encryption module:" : "Επιλογή προεπιλεγμένης μονάδας κρυπτογράφησης:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης του ownCloud\" και εκτελέστε την εντολή 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Πρέπει να μεταφέρετε τα κλειδιά σας κρυπτογράφησης από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια.", "Start migration" : "Έναρξη μετάβασης", "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", "Send mode" : "Κατάσταση αποστολής", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index f7203c957a4..02306218155 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων", "Sharing" : "Διαμοιρασμός", - "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", "Server-side encryption" : "Κρυπτογράφηση από τον Διακομιστή", + "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", "Cron" : "Cron", "Email server" : "Διακομιστής Email", "Log" : "Καταγραφές", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.", "Enable server-side encryption" : "Ενεργοποίηση κρυπτογράφησης από το διακομιστή", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Η κρυπτογράφηση είναι μια μη αντιστρεπτή διαδικασία. Μόλις ενεργοποιηθεί, όλα τα αρχεία από αυτό το σημείο και μετά θα κρυπτογραφηθούν στο διακομιστή και η κρυπτογράφηση δεν είναι δυνατόν να απενεργοποιηθεί αργότερα. Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;", + "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης", + "No encryption module loaded, please enable an encryption module in the app menu." : "Δεν έχει φορτωθεί μονάδα κρυπτογράφησης, παρακαλούμε φορτώστε μια μονάδα κρυπτογράφησης από το μενού εφαρμογών.", + "Select default encryption module:" : "Επιλογή προεπιλεγμένης μονάδας κρυπτογράφησης:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης του ownCloud\" και εκτελέστε την εντολή 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Πρέπει να μεταφέρετε τα κλειδιά σας κρυπτογράφησης από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια.", "Start migration" : "Έναρξη μετάβασης", "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", "Send mode" : "Κατάσταση αποστολής", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index dc024c2de5f..76951f31441 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Security & setup warnings", "Sharing" : "Sharing", - "External Storage" : "External Storage", "Server-side encryption" : "Server-side encryption", + "External Storage" : "External Storage", "Cron" : "Cron", "Email server" : "Email server", "Log" : "Log", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 3b259791f1e..4630170e7cf 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Security & setup warnings", "Sharing" : "Sharing", - "External Storage" : "External Storage", "Server-side encryption" : "Server-side encryption", + "External Storage" : "External Storage", "Cron" : "Cron", "Email server" : "Email server", "Log" : "Log", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index dbd2c36f473..b5498e54347 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Avisos de seguidad y configuración", "Sharing" : "Compartiendo", - "External Storage" : "Almacenamiento externo", "Server-side encryption" : "Cifrado en el servidor", + "External Storage" : "Almacenamiento externo", "Cron" : "Cron", "Email server" : "Servidor de correo electrónico", "Log" : "Registro", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.", "Enable server-side encryption" : "Habilitar cifrado en el servidor", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "El cifrado es un proceso de una sola vía. Una vez el cifrado es habilitado, todos los archivos desde este punto en adelante serán cifrados en el servidor y no será posible deshabilitar el cifrado posteriormente. \nEsta es la advertencia final:\t¿Realmente quieres habilitar el cifrado?", + "Enable encryption" : "Habilitar cifrado", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado el modulo de cifrado. Por favor habilite un modulo de cifrado en el menú de aplicaciones.", + "Select default encryption module:" : "Seleccione el módulo de cifrado por defecto:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo. Por favor habilite el \"Módulo de cifrado por defecto\" y ejecute 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.", "Start migration" : "Iniciar migración", "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.", "Send mode" : "Modo de envío", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index a17d9acbdb8..b22631b5406 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Avisos de seguidad y configuración", "Sharing" : "Compartiendo", - "External Storage" : "Almacenamiento externo", "Server-side encryption" : "Cifrado en el servidor", + "External Storage" : "Almacenamiento externo", "Cron" : "Cron", "Email server" : "Servidor de correo electrónico", "Log" : "Registro", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.", "Enable server-side encryption" : "Habilitar cifrado en el servidor", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "El cifrado es un proceso de una sola vía. Una vez el cifrado es habilitado, todos los archivos desde este punto en adelante serán cifrados en el servidor y no será posible deshabilitar el cifrado posteriormente. \nEsta es la advertencia final:\t¿Realmente quieres habilitar el cifrado?", + "Enable encryption" : "Habilitar cifrado", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado el modulo de cifrado. Por favor habilite un modulo de cifrado en el menú de aplicaciones.", + "Select default encryption module:" : "Seleccione el módulo de cifrado por defecto:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo. Por favor habilite el \"Módulo de cifrado por defecto\" y ejecute 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.", "Start migration" : "Iniciar migración", "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.", "Send mode" : "Modo de envío", diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js index 8b943e25466..18736c23151 100644 --- a/settings/l10n/fi_FI.js +++ b/settings/l10n/fi_FI.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset", "Sharing" : "Jakaminen", - "External Storage" : "Erillinen tallennusväline", "Server-side encryption" : "Palvelinpään salaus", + "External Storage" : "Erillinen tallennusväline", "Cron" : "Cron", "Email server" : "Sähköpostipalvelin", "Log" : "Loki", @@ -136,6 +136,11 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.", "Enable server-side encryption" : "Käytä palvelinpään salausta", + "Enable encryption" : "Käytä salausta", + "No encryption module loaded, please enable an encryption module in the app menu." : "Salausmoduulia ei ole käytössä. Ota salausmoduuli käyttöön sovellusvalikosta.", + "Select default encryption module:" : "Valitse oletuksena käytettävä salausmoduuli:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen. Ota \"ownCloud Default Encryption Module\" käyttöön ja suorita 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.", "Start migration" : "Käynnistä migraatio", "This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.", "Send mode" : "Lähetystila", diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json index ad8328fd41d..9dc33ddd9fa 100644 --- a/settings/l10n/fi_FI.json +++ b/settings/l10n/fi_FI.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset", "Sharing" : "Jakaminen", - "External Storage" : "Erillinen tallennusväline", "Server-side encryption" : "Palvelinpään salaus", + "External Storage" : "Erillinen tallennusväline", "Cron" : "Cron", "Email server" : "Sähköpostipalvelin", "Log" : "Loki", @@ -134,6 +134,11 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.", "Enable server-side encryption" : "Käytä palvelinpään salausta", + "Enable encryption" : "Käytä salausta", + "No encryption module loaded, please enable an encryption module in the app menu." : "Salausmoduulia ei ole käytössä. Ota salausmoduuli käyttöön sovellusvalikosta.", + "Select default encryption module:" : "Valitse oletuksena käytettävä salausmoduuli:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen. Ota \"ownCloud Default Encryption Module\" käyttöön ja suorita 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.", "Start migration" : "Käynnistä migraatio", "This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.", "Send mode" : "Lähetystila", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index 33176fcb579..c5c80130933 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Avertissements de sécurité ou de configuration", "Sharing" : "Partage", - "External Storage" : "Stockage externe", "Server-side encryption" : "Chiffrement côté serveur", + "External Storage" : "Stockage externe", "Cron" : "Cron", "Email server" : "Serveur mail", "Log" : "Log", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré auprès d'un service webcron qui l'exécutera toutes les 15 minutes via http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.", "Enable server-side encryption" : "Activer le chiffrement côté serveur", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Le chiffrement est un processus à sens unique. Une fois que le chiffrement est activé, tous les fichiers à partir de ce moment seront chiffrés sur le serveur et il ne sera pas possible de désactiver le chiffrement ultérieurement. Ceci est le dernier avertissement : Voulez-vous vraiment activer le chiffrement?", + "Enable encryption" : "Activer le chiffrement", + "No encryption module loaded, please enable an encryption module in the app menu." : "Aucun module de chiffrement n'est chargé. Merci d'activer un module de chiffrement dans le menu des applications.", + "Select default encryption module:" : "Sélectionnez le module de chiffrement par défaut :", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez activer \"ownCloud Default Encryption Module\" et exécuter 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.", "Start migration" : "Démarrer la migration", "This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.", "Send mode" : "Mode d'envoi", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index f6c2a64b3dc..c50304bb099 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Avertissements de sécurité ou de configuration", "Sharing" : "Partage", - "External Storage" : "Stockage externe", "Server-side encryption" : "Chiffrement côté serveur", + "External Storage" : "Stockage externe", "Cron" : "Cron", "Email server" : "Serveur mail", "Log" : "Log", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré auprès d'un service webcron qui l'exécutera toutes les 15 minutes via http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.", "Enable server-side encryption" : "Activer le chiffrement côté serveur", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Le chiffrement est un processus à sens unique. Une fois que le chiffrement est activé, tous les fichiers à partir de ce moment seront chiffrés sur le serveur et il ne sera pas possible de désactiver le chiffrement ultérieurement. Ceci est le dernier avertissement : Voulez-vous vraiment activer le chiffrement?", + "Enable encryption" : "Activer le chiffrement", + "No encryption module loaded, please enable an encryption module in the app menu." : "Aucun module de chiffrement n'est chargé. Merci d'activer un module de chiffrement dans le menu des applications.", + "Select default encryption module:" : "Sélectionnez le module de chiffrement par défaut :", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez activer \"ownCloud Default Encryption Module\" et exécuter 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.", "Start migration" : "Démarrer la migration", "This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.", "Send mode" : "Mode d'envoi", diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js index 33ade900711..a9216f36da8 100644 --- a/settings/l10n/gl.js +++ b/settings/l10n/gl.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Avisos de seguridade e configuración", "Sharing" : "Compartindo", - "External Storage" : "Almacenamento externo", "Server-side encryption" : "Cifrado na parte do servidor", + "External Storage" : "Almacenamento externo", "Cron" : "Cron", "Email server" : "Servidor de correo", "Log" : "Rexistro", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 15 minutos.", "Enable server-side encryption" : "Activar o cifrado na parte do servidor", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "O cifrado é un proceso dunha soa dirección. Unha vez activado o cifrado, cifraranse no servidor todos os ficheiros a partires dese momento e xa non será posíbel desactivalo no futuro. Este é o aviso final: Confirma que quere activar o cifrado?", + "Enable encryption" : "Activar o cifrado", + "No encryption module loaded, please enable an encryption module in the app menu." : "Non hai cargado ningún módulo de cifrado, active un módulo de cifrado no menú de aplicacións.", + "Select default encryption module:" : "Seleccionar o módulo predeterminado de cifrado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado do ownCloud» e execute «occ encryption:migrate»", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo.", "Start migration" : "Iniciar a migración", "This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.", "Send mode" : "Modo de envío", diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json index dfab2fa295d..0f90b188d52 100644 --- a/settings/l10n/gl.json +++ b/settings/l10n/gl.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Avisos de seguridade e configuración", "Sharing" : "Compartindo", - "External Storage" : "Almacenamento externo", "Server-side encryption" : "Cifrado na parte do servidor", + "External Storage" : "Almacenamento externo", "Cron" : "Cron", "Email server" : "Servidor de correo", "Log" : "Rexistro", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 15 minutos.", "Enable server-side encryption" : "Activar o cifrado na parte do servidor", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "O cifrado é un proceso dunha soa dirección. Unha vez activado o cifrado, cifraranse no servidor todos os ficheiros a partires dese momento e xa non será posíbel desactivalo no futuro. Este é o aviso final: Confirma que quere activar o cifrado?", + "Enable encryption" : "Activar o cifrado", + "No encryption module loaded, please enable an encryption module in the app menu." : "Non hai cargado ningún módulo de cifrado, active un módulo de cifrado no menú de aplicacións.", + "Select default encryption module:" : "Seleccionar o módulo predeterminado de cifrado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado do ownCloud» e execute «occ encryption:migrate»", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo.", "Start migration" : "Iniciar a migración", "This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.", "Send mode" : "Modo de envío", diff --git a/settings/l10n/id.js b/settings/l10n/id.js index c7e5e0d790e..177e2f70f95 100644 --- a/settings/l10n/id.js +++ b/settings/l10n/id.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Peringatan Keamanan & Pengaturan", "Sharing" : "Berbagi", - "External Storage" : "Penyimpanan Eksternal", "Server-side encryption" : "Enkripsi sisi-server", + "External Storage" : "Penyimpanan Eksternal", "Cron" : "Cron", "Email server" : "Server email", "Log" : "Log", @@ -56,7 +56,7 @@ OC.L10N.register( "All" : "Semua", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplikasi resmi dikembangkan oleh komunitas ownCloud. Mereka menawarkan fitur pusat bagi ownCloud dan siap digunakan untuk penggunaan produksi.", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Aplikasi tersetujui dikembangkan oleh pengembang terpercaya dan telah lulus pemeriksaan keamanan. Mereka secara aktif dipelihara direpositori kode terbuka dan pemelihara sudah memastikan mereka stabil untuk penggunaan normal.", - "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Aplikasi ini belum diperiksa masalah keamanan dan baru atau dikenal tidak stabil. Instal dengan resiko.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Aplikasi ini belum diperiksa masalah keamanan dan masih baru atau dikenal tidak stabil. Instal dengan resiko.", "Please wait...." : "Mohon tunggu....", "Error while disabling app" : "Terjadi kesalahan saat menonaktifkan aplikasi", "Disable" : "Nonaktifkan", @@ -110,7 +110,7 @@ OC.L10N.register( "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "kelihatannya php tidak diatur dengan benar untuk variabel lingkungan sistem kueri. Pemeriksaan dengan getenv(\"PATH\") hanya mengembalikan respon kosong.", "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Mohon periksa dokumentasi instalasi untuk catatan konfigurasi php dan konfigurasi php server Anda, terutama saat menggunakan ph-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfig Hanya-Baca telah diaktifkan. Ini akan mencegah setelan beberapa konfigurasi melalui antarmuka-web. Selanjutnya, berkas perlu dibuat dapat-dibaca secara manual untuk setiap pembaruan.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP tampaknya disetel menjadi strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server Anda dijalankan di Microsoft Windows. Kami sangat menyarankan Linux untuk mendapatkan pengalaman pengguna yang optimal.", "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu dibawah versi 4.0.6 terinstal, untuk alasan stabilitas dan kinerja, kami menyarankan untuk memperbarui ke versi APCu yang lebih baru.", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php didaftarkan pada layanan webcron untuk memanggil cron.php setiap 15 menit melalui http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Gunakan layanan cron sistem untuk memanggil berkas cron.php setiap 15 menit.", "Enable server-side encryption" : "Aktifkan enkripsi sisi-server", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Enkripsi adalah proses satu arah. Setelah enkripsi diaktifkan, semua berkas mulai saat ini akan di enkrispi pada server dan tidak mungkin untuk menonaktifkan enkrispi dikemudian hari. Ini merupakan peringatan terakhir: Apakah Anda yakin ingin mengaktifkan enkripsi?", + "Enable encryption" : "Aktifkan enkripsi", + "No encryption module loaded, please enable an encryption module in the app menu." : "Tidak ada modul enkripsi yang dimuat, mohon aktifkan modul enkripsi di menu aplikasi.", + "Select default encryption module:" : "Pilih modul enkripsi baku:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru. Mohon aktifkan \"Modul Enkripsi Baku ownCloud\" dan jalankan 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru.", "Start migration" : "Mulai migrasi", "This is used for sending out notifications." : "Ini digunakan untuk mengirim notifikasi keluar.", "Send mode" : "Modus kirim", @@ -167,11 +173,12 @@ OC.L10N.register( "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite digunakan sebagai basis data. Untuk instalasi yang lebih besar, kami menyarankan untuk beralih ke backend basis data yang berbeda.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Untuk migrasi ke basis data lainnya, gunakan alat baris perintah: 'occ db:convert-type', atau lihat <a target=\"_blank\" href=\"%s\">dokumentasi ↗</a>.", - "How to do backups" : "Bagaimana cara mencadangkan", + "How to do backups" : "Bagaimana cara membuat cadangan", "Advanced monitoring" : "Pemantauan tingkat lanjut", "Performance tuning" : "Pemeliharaan performa", "Improving the config.php" : "Memperbaiki config.php", "Theming" : "Tema", + "Hardening and security guidance" : "Panduan Keselamatan dan Keamanan", "Version" : "Versi", "Developer documentation" : "Dokumentasi pengembang", "Experimental applications ahead" : "Aplikasi percobaan terdepan", @@ -261,6 +268,6 @@ OC.L10N.register( "change full name" : "ubah nama lengkap", "set new password" : "setel sandi baru", "change email address" : "ubah alamat email", - "Default" : "Default" + "Default" : "Baku" }, "nplurals=1; plural=0;"); diff --git a/settings/l10n/id.json b/settings/l10n/id.json index 67d33788f1d..30acbef09c2 100644 --- a/settings/l10n/id.json +++ b/settings/l10n/id.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Peringatan Keamanan & Pengaturan", "Sharing" : "Berbagi", - "External Storage" : "Penyimpanan Eksternal", "Server-side encryption" : "Enkripsi sisi-server", + "External Storage" : "Penyimpanan Eksternal", "Cron" : "Cron", "Email server" : "Server email", "Log" : "Log", @@ -54,7 +54,7 @@ "All" : "Semua", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplikasi resmi dikembangkan oleh komunitas ownCloud. Mereka menawarkan fitur pusat bagi ownCloud dan siap digunakan untuk penggunaan produksi.", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Aplikasi tersetujui dikembangkan oleh pengembang terpercaya dan telah lulus pemeriksaan keamanan. Mereka secara aktif dipelihara direpositori kode terbuka dan pemelihara sudah memastikan mereka stabil untuk penggunaan normal.", - "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Aplikasi ini belum diperiksa masalah keamanan dan baru atau dikenal tidak stabil. Instal dengan resiko.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Aplikasi ini belum diperiksa masalah keamanan dan masih baru atau dikenal tidak stabil. Instal dengan resiko.", "Please wait...." : "Mohon tunggu....", "Error while disabling app" : "Terjadi kesalahan saat menonaktifkan aplikasi", "Disable" : "Nonaktifkan", @@ -108,7 +108,7 @@ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "kelihatannya php tidak diatur dengan benar untuk variabel lingkungan sistem kueri. Pemeriksaan dengan getenv(\"PATH\") hanya mengembalikan respon kosong.", "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Mohon periksa dokumentasi instalasi untuk catatan konfigurasi php dan konfigurasi php server Anda, terutama saat menggunakan ph-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfig Hanya-Baca telah diaktifkan. Ini akan mencegah setelan beberapa konfigurasi melalui antarmuka-web. Selanjutnya, berkas perlu dibuat dapat-dibaca secara manual untuk setiap pembaruan.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP tampaknya disetel menjadi strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server Anda dijalankan di Microsoft Windows. Kami sangat menyarankan Linux untuk mendapatkan pengalaman pengguna yang optimal.", "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu dibawah versi 4.0.6 terinstal, untuk alasan stabilitas dan kinerja, kami menyarankan untuk memperbarui ke versi APCu yang lebih baru.", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php didaftarkan pada layanan webcron untuk memanggil cron.php setiap 15 menit melalui http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Gunakan layanan cron sistem untuk memanggil berkas cron.php setiap 15 menit.", "Enable server-side encryption" : "Aktifkan enkripsi sisi-server", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Enkripsi adalah proses satu arah. Setelah enkripsi diaktifkan, semua berkas mulai saat ini akan di enkrispi pada server dan tidak mungkin untuk menonaktifkan enkrispi dikemudian hari. Ini merupakan peringatan terakhir: Apakah Anda yakin ingin mengaktifkan enkripsi?", + "Enable encryption" : "Aktifkan enkripsi", + "No encryption module loaded, please enable an encryption module in the app menu." : "Tidak ada modul enkripsi yang dimuat, mohon aktifkan modul enkripsi di menu aplikasi.", + "Select default encryption module:" : "Pilih modul enkripsi baku:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru. Mohon aktifkan \"Modul Enkripsi Baku ownCloud\" dan jalankan 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru.", "Start migration" : "Mulai migrasi", "This is used for sending out notifications." : "Ini digunakan untuk mengirim notifikasi keluar.", "Send mode" : "Modus kirim", @@ -165,11 +171,12 @@ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite digunakan sebagai basis data. Untuk instalasi yang lebih besar, kami menyarankan untuk beralih ke backend basis data yang berbeda.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Untuk migrasi ke basis data lainnya, gunakan alat baris perintah: 'occ db:convert-type', atau lihat <a target=\"_blank\" href=\"%s\">dokumentasi ↗</a>.", - "How to do backups" : "Bagaimana cara mencadangkan", + "How to do backups" : "Bagaimana cara membuat cadangan", "Advanced monitoring" : "Pemantauan tingkat lanjut", "Performance tuning" : "Pemeliharaan performa", "Improving the config.php" : "Memperbaiki config.php", "Theming" : "Tema", + "Hardening and security guidance" : "Panduan Keselamatan dan Keamanan", "Version" : "Versi", "Developer documentation" : "Dokumentasi pengembang", "Experimental applications ahead" : "Aplikasi percobaan terdepan", @@ -259,6 +266,6 @@ "change full name" : "ubah nama lengkap", "set new password" : "setel sandi baru", "change email address" : "ubah alamat email", - "Default" : "Default" + "Default" : "Baku" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 2991681a1dc..8e9ae024f1a 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Avvisi di sicurezza e di configurazione", "Sharing" : "Condivisione", - "External Storage" : "Archiviazione esterna", "Server-side encryption" : "Cifratura lato server", + "External Storage" : "Archiviazione esterna", "Cron" : "Cron", "Email server" : "Server di posta", "Log" : "Log", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.", "Enable server-side encryption" : "Abilita cifratura lato server", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "La cifratura è un processo a senso unico. Una volta che la cifratura è abilitata, tutti i file da quel momento in poi saranno cifrati sul server e non sarà possibile disattivare la cifratura successivamente. Questo è l'ultimo avviso: vuoi davvero abilitare la cifratura?", + "Enable encryption" : "Abilita cifratura", + "No encryption module loaded, please enable an encryption module in the app menu." : "Nessun modulo di cifratura caricato, carica un modulo di cifratura nel menu delle applicazioni.", + "Select default encryption module:" : "Seleziona il modulo di cifratura predefinito:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova. Abilita il \"Modulo di cifratura predefinito di ownCloud\" ed esegui 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova.", "Start migration" : "Avvia migrazione", "This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.", "Send mode" : "Modalità di invio", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 275ec25b750..00e55c4b378 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Avvisi di sicurezza e di configurazione", "Sharing" : "Condivisione", - "External Storage" : "Archiviazione esterna", "Server-side encryption" : "Cifratura lato server", + "External Storage" : "Archiviazione esterna", "Cron" : "Cron", "Email server" : "Server di posta", "Log" : "Log", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.", "Enable server-side encryption" : "Abilita cifratura lato server", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "La cifratura è un processo a senso unico. Una volta che la cifratura è abilitata, tutti i file da quel momento in poi saranno cifrati sul server e non sarà possibile disattivare la cifratura successivamente. Questo è l'ultimo avviso: vuoi davvero abilitare la cifratura?", + "Enable encryption" : "Abilita cifratura", + "No encryption module loaded, please enable an encryption module in the app menu." : "Nessun modulo di cifratura caricato, carica un modulo di cifratura nel menu delle applicazioni.", + "Select default encryption module:" : "Seleziona il modulo di cifratura predefinito:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova. Abilita il \"Modulo di cifratura predefinito di ownCloud\" ed esegui 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova.", "Start migration" : "Avvia migrazione", "This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.", "Send mode" : "Modalità di invio", diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js index af2258907a0..013621e87dd 100644 --- a/settings/l10n/ja.js +++ b/settings/l10n/ja.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "セキュリティ&セットアップ警告", "Sharing" : "共有", + "Server-side encryption" : "サーバーサイド暗号化", "External Storage" : "外部ストレージ", - "Server-side encryption" : "サーバー側暗号", "Cron" : "Cron", "Email server" : "メールサーバー", "Log" : "ログ", @@ -100,7 +100,7 @@ OC.L10N.register( "TLS" : "TLS", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "サーバーがMicrosoft Windowsで動いています。ユーザーに最適なサービスを提供するためには、Linuxを利用することを強くお勧めします。", "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "バージョン4.0.6より古いAPCuがインストールされています、安定性とパフォーマンスのために新しいバージョンのAPCuにアップデートすることをお勧めします。", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。", @@ -129,6 +129,9 @@ OC.L10N.register( "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。", "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行します。", + "Enable server-side encryption" : "サーバーサイド暗号化を有効に", + "Enable encryption" : "暗号化を有効に", + "Select default encryption module:" : "デフォルトの暗号化モジュールを選択:", "This is used for sending out notifications." : "通知を送信する際に使用します。", "Send mode" : "送信モード", "Encryption" : "暗号化", diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json index 172fdd971b0..c3868756458 100644 --- a/settings/l10n/ja.json +++ b/settings/l10n/ja.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "セキュリティ&セットアップ警告", "Sharing" : "共有", + "Server-side encryption" : "サーバーサイド暗号化", "External Storage" : "外部ストレージ", - "Server-side encryption" : "サーバー側暗号", "Cron" : "Cron", "Email server" : "メールサーバー", "Log" : "ログ", @@ -98,7 +98,7 @@ "TLS" : "TLS", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "サーバーがMicrosoft Windowsで動いています。ユーザーに最適なサービスを提供するためには、Linuxを利用することを強くお勧めします。", "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "バージョン4.0.6より古いAPCuがインストールされています、安定性とパフォーマンスのために新しいバージョンのAPCuにアップデートすることをお勧めします。", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。", @@ -127,6 +127,9 @@ "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。", "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行します。", + "Enable server-side encryption" : "サーバーサイド暗号化を有効に", + "Enable encryption" : "暗号化を有効に", + "Select default encryption module:" : "デフォルトの暗号化モジュールを選択:", "This is used for sending out notifications." : "通知を送信する際に使用します。", "Send mode" : "送信モード", "Encryption" : "暗号化", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index 3453fe87c6e..7cc3c07d332 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -1,10 +1,14 @@ OC.L10N.register( "settings", { + "Security & setup warnings" : "보안 및 설치 경고", "Sharing" : "공유", + "Server-side encryption" : "서버 측 암호화", "External Storage" : "외부 저장소", "Cron" : "Cron", + "Email server" : "이메일 서버", "Log" : "로그", + "Tips & tricks" : "팁과 추가 정보", "Updates" : "업데이트", "Authentication error" : "인증 오류", "Your full name has been changed." : "전체 이름이 변경되었습니다.", @@ -20,18 +24,23 @@ OC.L10N.register( "No user supplied" : "사용자가 지정되지 않음", "Please provide an admin recovery password, otherwise all user data will be lost" : "관리자 복구 암호를 입력하지 않으면 모든 사용자 데이터가 삭제됩니다", "Wrong admin recovery password. Please check the password and try again." : "관리자 복구 암호가 잘못되었습니다. 암호를 다시 확인하십시오.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "백엔드에서 암호 변경을 지원하지 않지만, 암호화 키는 갱신되었습니다.", "Unable to change password" : "암호를 변경할 수 없음", "Enabled" : "활성", "Not enabled" : "비활성", + "A problem occurred, please check your log files (Error: %s)" : "문제가 발생하였습니다. 로그 파일을 참조하십시오(오류: %s)", + "Migration Completed" : "이전 완료됨", "Group already exists." : "그룹이 이미 존재합니다.", "Unable to add group." : "그룹을 추가할 수 없습니다.", "Unable to delete group." : "그룹을 삭제할 수 없습니다.", "log-level out of allowed range" : "로그 단계가 허용 범위를 벗어남", "Saved" : "저장됨", "test email settings" : "이메일 설정 시험", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생하였습니다. 설정을 확인하십시오.(오류: %s)", "Email sent" : "이메일 발송됨", "You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.", "Invalid mail address" : "잘못된 이메일 주소", + "A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.", "Unable to create user." : "사용자를 만들 수 없습니다.", "Your %s account was created" : "%s 계정을 등록하였습니다", "Unable to delete user." : "사용자를 삭제할 수 없습니다.", @@ -41,8 +50,13 @@ OC.L10N.register( "Email saved" : "이메일 저장됨", "Are you really sure you want add \"{domain}\" as trusted domain?" : "신뢰할 수 있는 도메인 목록에 \"{domain}\"을(를) 추가하시겠습니까?", "Add trusted domain" : "신뢰할 수 있는 도메인 추가", + "Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오", + "Migration started …" : "이전 시작됨...", "Sending..." : "보내는 중...", "All" : "모두", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "공식 앱은 ownCloud 커뮤니티 내에서 개발됩니다. ownCloud의 주요 기능을 제공하며 상용 환경에서 사용 가능합니다.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "승인된 앱은 신뢰할 수 있는 개발자가 개발하며 보안 검사를 통과하였습니다. 열린 코드 저장소에서 관리되며 일반적인 환경에서 사용할 수 있는 수준으로 관리됩니다.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "이 앱은 보안 검사를 통과하지 않았으며 새로 출시되었거나 안정적이지 않은 것으로 알려져 있습니다. 본인 책임 하에 설치하십시오.", "Please wait...." : "기다려 주십시오....", "Error while disabling app" : "앱을 비활성화하는 중 오류 발생", "Disable" : "사용 안함", @@ -62,6 +76,7 @@ OC.L10N.register( "Strong password" : "강력한 암호", "Valid until {date}" : "{date}까지 유효함", "Delete" : "삭제", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "오류가 발생하였습니다. ASCII로 인코딩된 PEM 인증서를 업로드하십시오.", "Groups" : "그룹", "Unable to delete {objName}" : "{objName}을(를) 삭제할 수 없음", "Error creating group" : "그룹을 생성하는 중 오류가 발생하였습니다", @@ -78,6 +93,8 @@ OC.L10N.register( "A valid password must be provided" : "올바른 암호를 입력해야 함", "A valid email must be provided" : "올바른 이메일 주소를 입력해야 함", "__language_name__" : "한국어", + "Sync clients" : "동기화 클라이언트", + "Personal info" : "개인 정보", "SSL root certificates" : "SSL 루트 인증서", "Everything (fatal issues, errors, warnings, info, debug)" : "모두 (치명적 문제, 오류, 경고, 정보, 디버그)", "Info, warnings, errors and fatal issues" : "정보, 경고, 오류, 치명적 문제", @@ -90,15 +107,20 @@ OC.L10N.register( "NT LAN Manager" : "NT LAN 관리자", "SSL" : "SSL", "TLS" : "TLS", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.", + "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "설치 문서를 참조하여 php 설정 방법 및 php 설정을 변경하십시오. php-fpm을 사용한다면 더 주의하십시오.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "서버가 Microsoft Windows 환경에서 동작하고 있습니다. 최적의 사용자 경험을 위해서는 리눅스를 사용할 것을 권장합니다.", + "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu 버전 4.0.6 이하가 설치되어 있습니다. 안정성 및 성능 문제가 발생할 수 있으므로 더 새로운 APCu 버전을 사용하는 것을 추천합니다.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.", "System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로캘을 사용할 수 없습니다.", "This means that there might be problems with certain characters in file names." : "파일 이름의 일부 문자에 문제가 생길 수도 있습니다.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "다음 중 하나 이상의 로캘을 지원하기 위하여 필요한 패키지를 시스템에 설치하는 것을 추천합니다: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생하였습니다:", + "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "<a target=\"_blank\" href=\"%s\">설치 가이드 ↗</a>를 다시 확인하시고 <a href=\"#log-section\">로그</a>의 오류 및 경고를 확인하십시오.", "Open documentation" : "문서 열기", "Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용", "Allow users to share via link" : "사용자별 링크 공유 허용", @@ -114,10 +136,20 @@ OC.L10N.register( "Allow users to send mail notification for shared files to other users" : "다른 사용자에게 공유 파일 이메일 알림 전송 허용", "Exclude groups from sharing" : "공유에서 그룹 제외", "These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.", + "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.", + "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", "Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.", "Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.", + "Enable server-side encryption" : "서버 측 암호화 사용", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "암호화 작업은 단방향입니다. 암호화를 한 번 활성화하면 그 시점 이후에 서버에 저장되는 모든 파일이 암호화되며 나중에 암호화를 비활성화할 수 없습니다. 마지막 경고입니다. 암호화를 활성화하시겠습니까?", + "Enable encryption" : "암호화 사용", + "No encryption module loaded, please enable an encryption module in the app menu." : "암호화 모듈을 불러오지 않았습니다. 앱 메뉴에서 암호화 모듈을 활성화하십시오.", + "Select default encryption module:" : "기본 암호화 모듈 선택:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다. \"ownCloud 기본 암호화 모듈\"을 활성화한 후 'occ encryption:migrate' 명령을 실행하십시오", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.", + "Start migration" : "이전 시작", "This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.", "Send mode" : "보내기 모드", "Encryption" : "암호화", @@ -137,26 +169,47 @@ OC.L10N.register( "Download logfile" : "로그 파일 다운로드", "More" : "더 중요함", "Less" : "덜 중요함", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "로그 파일이 100MB보다 큽니다. 다운로드하는 데 시간이 걸릴 수 있습니다!", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정이면, SQLite를 사용하지 않는 것이 좋습니다.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 이전하려면 다음 명령을 사용하십시오: 'occ db:convert-type' 다른 명령을 알아보려면 <a target=\"_blank\" href=\"%s\">문서 ↗</a>를 참고하십시오.", + "How to do backups" : "백업 방법", + "Advanced monitoring" : "고급 모니터링", + "Performance tuning" : "성능 튜닝", + "Improving the config.php" : "config.php 개선", + "Theming" : "테마 꾸미기", + "Hardening and security guidance" : "보안 강화 지침", "Version" : "버전", + "Developer documentation" : "개발자 문서", + "Experimental applications ahead" : "실험적인 앱 사용 예정", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "실험적인 앱은 보안 문제 검사를 통과하지 않았으며, 아직 새롭거나, 불안정하거나, 개발 중일 수도 있습니다. 이러한 앱을 설치하면 데이터 손실 및 보안 문제가 발생할 수도 있습니다.", "by" : "작성:", "licensed" : "라이선스:", "Documentation:" : "문서:", "User Documentation" : "사용자 문서", "Admin Documentation" : "운영자 문서", + "Show description …" : "설명 보기...", + "Hide description …" : "설명 숨기기...", "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:", "Update to %s" : "%s(으)로 업데이트", "Enable only for specific groups" : "특정 그룹에만 허용", "Uninstall App" : "앱 제거", + "Enable experimental apps" : "실험적인 앱 사용", + "No apps found for your version" : "설치된 버전에 대한 앱 없음", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "안녕하세요.<br><br>%s 계정을 사용할 수 있음을 알려 드립니다.<br><br>사용자 이름: %s<br>접근 링크: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "감사합니다!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n", + "User documentation" : "사용자 문서", + "Administrator documentation" : "관리자 문서", + "Online documentation" : "온라인 문서", "Forum" : "포럼", + "Issue tracker" : "이슈 트래커", + "Commercial support" : "상용 지원", "Get the apps to sync your files" : "파일 동기화 앱 가져오기", "Desktop client" : "데스크톱 클라이언트", "Android app" : "Android 앱", "iOS app" : "iOS 앱", + "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "프로젝트를 지원하려면\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">개발에 참여하거나</a>\n\t\t\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">널리 알려 주십시오</a>!", "Show First Run Wizard again" : "첫 실행 마법사 다시 보이기", "You have used <strong>%s</strong> of the available <strong>%s</strong>" : "현재 공간 중 <strong>%s</strong>/<strong>%s</strong>을(를) 사용 중입니다", "Password" : "암호", @@ -164,11 +217,13 @@ OC.L10N.register( "Current password" : "현재 암호", "New password" : "새 암호", "Change password" : "암호 변경", + "Full name" : "전체 이름", "No display name set" : "표시 이름이 설정되지 않음", "Email" : "이메일", "Your email address" : "이메일 주소", "Fill in an email address to enable password recovery and receive notifications" : "이메일 주소를 입력하면 암호 찾기 및 알림 수신이 가능합니다", "No email address set" : "이메일 주소가 설정되지 않음", + "You are member of the following groups:" : "다음 그룹의 구성원입니다:", "Profile picture" : "프로필 사진", "Upload new" : "새로 업로드", "Select new from Files" : "파일에서 선택", @@ -183,6 +238,8 @@ OC.L10N.register( "Valid until" : "만료 기간:", "Issued By" : "발급자:", "Valid until %s" : "%s까지 유효함", + "Import root certificate" : "루트 인증서 가져오기", + "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "{communityopen}ownCloud 커뮤니티{linkclose}에서 개발함. {githubopen}원본 코드{linkclose}는 {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose} 라이선스로 배포됩니다.", "Show storage location" : "저장소 위치 보이기", "Show last log in" : "마지막 로그인 시간 보이기", "Show user backend" : "사용자 백엔드 보이기", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index 6c1de20e3cd..97049267a11 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -1,8 +1,12 @@ { "translations": { + "Security & setup warnings" : "보안 및 설치 경고", "Sharing" : "공유", + "Server-side encryption" : "서버 측 암호화", "External Storage" : "외부 저장소", "Cron" : "Cron", + "Email server" : "이메일 서버", "Log" : "로그", + "Tips & tricks" : "팁과 추가 정보", "Updates" : "업데이트", "Authentication error" : "인증 오류", "Your full name has been changed." : "전체 이름이 변경되었습니다.", @@ -18,18 +22,23 @@ "No user supplied" : "사용자가 지정되지 않음", "Please provide an admin recovery password, otherwise all user data will be lost" : "관리자 복구 암호를 입력하지 않으면 모든 사용자 데이터가 삭제됩니다", "Wrong admin recovery password. Please check the password and try again." : "관리자 복구 암호가 잘못되었습니다. 암호를 다시 확인하십시오.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "백엔드에서 암호 변경을 지원하지 않지만, 암호화 키는 갱신되었습니다.", "Unable to change password" : "암호를 변경할 수 없음", "Enabled" : "활성", "Not enabled" : "비활성", + "A problem occurred, please check your log files (Error: %s)" : "문제가 발생하였습니다. 로그 파일을 참조하십시오(오류: %s)", + "Migration Completed" : "이전 완료됨", "Group already exists." : "그룹이 이미 존재합니다.", "Unable to add group." : "그룹을 추가할 수 없습니다.", "Unable to delete group." : "그룹을 삭제할 수 없습니다.", "log-level out of allowed range" : "로그 단계가 허용 범위를 벗어남", "Saved" : "저장됨", "test email settings" : "이메일 설정 시험", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생하였습니다. 설정을 확인하십시오.(오류: %s)", "Email sent" : "이메일 발송됨", "You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.", "Invalid mail address" : "잘못된 이메일 주소", + "A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.", "Unable to create user." : "사용자를 만들 수 없습니다.", "Your %s account was created" : "%s 계정을 등록하였습니다", "Unable to delete user." : "사용자를 삭제할 수 없습니다.", @@ -39,8 +48,13 @@ "Email saved" : "이메일 저장됨", "Are you really sure you want add \"{domain}\" as trusted domain?" : "신뢰할 수 있는 도메인 목록에 \"{domain}\"을(를) 추가하시겠습니까?", "Add trusted domain" : "신뢰할 수 있는 도메인 추가", + "Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오", + "Migration started …" : "이전 시작됨...", "Sending..." : "보내는 중...", "All" : "모두", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "공식 앱은 ownCloud 커뮤니티 내에서 개발됩니다. ownCloud의 주요 기능을 제공하며 상용 환경에서 사용 가능합니다.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "승인된 앱은 신뢰할 수 있는 개발자가 개발하며 보안 검사를 통과하였습니다. 열린 코드 저장소에서 관리되며 일반적인 환경에서 사용할 수 있는 수준으로 관리됩니다.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "이 앱은 보안 검사를 통과하지 않았으며 새로 출시되었거나 안정적이지 않은 것으로 알려져 있습니다. 본인 책임 하에 설치하십시오.", "Please wait...." : "기다려 주십시오....", "Error while disabling app" : "앱을 비활성화하는 중 오류 발생", "Disable" : "사용 안함", @@ -60,6 +74,7 @@ "Strong password" : "강력한 암호", "Valid until {date}" : "{date}까지 유효함", "Delete" : "삭제", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "오류가 발생하였습니다. ASCII로 인코딩된 PEM 인증서를 업로드하십시오.", "Groups" : "그룹", "Unable to delete {objName}" : "{objName}을(를) 삭제할 수 없음", "Error creating group" : "그룹을 생성하는 중 오류가 발생하였습니다", @@ -76,6 +91,8 @@ "A valid password must be provided" : "올바른 암호를 입력해야 함", "A valid email must be provided" : "올바른 이메일 주소를 입력해야 함", "__language_name__" : "한국어", + "Sync clients" : "동기화 클라이언트", + "Personal info" : "개인 정보", "SSL root certificates" : "SSL 루트 인증서", "Everything (fatal issues, errors, warnings, info, debug)" : "모두 (치명적 문제, 오류, 경고, 정보, 디버그)", "Info, warnings, errors and fatal issues" : "정보, 경고, 오류, 치명적 문제", @@ -88,15 +105,20 @@ "NT LAN Manager" : "NT LAN 관리자", "SSL" : "SSL", "TLS" : "TLS", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.", + "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "설치 문서를 참조하여 php 설정 방법 및 php 설정을 변경하십시오. php-fpm을 사용한다면 더 주의하십시오.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "서버가 Microsoft Windows 환경에서 동작하고 있습니다. 최적의 사용자 경험을 위해서는 리눅스를 사용할 것을 권장합니다.", + "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu 버전 4.0.6 이하가 설치되어 있습니다. 안정성 및 성능 문제가 발생할 수 있으므로 더 새로운 APCu 버전을 사용하는 것을 추천합니다.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.", "System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로캘을 사용할 수 없습니다.", "This means that there might be problems with certain characters in file names." : "파일 이름의 일부 문자에 문제가 생길 수도 있습니다.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "다음 중 하나 이상의 로캘을 지원하기 위하여 필요한 패키지를 시스템에 설치하는 것을 추천합니다: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생하였습니다:", + "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "<a target=\"_blank\" href=\"%s\">설치 가이드 ↗</a>를 다시 확인하시고 <a href=\"#log-section\">로그</a>의 오류 및 경고를 확인하십시오.", "Open documentation" : "문서 열기", "Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용", "Allow users to share via link" : "사용자별 링크 공유 허용", @@ -112,10 +134,20 @@ "Allow users to send mail notification for shared files to other users" : "다른 사용자에게 공유 파일 이메일 알림 전송 허용", "Exclude groups from sharing" : "공유에서 그룹 제외", "These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.", + "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.", + "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", "Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.", "Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.", + "Enable server-side encryption" : "서버 측 암호화 사용", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "암호화 작업은 단방향입니다. 암호화를 한 번 활성화하면 그 시점 이후에 서버에 저장되는 모든 파일이 암호화되며 나중에 암호화를 비활성화할 수 없습니다. 마지막 경고입니다. 암호화를 활성화하시겠습니까?", + "Enable encryption" : "암호화 사용", + "No encryption module loaded, please enable an encryption module in the app menu." : "암호화 모듈을 불러오지 않았습니다. 앱 메뉴에서 암호화 모듈을 활성화하십시오.", + "Select default encryption module:" : "기본 암호화 모듈 선택:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다. \"ownCloud 기본 암호화 모듈\"을 활성화한 후 'occ encryption:migrate' 명령을 실행하십시오", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.", + "Start migration" : "이전 시작", "This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.", "Send mode" : "보내기 모드", "Encryption" : "암호화", @@ -135,26 +167,47 @@ "Download logfile" : "로그 파일 다운로드", "More" : "더 중요함", "Less" : "덜 중요함", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "로그 파일이 100MB보다 큽니다. 다운로드하는 데 시간이 걸릴 수 있습니다!", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정이면, SQLite를 사용하지 않는 것이 좋습니다.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 이전하려면 다음 명령을 사용하십시오: 'occ db:convert-type' 다른 명령을 알아보려면 <a target=\"_blank\" href=\"%s\">문서 ↗</a>를 참고하십시오.", + "How to do backups" : "백업 방법", + "Advanced monitoring" : "고급 모니터링", + "Performance tuning" : "성능 튜닝", + "Improving the config.php" : "config.php 개선", + "Theming" : "테마 꾸미기", + "Hardening and security guidance" : "보안 강화 지침", "Version" : "버전", + "Developer documentation" : "개발자 문서", + "Experimental applications ahead" : "실험적인 앱 사용 예정", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "실험적인 앱은 보안 문제 검사를 통과하지 않았으며, 아직 새롭거나, 불안정하거나, 개발 중일 수도 있습니다. 이러한 앱을 설치하면 데이터 손실 및 보안 문제가 발생할 수도 있습니다.", "by" : "작성:", "licensed" : "라이선스:", "Documentation:" : "문서:", "User Documentation" : "사용자 문서", "Admin Documentation" : "운영자 문서", + "Show description …" : "설명 보기...", + "Hide description …" : "설명 숨기기...", "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:", "Update to %s" : "%s(으)로 업데이트", "Enable only for specific groups" : "특정 그룹에만 허용", "Uninstall App" : "앱 제거", + "Enable experimental apps" : "실험적인 앱 사용", + "No apps found for your version" : "설치된 버전에 대한 앱 없음", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "안녕하세요.<br><br>%s 계정을 사용할 수 있음을 알려 드립니다.<br><br>사용자 이름: %s<br>접근 링크: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "감사합니다!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n", + "User documentation" : "사용자 문서", + "Administrator documentation" : "관리자 문서", + "Online documentation" : "온라인 문서", "Forum" : "포럼", + "Issue tracker" : "이슈 트래커", + "Commercial support" : "상용 지원", "Get the apps to sync your files" : "파일 동기화 앱 가져오기", "Desktop client" : "데스크톱 클라이언트", "Android app" : "Android 앱", "iOS app" : "iOS 앱", + "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "프로젝트를 지원하려면\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">개발에 참여하거나</a>\n\t\t\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">널리 알려 주십시오</a>!", "Show First Run Wizard again" : "첫 실행 마법사 다시 보이기", "You have used <strong>%s</strong> of the available <strong>%s</strong>" : "현재 공간 중 <strong>%s</strong>/<strong>%s</strong>을(를) 사용 중입니다", "Password" : "암호", @@ -162,11 +215,13 @@ "Current password" : "현재 암호", "New password" : "새 암호", "Change password" : "암호 변경", + "Full name" : "전체 이름", "No display name set" : "표시 이름이 설정되지 않음", "Email" : "이메일", "Your email address" : "이메일 주소", "Fill in an email address to enable password recovery and receive notifications" : "이메일 주소를 입력하면 암호 찾기 및 알림 수신이 가능합니다", "No email address set" : "이메일 주소가 설정되지 않음", + "You are member of the following groups:" : "다음 그룹의 구성원입니다:", "Profile picture" : "프로필 사진", "Upload new" : "새로 업로드", "Select new from Files" : "파일에서 선택", @@ -181,6 +236,8 @@ "Valid until" : "만료 기간:", "Issued By" : "발급자:", "Valid until %s" : "%s까지 유효함", + "Import root certificate" : "루트 인증서 가져오기", + "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "{communityopen}ownCloud 커뮤니티{linkclose}에서 개발함. {githubopen}원본 코드{linkclose}는 {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose} 라이선스로 배포됩니다.", "Show storage location" : "저장소 위치 보이기", "Show last log in" : "마지막 로그인 시간 보이기", "Show user backend" : "사용자 백엔드 보이기", diff --git a/settings/l10n/mk.js b/settings/l10n/mk.js index 1ee7c5e7c1d..19b5df2cca7 100644 --- a/settings/l10n/mk.js +++ b/settings/l10n/mk.js @@ -1,13 +1,19 @@ OC.L10N.register( "settings", { + "Security & setup warnings" : "Предупредувања за сигурност и подесувања", "Sharing" : "Споделување", + "Server-side encryption" : "Енкрипција на страна на серверот", "External Storage" : "Надворешно складиште", "Cron" : "Крон", + "Email server" : "Сервер за е-пошта", "Log" : "Записник", + "Tips & tricks" : "Совети и трикови", + "Updates" : "Ажурирања", "Authentication error" : "Грешка во автентикација", "Your full name has been changed." : "Вашето целосно име е променето.", "Unable to change full name" : "Не можам да го променам целото име", + "Couldn't remove app." : "Не можам да ја отстранам апликацијата.", "Language changed" : "Јазикот е сменет", "Invalid request" : "Неправилно барање", "Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата", @@ -16,10 +22,21 @@ OC.L10N.register( "Couldn't update app." : "Не можам да ја надградам апликацијата.", "Wrong password" : "Погрешна лозинка", "No user supplied" : "Нема корисничко име", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Ве молам дадете лозинка за поврат на администраторот, или сите кориснички податоци ќе бидат изгубени", + "Wrong admin recovery password. Please check the password and try again." : "Погрешна лозинка за поврат на администраторот. Ве молам проверете ја лозинката и пробајте повторно.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадината не подржува промена на лозинката, но корисничкиот клуч за енкрипција беше успешно ажуриран.", "Unable to change password" : "Вашата лозинка неможе да се смени", "Enabled" : "Овозможен", + "Not enabled" : "Не е овозможено", + "A problem occurred, please check your log files (Error: %s)" : "Се случи грешка, ве молам проверете ги вашите датотеки за логови (Грешка: %s)", + "Migration Completed" : "Миграцијата заврши", + "Group already exists." : "Групата веќе постои.", + "Unable to add group." : "Не можам да додадам група.", + "Unable to delete group." : "Не можам да избришам група.", + "log-level out of allowed range" : "нивото на логирање е надвор од дозволениот опсег", "Saved" : "Снимено", "test email settings" : "провери ги нагодувањата за електронска пошта", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Се случи грешка при праќање на порака. Ве молам проверете ги вашите подесувања. (Error: %s)", "Email sent" : "Е-порака пратена", "Email saved" : "Електронската пошта е снимена", "Sending..." : "Испраќам...", diff --git a/settings/l10n/mk.json b/settings/l10n/mk.json index ab2eff42d5a..075bd1c7f8b 100644 --- a/settings/l10n/mk.json +++ b/settings/l10n/mk.json @@ -1,11 +1,17 @@ { "translations": { + "Security & setup warnings" : "Предупредувања за сигурност и подесувања", "Sharing" : "Споделување", + "Server-side encryption" : "Енкрипција на страна на серверот", "External Storage" : "Надворешно складиште", "Cron" : "Крон", + "Email server" : "Сервер за е-пошта", "Log" : "Записник", + "Tips & tricks" : "Совети и трикови", + "Updates" : "Ажурирања", "Authentication error" : "Грешка во автентикација", "Your full name has been changed." : "Вашето целосно име е променето.", "Unable to change full name" : "Не можам да го променам целото име", + "Couldn't remove app." : "Не можам да ја отстранам апликацијата.", "Language changed" : "Јазикот е сменет", "Invalid request" : "Неправилно барање", "Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата", @@ -14,10 +20,21 @@ "Couldn't update app." : "Не можам да ја надградам апликацијата.", "Wrong password" : "Погрешна лозинка", "No user supplied" : "Нема корисничко име", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Ве молам дадете лозинка за поврат на администраторот, или сите кориснички податоци ќе бидат изгубени", + "Wrong admin recovery password. Please check the password and try again." : "Погрешна лозинка за поврат на администраторот. Ве молам проверете ја лозинката и пробајте повторно.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадината не подржува промена на лозинката, но корисничкиот клуч за енкрипција беше успешно ажуриран.", "Unable to change password" : "Вашата лозинка неможе да се смени", "Enabled" : "Овозможен", + "Not enabled" : "Не е овозможено", + "A problem occurred, please check your log files (Error: %s)" : "Се случи грешка, ве молам проверете ги вашите датотеки за логови (Грешка: %s)", + "Migration Completed" : "Миграцијата заврши", + "Group already exists." : "Групата веќе постои.", + "Unable to add group." : "Не можам да додадам група.", + "Unable to delete group." : "Не можам да избришам група.", + "log-level out of allowed range" : "нивото на логирање е надвор од дозволениот опсег", "Saved" : "Снимено", "test email settings" : "провери ги нагодувањата за електронска пошта", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Се случи грешка при праќање на порака. Ве молам проверете ги вашите подесувања. (Error: %s)", "Email sent" : "Е-порака пратена", "Email saved" : "Електронската пошта е снимена", "Sending..." : "Испраќам...", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index af519698068..3c42aa7f35b 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen", "Sharing" : "Delen", - "External Storage" : "Externe opslag", "Server-side encryption" : "Server-side versleuteling", + "External Storage" : "Externe opslag", "Cron" : "Cron", "Email server" : "E-mailserver", "Log" : "Log", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.", "Enable server-side encryption" : "Server-side versleuteling inschakelen", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Versleuteling is een eenrichtingsproces. Als versleuteling is ingeschakeld, worden alle bestanden vanaf dat moment versleuteld op de server en is het niet meer mogelijk versleuteling later uit te schakelen. Dit is de laatste waarschuwing: Wilt u echt versleuteling inschakelen?", + "Enable encryption" : "Versleuteling inschakelen", + "No encryption module loaded, please enable an encryption module in the app menu." : "Er is geen cryptomodule geladen, activeer een cryptomodule in het appmenu", + "Select default encryption module:" : "Selecteer de standaard cryptomodule:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe. Activeer de \"ownCloud Standaard Cryptomodule\" en start 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.", "Start migration" : "Start migratie", "This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.", "Send mode" : "Verstuurmodus", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 6fdfc8f41a1..d2bb1d66b58 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen", "Sharing" : "Delen", - "External Storage" : "Externe opslag", "Server-side encryption" : "Server-side versleuteling", + "External Storage" : "Externe opslag", "Cron" : "Cron", "Email server" : "E-mailserver", "Log" : "Log", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.", "Enable server-side encryption" : "Server-side versleuteling inschakelen", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Versleuteling is een eenrichtingsproces. Als versleuteling is ingeschakeld, worden alle bestanden vanaf dat moment versleuteld op de server en is het niet meer mogelijk versleuteling later uit te schakelen. Dit is de laatste waarschuwing: Wilt u echt versleuteling inschakelen?", + "Enable encryption" : "Versleuteling inschakelen", + "No encryption module loaded, please enable an encryption module in the app menu." : "Er is geen cryptomodule geladen, activeer een cryptomodule in het appmenu", + "Select default encryption module:" : "Selecteer de standaard cryptomodule:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe. Activeer de \"ownCloud Standaard Cryptomodule\" en start 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.", "Start migration" : "Start migratie", "This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.", "Send mode" : "Verstuurmodus", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index b745d3d2186..f516d763038 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Segurança & avisos de configuração", "Sharing" : "Compartilhamento", - "External Storage" : "Armazenamento Externo", "Server-side encryption" : "Criptografia do lado do servidor", + "External Storage" : "Armazenamento Externo", "Cron" : "Cron", "Email server" : "Servidor de Email", "Log" : "Registro", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para chamar o arquivo cron.php cada 15 minutos.", "Enable server-side encryption" : "Habilitar a Criptografia do Lado do Servidor", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "A criptografia é um processo de um caminho. Uma vez que a criptografia esteja habilitada, todos os arquivos a partir desse ponto em diante serão criptografados no servidor e não será possível desativar a criptografia em uma data posterior. Este é o aviso final: Você realmente quer ativar a criptografia?", + "Enable encryption" : "Ativar criptografia", + "No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de criptografia carregado, por favor, ative um módulo de criptografia no menu de aplicativos.", + "Select default encryption module:" : "Selecione o módulo de criptografia padrão:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova. Ative o \"Módulo de criptografia padrão ownCloud\" e execute 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova.", "Start migration" : "Iniciar migração", "This is used for sending out notifications." : "Isto é usado para o envio de notificações.", "Send mode" : "Modo enviar", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index e21236cb0d6..f982b48d150 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Segurança & avisos de configuração", "Sharing" : "Compartilhamento", - "External Storage" : "Armazenamento Externo", "Server-side encryption" : "Criptografia do lado do servidor", + "External Storage" : "Armazenamento Externo", "Cron" : "Cron", "Email server" : "Servidor de Email", "Log" : "Registro", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para chamar o arquivo cron.php cada 15 minutos.", "Enable server-side encryption" : "Habilitar a Criptografia do Lado do Servidor", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "A criptografia é um processo de um caminho. Uma vez que a criptografia esteja habilitada, todos os arquivos a partir desse ponto em diante serão criptografados no servidor e não será possível desativar a criptografia em uma data posterior. Este é o aviso final: Você realmente quer ativar a criptografia?", + "Enable encryption" : "Ativar criptografia", + "No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de criptografia carregado, por favor, ative um módulo de criptografia no menu de aplicativos.", + "Select default encryption module:" : "Selecione o módulo de criptografia padrão:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova. Ative o \"Módulo de criptografia padrão ownCloud\" e execute 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova.", "Start migration" : "Iniciar migração", "This is used for sending out notifications." : "Isto é usado para o envio de notificações.", "Send mode" : "Modo enviar", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 1a95c76b0d2..8e53b7e725c 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Предупреждения безопасности и установки", "Sharing" : "Общий доступ", - "External Storage" : "Внешнее хранилище", "Server-side encryption" : "Шифрование на стороне сервера", + "External Storage" : "Внешнее хранилище", "Cron" : "Cron (планировщик задач)", "Email server" : "Почтовый сервер", "Log" : "Журнал", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index c6ab2412e5a..f41c4df5243 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Предупреждения безопасности и установки", "Sharing" : "Общий доступ", - "External Storage" : "Внешнее хранилище", "Server-side encryption" : "Шифрование на стороне сервера", + "External Storage" : "Внешнее хранилище", "Cron" : "Cron (планировщик задач)", "Email server" : "Почтовый сервер", "Log" : "Журнал", diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js index bcc464963d8..257aa8f9536 100644 --- a/settings/l10n/sl.js +++ b/settings/l10n/sl.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Varnost in namestitvena opozorila", "Sharing" : "Souporaba", - "External Storage" : "Zunanja podatkovna shramba", "Server-side encryption" : "Šifriranje na strežniku", + "External Storage" : "Zunanja podatkovna shramba", "Cron" : "Periodično opravilo", "Email server" : "Poštni strežnik", "Log" : "Dnevnik", diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json index 7d4b4f74e0f..e1972909ac5 100644 --- a/settings/l10n/sl.json +++ b/settings/l10n/sl.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Varnost in namestitvena opozorila", "Sharing" : "Souporaba", - "External Storage" : "Zunanja podatkovna shramba", "Server-side encryption" : "Šifriranje na strežniku", + "External Storage" : "Zunanja podatkovna shramba", "Cron" : "Periodično opravilo", "Email server" : "Poštni strežnik", "Log" : "Dnevnik", diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js index 7bcb9874bdd..7cc1ce408d3 100644 --- a/settings/l10n/sr.js +++ b/settings/l10n/sr.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Безбедносна и упозорења поставе", "Sharing" : "Дељење", - "External Storage" : "Спољашње складиште", "Server-side encryption" : "Шифровање на страни сервера", + "External Storage" : "Спољашње складиште", "Cron" : "Крон", "Email server" : "Сервер е-поште", "Log" : "Бележење", @@ -143,6 +143,12 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", "Enable server-side encryption" : "Укључи шифровање на страни сервера", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Шифровање је једносмеран процес. Једном када се укључи, сви фајлови ће од тада бити шифровани на серверу и касније се неће моћи искључити. Ово је последње упозорење: Да ли заиста желите да укључите шифровање?", + "Enable encryption" : "Укључи шифровање", + "No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација", + "Select default encryption module:" : "Изаберите подразумевани шифрарски модул:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.", "Start migration" : "Покрени пресељење", "This is used for sending out notifications." : "Ово се користи за слање обавештења.", "Send mode" : "Режим слања", diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json index 5f84a0f6ee7..d2d33b143b1 100644 --- a/settings/l10n/sr.json +++ b/settings/l10n/sr.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Безбедносна и упозорења поставе", "Sharing" : "Дељење", - "External Storage" : "Спољашње складиште", "Server-side encryption" : "Шифровање на страни сервера", + "External Storage" : "Спољашње складиште", "Cron" : "Крон", "Email server" : "Сервер е-поште", "Log" : "Бележење", @@ -141,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", "Enable server-side encryption" : "Укључи шифровање на страни сервера", + "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Шифровање је једносмеран процес. Једном када се укључи, сви фајлови ће од тада бити шифровани на серверу и касније се неће моћи искључити. Ово је последње упозорење: Да ли заиста желите да укључите шифровање?", + "Enable encryption" : "Укључи шифровање", + "No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација", + "Select default encryption module:" : "Изаберите подразумевани шифрарски модул:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.", "Start migration" : "Покрени пресељење", "This is used for sending out notifications." : "Ово се користи за слање обавештења.", "Send mode" : "Режим слања", diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index 78bc9ac243a..d3d9485c39d 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Güvenlik ve kurulum uyarıları", "Sharing" : "Paylaşım", - "External Storage" : "Harici Depolama", "Server-side encryption" : "Sunucu taraflı şifreleme", + "External Storage" : "Harici Depolama", "Cron" : "Cron", "Email server" : "E-Posta sunucusu", "Log" : "Günlük", @@ -143,6 +143,7 @@ OC.L10N.register( "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.", "Use system's cron service to call the cron.php file every 15 minutes." : "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.", "Enable server-side encryption" : "Sunucu-taraflı şifrelemeyi aç", + "Enable encryption" : "Kriptolamayı aç", "Start migration" : "Taşınmayı başlat", "This is used for sending out notifications." : "Bu, bildirimler gönderilirken kullanılır.", "Send mode" : "Gönderme kipi", @@ -187,11 +188,17 @@ OC.L10N.register( "Update to %s" : "%s sürümüne güncelle", "Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir", "Uninstall App" : "Uygulamayı Kaldır", + "Enable experimental apps" : "Deneme uygulamalarını aç", "No apps found for your version" : "Sürümünüz için uygulama bulunamadı", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Merhaba,<br><br>Sadece artık bir %s hesabınızın olduğunu söylemek istedim.<br><br>Kullanıcı adınız: %s<br>Şuradan erişin: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Hoşçakalın!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n", + "User documentation" : "Kullanıcı kılavuzu", + "Administrator documentation" : "Yönetici kılavuzu", + "Online documentation" : "Online kılavuz", "Forum" : "Forum", + "Issue tracker" : "Sorun Takip", + "Commercial support" : "Ticari destek", "Get the apps to sync your files" : "Dosyalarınızı eşitlemek için uygulamaları indirin", "Desktop client" : "Masaüstü istemcisi", "Android app" : "Android uygulaması", diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 11f9c828f3e..b2a2c6bf936 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Güvenlik ve kurulum uyarıları", "Sharing" : "Paylaşım", - "External Storage" : "Harici Depolama", "Server-side encryption" : "Sunucu taraflı şifreleme", + "External Storage" : "Harici Depolama", "Cron" : "Cron", "Email server" : "E-Posta sunucusu", "Log" : "Günlük", @@ -141,6 +141,7 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.", "Use system's cron service to call the cron.php file every 15 minutes." : "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.", "Enable server-side encryption" : "Sunucu-taraflı şifrelemeyi aç", + "Enable encryption" : "Kriptolamayı aç", "Start migration" : "Taşınmayı başlat", "This is used for sending out notifications." : "Bu, bildirimler gönderilirken kullanılır.", "Send mode" : "Gönderme kipi", @@ -185,11 +186,17 @@ "Update to %s" : "%s sürümüne güncelle", "Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir", "Uninstall App" : "Uygulamayı Kaldır", + "Enable experimental apps" : "Deneme uygulamalarını aç", "No apps found for your version" : "Sürümünüz için uygulama bulunamadı", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Merhaba,<br><br>Sadece artık bir %s hesabınızın olduğunu söylemek istedim.<br><br>Kullanıcı adınız: %s<br>Şuradan erişin: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Hoşçakalın!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n", + "User documentation" : "Kullanıcı kılavuzu", + "Administrator documentation" : "Yönetici kılavuzu", + "Online documentation" : "Online kılavuz", "Forum" : "Forum", + "Issue tracker" : "Sorun Takip", + "Commercial support" : "Ticari destek", "Get the apps to sync your files" : "Dosyalarınızı eşitlemek için uygulamaları indirin", "Desktop client" : "Masaüstü istemcisi", "Android app" : "Android uygulaması", diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js index 6ea35e1eb67..c60e3eeab06 100644 --- a/settings/l10n/uk.js +++ b/settings/l10n/uk.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Security & setup warnings" : "Попередження безпеки та налаштування", "Sharing" : "Спільний доступ", - "External Storage" : "Зовнішні сховища", "Server-side encryption" : "Серверне шіфрування", + "External Storage" : "Зовнішні сховища", "Cron" : "Планувальник Cron", "Email server" : "Сервер електронної пошти", "Log" : "Журнал", diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json index 4201c9d339f..f88a1c29edc 100644 --- a/settings/l10n/uk.json +++ b/settings/l10n/uk.json @@ -1,8 +1,8 @@ { "translations": { "Security & setup warnings" : "Попередження безпеки та налаштування", "Sharing" : "Спільний доступ", - "External Storage" : "Зовнішні сховища", "Server-side encryption" : "Серверне шіфрування", + "External Storage" : "Зовнішні сховища", "Cron" : "Планувальник Cron", "Email server" : "Сервер електронної пошти", "Log" : "Журнал", diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 50a481eb20d..f9a99b589af 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -158,9 +158,7 @@ if ($_['cronErrors']) { <br> <ol> <?php foreach(json_decode($_['cronErrors']) as $error) { if(isset($error->error)) {?> - <li><?php p($error->error) ?></li> - <ul><li><?php p($error->hint) ?></li></ul> - + <li><?php p($error->error) ?> <?php p($error->hint) ?></li> <?php }};?> </ol> </li> @@ -337,7 +335,7 @@ if ($_['cronErrors']) { <div id='selectEncryptionModules' class="<?php if (!$_['encryptionReady']) p('hidden'); ?>"> <?php if (empty($_['encryptionModules'])) { - p($l->t('No encryption module loaded, please load a encryption module in the app menu')); + p($l->t('No encryption module loaded, please enable an encryption module in the app menu.')); } else { ?> <h3><?php p($l->t('Select default encryption module:')) ?></h3> <fieldset id='encryptionModules'> @@ -351,6 +349,8 @@ if ($_['cronErrors']) { <label for="<?php p($id) ?>"><?php p($module['displayName']) ?></label> <br/> + + <?php if ($id === 'OC_DEFAULT_MODULE') print_unescaped($_['ocDefaultEncryptionModulePanel']); ?> <?php endforeach; ?> </fieldset> <?php } ?> diff --git a/tests/apps.php b/tests/apps.php index 3e27b81df61..f13a996772f 100644 --- a/tests/apps.php +++ b/tests/apps.php @@ -7,6 +7,9 @@ */ function loadDirectory($path) { + if (strpos($path, 'integration')) { + return; + } if ($dh = opendir($path)) { while ($name = readdir($dh)) { if ($name[0] !== '.') { diff --git a/tests/core/command/encryption/disabletest.php b/tests/core/command/encryption/disabletest.php index 48a6539b243..26c814a9c4e 100644 --- a/tests/core/command/encryption/disabletest.php +++ b/tests/core/command/encryption/disabletest.php @@ -72,7 +72,7 @@ class DisableTest extends TestCase { $this->consoleOutput->expects($this->once()) ->method('writeln') - ->with($expectedString); + ->with($this->stringContains($expectedString)); if ($isUpdating) { $this->config->expects($this->once()) diff --git a/tests/core/command/encryption/enabletest.php b/tests/core/command/encryption/enabletest.php index 217329ca291..377d0e2a528 100644 --- a/tests/core/command/encryption/enabletest.php +++ b/tests/core/command/encryption/enabletest.php @@ -29,6 +29,8 @@ class EnableTest extends TestCase { /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $config; /** @var \PHPUnit_Framework_MockObject_MockObject */ + protected $manager; + /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $consoleInput; /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $consoleOutput; @@ -42,18 +44,25 @@ class EnableTest extends TestCase { $config = $this->config = $this->getMockBuilder('OCP\IConfig') ->disableOriginalConstructor() ->getMock(); + $manager = $this->manager = $this->getMockBuilder('OCP\Encryption\IManager') + ->disableOriginalConstructor() + ->getMock(); $this->consoleInput = $this->getMock('Symfony\Component\Console\Input\InputInterface'); $this->consoleOutput = $this->getMock('Symfony\Component\Console\Output\OutputInterface'); /** @var \OCP\IConfig $config */ - $this->command = new Enable($config); + /** @var \OCP\Encryption\IManager $manager */ + $this->command = new Enable($config, $manager); } public function dataEnable() { return [ - ['no', true, 'Encryption enabled'], - ['yes', false, 'Encryption is already enabled'], + ['no', null, [], true, 'Encryption enabled', 'No encryption module is loaded'], + ['yes', null, [], false, 'Encryption is already enabled', 'No encryption module is loaded'], + ['no', null, ['OC_TEST_MODULE' => []], true, 'Encryption enabled', 'No default module is set'], + ['no', 'OC_NO_MODULE', ['OC_TEST_MODULE' => []], true, 'Encryption enabled', 'The current default module does not exist: OC_NO_MODULE'], + ['no', 'OC_TEST_MODULE', ['OC_TEST_MODULE' => []], true, 'Encryption enabled', 'Default module: OC_TEST_MODULE'], ]; } @@ -61,36 +70,49 @@ class EnableTest extends TestCase { * @dataProvider dataEnable * * @param string $oldStatus + * @param string $defaultModule + * @param array $availableModules * @param bool $isUpdating * @param string $expectedString + * @param string $expectedDefaultModuleString */ - public function testEnable($oldStatus, $isUpdating, $expectedString) { - $invoceCount = 0; - $this->config->expects($this->at($invoceCount)) + public function testEnable($oldStatus, $defaultModule, $availableModules, $isUpdating, $expectedString, $expectedDefaultModuleString) { + $invokeCount = 0; + $this->config->expects($this->at($invokeCount)) ->method('getAppValue') ->with('core', 'encryption_enabled', $this->anything()) ->willReturn($oldStatus); - $invoceCount++; + $invokeCount++; if ($isUpdating) { $this->config->expects($this->once()) ->method('setAppValue') ->with('core', 'encryption_enabled', 'yes'); - $invoceCount++; + $invokeCount++; } - $this->config->expects($this->at($invoceCount)) - ->method('getAppValue') - ->with('core', 'default_encryption_module', $this->anything()) - ->willReturnArgument(2); + $this->manager->expects($this->atLeastOnce()) + ->method('getEncryptionModules') + ->willReturn($availableModules); + + if (!empty($availableModules)) { + $this->config->expects($this->at($invokeCount)) + ->method('getAppValue') + ->with('core', 'default_encryption_module', $this->anything()) + ->willReturn($defaultModule); + } $this->consoleOutput->expects($this->at(0)) ->method('writeln') - ->with($expectedString); + ->with($this->stringContains($expectedString)); $this->consoleOutput->expects($this->at(1)) ->method('writeln') - ->with($this->stringContains('Default module')); + ->with(''); + + $this->consoleOutput->expects($this->at(2)) + ->method('writeln') + ->with($this->stringContains($expectedDefaultModuleString)); \Test_Helper::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]); } diff --git a/tests/lib/appconfig.php b/tests/lib/appconfig.php index ead5b859277..adff45706cc 100644 --- a/tests/lib/appconfig.php +++ b/tests/lib/appconfig.php @@ -8,16 +8,25 @@ */ class Test_Appconfig extends \Test\TestCase { - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); + /** @var \OCP\IAppConfig */ + protected $appConfig; - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?'); + /** @var \OCP\IDBConnection */ + protected $connection; + + public function setUp() { + parent::setUp(); + + $this->connection = \OC::$server->getDatabaseConnection(); + $this->registerAppConfig(new \OC\AppConfig(\OC::$server->getDatabaseConnection())); + + $query = $this->connection->prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?'); $query->execute(array('testapp')); $query->execute(array('someapp')); $query->execute(array('123456')); $query->execute(array('anotherapp')); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*appconfig` VALUES (?, ?, ?)'); + $query = $this->connection->prepare('INSERT INTO `*PREFIX*appconfig` VALUES (?, ?, ?)'); $query->execute(array('testapp', 'enabled', 'true')); $query->execute(array('testapp', 'installed_version', '1.2.3')); @@ -35,17 +44,41 @@ class Test_Appconfig extends \Test\TestCase { $query->execute(array('anotherapp', 'enabled', 'false')); } - public static function tearDownAfterClass() { - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?'); + public function tearDown() { + $query = $this->connection->prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?'); $query->execute(array('testapp')); $query->execute(array('someapp')); $query->execute(array('123456')); $query->execute(array('anotherapp')); - parent::tearDownAfterClass(); + $this->registerAppConfig(new \OC\AppConfig(\OC::$server->getDatabaseConnection())); + parent::tearDown(); + } + + /** + * Register an app config object for testing purposes. + * + * @param \OCP\IAppConfig $appConfig + */ + protected function registerAppConfig($appConfig) { + \OC::$server->registerService('AppConfig', function ($c) use ($appConfig) { + return $appConfig; + }); } - public function testGetApps() { + public function getAppConfigs() { + return [ + ['\OC_Appconfig'], + [new \OC\AppConfig(\OC::$server->getDatabaseConnection())], + ]; + } + + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testGetApps($callable) { $query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig` ORDER BY `appid`'); $result = $query->execute(); $expected = array(); @@ -53,11 +86,16 @@ class Test_Appconfig extends \Test\TestCase { $expected[] = $row['appid']; } sort($expected); - $apps = \OC_Appconfig::getApps(); + $apps = call_user_func([$callable, 'getApps']); $this->assertEquals($expected, $apps); } - public function testGetKeys() { + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testGetKeys($callable) { $query = \OC_DB::prepare('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'); $result = $query->execute(array('testapp')); $expected = array(); @@ -65,44 +103,103 @@ class Test_Appconfig extends \Test\TestCase { $expected[] = $row["configkey"]; } sort($expected); - $keys = \OC_Appconfig::getKeys('testapp'); + $keys = call_user_func([$callable, 'getKeys'], 'testapp'); $this->assertEquals($expected, $keys); } - public function testGetValue() { - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('testapp', 'installed_version')); - $expected = $result->fetchRow(); - $value = \OC_Appconfig::getValue('testapp', 'installed_version'); - $this->assertEquals($expected['configvalue'], $value); + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testGetValue($callable) { + $value = call_user_func([$callable, 'getValue'], 'testapp', 'installed_version'); + $this->assertConfigKey('testapp', 'installed_version', $value); - $value = \OC_Appconfig::getValue('testapp', 'nonexistant'); + $value = call_user_func([$callable, 'getValue'], 'testapp', 'nonexistant'); $this->assertNull($value); - $value = \OC_Appconfig::getValue('testapp', 'nonexistant', 'default'); + $value = call_user_func([$callable, 'getValue'], 'testapp', 'nonexistant', 'default'); $this->assertEquals('default', $value); } - public function testHasKey() { - $value = \OC_Appconfig::hasKey('testapp', 'installed_version'); + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testHasKey($callable) { + $value = call_user_func([$callable, 'hasKey'], 'testapp', 'installed_version'); $this->assertTrue($value); - $value = \OC_Appconfig::hasKey('nonexistant', 'nonexistant'); + $value = call_user_func([$callable, 'hasKey'], 'nonexistant', 'nonexistant'); $this->assertFalse($value); } - public function testSetValue() { - \OC_Appconfig::setValue('testapp', 'installed_version', '1.33.7'); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('testapp', 'installed_version')); - $value = $result->fetchRow(); - $this->assertEquals('1.33.7', $value['configvalue']); + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testSetValue($callable) { + call_user_func([$callable, 'setValue'], 'testapp', 'installed_version', '1.33.7'); + $this->assertConfigKey('testapp', 'installed_version', '1.33.7'); - \OC_Appconfig::setValue('someapp', 'somekey', 'somevalue'); + call_user_func([$callable, 'setValue'], 'someapp', 'somekey', 'somevalue'); + $this->assertConfigKey('someapp', 'somekey', 'somevalue'); + } + + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testDeleteKey($callable) { + call_user_func([$callable, 'deleteKey'], 'testapp', 'deletethis'); $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('someapp', 'somekey')); - $value = $result->fetchRow(); - $this->assertEquals('somevalue', $value['configvalue']); + $query->execute(array('testapp', 'deletethis')); + $result = (bool)$query->fetchRow(); + $this->assertFalse($result); + } + + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testDeleteApp($callable) { + call_user_func([$callable, 'deleteApp'], 'someapp'); + $query = \OC_DB::prepare('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'); + $query->execute(array('someapp')); + $result = (bool)$query->fetchRow(); + $this->assertFalse($result); + } + + /** + * @dataProvider getAppConfigs + * + * @param mixed $callable + */ + public function testGetValues($callable) { + $this->assertFalse(call_user_func([$callable, 'getValues'], 'testapp', 'enabled')); + + $query = \OC_DB::prepare('SELECT `configkey`, `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ?'); + $query->execute(array('testapp')); + $expected = array(); + while ($row = $query->fetchRow()) { + $expected[$row['configkey']] = $row['configvalue']; + } + $values = call_user_func([$callable, 'getValues'], 'testapp', false); + $this->assertEquals($expected, $values); + + $query = \OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig` WHERE `configkey` = ?'); + $query->execute(array('enabled')); + $expected = array(); + while ($row = $query->fetchRow()) { + $expected[$row['appid']] = $row['configvalue']; + } + $values = call_user_func([$callable, 'getValues'], false, 'enabled'); + $this->assertEquals($expected, $values); } public function testSetValueUnchanged() { @@ -118,7 +215,7 @@ class Test_Appconfig extends \Test\TestCase { .' WHERE `appid` = ?'), $this->equalTo(array('bar'))) ->will($this->returnValue($statementMock)); $connectionMock->expects($this->once()) - ->method('insert') + ->method('insertIfNotExist') ->with($this->equalTo('*PREFIX*appconfig'), $this->equalTo( array( @@ -126,7 +223,8 @@ class Test_Appconfig extends \Test\TestCase { 'configkey' => 'foo', 'configvalue' => 'v1', ) - )); + ), $this->equalTo(['appid', 'configkey'])) + ->willReturn(1); $connectionMock->expects($this->never()) ->method('update'); @@ -149,7 +247,7 @@ class Test_Appconfig extends \Test\TestCase { .' WHERE `appid` = ?'), $this->equalTo(array('bar'))) ->will($this->returnValue($statementMock)); $connectionMock->expects($this->once()) - ->method('insert') + ->method('insertIfNotExist') ->with($this->equalTo('*PREFIX*appconfig'), $this->equalTo( array( @@ -157,7 +255,8 @@ class Test_Appconfig extends \Test\TestCase { 'configkey' => 'foo', 'configvalue' => 'v1', ) - )); + ), $this->equalTo(['appid', 'configkey'])) + ->willReturn(1); $connectionMock->expects($this->once()) ->method('update') ->with($this->equalTo('*PREFIX*appconfig'), @@ -171,41 +270,29 @@ class Test_Appconfig extends \Test\TestCase { $appconfig->setValue('bar', 'foo', 'v2'); } - public function testDeleteKey() { - \OC_Appconfig::deleteKey('testapp', 'deletethis'); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?'); - $query->execute(array('testapp', 'deletethis')); - $result = (bool)$query->fetchRow(); - $this->assertFalse($result); - } - - public function testDeleteApp() { - \OC_Appconfig::deleteApp('someapp'); - $query = \OC_DB::prepare('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'); - $query->execute(array('someapp')); - $result = (bool)$query->fetchRow(); - $this->assertFalse($result); - } + public function testSettingConfigParallel() { + $appConfig1 = new OC\AppConfig(\OC::$server->getDatabaseConnection()); + $appConfig2 = new OC\AppConfig(\OC::$server->getDatabaseConnection()); + $appConfig1->getValue('testapp', 'foo', 'v1'); + $appConfig2->getValue('testapp', 'foo', 'v1'); - public function testGetValues() { - $this->assertFalse(\OC_Appconfig::getValues('testapp', 'enabled')); + $appConfig1->setValue('testapp', 'foo', 'v1'); + $this->assertConfigKey('testapp', 'foo', 'v1'); - $query = \OC_DB::prepare('SELECT `configkey`, `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ?'); - $query->execute(array('testapp')); - $expected = array(); - while ($row = $query->fetchRow()) { - $expected[$row['configkey']] = $row['configvalue']; - } - $values = \OC_Appconfig::getValues('testapp', false); - $this->assertEquals($expected, $values); + $appConfig2->setValue('testapp', 'foo', 'v2'); + $this->assertConfigKey('testapp', 'foo', 'v2'); + } - $query = \OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig` WHERE `configkey` = ?'); - $query->execute(array('enabled')); - $expected = array(); - while ($row = $query->fetchRow()) { - $expected[$row['appid']] = $row['configvalue']; - } - $values = \OC_Appconfig::getValues(false, 'enabled'); - $this->assertEquals($expected, $values); + /** + * @param string $app + * @param string $key + * @param string $expected + * @throws \OC\DatabaseException + */ + protected function assertConfigKey($app, $key, $expected) { + $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?'); + $result = $query->execute([$app, $key]); + $actual = $result->fetchRow(); + $this->assertEquals($expected, $actual['configvalue']); } } diff --git a/tests/lib/connector/sabre/DummyGetResponsePluginTest.php b/tests/lib/connector/sabre/DummyGetResponsePluginTest.php new file mode 100644 index 00000000000..fa8f0694625 --- /dev/null +++ b/tests/lib/connector/sabre/DummyGetResponsePluginTest.php @@ -0,0 +1,65 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace Test\Connector\Sabre; + +use OC\Connector\Sabre\DummyGetResponsePlugin; +use Test\TestCase; + +/** + * Class DummyGetResponsePluginTest + * + * @package Test\Connector\Sabre + */ +class DummyGetResponsePluginTest extends TestCase { + /** @var DummyGetResponsePlugin */ + private $dummyGetResponsePlugin; + + public function setUp() { + parent::setUp(); + + $this->dummyGetResponsePlugin = new DummyGetResponsePlugin(); + } + + public function testInitialize() { + /** @var \Sabre\DAV\Server $server */ + $server = $this->getMock('\Sabre\DAV\Server'); + $server + ->expects($this->once()) + ->method('on') + ->with('method:GET', [$this->dummyGetResponsePlugin, 'httpGet'], 200); + + $this->dummyGetResponsePlugin->initialize($server); + } + + + public function testHttpGet() { + /** @var \Sabre\HTTP\RequestInterface $request */ + $request = $this->getMock('\Sabre\HTTP\RequestInterface'); + /** @var \Sabre\HTTP\ResponseInterface $response */ + $response = $server = $this->getMock('\Sabre\HTTP\ResponseInterface'); + $response + ->expects($this->once()) + ->method('setBody'); + + $this->assertSame(false, $this->dummyGetResponsePlugin->httpGet($request, $response)); + } +} diff --git a/tests/lib/connector/sabre/copyetagheaderplugintest.php b/tests/lib/connector/sabre/copyetagheaderplugintest.php index 176f9c8d0ca..6b1b5e96fda 100644 --- a/tests/lib/connector/sabre/copyetagheaderplugintest.php +++ b/tests/lib/connector/sabre/copyetagheaderplugintest.php @@ -18,7 +18,7 @@ class CopyEtagPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); $this->server = new \Sabre\DAV\Server(); - $this->plugin = new \OC\Connector\Sabre\CopyEtagHeaderPlugin($this->tree); + $this->plugin = new \OC\Connector\Sabre\CopyEtagHeaderPlugin(); $this->plugin->initialize($this->server); } diff --git a/tests/lib/connector/sabre/file.php b/tests/lib/connector/sabre/file.php index ee9c20fd9cb..6602a2df24f 100644 --- a/tests/lib/connector/sabre/file.php +++ b/tests/lib/connector/sabre/file.php @@ -8,8 +8,35 @@ namespace Test\Connector\Sabre; +use Test\HookHelper; +use OC\Files\Filesystem; + class File extends \Test\TestCase { + /** + * @var string + */ + private $user; + + public function setUp() { + parent::setUp(); + + \OC_Hook::clear(); + + $this->user = $this->getUniqueID('user_'); + $userManager = \OC::$server->getUserManager(); + $userManager->createUser($this->user, 'pass'); + + $this->loginAsUser($this->user); + } + + public function tearDown() { + $userManager = \OC::$server->getUserManager(); + $userManager->get($this->user)->delete(); + + parent::tearDown(); + } + private function getStream($string) { $stream = fopen('php://temp', 'r+'); fwrite($stream, $string); @@ -23,7 +50,7 @@ class File extends \Test\TestCase { public function testSimplePutFails() { // setup $storage = $this->getMock('\OC\Files\Storage\Local', ['fopen'], [['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]]); - $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath', 'resolvePath'), array()); + $view = $this->getMock('\OC\Files\View', array('getRelativePath', 'resolvePath'), array()); $view->expects($this->any()) ->method('resolvePath') ->will($this->returnValue(array($storage, ''))); @@ -45,28 +72,21 @@ class File extends \Test\TestCase { $file->put('test data'); } - public function testPutSingleFileShare() { - // setup - $stream = fopen('php://temp', 'w+'); - $storage = $this->getMock('\OC\Files\Storage\Local', ['fopen'], [['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]]); - $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath', 'resolvePath'), array()); - $view->expects($this->any()) - ->method('resolvePath') - ->will($this->returnValue(array($storage, ''))); - $view->expects($this->any()) - ->method('getRelativePath') - ->will($this->returnValue('')); - $view->expects($this->any()) - ->method('file_put_contents') - ->with('') - ->will($this->returnValue(true)); - $storage->expects($this->once()) - ->method('fopen') - ->will($this->returnValue($stream)); - - $info = new \OC\Files\FileInfo('/foo.txt', null, null, array( - 'permissions' => \OCP\Constants::PERMISSION_ALL - ), null); + private function doPut($path, $viewRoot = null) { + $view = \OC\Files\Filesystem::getView(); + if (!is_null($viewRoot)) { + $view = new \OC\Files\View($viewRoot); + } else { + $viewRoot = '/' . $this->user . '/files'; + } + + $info = new \OC\Files\FileInfo( + $viewRoot . '/' . ltrim($path, '/'), + null, + null, + ['permissions' => \OCP\Constants::PERMISSION_ALL], + null + ); $file = new \OC\Connector\Sabre\File($view, $info); @@ -74,16 +94,144 @@ class File extends \Test\TestCase { } /** + * Test putting a single file + */ + public function testPutSingleFile() { + $this->doPut('/foo.txt'); + } + + /** + * Test that putting a file triggers create hooks + */ + public function testPutSingleFileTriggersHooks() { + HookHelper::setUpHooks(); + + $this->doPut('/foo.txt'); + + $this->assertCount(4, HookHelper::$hookCalls); + $this->assertHookCall( + HookHelper::$hookCalls[0], + Filesystem::signal_create, + '/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[1], + Filesystem::signal_write, + '/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[2], + Filesystem::signal_post_create, + '/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[3], + Filesystem::signal_post_write, + '/foo.txt' + ); + } + + /** + * Test that putting a file triggers update hooks + */ + public function testPutOverwriteFileTriggersHooks() { + $view = \OC\Files\Filesystem::getView(); + $view->file_put_contents('/foo.txt', 'some content that will be replaced'); + + HookHelper::setUpHooks(); + + $this->doPut('/foo.txt'); + + $this->assertCount(4, HookHelper::$hookCalls); + $this->assertHookCall( + HookHelper::$hookCalls[0], + Filesystem::signal_update, + '/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[1], + Filesystem::signal_write, + '/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[2], + Filesystem::signal_post_update, + '/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[3], + Filesystem::signal_post_write, + '/foo.txt' + ); + } + + /** + * Test that putting a file triggers hooks with the correct path + * if the passed view was chrooted (can happen with public webdav + * where the root is the share root) + */ + public function testPutSingleFileTriggersHooksDifferentRoot() { + $view = \OC\Files\Filesystem::getView(); + $view->mkdir('noderoot'); + + HookHelper::setUpHooks(); + + // happens with public webdav where the view root is the share root + $this->doPut('/foo.txt', '/' . $this->user . '/files/noderoot'); + + $this->assertCount(4, HookHelper::$hookCalls); + $this->assertHookCall( + HookHelper::$hookCalls[0], + Filesystem::signal_create, + '/noderoot/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[1], + Filesystem::signal_write, + '/noderoot/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[2], + Filesystem::signal_post_create, + '/noderoot/foo.txt' + ); + $this->assertHookCall( + HookHelper::$hookCalls[3], + Filesystem::signal_post_write, + '/noderoot/foo.txt' + ); + } + + public static function cancellingHook($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_post_create, + 'params' => $params + ); + } + + /** + * Test put file with cancelled hook + * + * @expectedException \Sabre\DAV\Exception + */ + public function testPutSingleFileCancelPreHook() { + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_create, + '\Test\HookHelper', + 'cancellingCallback' + ); + + $this->doPut('/foo.txt'); + } + + /** * @expectedException \Sabre\DAV\Exception */ public function testSimplePutFailsOnRename() { // setup $view = $this->getMock('\OC\Files\View', - array('file_put_contents', 'rename', 'getRelativePath', 'filesize')); - $view->expects($this->any()) - ->method('file_put_contents') - ->withAnyParameters() - ->will($this->returnValue(true)); + array('rename', 'getRelativePath', 'filesize')); $view->expects($this->any()) ->method('rename') ->withAnyParameters() @@ -113,11 +261,7 @@ class File extends \Test\TestCase { */ public function testSimplePutInvalidChars() { // setup - $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath')); - $view->expects($this->any()) - ->method('file_put_contents') - ->will($this->returnValue(false)); - + $view = $this->getMock('\OC\Files\View', array('getRelativePath')); $view->expects($this->any()) ->method('getRelativePath') ->will($this->returnValue('/*')); @@ -157,11 +301,7 @@ class File extends \Test\TestCase { public function testUploadAbort() { // setup $view = $this->getMock('\OC\Files\View', - array('file_put_contents', 'rename', 'getRelativePath', 'filesize')); - $view->expects($this->any()) - ->method('file_put_contents') - ->withAnyParameters() - ->will($this->returnValue(true)); + array('rename', 'getRelativePath', 'filesize')); $view->expects($this->any()) ->method('rename') ->withAnyParameters() @@ -248,4 +388,20 @@ class File extends \Test\TestCase { // action $file->delete(); } + + /** + * Asserts hook call + * + * @param array $callData hook call data to check + * @param string $signal signal name + * @param string $hookPath hook path + */ + protected function assertHookCall($callData, $signal, $hookPath) { + $this->assertEquals($signal, $callData['signal']); + $params = $callData['params']; + $this->assertEquals( + $hookPath, + $params[Filesystem::signal_param_path] + ); + } } diff --git a/tests/lib/connector/sabre/quotaplugin.php b/tests/lib/connector/sabre/quotaplugin.php index 48f8f319ae4..3d9cd9b5da0 100644 --- a/tests/lib/connector/sabre/quotaplugin.php +++ b/tests/lib/connector/sabre/quotaplugin.php @@ -92,7 +92,10 @@ class Test_OC_Connector_Sabre_QuotaPlugin extends \Test\TestCase { private function buildFileViewMock($quota) { // mock filesysten $view = $this->getMock('\OC\Files\View', array('free_space'), array(), '', false); - $view->expects($this->any())->method('free_space')->withAnyParameters()->will($this->returnValue($quota)); + $view->expects($this->any()) + ->method('free_space') + ->with($this->identicalTo('')) + ->will($this->returnValue($quota)); return $view; } diff --git a/tests/lib/encryption/updatetest.php b/tests/lib/encryption/updatetest.php index 790d071aa68..b222bc42d7a 100644 --- a/tests/lib/encryption/updatetest.php +++ b/tests/lib/encryption/updatetest.php @@ -68,10 +68,6 @@ class UpdateTest extends TestCase { $this->encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule') ->disableOriginalConstructor()->getMock(); - $this->encryptionManager->expects($this->once()) - ->method('getEncryptionModule') - ->willReturn($this->encryptionModule); - $this->uid = 'testUser1'; $this->update = new Update( @@ -93,6 +89,10 @@ class UpdateTest extends TestCase { */ public function testUpdate($path, $isDir, $allFiles, $numberOfFiles) { + $this->encryptionManager->expects($this->once()) + ->method('getEncryptionModule') + ->willReturn($this->encryptionModule); + $this->view->expects($this->once()) ->method('is_dir') ->willReturn($isDir); @@ -126,4 +126,111 @@ class UpdateTest extends TestCase { ); } + /** + * @dataProvider dataTestPostRename + * + * @param string $source + * @param string $target + * @param boolean $encryptionEnabled + */ + public function testPostRename($source, $target, $encryptionEnabled) { + + $updateMock = $this->getUpdateMock(['update', 'getOwnerPath']); + + $this->encryptionManager->expects($this->once()) + ->method('isEnabled') + ->willReturn($encryptionEnabled); + + if (dirname($source) === dirname($target) || $encryptionEnabled === false) { + $updateMock->expects($this->never())->method('getOwnerPath'); + $updateMock->expects($this->never())->method('update'); + } else { + $updateMock->expects($this->once()) + ->method('getOwnerPath') + ->willReturnCallback(function($path) use ($target) { + $this->assertSame( + $target, + $path, + 'update needs to be executed for the target destination'); + return ['owner', $path]; + + }); + $updateMock->expects($this->once())->method('update'); + } + + $updateMock->postRename(['oldpath' => $source, 'newpath' => $target]); + } + + /** + * test data for testPostRename() + * + * @return array + */ + public function dataTestPostRename() { + return array( + array('/test.txt', '/testNew.txt', true), + array('/test.txt', '/testNew.txt', false), + array('/folder/test.txt', '/testNew.txt', true), + array('/folder/test.txt', '/testNew.txt', false), + array('/folder/test.txt', '/testNew.txt', true), + array('/test.txt', '/folder/testNew.txt', false), + ); + } + + + /** + * @dataProvider dataTestPostRestore + * + * @param boolean $encryptionEnabled + */ + public function testPostRestore($encryptionEnabled) { + + $updateMock = $this->getUpdateMock(['update']); + + $this->encryptionManager->expects($this->once()) + ->method('isEnabled') + ->willReturn($encryptionEnabled); + + if ($encryptionEnabled) { + $updateMock->expects($this->once())->method('update'); + + } else { + $updateMock->expects($this->never())->method('update'); + } + + $updateMock->postRestore(['filePath' => '/folder/test.txt']); + } + + /** + * test data for testPostRestore() + * + * @return array + */ + public function dataTestPostRestore() { + return array( + array(true), + array(false), + ); + } + + /** + * create mock of the update method + * + * @param array$methods methods which should be set + * @return \OC\Encryption\Update | \PHPUnit_Framework_MockObject_MockObject + */ + protected function getUpdateMock($methods) { + return $this->getMockBuilder('\OC\Encryption\Update') + ->setConstructorArgs( + [ + $this->view, + $this->util, + $this->mountManager, + $this->encryptionManager, + $this->fileHelper, + $this->uid + ] + )->setMethods($methods)->getMock(); + } + } diff --git a/tests/lib/encryption/utiltest.php b/tests/lib/encryption/utiltest.php index 7de57043920..0154fa30f7d 100644 --- a/tests/lib/encryption/utiltest.php +++ b/tests/lib/encryption/utiltest.php @@ -135,6 +135,7 @@ class UtilTest extends TestCase { public function providePathsForTestIsExcluded() { return array( + array('/files_encryption', true), array('files_encryption/foo.txt', true), array('test/foo.txt', false), array('/user1/files_encryption/foo.txt', true), diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php index d4492e00928..39af648cb75 100644 --- a/tests/lib/files/storage/wrapper/encryption.php +++ b/tests/lib/files/storage/wrapper/encryption.php @@ -47,6 +47,22 @@ class Encryption extends \Test\Files\Storage\Storage { */ private $cache; + /** + * @var \OC\Log | \PHPUnit_Framework_MockObject_MockObject + */ + private $logger; + + /** + * @var \OC\Encryption\File | \PHPUnit_Framework_MockObject_MockObject + */ + private $file; + + + /** + * @var \OC\Files\Mount\MountPoint | \PHPUnit_Framework_MockObject_MockObject + */ + private $mount; + /** @var integer dummy unencrypted size */ private $dummySize = -1; @@ -77,13 +93,13 @@ class Encryption extends \Test\Files\Storage\Storage { return ['user1', $path]; }); - $file = $this->getMockBuilder('\OC\Encryption\File') + $this->file = $this->getMockBuilder('\OC\Encryption\File') ->disableOriginalConstructor() ->setMethods(['getAccessList']) ->getMock(); - $file->expects($this->any())->method('getAccessList')->willReturn([]); + $this->file->expects($this->any())->method('getAccessList')->willReturn([]); - $logger = $this->getMock('\OC\Log'); + $this->logger = $this->getMock('\OC\Log'); $this->sourceStorage = new Temporary(array()); @@ -93,11 +109,11 @@ class Encryption extends \Test\Files\Storage\Storage { $this->update = $this->getMockBuilder('\OC\Encryption\Update') ->disableOriginalConstructor()->getMock(); - $mount = $this->getMockBuilder('\OC\Files\Mount\MountPoint') + $this->mount = $this->getMockBuilder('\OC\Files\Mount\MountPoint') ->disableOriginalConstructor() ->setMethods(['getOption']) ->getMock(); - $mount->expects($this->any())->method('getOption')->willReturn(true); + $this->mount->expects($this->any())->method('getOption')->willReturn(true); $this->cache = $this->getMockBuilder('\OC\Files\Cache\Cache') ->disableOriginalConstructor()->getMock(); @@ -112,12 +128,12 @@ class Encryption extends \Test\Files\Storage\Storage { 'storage' => $this->sourceStorage, 'root' => 'foo', 'mountPoint' => '/', - 'mount' => $mount + 'mount' => $this->mount ], - $this->encryptionManager, $this->util, $logger, $file, null, $this->keyStore, $this->update + $this->encryptionManager, $this->util, $this->logger, $this->file, null, $this->keyStore, $this->update ] ) - ->setMethods(['getMetaData', 'getCache']) + ->setMethods(['getMetaData', 'getCache', 'getEncryptionModule']) ->getMock(); $this->instance->expects($this->any()) @@ -127,6 +143,10 @@ class Encryption extends \Test\Files\Storage\Storage { $this->instance->expects($this->any()) ->method('getCache') ->willReturn($this->cache); + + $this->instance->expects($this->any()) + ->method('getEncryptionModule') + ->willReturn($mockModule); } /** @@ -135,7 +155,7 @@ class Encryption extends \Test\Files\Storage\Storage { protected function buildMockModule() { $this->encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule') ->disableOriginalConstructor() - ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize']) + ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable']) ->getMock(); $this->encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE'); @@ -147,6 +167,7 @@ class Encryption extends \Test\Files\Storage\Storage { $this->encryptionModule->expects($this->any())->method('update')->willReturn(true); $this->encryptionModule->expects($this->any())->method('shouldEncrypt')->willReturn(true); $this->encryptionModule->expects($this->any())->method('getUnencryptedBlockSize')->willReturn(8192); + $this->encryptionModule->expects($this->any())->method('isReadable')->willReturn(true); return $this->encryptionModule; } @@ -157,13 +178,11 @@ class Encryption extends \Test\Files\Storage\Storage { * @param string $target * @param $encryptionEnabled * @param boolean $renameKeysReturn - * @param boolean $shouldUpdate */ public function testRename($source, $target, $encryptionEnabled, - $renameKeysReturn, - $shouldUpdate) { + $renameKeysReturn) { if ($encryptionEnabled) { $this->keyStore ->expects($this->once()) @@ -177,13 +196,6 @@ class Encryption extends \Test\Files\Storage\Storage { ->method('isFile')->willReturn(true); $this->encryptionManager->expects($this->once()) ->method('isEnabled')->willReturn($encryptionEnabled); - if ($shouldUpdate) { - $this->update->expects($this->once()) - ->method('update'); - } else { - $this->update->expects($this->never()) - ->method('update'); - } $this->instance->mkdir($source); $this->instance->mkdir(dirname($target)); @@ -261,4 +273,55 @@ class Encryption extends \Test\Files\Storage\Storage { ->method('isEnabled')->willReturn(true); $this->assertFalse($this->instance->isLocal()); } + + /** + * @dataProvider dataTestRmdir + * + * @param string $path + * @param boolean $rmdirResult + * @param boolean $isExcluded + * @param boolean $encryptionEnabled + */ + public function testRmdir($path, $rmdirResult, $isExcluded, $encryptionEnabled) { + $sourceStorage = $this->getMockBuilder('\OC\Files\Storage\Storage') + ->disableOriginalConstructor()->getMock(); + + $util = $this->getMockBuilder('\OC\Encryption\Util')->disableOriginalConstructor()->getMock(); + + $sourceStorage->expects($this->once())->method('rmdir')->willReturn($rmdirResult); + $util->expects($this->any())->method('isExcluded')-> willReturn($isExcluded); + $this->encryptionManager->expects($this->any())->method('isEnabled')->willReturn($encryptionEnabled); + + $encryptionStorage = new \OC\Files\Storage\Wrapper\Encryption( + [ + 'storage' => $sourceStorage, + 'root' => 'foo', + 'mountPoint' => '/mountPoint', + 'mount' => $this->mount + ], + $this->encryptionManager, $util, $this->logger, $this->file, null, $this->keyStore, $this->update + ); + + + if ($rmdirResult === true && $isExcluded === false && $encryptionEnabled === true) { + $this->keyStore->expects($this->once())->method('deleteAllFileKeys')->with('/mountPoint' . $path); + } else { + $this->keyStore->expects($this->never())->method('deleteAllFileKeys'); + } + + $encryptionStorage->rmdir($path); + } + + public function dataTestRmdir() { + return array( + array('/file.txt', true, true, true), + array('/file.txt', false, true, true), + array('/file.txt', true, false, true), + array('/file.txt', false, false, true), + array('/file.txt', true, true, false), + array('/file.txt', false, true, false), + array('/file.txt', true, false, false), + array('/file.txt', false, false, false), + ); + } } diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php index 892491cbc32..c2388c7682a 100644 --- a/tests/lib/files/stream/encryption.php +++ b/tests/lib/files/stream/encryption.php @@ -7,6 +7,9 @@ use OCA\Encryption_Dummy\DummyModule; class Encryption extends \Test\TestCase { + /** @var \OCP\Encryption\IEncryptionModule | \PHPUnit_Framework_MockObject_MockObject */ + private $encryptionModule; + /** * @param string $fileName * @param string $mode @@ -21,7 +24,7 @@ class Encryption extends \Test\TestCase { $fullPath = $fileName; $header = []; $uid = ''; - $encryptionModule = $this->buildMockModule(); + $this->encryptionModule = $this->buildMockModule(); $storage = $this->getMockBuilder('\OC\Files\Storage\Storage') ->disableOriginalConstructor()->getMock(); $encStorage = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Encryption') @@ -43,7 +46,7 @@ class Encryption extends \Test\TestCase { ->willReturn(['user1', $internalPath]); return \OC\Files\Stream\Encryption::wrap($source, $internalPath, - $fullPath, $header, $uid, $encryptionModule, $storage, $encStorage, + $fullPath, $header, $uid, $this->encryptionModule, $storage, $encStorage, $util, $file, $mode, $size, $unencryptedSize, 8192); } @@ -160,15 +163,6 @@ class Encryption extends \Test\TestCase { $this->assertEquals('foobar', fread($stream, 100)); fclose($stream); - unlink($fileName); - } - - public function testWriteWriteRead() { - $fileName = tempnam("/tmp", "FOO"); - $stream = $this->getStream($fileName, 'w+', 0); - $this->assertEquals(6, fwrite($stream, 'foobar')); - fclose($stream); - $stream = $this->getStream($fileName, 'r+', 6); $this->assertEquals(3, fwrite($stream, 'bar')); fclose($stream); @@ -176,6 +170,8 @@ class Encryption extends \Test\TestCase { $stream = $this->getStream($fileName, 'r', 6); $this->assertEquals('barbar', fread($stream, 100)); fclose($stream); + + unlink($fileName); } public function testRewind() { @@ -191,7 +187,9 @@ class Encryption extends \Test\TestCase { $stream = $this->getStream($fileName, 'r', 6); $this->assertEquals('barbar', fread($stream, 100)); fclose($stream); - } + + unlink($fileName); +} public function testSeek() { $fileName = tempnam("/tmp", "FOO"); @@ -203,6 +201,12 @@ class Encryption extends \Test\TestCase { $stream = $this->getStream($fileName, 'r', 9); $this->assertEquals('foofoobar', fread($stream, 100)); + $this->assertEquals(-1, fseek($stream, 10)); + $this->assertEquals(0, fseek($stream, 9)); + $this->assertEquals(-1, fseek($stream, -10, SEEK_CUR)); + $this->assertEquals(0, fseek($stream, -9, SEEK_CUR)); + $this->assertEquals(-1, fseek($stream, -10, SEEK_END)); + $this->assertEquals(0, fseek($stream, -9, SEEK_END)); fclose($stream); unlink($fileName); @@ -220,10 +224,15 @@ class Encryption extends \Test\TestCase { * @dataProvider dataFilesProvider */ public function testWriteReadBigFile($testFile) { + $expectedData = file_get_contents(\OC::$SERVERROOT . '/tests/data/' . $testFile); // write it $fileName = tempnam("/tmp", "FOO"); $stream = $this->getStream($fileName, 'w+', 0); + // while writing the file from the beginning to the end we should never try + // to read parts of the file. This should only happen for write operations + // in the middle of a file + $this->encryptionModule->expects($this->never())->method('decrypt'); fwrite($stream, $expectedData); fclose($stream); @@ -253,13 +262,14 @@ class Encryption extends \Test\TestCase { protected function buildMockModule() { $encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule') ->disableOriginalConstructor() - ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize']) + ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable']) ->getMock(); $encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE'); $encryptionModule->expects($this->any())->method('getDisplayName')->willReturn('Unit test module'); $encryptionModule->expects($this->any())->method('begin')->willReturn([]); $encryptionModule->expects($this->any())->method('end')->willReturn(''); + $encryptionModule->expects($this->any())->method('isReadable')->willReturn(true); $encryptionModule->expects($this->any())->method('encrypt')->willReturnCallback(function($data) { // simulate different block size by adding some padding to the data if (isset($data[6125])) { diff --git a/tests/lib/helper.php b/tests/lib/helper.php index ed15a677300..b7aa185f4e3 100644 --- a/tests/lib/helper.php +++ b/tests/lib/helper.php @@ -53,21 +53,22 @@ class Test_Helper extends \Test\TestCase { } /** - * @dataProvider computerFileSizeProvider + * @dataProvider providesComputerFileSize */ function testComputerFileSize($expected, $input) { $result = OC_Helper::computerFileSize($input); $this->assertEquals($expected, $result); } - function computerFileSizeProvider(){ - return array( - array(0.0, "0 B"), - array(1024.0, "1 kB"), - array(1395864371.0, '1.3 GB'), - array(9961472.0, "9.5 MB"), - array(500041567437.0, "465.7 GB"), - ); + function providesComputerFileSize(){ + return [ + [0.0, "0 B"], + [1024.0, "1 kB"], + [1395864371.0, '1.3 GB'], + [9961472.0, "9.5 MB"], + [500041567437.0, "465.7 GB"], + [false, "12 GB etfrhzui"] + ]; } function testGetMimeType() { diff --git a/tests/lib/hookhelper.php b/tests/lib/hookhelper.php new file mode 100644 index 00000000000..93411bd068b --- /dev/null +++ b/tests/lib/hookhelper.php @@ -0,0 +1,112 @@ +<?php +/** + * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test; + +use OC\Files\Filesystem; + +/** + * Helper class to register hooks on + */ +class HookHelper { + public static $hookCalls; + + public static function setUpHooks() { + self::clear(); + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_create, + '\Test\HookHelper', + 'createCallback' + ); + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_update, + '\Test\HookHelper', + 'updateCallback' + ); + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_write, + '\Test\HookHelper', + 'writeCallback' + ); + + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_post_create, + '\Test\HookHelper', + 'postCreateCallback' + ); + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_post_update, + '\Test\HookHelper', + 'postUpdateCallback' + ); + \OCP\Util::connectHook( + Filesystem::CLASSNAME, + Filesystem::signal_post_write, + '\Test\HookHelper', + 'postWriteCallback' + ); + } + + public static function clear() { + self::$hookCalls = []; + } + + public static function createCallback($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_create, + 'params' => $params + ); + } + + public static function updateCallback($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_update, + 'params' => $params + ); + } + + public static function writeCallback($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_write, + 'params' => $params + ); + } + + public static function postCreateCallback($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_post_create, + 'params' => $params + ); + } + + public static function postUpdateCallback($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_post_update, + 'params' => $params + ); + } + + public static function postWriteCallback($params) { + self::$hookCalls[] = array( + 'signal' => Filesystem::signal_post_write, + 'params' => $params + ); + } + + /** + * Callback that sets the run paramter to false + */ + public static function cancellingCallback($params) { + $params[Filesystem::signal_param_run] = false; + } +} diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php index e66dfb13353..76d5662da9d 100644 --- a/tests/lib/testcase.php +++ b/tests/lib/testcase.php @@ -182,6 +182,8 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase { static protected function logout() { \OC_Util::tearDownFS(); \OC_User::setUserId(''); + // needed for fully logout + \OC::$server->getUserSession()->setUser(null); } /** diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php index b9d45d786ec..e70b235f603 100644 --- a/tests/settings/controller/userscontrollertest.php +++ b/tests/settings/controller/userscontrollertest.php @@ -1303,14 +1303,14 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->once()) ->method('isEnabledForUser') ->with( - $this->equalTo('files_encryption') + $this->equalTo('encryption') ) ->will($this->returnValue(true)); $this->container['Config'] ->expects($this->once()) ->method('getAppValue') ->with( - $this->equalTo('files_encryption'), + $this->equalTo('encryption'), $this->equalTo('recoveryAdminEnabled'), $this->anything() ) @@ -1321,8 +1321,8 @@ class UsersControllerTest extends \Test\TestCase { ->method('getUserValue') ->with( $this->anything(), - $this->equalTo('files_encryption'), - $this->equalTo('recovery_enabled'), + $this->equalTo('encryption'), + $this->equalTo('recoveryEnabled'), $this->anything() ) ->will($this->returnValue('1')); @@ -1339,7 +1339,7 @@ class UsersControllerTest extends \Test\TestCase { $this->container['OCP\\App\\IAppManager'] ->method('isEnabledForUser') ->with( - $this->equalTo('files_encryption') + $this->equalTo('encryption') ) ->will($this->returnValue(true)); @@ -1358,14 +1358,14 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->once()) ->method('isEnabledForUser') ->with( - $this->equalTo('files_encryption') + $this->equalTo('encryption') ) ->will($this->returnValue(true)); $this->container['Config'] ->expects($this->once()) ->method('getAppValue') ->with( - $this->equalTo('files_encryption'), + $this->equalTo('encryption'), $this->equalTo('recoveryAdminEnabled'), $this->anything() ) @@ -1376,8 +1376,8 @@ class UsersControllerTest extends \Test\TestCase { ->method('getUserValue') ->with( $this->anything(), - $this->equalTo('files_encryption'), - $this->equalTo('recovery_enabled'), + $this->equalTo('encryption'), + $this->equalTo('recoveryEnabled'), $this->anything() ) ->will($this->returnValue('0')); diff --git a/version.php b/version.php index 1b7105b1273..26744e47b85 100644 --- a/version.php +++ b/version.php @@ -23,10 +23,10 @@ // We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version=array(8, 1, 0, 4); +$OC_Version=array(8, 1, 0, 6); // The human readable string -$OC_VersionString='8.1 alpha 3'; +$OC_VersionString='8.1 beta 2'; // The ownCloud channel $OC_Channel='git'; |